YoloV4训练自己的数据集(六)之Yolo -Tiny

前文已经把YoloV4的训练以及测试介绍结束了。本文主要介绍YoloV4-Tiny网络的训练与使用。请大家一定要看完前面几个博客。

1.修改配置文件

YoloV4-tiny是简化版本的YoloV4,主要是为了满足计算能力紧张的开发者使用和学习。YoloV4-tiny在准确度上会有相当的下降,但是在运算时间上,也会有相当大的提升。下面我回简要介绍使用YoloV4-Tiny进行训练以及测试。关于数据集的建立以及网络的编译等过程均已在之前的博客中做过介绍,此处不再赘述。本文直接讲如何修改配置文件。

1.1修改voc.names

在darknet目录结构下找到data文件夹,进入文件夹找到voc.names文件,复制并且重命名为tiny.names,根据自己的检测目标,修改类别名字,我要检测火源,因此我的文件内容如下:
在这里插入图片描述

1.2修改voc.data

找到cfg文件中的voc.data文件,复制并且重命名为tiny.data文件。打开文件修改为如下格式:

classes= 1                 //自己要检测的类别数量,根据自己的情况而定
train = /home/h1/darknet_tiny/2007_train.txt//划分出来的训练集图片名集合,位置根据自己的实际情况进行修改
test = /home/h1/darknet_tiny/2007_test.txt//划分出来的测试集图片名集合,位置根据自己的实际情况进行修改
names = data/tiny.names             //分类物体的名字
backup = backup                    //存放训练权重的文件夹

1.3修改yolov4-tiny-custom.cfg文件

进入cfg文件夹并找到yolov4-tiny-custom.cfg文件,修改其中的第6行以及第7行的参数为:

batch=64
subdivisions=8

之后修改第20行的迭代次数以及第22行修改学习率的迭代次数:

max_batches = 50000
steps=40000,45000

之后修改第220、269行的classes:

classes = 1

根据classes = 1修改第212、263行的filters的数量,其中filters=(classes + 5) * 3,因此我的filters修改为18:

filters = 18

2.训练

直接调用命令:

./darknet detector train cfg/tiny.data cfg/yolov4-tiny.cfg yolov4-tiny.conv.29

其中yolov4-tiny.conv.29是预训练权重文件,其均包含在前文的权重文件中。

3.测试

复制yolov4-tiny-custom.cfg文件并且重命名为yolov4-tiny-test.cfg,修改其中的参数:

batch=1
subdivisions=1

之后调用命令,测试图片:

./darknet detector test cfg/tiny.data cfg/yolov4-tiny_.cfg backup/yolov4-tiny_my_final.weights testfiles/2

测试结果如下:
在这里插入图片描述
同一张图片,yolov4的测试结果如下:
在这里插入图片描述
可以看到,yolov4确实精度比较高,但是测试时间比较长。具体如何让选择网络,看自己的实际情况吧。

猜你喜欢

转载自blog.csdn.net/weixin_45718019/article/details/111476542