1. 概述

  • 我并没有看过源码,只是看了官方README,并尝试使用了VoTT。所以,肯定很多细节并不清楚。

1.1. VoTT 的功能

  • 对图像或视频标定框(bounding box)
  • 不规则的标注结果(图像分割)
  • 对同一个标定框(bbox)标注多个类别的标签(tags)
  • 手动设置输入视频的帧率(fps)
  • 内置模型自动标定bbox
  • 标注结果统计以及可视化
  • 标注结果导出为多种形式
  • 前后帧标定框关联
  • 对视频片段标定结果
  • 自动浏览视频片段

1.2. 下载与安装

  • 下载:
  • 安装:
    • 只尝试了使用win下的二进制文件,点击运行就行……

2. 入门基本使用

  • 本章的目标,简单过一遍VoTT的使用过程。部分功能的详细说明将在第三章中介绍。
  • 本章内容包括:
    • 准备工作
    • 新建项目
    • 标注bbox
    • 导出标定结果

2.1. 准备工作

  • 将所有待标注的视频或图像放到一个文件夹中。
    • 注意,后续只处理该文件夹中的视频与图像,不会处理子文件夹中的数据。
  • 新建一个目录,用于保存VoTT项目信息以及项目结果输出。
  • 准备好标注类别(tags)。

2.2. 新建项目

  • 在打开VoTT后就能看到新建项目选项。
    • 标注工具 VoTT 详细教程
  • 在新建项目目录中,主要要填写的内容包括
    • Display Name:项目名称,随便写
    • Security Token:用来加密一些敏感信息,我也不知道干什么用的,一般就选默认
    • Source Connection:原始数据路径(后面会单独介绍Connection)
    • Target Connection:目标数据存放路径(后面会单独介绍Connection),保存标签以及项目信息
    • Description:项目描述
    • Frame Extraction Rate(frames per a video second):视频帧率
    • Tags(截图中没有包括):待标注的标签列表(如COCO 80类物体的名称)。更多 Tags 相关内容请参考 3.3. Tags 设置
    • 标注工具 VoTT 详细教程标注工具 VoTT 详细教程
  • Connection介绍
    • 所谓Connection,其实就是数据路径。
    • 分类:VoTT中提供了三种 Azure Blob Storge,Bing Image Search,Local File System。
    • 我一般使用的就是 Local File System,需要设置的参数就是 Display Name(在新建项目的Connection相关配置中会展示这个Display Name,我一般设置为文件夹名),Description,Folder Path(本地文件夹路径)。
      • 标注工具 VoTT 详细教程
    • 设置完成后,在新建项目的 Source/Target Connection 下拉菜单中就能找到对应的选项
      • 标注工具 VoTT 详细教程
    • Connection在左边菜单栏中有单独一个选项
      • 标注工具 VoTT 详细教程

2.3. 标注bbox

  • 基本流程分为下面几个步骤
    • 选择视频帧/图像
      • 视频帧更详细情况请参考 3.2. 视频帧相关
    • 画框
    • 设置标签(tags),同一个bbox可对应多个tags
  • 上述基本步骤示意图如下
    • 注意,图中bbox对应了三个类别的tags(对应3/6/8的标签)
    • 标注工具 VoTT 详细教程
  • 画框时可使用内置SSD模型自动获取bbox
    • bbox的质量可能不是特别高,但也能省一些力气。
    • 更多详细信息可以参考 3.1. 自动标定
    • 示意图如下(先点击博士帽按钮,就可以自动获取标定框)
    • 标注工具 VoTT 详细教程
  • 其他细节:
    • 在画/删框、设置/删除tags后,会自动保存标注结果,无序手动设置。
    • 3.5. 标框的第三种方式中介绍了一些标注的小工具的使用。

2.4. 导出标注结果

  • 在标注页面中,可快速将结果导出,如下图所示。
    • 标注工具 VoTT 详细教程
  • 具体导出设置可以参考
    • 标注工具 VoTT 详细教程
  • 具体导出结果类型等细节请参考 3.4. 标注结果导出

3. 功能详解

3.1. 自动标定(Active Learning)

  • 实现的功能:对图像/视频帧结果进行画框。
  • 快捷点:ctrl+D
  • 在左侧菜单栏中,有自动标注的选项,包括的功能有
    • Model Provider:默认有COCO SSD模型可以使用,也可以自己导入本地模型或url模型地址。
    • Predict Tag:使用自动标注时,需不需要标注bbox的类别。如果没有选中,则只标框,不标结果。
    • Auto Detect:在转换图像/视频帧时,是否自动执行自动标注。
    • 标注工具 VoTT 详细教程
  • 需要看源码才能了解的功能
    • 自定义模型要如何导入,这个从源码中研究模型的输出,不知道PyTorch等行不行。

