MRLabeler:一款先进的VOC格式标注工具

来源:互联网 发布:java中indexof的用法 编辑:程序博客网 时间:2024/06/01 07:14

github地址:https://github.com/imistyrain/MRLabeler

一、 关于MRLabeler

MRLabeler是一款用来标注VOC、YOLO格式图片数据的标注工具,代码全部由C++组成,仅依赖OpenCV,且2.*和3.*系列均支持。


由于CSDN上传图片很不方便,下文中图片部分及全文可在github上获得。

二、 新特点

1.3 添加由Video自动生成标注工程

1.2 添加帮助文档支持
1.1 添加列表框支持鼠标选择文件进行标注,添加键盘切换图片功能
1.0 初版发布,支持矩形框拖动功能
三、 初学者快速起步
1.收集要进行标注的文件,统一转换为.jpg文件,并放入到MRLabeler项目里的images文件夹下,如图1所示:
图1 收集文件组织方式
2.双击MRLabeler.exe启动应用程序
图2 启动方式
程序会自动加载images文件夹下的图片,并生成一个mrconfig.xml文件用于对标注进
行配置(以下简称配置文件),内容如下所示:
图3 默认生成配置文件mrconfig.xml内容
其中各个字段含义如图4所示:
图4 配置文件各字段含义
该程序默认标注Face数据,如果想标注VOC类似的数据,请在classes项下添加class类别,每类一项,如图5所示:
图5 添加所需标注类别
3.找到标注物体左上角作为起始位置,然后按下鼠标左键不放,拖动至物体右下角位置后松开鼠标,如图6所示:
图6 拖动鼠标标注目标物体
4.调整位置和大小:如果对之前的标注位置不满意,可以将鼠标移至绿色的标注框上,按住并拖动即可;将鼠标移至标注框的四个角上,即可调整目标标注的大小。
5.切换图片:程序支持多种切换方式,既可以通过鼠标选择右侧文件列表实现切换,也可以通过编辑索引号回车切换,还可以通过键盘上下键切换,切换图片会自动保存所做的更改。
6.删除标注框:如果不小心标注错了框,想取消,可以通过鼠标选中要删除的框,然后按键盘上的Delete键删除。
注意:请务必保证每个图片至少含有一个标注框,当您删除所有的标注后虽然也保存了标注文件,但并不会含有任何有效的标注信息,可能会对之后的使用造成不必要的困扰和麻烦。
四、 MRLabeler界面
程序由如下图所示的4个功能区组成:
1. 标题栏,显示程序的名称及当前版本号
2. 图像显示区,用于显示从磁盘加载文件显示以及标注后的结果
3. 文件索引区,用于显示当前操作文件名称以及快速定位文件
4. 功能区,用于实现标注所需的各种功能
其中功能区中各个按钮的含义如下:
:打开文件夹,如果想重新选择标注图片所在文件夹,单击并选择即可
:增加标注框,如果图片中含有多余一个目标物体,单击此按钮添加框
:选择标注目标类别
:切换为上一张图片
:切换为下一张图片,这个按钮也是按住回车时的默认按钮
:鼠标移动过程中的位置坐标,用于显示详细的信息
五、 从源码编译
本项目已经提供了一个预编译好的Win32程序(位于bin目录下),可以运行在32位和64位的系统上,如果有定制需求,可以按如下方法编译源码:
1. 按照MRHead的方法搭建好跨平台OpenCV编译环境
2. 用VS2013打开MRLabeler.sln编译即可
六、 常见问题和提示
1. 已经有LabelImg这么好的标注工具,为什么还要选择MRLabeler?
适用对象不同,LaeblImg依赖python环境,且还需转换才能用于VOC数据集格式,本项目直接提供了VOC和YOLO两种标注格式,并且提供了转换工具,可以减少必要的时间浪费和人力成本。
2. 为什么不设计支持跨平台的UI?
大规模标注所聘请的标注员仅具备Windows简单操作技能,跨平台操作不仅没有必要而且会浪费大量的时间和精力在培训上;当然,如果有定制需求,也可考虑提供开发。