2021.6.14 更新 Version 2.0: 加入了更多对数据和标注结果的操作,能够更好的修正数据集,甚至可以进行小规模的标注
环境需求:
- python3,建议3.6以上
- opencv3.5以上,建议4.5
- tkinter
- numpy
- logging
- pyyaml
主要功能有:
- 查看已经标注好的序列的多边形框和矩形框
- 可修改多边形框,自动创建空间连续补间
- 可修改对某帧的poly重新绘制
- 可对帧属性进行修改
- 可对序列属性进行修改
- 对多边形的修改支持旋转、平移、单点变换操作
- 增加了可视化效果的显示,更容易理解使用
- 序列属性支持一键自动化生成
- 所有参数被放置在.yaml文件中,易于修改
工具文件通过数据集管理器对内容进行验证和读取,因此,需要先配置好数据集相关的路径,以及文件结构。
- DataRoot: 数据集的根目录,数据集根目录下存放着VideoList
- VideoList: 要读取的视频列表,一个视频中由若干序列组成
####sequences文件夹介绍:
主要用来存放视频图像序列,一个图像序列是一个文件夹,文件夹名称为序列id
- .abs: 被跟踪目标以及序列的摘要信息,json文件存储,可直接用bases.abs_file中的Abstract类读取内容
- .attr: 序列的属性信息(10个属性,逗号分隔开)
- .poly: 多边形信息(由一系列的点集组成,两两一组)
- .rect: 多边形的紧致外接矩形框 (x,y,w,h)
- .state: 帧属性信息
- 配置数据集路径,修改configs下的dataset.yaml文件:
- DataRoot:修改为你的数据集所在根路径
- VideoList:修改为打算加载的视频
- 配置VideoPlayer路径,修改configs下的videoplayer.yaml文件
- ScaleStart: 10.0 # 指定初始显示比例,10代表把原图放大10倍显示
- SearchRange: 2.5 # 显示的搜索范围,数据集的规则确定的,不改
- WinHeight: 960 # 窗体的高度
- WinWidth: 1024 # 窗体的宽度
- Attrs: 'ch' # 选择显示的属性的语言,ch中文,en英文
- SameNext: true # 是否把设置继承到下一个播放,如果是true,则会保留前一个视频的设置(是否居中显示,是否处于播放状态,尺度信息等)
- CtrlKey: 9 # 设置Ctrl按键的响应数字
- EscKey: 27 # 设置ESC按键的响应数字
- EnterKey: 13 # 设置回车按键的响应数字
- Backspace: 8 # 设置退格按键的响应数字
注意:下面的4个按键设置可以通过执行run_videoplayer.py中的test_keys()函数来获取
播放名称格式统一为:<视频id>.<序列id>
run_video('*.*') # 代表所有数据
run_video('01.*') # 代表所有01视频下的序列
run_video('*.000000') # 代表所有视频下的000000序列
play_list = ['01.000000', '02.000001']
run_video(play_list) # 也可以自行创建列表来指定播放哪些序列
命令行中执行python3 run_videoplayer.py
即可
注意:整个交互采用键盘快捷键+鼠标左键配合完成,修改模式和标注模式不要滚动鼠标滚轮
-
快捷键 - 浏览模式和修改模式下共有的快捷键:
- 下一序列(b)/上一序列(n)
- 逆向播放(o)/正向播放(p)
- 向前一帧(a)/向后一帧(s)
- 缩小图像(z)/放大图像(x):由于图像是会被缩放到显示的窗口尺寸,因此按x放大图像时实际上是提高了图像的分辨率,字会变小,框会变细,放大以后图像更清晰;按z同理。
- 退出程序(q):退出后,需要在命令行中再次确认输入Y或N来决定是否保存修改
- 目标居中特写模式(空格):使得目标自动放置于画面正中间,方便浏览细节(再按一次空格取消居中)
- 标注当前帧的属性为INV(1),OCC(2),NOR(0):具体标注方式见4
- 显示或隐藏目标框(h):目标框有时候会遮挡部分边界,影响对属性的标注,因此可以通过此按键使得视野更清晰,每按一次就会使得目标框显示或不显示
- 进入修改模式(e):进入该模式后,再次按e就会保存该段标注内容并返回浏览模式
- 进入重绘模式(v):进入该模式后,由于该模式较为特殊,以上快捷键均失效,直到退出重绘模式
-
快捷键 - 修改模式下特有的快捷键
- 保存并退出修改模式(e)
- 不保存直接退出修改模式(ESC)
- 整体旋转框,逆时针([),顺时针(])
- 恢复原始形状(r):将会将多边形重置回进入修改模式之前的样子
- 显示该帧原本的标注框(`):按键位于数字键1左边,可以控制是否显示某帧下原本的标注框,方便进行参考
- 鼠标操作:点选拖动可以调整边框形状,按住Ctrl拖动,可以整体移动多边形位置
-
快捷键 - 重绘模式下特有的快捷键
- 保存并退出重绘模式(Enter回车)
- 不保存直接退出(ESC)
- 删掉最后一个顶点(退格键Backspace)
注意:重绘模式下,仅有三个快捷键可以使用,并且仅能重新绘制当前帧的目标多边形,保存并退出后才能进行修改等其他操作。
-
帧属性标注方法:
- 在某一帧t1,按数字键1,2,0中的一个,进入对应类别的标注模式,进入标注模式后,在图像上的帧属性旁边会显示一个星号,表示当前处在标注模式下
- 前进或后退到你需要停止标注的帧t2,再次按下数字键中1,2,0中的一个
- 如果第一步和第二步按下的是相同的数字,那么会结束标注模式,并保存从t1~t2区间的标签结果,然后退出标注模式;如果第一步和第二步按下的是不同的数字,首先会保存t1~t2区间的标签结果,然后会以t2为起始位置开始新的标注