• DarkLabel: 可构建目标检测、目标跟踪、ReID数据集的标注软件


    DarkLabel是一个轻量的视频标注软件,相比于ViTBAT等软件而言,不需要安装就可以使用, 本文将介绍darklabel软件的使用指南。

    由于笔者最近在做Multi-Object Tracking的项目,所以需要一款标注软件,最终从公开的软件中选择了DarkLabel。DarkLabel体积非常小,开箱即用,不需要配置环境(Vatic需要在linux下配置相关环境),对window用户很友好。不过该软件使用说明实际上不多,本文总结了大部分的用法,实际运用还需要读者研究。

    DarkLabel导出的格式可以通过脚本转化,变成标准的目标检测数据集格式、ReID数据集格式、MOT数据集格式。

    之后会在这个视频标注的基础上进行一些脚本的编写,可以批量构建ReID数据集、目标检测数据集和MOT数据集。

    1. 官方说明

    它是一个实用程序,可以沿着视频(avi,mpg)或图像列表中对象的矩形边界框以各种格式标记和保存。 该程序可用于创建用于对象识别或图像跟踪目的的数据库。最大的功能是快速响应,便捷的界面以及减少工作量的便捷 功能(自动跟踪,使用插值进行标记,自动ID标记)。 任何人都可以将其用于非商业目的,如果您有任何问题或建议,请在评论中让我知道。最初是为我自己创建的,最近我 花了些时间来改进该程序(ver1.3)。我们已经改进了难以看清的细微之处,但是改善了程序的质量,执行的稳定性 和未知性。

    -- Dark Programmer

    软件示意:

    工具栏在左侧:

    2. 主要功能和特点

    • 支持各种格式的视频(avi,mpg等)和图像列表(jpg,bmp,png等)

    • 多框设置和标签设置支持

    • 支持对象识别和图像跟踪中使用的各种数据格式

    • 使用图像跟踪器自动标记(通过跟踪标记)

    • 支持使用插值功能的间隔标签

    • 自动标记功能,可按类别自动为每个对象分配唯一的ID

    3. 主要用法

    3.1 鼠标/键盘界面(Shift / Ctrl = Shift或Ctrl)

    • 鼠标拖动:创建一个框
    • Shift / Ctrl +拖动:编辑框
    • 双击:选择/取消相同ID对象的轨迹
    • 右键单击:删除所有选定的对象轨迹(删除部分)
    • 右键单击:删除最近创建的框(如果未选择任何轨迹)
    • Shift / Ctrl +右键单击(特定框):仅删除所选框
    • Shift / Ctrl +右键单击(空):删除当前屏幕上的所有框
    • Shift / Ctrl +双击(特定框):修改所选框的标签
    • Shift / Ctrl +双击(轨迹):在所选轨迹上批量更改标签
    • 箭头键/ PgUp / PgDn / Home / End:移动视频帧(图像)
    • Enter键:使用图像跟踪功能自动生成框(通过跟踪进行标记)

    3.2 指定标签和ID

    • 无标签:创建未标签的框
    • 框标签:用户指定的标签(例如,人类)
    • box标签+自动编号:自动编号自定义标签(例如human0,human1等)
    • 如果指定了id,则可以选择/编辑轨迹单位对象
    • popuplabeleditor:注册标签列表窗口的弹出窗口(已在labels.txt文件中注册)
    • 如果在弹出窗口中按快捷键(1〜9),则会自动输入标签。
    • Label + id显示在屏幕上,但在内部,标签和ID分开。
    • 当另存为gt数据时,选择仅标签格式以保存可见标签(标签+ id)
    • 另存为gt数据时,如果选择了标签和ID分类格式,则标签和ID将分开保存。

    3.3 追踪功能

    这是这个软件比较好的功能之一,可以用传统方法(KCF类似的算法)跟踪目标,只需要对不准确的目标进行人工调整即可,大大减少了工作量。

    • 通过使用图像跟踪功能设置下一帧的框(分配相同的ID /标签)
    • 多达100个同时跟踪
    • tracker1(稳健)算法:长时间跟踪目标
    • tracker2(准确)算法:准确跟踪目标(例如汽车)
    • 输入键/下一步和预测按钮
    • 注意!使用跟踪时,下一帧上的原始框消失

    tracker1和tracker2在不同场景下各有利弊,可以都试试。

    3.4 插值功能

    • 跟踪功能方便,但问题不准确
    • 在视频部分按对象标记时使用
      • 开始插补按钮:开始插补功能
      • 在目标对象的轨迹的一半处绘制一个方框(航路点的种类)
      • 航路点框为紫色,插值框为黑色。
      • 更正插值错误的部分(Shift / Ctrl +拖动),添加任意数量的航路点(不考虑顺序)/删除
      • 结束插补按钮:将工作结束和工作轨迹注册为数据

    3.5 导入视频/视频并在帧之间移动

    • 打开视频文件:打开视频文件(avi,mpg,mp4,wmv,mov,...)
    • 打开图像目录:打开文件夹中的所有图像(jpg,bmp,png等)
    • 在视频帧之间移动:键盘→,←,PgUp,PgDn,Home,End,滑块控制

    3.6 保存并调出作业数据

    • 加载GT:以所选格式加载地面真相文件。
    • 保存GT:以所选数据格式保存到目前为止已获得的结果。
    • 导入数据时,需要选择与实际数据文件匹配的格式,但是在保存数据时,可以将其保存为所需的任何格式。
    • 在图像列表中工作时,使用帧号(frame#)格式,按文件名排序时的图像顺序将变为帧号(对于诸如00000.jpg,00002.jpg等的列表很有用)
    • 保存设置:保存当前选择的数据格式和选项(运行程序时自动还原)

    3.7 数据格式(语法)

    • |:换行
    • []:重复短语
    • frame#:帧号(视频的帧号,图像列表中的图像顺序)
    • iname:图像文件名(仅在使用图像列表时有效)
    • 标签:标签
    • id:对象的唯一ID
    • n:在图像上设置的边界矩形的数量
    • x,y:边界矩形的左侧和顶部位置
    • w,h:边界矩形的宽度和高度
    • cx,cy:边界矩形的中心坐标
    • x1,y1,x2,y2:边界矩形的左上,右下位置

    4. 举栗子

    视频演示:https://www.youtube.com/watch?v=vbydG78Al8s&t=11s

    1. 选择open video file,选择一个视频打开,最好不要太长

    2. 左右拖动一下滑块,看一下准备标注的对象

    3. 如果标注视频选择左侧工具栏中第三行,下拉找到frame开头的内容比如:frame#, n, [id, x1,y1,x2,y2,label],意思是左上角坐标和右下角坐标。

    4. 然后右侧框中进行画框,然后可以采用以下几种方法继续标注

      • 画框以后,长按Enter键(Enter键是Next&Predict的快捷键),就会采用Tracker2中的模式进行预测
      • 调整框:键盘长按ctrl键的同时,用鼠标拖动已经标注的目标框。
    5. 将这段视频标注完成后,点击Save GT,保存为txt文件

    5. ffmpeg切割视频

    ffmpeg  -i C:/plutopr.mp4 -acodec copy 
    		-vf scale=1280:720
    		-ss 00:00:10 -t 15 C:/cutout1.mp4 -y
    
    1. -ss time_off set the start time offset 设置从视频的哪个时间点开始截取,上文从视频的第10s开始截取
    2. -to 截到视频的哪个时间点结束。上文到视频的第15s结束。截出的视频共5s.如果用-t 表示截取多长的时间如 上文-to 换位-t则是截取从视频的第10s开始,截取15s时长的视频。即截出来的视频共15s.
    3. -vcodec copy表示使用跟原视频一样的视频编解码器。
    4. -acodec copy表示使用跟原视频一样的音频编解码器。
    5. -i 表示源视频文件
    6. -y 表示如果输出文件已存在则覆盖。
    7. z6. 总结

    这个软件是笔者自己进行项目的时候用到的一款标注软件,大部分视频标注软件要不就是太大(ViTBAT软件),要不就是需要Linux环境,所以在Window上标注的话很不方便,经过了很长时间探索,最终找到这款软件。

    此外,这款软件源码没有公开,开发者声明可以用于非商业目的

    DarkLabel软件的获取可以在GiantPandaCV公众号后台回复“darklabel”,即可得到该软件的下载链接。

  • 相关阅读:
    TensorFlow中使用GPU
    C++内存管理与注意事项
    深入理解Transformer及其源码
    Dropout原理与实现
    指针生成网络(Pointer-Generator-Network)原理与实战
    深度学习中的优化算法总结
    Hadoop伪分布式搭建
    集成学习总结
    模型评估
    基于Spring AOP实现的权限控制
  • 原文地址:https://www.cnblogs.com/pprp/p/12801507.html
Copyright © 2020-2023  润新知