YOLOV4 windows10系统训练自己的图片数据集(robomaster官方数据集)

首先,当然是要配置好环境啦,这里相信屏幕前的你已经配置好了,如果没有配置好也不用着急。可以看一下本博主另一篇保姆教程,请移步:https://blog.csdn.net/weixin_39954922/article/details/105785460,,,,啊哈哈哈哈

一、配置好之后,最重要的就是数据集,因为博主报名参加了RM比赛,所以就用大疆给的官方数据集试验了一下,首先准备两个数据集,一个是图片数据集Image,一个是每个图像内标记好目标后生成的xml文件Annotation。这里我只用了两百张图片:如下图:

二、把图片放在darknet.exe同级目录下的data文件夹,在data内新建文件夹专门用来存放图片,这里我建立的是robomaster文件夹。

三、需要准备两种txt文件,一种是train.txt,这个txt文件要放在data文件夹下,且内容为存储了每张图片相对于darknet.exe的路径,笔者的文件如下:

另一种TXT文件是每张图片都对应有一个,是通过xml文件得来的,每个TXT文件里面都是纯数字如图一所示,记录了标记目标的信息。这个TXT的命名与对应图片的命名一样,且训练时要放置在与image相同目录下,如图2所示:

图一

图二

 

四、在data文件夹下建立.names和.data文件。笔者建立的是robomaster.names和robomaster.data文件,在robomaster.names文件里面写上要检测的目标的名称,每个名称占用一行,如图三所示,这里检测目标有五个

图三

robomaster.data文件的内容包括总共有多少类对象,train.txt的文件路径,备份路径等,如图四所示。classes要改成对应的数字,如果你想检测的目标有6个,就改成6。

图四

 

五、建立训练所需的.cfg文件,在cfg文件夹下创建,笔者直接复制的原有的yolov4.cfg,并改名为yolov4-robomaster.cfg。

六、更改cfg文件内的参数。非常重要!!!

6.1更改batch为batch=64

6.2更改subdivisions为subdivisions=16

6.3更改max_batches为classes数*2000,但是不要少于4000,例如笔者这里有classes=5,那么max_batches=10000

6.4更改steps为max_batches的80%,90%,笔者这里steps=8000,9000,再设置神经网络尺寸width=416
height=416,或者其他32的倍数。

6.5在cfg的3个[yolo]里面,将classes=80改为你的classes数目,笔者这里为classes=5,三个都要改哦

6.6在每个[yolo]前面有个[convolutional],注意有两个,在最靠近[yolo]那个里面改,将里面的filters=255改为filters=(classes+5)*3

笔者这里filters=(5+5)*3=30,注意每个都要改哦。

如果您使用[Gaussian_yolo] 则filters=(classes + 9)x3  在每个 [Gaussian_yolo] 之前的[convolutional]

6.7注意,不要在cfg文件里面写filters=(classes + 5)x3),要直接算出数字

七、下载预训练模型,这里我用的是yolov4.conv.137,下载地址为:https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.conv.137

下载完成后,保存在与darknet.exe相同目录下

八、开始训练在darknet.exe目录下用powershell运行:

.\darknet.exe detector train data/robomaster.data cfg/yolov4-robomaster.cfg yolov4.conv.137

然后就开始训练啦。

9.训练的时候会在终端出现一张损失函数的图标和当前迭代的函数图,按照官方的说法是:当红框内第一个参数小于0.06就可以停止训练了。第二个参数是当前迭代的次数,注意,YOLOV4每迭代100次会自动保存训练的模型,文件名为yolo-robomaster_last.weights,在backup文件夹内。若训练结束,则在该文件夹下生成yolo-robomaster_final.weights。每训练1000次会生成:yolo-robomaster_1000.weights,两千次会生成yolo-robomaster_2000.weights等等,,具体的可以看一下YOLOV4github官方说明:https://github.com/AlexeyAB/darknet#how-to-train-to-detect-your-custom-objects

10.笔者电脑台垃圾,训练到三百次就放弃了,不得不说显卡是个好东西,损失函数快到20,说明误差还是很大的,没办法,就这样凑合跑吧:.\darknet.exe detector demo data/robomaster.data cfg/yolov4-robomaster.cfg yolov4-robomaster.weights -ext_output test.mp4

(我总觉得这个代码不对,但是为啥能运行,还是很迷啊哈哈哈哈,应该不是这个代码,各位看官有了解的可以在评论区解释一下子。感激不尽)

记得要把测试视频放到和darknet.exe同一目录下哦。检测效果如下:模型训练的误差很大,效果确实不咋滴。

训练时bug说明:

1.CUDAERROR,out of memory:把subdivisions改大一些,但一定要是32的倍数。

2.如果在训练过程中看到平均(损失)字段的nan值-则训练有误,但如果nan在其他行中-则训练进行得很好

3.如果您在cfg文件中更改了width =或height =,则新宽度和高度必须被32整除。

引用:

1.数据集TXT文件的生成参考:https://blog.csdn.net/public669/article/details/98020800?depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-2&utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-2

2.https://github.com/AlexeyAB/darknet#how-to-train-to-detect-your-custom-objects

 

 

 

 

 

 

 

 

 

 

RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具 RoboMaster智能数据集标注工具
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值