用Qt自制视频数据标注工具

编写该工具的意义

视频数据主要用于多目标追踪中,与目标检测不同,用于训练追踪模型的数据最重要的是目标的ID号(若某一帧中某目标被标为1号,在所有的视频帧中都应为1号),目前现成的数据集有行人追踪的MOT Challenge,车辆追踪的UA-DETRAC,如果要追踪其他类型目标需要自己采集并标注,但是在网上找不到关于特别好用的标注工具。

一开始使用LabelImg工具进行标注,每一张只标一个目标,直到把所有的图片都标完,用一个python脚本将这些标注处理成MOT官方的gt.txt形式,再返回到第一张图片标注下一个目标......,一直把所有的目标都标完。这样的标注方法耗费了大量的时间,而且手工画框还不准确,如果能先用检测器检测到所有的目标,然后手动标它们的ID号,标注速度就会大大提升。于是自己用Qt写了一个标注工具,现在将这个工具发布出来,欢迎各位同行点评指正。

使用这个工具前提是有检测器可以精确地检测到每一个目标,如果检测结果不准确,那么标注就没有意义,如果出现漏检,也可以在标注过程中手动画边界框,但这只是一个辅助作用,主要还是用检测器的结果。

使用步骤

项目名称叫VideoLabel,使用C++版Qt编写,因为是自己使用,没有过多华丽的图标,整个程序的结构如下:

选择图片所在的目录

进行标注之前先要用检测器检测到每一帧中的所有目标,并将检测结果按照MOT的格式保存到txt文件中,检测结果保存的格式为:

帧号,ID号,边界框左上顶点横坐标,边界框左上顶点纵坐标,边界框宽度,边界框高度,置信度

帧号即图片的编号;ID号表示该目标的轨迹号,检测结果中统一都为设置为-1,我们程序要标注的就是这个参数。

此程序生成的标注完全参照MOT的格式,所以图片的目录格式也要遵从MOT,具体操如下:新建一个目录,名称可以任意,里面再新建两个子目录命名为det和img1,两个子目录的名称不能错,否则程序读取不到图片和检测结果,将保存检测结果的文件命名为det.txt,放到det目录,需要标注的图片放到img1目录。

这样图片的检测结果就准备好了,打开标注程序,选择刚才新建的目录,程序就会自动读取图片的检测结果并把检测结果处理后画到图片上,以MOT官方数据集为例,如下图:选择目录

标注目标ID

现在开始标注目标的ID即轨迹号,鼠标所在的位置边界框内会变成绿色,左上角的下拉框内可以选择要标注的ID号,默认为0(建议每一张只标一个,按D键切换下一张,A切换上一张,直到把所有的图片都标完,这样可以节省时间)一张图片的目标的目标ID号不能重复,否则程序提示错误,如果不小心标错了,也可以点右键删除或修改, 一张图片标完后结果应该是这样:

如果出现检测器漏检的情况,可以手动画框,点击Draw,可以手动画框,画完后点Click退出,手动画的框可以删除,根据检测结果画的框不能删除,这是程序的一个不足这处,后面会陆续改

保存标注结果

将所有的图片标注完后点Save会将结果保存到当前目录的gt子目录下,并命名为gt.txt,保存格式同样为MOT官方格式. 

程序源码:https://github.com/baguenaudier/VideoLabel

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Baguenaudier

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值