YOLOv3训练自己的VOC数据集

YOLO网址:https://pjreddie.com/darknet/yolo/
一、安装darknet并借助预训练权重进行检测
1.安装darknet
git clone https://github.com/pjreddie/darknet
cd darknet
make
2.下载预训练权重
wget https://pjreddie.com/media/files/yolov3.weights
3.运行检测
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
  • 在默认Makefile的情况下,会在当前目录生成predictions.jpg,显示检测结果。
二、训练自己的VOC数据集
1.原文件结构如下:
├── darknet
│   ├── VOCdevkit
│   │   ├── VOC2007
│   │   │   ├── Annotations  #存放所有xml文件
│   │   │   ├── JPEGImages   #存放所有图片
│   │   │   ├── ImageSets
│   │   │   │   ├── Main
│   │   │   │   │   ├── test.txt
│   │   │   │   │   ├── trainval.txt
│   │   │   │   │   ├── train.txt
│   │   │   │   │   ├── val.txt
2.生成label文件
  • darknet需要每个图片有一个对应的txt文件,txt文件形式如下:
<object-class> <x> <y> <width> <height>

1)将scripts/voc_label.py文件复制到darknet目录下
2)根据自己数据集的情况进行修改

sets = [……]
classes = [……]

3)执行python voc_label.py
4)结果会在当前目录下产生2007_train.txt、2007_val.txt等文件;在VOC2007目录下产生labels文件
5)将验证集和训练集合成一个大的训练集,例如:

cat 2007_train.txt 2007_val.txt > train.txt
3.修改配置文件

1)修改cfg/voc.data

classes= xx
train  = /home/……/train.txt
valid  = /home/……/test.txt
names = data/voc.names
backup = backup

2)修改data/voc.names

  • 将其中的类别换成自己的类别即可

3)修改cfg/yolov3-voc.cfg

  • 将默认的测试状态修改为训练状态,测试时反之
  • 修改三处[yolo]层各自上一层卷积层中的filters = 3 * (classes + 1 + 4)
  • 修改三处[yolo]层中的classes为自己的类别数
4.训练

1)下载预训练权重

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

2)训练模型

./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值