简介:

这篇博客是对使用darknet训练yolo的方法的总结,基本上是按照官网的方法进行训练,主要是补充了一些细节。






一、下载数据集

wget https://pjreddie.com/media/files/VOCtrainval_11-May-2012.tar wget
https://pjreddie.com/media/files/VOCtrainval_06-Nov-2007.tar wget
https://pjreddie.com/media/files/VOCtest_06-Nov-2007.tar tar xf
VOCtrainval_11-May-2012.tar tar xf VOCtrainval_06-Nov-2007.tar tar xf
VOCtest_06-Nov-2007.tar
上述命令是从作者的数据仓库中下载数据,可能网速会比较慢。也可以考虑从Pascal_voc的官网下载数据
http://host.robots.ox.ac.uk/pascal/VOC/
<http://host.robots.ox.ac.uk/pascal/VOC/>,这样下载速度会比较快。






将三个解压后的文件,放在一个文件夹中VOCdevkit,因为VOCtest_06-Nov-2007.tar 和
VOCtrainval_06-Nov-2007.tar解压后的文件都是VOC2007,因此将后者解压后的文件改为VOC2007_test。












二、生成darknet需要的label文件






将darknet/scripts目录下的voc_label.py文件,拷贝至darknet目录下。打开voc_label.py文件,修改第7
行,将列表的最后一个元组修改为('2007_test','test');修改第58行,将2007_test,改为2007_test_test。运行
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。



每一个txt文件中都存放着训练所需的文件的路径。除此之外,voc_label.py文件为每一副图片生成了一个存放label的txt文件。例如,在
VOC2007/labels目录下,便存放着VOC2007数据集的label文件。如下图所示








每一行的5个参数的含义如下:







后四个参数分别做了归一化,x和width除以图片的宽度,y和height除以图片的高度。






三、训练






YOLOv2的训练










下载卷积层的预训练权重。
wget https://pjreddie.com/media/files/darknet53.conv.74

修改cfg/voc.data文件,按下图进行修改。

       改为         












其中batch的值根据显存大小进行调整,如果显存比较大,可以适当加大。如果batch太小或者为1的话,最终训练得到的模型可能无法收敛。



最后执行下述命令进行训练。
./darknet detector train cfg/voc.data cfg/yolov2-voc.cfg darknet53.conv.74





YOLOv3的训练






如果训练yolo3模型的话,按同样的方式,修改cfg/yolov3-voc.cfg文件,并运行下述命令。



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







































最后执行下述命令进行训练

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信