3.2. 视频帧相关

  • 在VoTT中,视频会自动根据输入帧率成帧。
  • 视频帧类别分为三类(如下图所示):
    • 第一类:包含bbox的视频帧(绿色的竖线)
    • 第二类:单独浏览过但没有标注结果的视频帧(黄色的竖线)
    • 第三类:没有单独浏览过的视频帧(没有竖线位置的视频帧)
    • 标注工具 VoTT 详细教程
  • 所谓单独浏览,指的是单独停下来到某一帧
    • 在播放视频时,可能浏览了所有帧,但不会都标黄色竖线。
  • 视频帧的选择
    • 鼠标直接在进度条中选择,选中 “没有单独浏览过的视频帧” 后会将当前帧转换为 “单独浏览过但没有标注结果的视频帧”。
    • 上一帧/下一帧(Previous/Next Frame):选择上一帧或下一帧,快捷键为 A/D
      • 按照输入设置中的视频帧率提取帧。
      • 这里选择的上下帧就是临近帧,与帧的类别无关。
    • Previous Tag Frame/Next Tag Frame:快捷键为 Q/E
      • 这里选择的是第一类帧,即包含bbox的视频帧。
    • 标注工具 VoTT 详细教程

3.3. Tags 设置

  • VoTT中选中bbox的一些表现形式(如果bbox为实线表示选中,虚线表示未选中),如下图所示
    • 标注工具 VoTT 详细教程
  • 对于选中的bbox设置tag有以下两种方式
    • 鼠标选择左侧的tags列表
    • Tags列表中的钱10类可通过快捷键设置(快捷键就是tags右边中[x]的信息)
    • 标注工具 VoTT 详细教程
  • 在标同一张图片中的多个bbox时
    • 如果使用快捷键选择tag,每个bbox默认标了一个tag后就会选择后一个bbox。
    • 当选择到最后一个bbox时,不会跳转到第一个bbox从头开始,而是会在最后一个bbox上重复进行标记。
  • Tag工具栏中还包括一些其他功能,比如reording/lock
    • reording就是改变tag的顺序,通过下图中的上下箭头实现
    • lock不知道是干什么用的,没看懂 A tag can be locked for repeated tagging using the lock icon at the top of the tag editor pane.
    • 标注工具 VoTT 详细教程
  • 如何快速设置Tags
    • VoTT支持的方式就是在创建项目或项目设置中的Tags选项中一个个输入,这种方式非常不方便(比如要把COCO80类输入进去……)。
    • 可编程的修改方式:通过修改VoTT项目文件 my_project.vott 实现
      • 配置文件总体是一个json文件,其中包含一个参数 tag 列表,每个tag包含两个属性name/color,name就是字符串,color是RGB字符串,如#008000
      • 整体结构形如 "tags": [{"name": "name1", "color": "#595959"}, ...]
    • 注意,有两种方式可以打开已有VoTT项目
      • 方式一:手动打开.vott文件。
      • 方式二:直接右侧选中最近打开的项目。
    • 当使用修改.vott的方法新建tags后,第一次打开项目时,只能用方式一打开,如果用方式二会导致新增的tags消失。
      • 标注工具 VoTT 详细教程

3.4. 标注结果导出

  • 在介绍导出功能前,先明确几个定义:
    • 视频帧的分类:详情请看 3.2. 中内容,分为三类,第一类对应Tagged,第二类对应Visited,第三类就是没有标签。
    • 视频/图片的Visited/Tagged属性,如下图所示(看过没标过的是Visited,标过的是Tagged)
      • 标注工具 VoTT 详细教程
  • 导出功能有单独的菜单栏(如下图所示),包括三个选项
    • 标注工具 VoTT 详细教程
  • 导出数据形式(六种,就不细说了)
    • 标注工具 VoTT 详细教程
  • 导出数据
    • All Asserts:所有数据
    • Only Visited Assets:仅Visited相关数据
    • Only Tagged Assets:仅Tagged相关数据
  • Include Images:导出数据中是否需要包含图片
  • 举例:导出为PASCAL VOC形式时,数据如下
    • 标注工具 VoTT 详细教程

3.5. 标框的第三种方式

  • 标框(bbox)的方法主要有三种,本节主要介绍第三种方式。
    • 自己直接画
    • 先用Active Learning标再调整
    • 复制其他图片/视频帧的bbox到当前帧:这种方式适合视频中连续帧的标注。
  • 在标注页面上,有几个关于regions(就是bbox)的操作:复制/剪切/黏贴/删除regions
    • regions复制/剪切/粘贴/全选操作对应的快捷键是 ctrl+c/x/v/a
    • 可以在当前帧进行标注,然后全选+复制+选择下一帧+粘贴,然后调整bbox。
    • 标注工具 VoTT 详细教程

3.6. 其他没有详细研究的内容

  • Project Settings 中有标定结果可视化

    • 标注工具 VoTT 详细教程
  • 多边形标定

  • 放大/缩小(不只是图像放大/缩小,连整体UI都放大/缩小了,使用tag锁定快捷键,如ctrl+0就恢复默认尺寸了)

  • 多人协同

  • Security Token

相关文章: