Yolo v4 & Yolo v3 训练自己模型方法
前言
Yolo用了一段时间了,配置这方面也看了很多博客。但是在训练这一块,发现很多博客都缺少很多细节,但是这一些细节,在AlexeyAB的README.md里面讲得也挺清楚的
于是我翻译了他README.md里面训练的内容,虽然慢慢看英文也没什么问题,但是要是能够之间看中文也会方便很多
如何训练YOLO v4 & YOLO v3 (训练你自己的模型)
-
下载一个预训练权重 yolov4.conv.137 (Google镜像 yolov4.conv.137)
-
新建一个
yolo-obj.cfg
,将cfg/yolov4-custom.cfg
(如果是tiny就是yolov4-tiny-custom.cfg
) 里面的东西复制粘贴到新建的yolo-obj.cfg
中,并修改部分内容
-
将8,9行的size设置为
width=416 height=416
或者任何32的倍数 (注意,提高这个值,可以有效提高精度) -
将 batch 的值修改为
batch=64
-
将 subdivisions 的值修改为
subdivisions=16
-
将第20行的 max_batches 的值修改成
classes * 2000
的数目,classes为你训练的模型的种类数目(但是 max_batches 的值不能少于你数据集中图片的数目,也不能小于6000) f.e. 如果你训练的数据集中有3个class,那么你需要设定max_batches=6000
-
将第22行的 steps 的值修改成max_batches的 80% 和 90% ,f.e.
steps=4800,5400
-
将每一个
[yolo]
层的classes=80
修改成你将要训练的模型的class数目:classes=种类数目
- https://github.com/AlexeyAB/darknet/blob/0039fd26786ab5f71d5af725fc18b3f521e7acfd/cfg/yolov3.cfg#L610
- https://github.com/AlexeyAB/darknet/blob/0039fd26786ab5f71d5af725fc18b3f521e7acfd/cfg/yolov3.cfg#L696
- https://github.com/AlexeyAB/darknet/blob/0039fd26786ab5f71d5af725fc18b3f521e7acfd/cfg/yolov3.cfg#L783
-
将每一个
[yolo]
层上方的[convolutional]
的filters=255
的255修改为 filters=(classes + 5)x3 的数目(总共有三处需要修改)