文章目录

  • 1. 概述
    • 1.1. VoTT 的功能
    • 1.2. 下载与安装
    • 1.3. 使用感想
  • 2. 入门基本使用
    • 2.1. 准备工作
    • 2.2. 新建项目
    • 2.3. 标注bbox
    • 2.4. 导出标注结果
  • 3. 功能详解
    • 3.1. 自动标定(Active Learning)
    • 3.2. 视频帧相关
    • 3.3. Tags 设置
    • 3.4. 标注结果导出
    • 3.5. 标框的第三种方式
    • 3.6. 其他没有详细研究的内容

1. 概述

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

1.1. VoTT 的功能

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

1.2. 下载与安装

  • 下载:

    • 官方Github
    • 在 releases 中提供了windows/linux/mac下编译好的可执行文件。
  • 安装:
    • 只尝试了使用win下的二进制文件,点击运行就行……

1.3. 使用感想

  • 我用VoTT进行标注的时间超过了50小时,写一些自己的感想。
  • 优势:
    • 安装方便,直接下载exe文件即可。
    • 界面好看(这非常重要,毕竟标注的时间一般都很长,而且枯燥)。
    • 功能上满足我的需求(视频选择帧+标注框+同一个框多标签)
  • 劣势(也许通过修改源码能够实现,但当前release不能实现):
    • 不能导入已有的标注结果(如bbox)。
    • 同一个项目在不同电脑不能使用。
    • Connection对我来说非常鸡肋。
      • Connection的基本作用就是,可以导入不同地方的数据作为输入。
      • 但我自己的使用中,只会用到本地文件作为输入,而不会用到VoTT中额外提供的Bing/Azure等功能。
    • Project功能对我来说完全没用,还增加了很多工作量
      • 每个project对应两个Connection,如果Connection中的视频太多好像会比较卡,所以会建立很多个Project。
      • Project有Security Token相关内容,会对项目的部分信息进行加密,这导致Project换台电脑就打不开了
      • 如果修改了Project的参数,会导致一些意想不到的错误。比如,如果修改了FPS,就会导致一些标注好的bbox看不到。
    • 程序不稳定,经常会报错
      • 使用键盘标注多个标签时,如果键盘点击速度太快,就会报错。
      • 项目多了之后,经常会重启程序。家里的电脑配置特别好,重启没什么影响。单位的电脑配置不行,重启一下就要命了……
      • 项目多了以后(现在有70+个项目),打开历史项目时,有时候会看不到标注好的bbox(如果export会发现少了很多bbox)……但如果你刚好移到标注过的那帧时,bbox又出现了(这时如果export,那缺少的这一个bbox就又会出现了)

2. 入门基本使用

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

2.1. 准备工作

  • 将所有待标注的视频或图像放到一个文件夹中。

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

2.2. 新建项目

  • 在打开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 设置
  • Connection介绍
    • 所谓Connection,其实就是数据路径。
    • 分类:VoTT中提供了三种 Azure Blob Storge,Bing Image Search,Local File System。
    • 我一般使用的就是 Local File System,需要设置的参数就是 Display Name(在新建项目的Connection相关配置中会展示这个Display Name,我一般设置为文件夹名),Description,Folder Path(本地文件夹路径)。
    • 设置完成后,在新建项目的 Source/Target Connection 下拉菜单中就能找到对应的选项
    • Connection在左边菜单栏中有单独一个选项

2.3. 标注bbox

  • 基本流程分为下面几个步骤

    • 选择视频帧/图像

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

2.4. 导出标注结果

  • 在标注页面中,可快速将结果导出,如下图所示。

  • 具体导出设置可以参考
  • 具体导出结果类型等细节请参考 3.4. 标注结果导出

3. 功能详解

3.1. 自动标定(Active Learning)

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

3.2. 视频帧相关

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

3.3. Tags 设置

  • VoTT中选中bbox的一些表现形式(如果bbox为实线表示选中,虚线表示未选中),如下图所示

  • 对于选中的bbox设置tag有以下两种方式

    • 鼠标选择左侧的tags列表
    • Tags列表中的钱10类可通过快捷键设置(快捷键就是tags右边中[x]的信息)
  • 在标同一张图片中的多个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.
  • 如何快速设置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消失。

3.4. 标注结果导出

  • 在介绍导出功能前,先明确几个定义:

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

3.5. 标框的第三种方式

  • 标框(bbox)的方法主要有三种,本节主要介绍第三种方式。

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

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

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

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

