Yolo_mark:基于 OpenCV 的 YOLO 目标检测标注工具项目

GUI for marking bounded boxes of objects in images for training neural network Yolo v3 and v2

分支1Tags0
文件最后提交记录最后更新时间
7 年前
8 年前
7 年前
9 年前
8 年前
7 年前
9 年前
7 年前
9 年前
7 年前

Yolo_mark

支持 Windows 和 Linux 的图形界面,用于标注图像中对象的边界框,以训练 Yolo v3 和 v2 模型。

  • Windows 上编译,请在 MSVS2013/2015 中打开 yolo_mark.sln 文件,编译 x64 及 Release 版本,然后运行 x64/Release/yolo_mark.cmd。修改 yolo_mark.sln 中的路径以指向安装在您计算机上的 OpenCV 2.x/3.x:

    • (右键单击项目)-> 属性 -> C/C++ -> 一般 -> 额外包含目录:C:\opencv_3.0\opencv\build\include;

    • (右键单击项目)-> 属性 -> 链接器 -> 一般 -> 额外库目录:C:\opencv_3.0\opencv\build\x64\vc14\lib;

  • Linux 上编译,请在终端输入以下三个命令:

    cmake .
    make
    ./linux_mark.sh
    

支持 OpenCV 2.x 和 OpenCV 3.x。


  1. 要进行测试,只需运行:
  • Windowsx64/Release/yolo_mark.cmd
    • Linux./linux_mark.sh
  1. 使用该工具对自定义图像进行标注:
  • 删除目录 x64/Release/data/img 中的所有文件。
  • 将您的 .jpg 图像放入此目录 x64/Release/data/img
  • 修改文件 x64/Release/data/obj.data 中的对象类数(检测目标数量):链接
  • 在文件 x64/Release/data/obj.names 中,每行写一个对象名称:链接
  • 运行文件:x64\Release\yolo_mark.cmd
  1. 对于训练自定义对象,需要更改文件 x64/Release/yolo-obj.cfg 中的两行:
  • 设置类别数(对象):链接
  • 设置 filter
    • Yolov2:(classes + 5)*5 链接
    • Yolov3:(classes + 5)*3

3.1 下载预先训练好的卷积层权重(76 MB):http://pjreddie.com/media/files/darknet19_448.conv.23

3.2 将 yolo-obj.cfgdata/train.txtdata/obj.namesdata/obj.datadarknet19_448.conv.23 文件以及 data/img 目录放置到可执行文件 darknet 同一目录下,开始训练:darknet detector train data/obj.data yolo-obj.cfg darknet19_448.conv.23

详细的说明见:https://github.com/AlexeyAB/darknet#如何训练检测自定义对象


如何从视频文件获取帧:

要从视频文件获取帧(例如每第 N 帧保存一次,N = 10),可以使用以下命令:

  • Windows:yolo_mark.exe data/img cap_video test.mp4 10
  • Linux:./yolo_mark x64/Release/data/img cap_video test.mp4 10

在此之前,应创建 data/img 目录。在 Windows 上,还需要将 opencv\build\bin 中的 opencv_ffmpeg340_64.dll 文件放在 yolo_mark.exe 文件附近。

结果,许多帧会收集在 data/img 目录中。然后您可以手动使用如下命令对它们进行标注:

  • Windows:yolo_mark.exe data/img data/train.txt data/obj.names
  • Linux:./yolo_mark x64/Release/data/img x64/Release/data/train.txt x64/Release/data/obj.names

内容包括:

  • /x64/Release/

    • yolo_mark.cmd - 示例用法:yolo_mark.exe data/img data/train.txt data/obj.names
    • train_obj.cmd - 示例如何训练自己的对象(将其放置在 darknet.exe 同目录下):darknet.exe detector train data/obj.data yolo-obj.cfg darknet19_448.conv.23
    • yolo-obj.cfg - 包含两个对象示例的 YoloV3 神经网络配置
  • /x64/Release/data/

    • obj.names - 对象名称列表示例
    • obj.data - 训练 Yolo v3 的配置示例
    • train.txt - 用于训练 Yolo v3 的图像文件名列表示例
  • /x64/Release/data/img/air4.txt - 包含航空器(class=0)在 air4.jpg 图像上的坐标示例

用户指南

鼠标操作

按钮 功能
左键 绘制边框
右键 移动边框

快捷键

快捷键 功能
下一幅图像
上一幅图像
r 删除选中的边框(鼠标悬停)
c 清除当前图像上所有标记
p 复制前一个标记
o 跟踪对象
ESC 关闭应用程序
n 每个图像仅一个对象
0-9 对象 ID
m 显示坐标
w 线宽
k 隐藏对象名称
h 查看帮助

项目介绍

图形用户界面,用于在图像中标记物体的边界框,以训练神经网络Yolo v3和v2。【此简介由AI生成】

定制我的领域
651.8 K680访问 GitHub