您的位置:首页 > 其它

YOLOv3 ubuntu 配置及训练自己的VOC格式数据集

2018-03-29 22:11 1881 查看
官网: http://pjreddie.com/yolo/ 
相关文章: http://arxiv.org/abs/1506.02640 
源代码: https://github.com/pjreddie/darknet.git

1. 下载源码

git clone https://github.com/pjreddie/darknet cd darknet
如果使用CPU,直接make使用GPU训练,需要修改Makefile,设置GPU=1
CUDNN=1
...
NVCC=/usr/local/cuda-8.0/bin/nvcc
如果调用摄像头,还需要设置OPENCV=1

2. 运行demo

wget https://pjreddie.com/media/files/yolov3.weights ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
国内下载权重文件可能较慢,下载好的百度云链接为https://pan.baidu.com/s/1fjUMQwejr3qLaUGx2cO1tA 密码: xx64
测试得到的结果会以图片的形式保存在darknet文件夹下,如图



3. 生成训练用的标注文件

准备好自己的数据集,并制作成VOC数据格式,并命名VOC2007,文件路径类似  /home/xxx/darknet/VOCdevkit/VOC2007/Main.
然后需要生成YOLO要用的VOC标签格式。首先下载格式转化文件:wget https://pjreddie.com/media/files/voc_label.pygedit打开voc_label.py,进行修改# 因为没有用到VOC2012的数据,要修改年份
sets=[('2007', 'train'), ('2007', 'val'), ('2007', 'test')]
# 修改检测的物体种类
classes = ["logo"]运行voc_label.py,即可完成文件转化。
用train和val的数据一起用来训练,所以需要合并文件:cat 2007_train.txt 2007_val.txt > train.txt

4. 修改pascal数据的cfg文件

打开cfg/voc.data文件,进行如下修改:classes= 1 # 自己数据集的类别数
train = /home/xxx/darknet/train.txt # train文件的路径
valid = /home/xxx/darknet/2007_test.txt # test文件的路径
names = data/voc.names
backup = backup注意需要在darknet文件夹下,新建名为backup的文件夹,否则训练过程报错:Couldn't open file: backup/yolov3-voc.backup。
打开data/voc.names文件,对应自己的数据集修改类别。

5. 下载Imagenet上预先训练的权重

wget https://pjreddie.com/media/files/darknet53.conv.74[/code]百度网盘链接: https://pan.baidu.com/s/10TK_nNz-8rje00cwGwTNvQ 密码: 1png

6. 修改cfg/yolov3-voc.cfg

找到文件中类似的部分进行修改,共有3处:



需要改变filters为 num/3*(classes+1+4),即3*(classes+1+4),参考https://github.com/pjreddie/darknet/issues/582,同时需要修改下面的classes的种类。

7. 训练

./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74
开始训练

8. 参考

https://blog.csdn.net/lilai619/article/details/79695109

https://blog.csdn.net/qq_30401249/article/details/51564871
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: