使用YOLOv3训练VOC模型

本篇博文主要是参照官网步骤进行VOC数据的训练,博主也是更改接触,如果有错误的地方,欢迎指正
操作环境: ubuntu
如果使用GPU需要安装cuda和cudnn,应为我这边环境已经装好了,所以并没有尝试安装
具体安装步骤可以参考一篇博客: https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html

1.下载编译darknet
git clone https://github.com/pjreddie/darknet
cd darknet
make
2.如需开启GPU,需要修改Makefile
GPU=1
CUDNN=1
//下面两个参数我搜索了一下资料,貌似不一定要改
OPENCV=1	//这个貌似是在线查看图片的情况才需要
NVCC=/usr/local/cuda-8.0/bin/nvcc  //这个如果在安装cudnn是配置好,直接用nvcc就可以也不需要配,测试方法,可以直接命令行输入 nvcc -V  看看命令是否可用,不可用再改为具体路径即可
修改完Makefile文件之后需要重新make:
make clean
make
3.(非必须)下载权重文件,并进行测试
wget https://pjreddie.com/media/files/yolov3.weights 
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg 
4.训练VOC数据
4.1(非必须,如果已经有自己的数据,直接用自己的数据进行训练)训练官方VOC数据
一下操作均在darknet根目录下执行
1)下载VOC2007 VOC2012数据,并解压
        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
此时,根目录下会多出一个VOCdevkit文件夹,里面有VOC2007和VOC2012的图像和标注数据
2)下载执行voc_label.py脚本
    wget https://pjreddie.com/media/files/voc_label.py
    python voc_label.py
此时,根目录下会多出2007_test.txt 2007_train.txt 2007_val.txt 2012_train.txt 2012_val.txt五个文件
然后使用命令
cat 2007_train.txt 2007_val.txt 2012_*.txt > train.txt
得到train.txt,下一步配置文件中会使用到train.txt和2007_test.txt,我将他们移动到了data文件夹
3)修改cfg/voc.data文件
vim cfg/voc.data
classes= 20 //使用官方VOC数据时不需要改
train  = <path-to-voc>/train.txt //将<path-to-voc>改为你存放train.txt的路径,比如我就是data
valid  = <path-to-voc>2007_test.txt//将<path-to-voc>改为你存放2007_test.txt的路径,比如我就是data
names = data/voc.names //classes的具体名称
backup = backup //保存weights文件的目录,默认情况下1000以内,每100此保存一次,1000次以上每10000次保存一次
4)修改cfg/yolov3-voc.cfg文件
vim cfg/yolov3-voc.cfg
训练官方数据的话,只需要更改
batch=64
subdevisions=8
即可,batch越大,运算效率越高,但是用GPU的话,太大会报错CUDA: out of memory,那就适当改小一点
5)下载darknet53权重文件
wget https://pjreddie.com/media/files/darknet53.conv.74
6)开始训练
./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74
4.2使用自己的数据进行训练
数据来源用LabelImg标注
然后需要修改voc_label.py脚本,cfg/voc.data中的classes,cfg/voc.data中的filters、classes以及其他参数。 目前正在学习中,待填坑




参考
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值