Darknet YOLOv3v4训练自己的数据集问题汇总

0.说明

本文用作自己学习过程的记录,以及分享给有需要的伙伴。

文章有错误漏洞欢迎批评指正。

1.源码及论文下载:

YOLO v3论文:Click here

YOLO v4论文:click here

Darknet YOLOv4下载:

(1)官方原版:click here

(2)AlexeyAB版:click here

AlexeyAB版比原版维护力度更大,更建议第二个

2.训练过程参考博客

基于Darknet深度学习框架训练YoloV4模型,并用自己的模型批量处理图片并保存在文件夹内

3.遇到的问题汇总

(1)训练完毕什么都识别不到。

·有的博客说,是因为没有使用AB版发行的DarkNet。

但是我在做的时候,什么都识别不到,并不是这个原因。

·还有是在测试时需要更改cfg文件,注释掉Training部分,取注Testing部分。

·测试时可能需要等一会,等完全加载完网络之后,再输入图片路径。

·也可能是数据集本身有问题,比如数据分布不均衡(大于3:1),太多数据没有标签等。

·使用GPU版本的DarkNet:参考(59条消息) Yolov3 darknet训练后检测不出物体(不能框选)已解决!_ROBOT_WYZ的博客-CSDN博客_yolo检测不出框

(2)训练几百代后的模型拿来测试,发现什么都识别不到。

可能是阈值太高了,可以在测试脚本后面加上- thresh 0.1试试看。

(3)模型与预训练权重之间需要对应。

v3v4有非tiny版本也有tiny版本,DarknetYolov3v4模型文件及其预训练权重文件(tiny与非tiny)下载:

https://download.csdn.net/download/m0_46749624/74399625

(4)小trick

·更改makefile文件之后,先make clean,再make(或make -j8,多线程编译,常四核八线程)

·Makefile文件中的Opennmp置为1,可开启cpu多线程加速。

·当整体损失loss降至小数点后两位时,效果可能会比较好

·在cfg配置文件中,置位random,可动态调整网络输入尺寸,提高精度。

(5)batch大小的设置

常设置值为8,16,32,64。

·值越大网络更新一次参数就能学到更多的信息,但要考虑显存的大小。

·值越小则每一代运行速度越快,但训练完毕需要的代数也就越多。

(6)输入尺寸的设置

·网络输入尺寸的长宽常为224*224,416*416,866*800,1024*1024等。

·但长宽须为32的倍数。

·数据集中的图片的大小会被resize成网络设定的输入尺寸。

·越小的尺寸训练速度快,但精度差;越大的尺寸训练速度慢,但精度高。常用416*416.

·也可以训练时使用416*416,再在部署时改成其他尺寸的。

猜你喜欢

转载自blog.csdn.net/m0_46749624/article/details/120843759