yolov2训练自己的数据(win10超详细版)

从今年四月份开始报名参加了软件杯,参赛题目是基于人工智能和机器视觉的安全帽提取和分析。因为这个题目有幸接触到了yolov2–实时目标检测框架。
关于yolov2的介绍各位只要去上网搜一下就可以查到很多相关资料介绍。今天详细介绍一下如何用yolov2训练自己的数据。
官方提供的windows下的训练教程

以下是训练详细步骤

  1. 下载yolov2代码
    yolov2 代码网址

  2. 配置yolov2环境:vs2015+opencv3.4+cuda8.0+cudnn7
    (1)步骤1完成之后在darknet目录下找到darknet.sln,用VS2015打开之后darknet.sln后导入opencv(导入opencv教程)
    (2)接下来导入cuda8.0.由于官方建议的是cuda9.1版本,如果不是使用该版本应该先打开darknet.vcxproj修改第55行和第288行将CUDA 9.1.targets改为CUDA 8.0.targets,保存。(vs2015配置cuda教程)
    (3)上面的步骤如果都配置成功之后,在release X64的环境下点击生成选项下面的重新生成解决方案,然后经过一段时间(一两分钟)的编译后生成对应的darknet.exe(在build\darknet\x64)

  3. 准备自己的数据集
    (1) 将自己的数据集图片标注:标注软件LabelImage 下载地址
    标注完成之后会生成对应的xml文件,使用LabelImage标注后的xml格式
    yolov2训练自己的数据(win10超详细版)_第1张图片

这时候还需要用另外的工具(如何转换?)将xml转换为txt格式才行。
最后转换后的txt格式:
yolov2训练自己的数据(win10超详细版)_第2张图片
(2) 将对应的xml文件转换为txt文件之后,将图片与txt文件放在这里写图片描述 这个目录下。
(3)修改对应的配置文件:
复制yolo.2.0.cfg文件并命名为yolo_obj.cfg(注意最好不要直接修改yolo.2.0.cfg文件,以便日后可以作为参考),并修改两处地方:
yolov2训练自己的数据(win10超详细版)_第3张图片
修改230行的classes,其中classes为你标注的目标的种类数(我这里标注了三类)
yolov2训练自己的数据(win10超详细版)_第4张图片
修改224行的filters, filters的计算公式=(classes+5)* 8 所以这里为40。
修改完毕后保存即可。
接下来创建obj.names和obj.data,内容分别为:
obj.data
yolov2训练自己的数据(win10超详细版)_第5张图片
其中上图中的train.txt为训练集的存放路径文件,test.txt则为预测用的数据集存放路径,格式为:

data/obj/851.jpg
data/obj/852.jpg
data/obj/853.jpg
data/obj/854.jpg
data/obj/855.jpg

obj.names
这里写图片描述
4. 开始训练
(1)如果第2步的环境配置成功,则相应的会生成darknet.exe。通过win+R打开cmd,进入对应的目录后,执行命令
darknet.exe detector train data/obj.data yolo-obj.cfg darknet19_448.conv.23

没有出错的话则会开始进入训练,

yolov2训练自己的数据(win10超详细版)_第6张图片
如果你能看到跟我截图类似的情况,那恭喜你,你已经可以开始跟yolov2一起开心的玩耍了。如有不懂的地方或者我写错的地方欢迎提出来一起讨论。

你可能感兴趣的:(深度学习)