pascal voc训练yolov3(官方版本)

这里我使用的是pascal voc2007+2012联合训练的。

(1)下载数据


wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar

wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar

wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar

wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar

(2)

将以上压缩包放在同一文件夹中进行解压,解压后,所有的数据都会解压到VOCdevkit文件夹中。将VOCdevkit文件夹放在darknet目录中就行。

(注意:因为VOCtest_06-Nov-2007和VOCtrainval_06-Nov-2007解压后都是VOC2007,所以要先解压VOCtest_06-Nov-2007,然后将文件名由VOC2007改成VOC2007_test,然后再解压VOCtrainval_06-Nov-2007)

解压后,VOCdevkit文件夹中主要有:

VOC2007

VOC2007_test

VOC2012

VOCcode

.........


tar xvf VOCtrainval_06-Nov-2007.tar

tar xvf VOCtest_06-Nov-2007.tar

tar xvf VOCdevkit_08-Jun-2007.tar

tar xvf VOCtrainval_11-May-2012.tar

(3)生成darknet需要的label文件

将darknet/scripts目录下的voc_label.py文件,拷贝至darknet目录。打开voc_label.py文件,修改第7行,将列表的最后一个元组修改为('2007_test', 'test'):

修改第58行,将2007_test改为2007_test_test:

运行voc_label.py文件:

python voc_label.py

运行后,darknet目录下会生7个文件,分别为:

2007_train.txt,2007_val.txt,2007_test_test.txt,2012_train.txt,2012_val.txt,train.txt,train.all.txt

将这7个txt文件放到darknet/VOCdevkit中。

(4)修改配置文件cfg/voc.data

将下图:

修改成:

(5)下载backbone权重文件:

wget https://pjreddie.com/media/files/darknet53.conv.74

将darknet53.conv.74放在darknet目录中即可。

(6)修改配置文件yolov3-voc.cfg:

用yolov3训练pascal voc,就要用到yolov3-voc.cfg,这时候就要修改darknet/cfg/yolov3-voc.cfg

将下图batch和subdivisions前的#去掉

pascal voc训练yolov3(官方版本)_第1张图片

改成:

pascal voc训练yolov3(官方版本)_第2张图片

其中,batch值可以根据自己的显存大小进行调整。但是batch不能太小,如果batch太小或者等于1,最终训练得到的模型可能会无法收敛。

在文件中,使用Ctrl+F搜索yolo,一共出现三个地方。修改yolo下面的classes,以及yolo上面的filters:

(7)开始训练

./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74

训练结束后,训练好的模型会放在darknet/backup中。

(8)测试

./darknet detector test cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc.weights

 


 

你可能感兴趣的:(yolov3)