yolov3训练

一.数据集制作

1.数据集说明

在这里插入图片描述将制作完成的数据集放入darknet/scripts下:
VOCdevkit
voc2007
Annotations + ImageSets + JPEGImages + labels

①JPEGImages
JPEGImages文件夹中包含了PASCAL VOC所提供的所有的图片信息,包括了训练图片和测试图片。
②Annotations
Annotations文件夹中存放的是xml格式的标签文件,每一个xml文件都对应于JPEGImages文件夹中的一张图片。
③ImageSets
ImageSets存放的是每一种类型的challenge对应的图像数据。
在ImageSets下有四个文件夹:
在这里插入图片描述
其中Action下存放的是人的动作(例如running、jumping等等,这也是VOC challenge的一部分)
Layout下存放的是具有人体部位的数据(人的head、hand、feet等等,这也是VOC challenge的一部分)
Main下存放的是图像物体识别的数据,总共分为20类。
Segmentation下存放的是可用于分割的数据。

此处针对自己的数据集可以只是用Main文件夹即可

2.数据集预处理

标注完成后的数据为xml格式,我们只能填充Annotations和JPEGImages两个文件夹,此时ImageSets下的Main文件夹为空,需要将数据划分为一下几个txt文件:
在这里插入图片描述在这里插入图片描述
该部分划分可用aa.py实现

此时,才可以运用voc_label.py生成labels下的.txt训练文件,用于训练
在这里插入图片描述

3.voc_label.py的下载与修改

下载地址:https://pjreddie.com/media/files/voc_label.py

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

二.yolov3配置文件修改

1.修改cfg/voc.data文件

打开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。

在这里插入图片描述
在这里插入图片描述

2.修改data/voc.names

直接改成自己的类别名称即可

3.下载预训练权重

下载Imagenet上预先训练的权重
wget https://pjreddie.com/media/files/darknet53.conv.74

4.修改cfg/yolov3-voc.cfg

修改classes=自己的类别数(共有三处)
修改每一个yolo前面的卷积层的filter:3×(classes+4+1)
在这里插入图片描述
测试或训练时出现:
darknet: ./src/cuda.c:36: check_error: Assertion `0’ failed.
已放弃 (核心已转储)
可能配置文件出错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值