在Pascal VOC 数据集上训练YOLOv3模型

     上节介绍了《从零开始在Windows10中编译安装YOLOv3》,本节介绍在Pascal VOC 数据集上训练YOLOv3。

第一步,下载并安装YOLOv3训练依赖项。

a.下载Pascal VOC 数据集

http://pjreddie.com/media/files/VOCtrainval_11-May-2012.tar

http://pjreddie.com/media/files/VOCtrainval_06-Nov-2007.tar

http://pjreddie.com/media/files/VOCtest_06-Nov-2007.tar

到darknet\build\darknet\x64\data\voc文件夹,然后分别右键点击三个压缩文件,在右键菜单中选择“解压到当前文件夹(X)”,这样可以获得一个VOCdevkit文件夹,里面包含VOC数据集。

在Pascal VOC 数据集上训练YOLOv3模型_第1张图片
下载并解压VOC数据集

b.下载安装Anaconda,下载链接:https://www.anaconda.com/distribution/,注意安装的时候,勾选: “Add

Anaconda to my PATH environment variable”选项

在Pascal VOC 数据集上训练YOLOv3模型_第2张图片
安装Anaconda

c.运行voc_label.py。voc_label.py应该在darknet\build\darknet\x64\data\voc文件夹下,若没有,请到http://pjreddie.com/media/files/voc_label.py处下载,并放到voc文件夹下。

在darknet\build\darknet\x64\data\voc文件夹的地址栏中键入“cmd”,启动Windows命令行终端,运行命令:

python voc_label.py

这样可以获得2007_test.txt,2007_train.txt,2007_val.txt,2012_train.txt,2012_val.txt五个文件,运行命令:

type 2007_train.txt 2007_val.txt 2012_*.txt > train.txt

获得train.txt文件

第二步,修改yolov3-voc.cfg文件。在darknet\build\darknet\x64\cfg文件夹下,用文本编辑器打开yolov3-voc.cfg文件,修改第3~4行如下图所示。

batch=64,意思是每batch个样本更新一次参数。

subdivisions=16,意思是如果内存不够大,将batch分割为subdivisions个子batch,每个子batch的大小为batch/subdivisions。如果出现“Out of memory”  错误,则把 subdivisions依次增大:16, 32 or 64,直到不发生错误为止。

在Pascal VOC 数据集上训练YOLOv3模型_第3张图片
修改yolov3-voc.cfg

第三步,修改voc.data文件。在darknet\build\darknet\x64\data文件夹中,用文本编辑器打开voc.data文件,修改第2~6行如下图所示

在Pascal VOC 数据集上训练YOLOv3模型_第4张图片
修改voc.data文件

最后一步,在darknet\build\darknet\x64文件夹的地址栏中键入“cmd”,启动Windows命令行终端,运行命令:

d:\darknet\darknet.exe detector train cfg\voc.data cfg\yolov3-voc.cfg darknet53.conv.74

启动训练,如下图所示

在Pascal VOC 数据集上训练YOLOv3模型_第5张图片
训练YOLOv3

训练完毕后,在darknet\build\darknet\x64\backup文件夹可以看到每隔1000次迭代得到的权重文件:

在Pascal VOC 数据集上训练YOLOv3模型_第6张图片
权重文件
在Pascal VOC 数据集上训练YOLOv3模型_第7张图片
训练结果

在D:\darknet\build\darknet\x64> 下用命令:

d:\darknet\darknet.exe detector test cfg\voc.data cfg\yolov3-voc.cfg backup\yolov3-voc_final.weights data\voc\VOCdevkit\VOC2007\JPEGImages\000004.jpg

测试训练的权重文件

参考文献:

[1] https://github.com/AlexeyAB/darknet

[2] https://pjreddie.com/darknet/yolo/

[3]《在Windows下Darknet.exe的命令参数》

下节介绍

《在COCO 数据集上训练YOLOv3模型》

《在自己的数据集上训练YOLOv3模型》

你可能感兴趣的:(在Pascal VOC 数据集上训练YOLOv3模型)