标注工具 VoTT 详细教程相关推荐

  1. iOS 12.4 越狱工具 unc0ver 详细教程;Android 手机无痛互传;Apple 更改应用评级

    原文链接 关键字:越狱.Android 无痛互传.iOS应用评级 iOS 12.4 越狱工具 unc0ver 详细教程 疯先生 • 2019-08-20 越狱开发团队pwn20wnd和sbinger合 ...

  2. 钓鱼工具gophish详细教程

    目录 钓鱼工具gophish详细教程 简介 安装教程 Linux安装 windows安装 功能介绍 Sending Profiles Users & Groups Email Template ...

  3. 计算机存储盘教程,计算机存储u盘启动盘创建工具的详细教程

    有关计算机存储U盘启动磁盘创建工具的详细教程,一些小白想自己安装计算机电脑店u盘启动盘制作工具使用方法,但他们担心安装不好电脑店u盘启动盘制作工具使用方法,并且被破坏了. 我该怎么办?以下编辑器向您介 ...

  4. 标注工具——VoTT的调试笔记

    1 前言 VoTT是一个很好的数据标注工具,使用React+Redux进行开发,值得我们进行学习- 2 clone项目&安装依赖 安装repo中的说明进行clone,并安装依赖: 说明: np ...

  5. python图像标记工具怎么用_图片标注工具LabelImg使用教程

    1.进入labelImg-master文件夹,在空白处使用 "Shift+鼠标右键" ,选择在此处打开命令窗口,依次输入下面语句即可打开软件. pyrcc4 -o resource ...

  6. 图片标注工具 LabelImg 使用教程

    转自:http://blog.csdn.net/jesse_mx/article/details/53606897 作者:Jesse_Mx ------------------------------ ...

  7. labelImg图像标注工具的详细使用

    一.Ubuntu16.04下安装labelImg图像标注工具 图像标注软件安装:安装方法 二.labellmg标注软件的使用 1.软件图标的使用 (1)打开需要标记的图片文件夹 (2)修改保存路径(X ...

  8. 百度自动图像标注工具BML使用教程

    BML是一款可以用于图像(图像分类.物体检测.图像分割).文本(文本分类.文本相似度等).表格(表格预测)样本的在线自动标注工具.网址为: http://ai.baidu.com/bml/app/da ...

  9. 【AI】dlib中图像标注工具 imglab 详细说明

    一.基本用法 imglab是一个在图像上标注矩形的工具.基本方法 1> 获取图片列表:./imglab -c mydataset.xml /tmp/images,/tmp/images为保存图像 ...

最新文章

  1. 网络推广网站总结降低网站跳出率的技巧有哪些?
  2. Maven(1)--坐标与依赖
  3. J2EE dynamic web工程搭建 struts2
  4. POJ1088 滑雪题解+HDU 1078(记忆化搜索DP)
  5. fastapi 传输文件存文件_揭秘|国内影视文件传输的真相,跨境文件传输更不简单...
  6. PyQt5学习--基本窗口控件--QMainWindow
  7. 【2021牛客暑期多校训练营5】K King of Range(单调队列)
  8. 《Spring》(十一) ---- 基于注解的依赖注入
  9. python爬取知乎用户信息_python爬取知乎用户总结
  10. Camera persist使用手册之log使用技巧
  11. PAT乙级-1055 集体照 (25分)
  12. P2P继续停止...
  13. 广州大学人工智能原理实验二:八数码问题
  14. 《胡雪岩·红顶商人》—— 读后总结
  15. 无法打开https网页终极解决方法
  16. git切换远程分支为develop
  17. SPARC架构下的反汇编(四)——SPARC汇编语言(二)
  18. 通过Python来调用Chrom浏览器,进入设定网页
  19. 立创梁山派GD32F450ZGT6--屏幕扩展板LVGL应用
  20. excel表格xlsx密码强制解除手机,忘记excel表格xlsx密码如何找回?

热门文章

  1. 数据库编程与设计—SQL语言
  2. 阿里云com域名价格表、注册券和续费口令
  3. android cpu 悬浮窗口,Android 使用 WindowManager 实现悬浮窗监控 cpu 温度
  4. LQB02控制LED灯,74HC138芯片,74HC02芯片,74HC573芯片。
  5. Atlassian Crowd 未授权访问漏洞(详细版)
  6. 201871010128-杨丽霞《面向对象程序设计(java)》第四周学习总结
  7. TCP/IP协议栈初始化(一) 长江之源
  8. (转载)中航信面试经历
  9. 完整版Linux驱动命令安装
  10. Google C++编程规范