YOLOv3训练数据集

这是我第一次尝试用yolo v3训练自己的数据集,以此整理一下来清晰思路,自此便可熟练训练深度学习模型。

电脑配置

系统:Windows10

显卡:GTX 1660ti(6G)

CPU:九代i7

开发环境:pytorch+cuda+cudnn

本次我们使用的是VOC数据集,附下载链接:

https://pjreddie.com/projects/pascal-voc-dataset-mirror/

下载如图所示的前两行数据集。

img

下载后如图:

img

我们将其解压打开所在路径:

img

JPEGImages文件夹存放的便是用于训练的照片,也就是我们此次用到的照片。

Annotations文件夹中放置数据标注后的文件,也就是*.xml文件。

Main文件夹中放置test.txt 、train.txt 、trainval.txt 、val.txt文件。(文件主要是用来训练或测试的图像的名称)

数据集处理

1.标注数据集

将图片用labelImg进行标注,生成的xml文件存放在Annotations文件夹中。

img

2.转换xml文件到txt文件:
****.xml****包含了图像名称、图像路径、图像size和深度、标记框的坐标信息。
****.txt****包含了分类种类数、中心点横坐标、中心点纵坐标,宽,高。

转换代码voc_label.py下载链接:https://pjreddie.com/media/files/voc_label.py

下载好后有两处地方需要修改:

img

  1. sets是需要转换标签的数据集,这里我们只有VOC 2007。
  2. classes 是标注的标签名字,根据需要加入和修改。

运行程序voc_label.py,会生成以下两个txt文件

img

2007_train.txt为训练数据集图片的路径

img

相对应的2007_val.txt则为测试集的图片路径。

配置文件修改

  1. 修改数据配置文件

我们进入yolo v3中找到如图

img

  1. custom.data 如图

img

修改classes为自己需要训练的种类数,train为自己训练集读取文件的路径,valid则为测试集的,这两个文件我们前面已经提到过。

  1. coco.names 你可以在这个文件中修改,也可以新建一个.names的文件,如图

img

将前面的voc_label.py的classes列表中的种类名写入此文件,注意一定要按顺序写入!

  1. 修改cfg配置文件

注意:使用哪个cfg文件就改哪个。

cfg 文件是yolo v3用来存储网络结构的文件,在别的篇章中会详细介绍他各个语句的作用。如图,

img

它将每一个网络层的参数用如此简洁的方式写出来,可以说十分方便

如图

img

我们需要将yolo层中的classes改为需要训练的种类数

紧挨着yolo层的最后一个卷积层(convolutional)中的filter修改,具体修改公式:

filter = 3*(5+classes) ,其中3是因为yolo输出的张量(anchor)数量为3个,5是因为特征(x, y, w, h, score)。以此代码中的20分类为例,filter =75

而且我们需要修改三对,原因是yolo层有三个,原理前面也说了。

当然我们也可以选择不修改cfg文件,应该也没啥影响。

  1. 下载预训练模型(.weight)

img

在此文件夹中找到sh文件,也就是shell文件

img

运行shell脚本,如果没有环境直接粘贴网址下载也行。

准备训练

找到train.py中的命令行参数,如图

img

修改cfg文件和data文件的路径

img

修改weights文件的路径。

然后运行train.py我们就可以开始训练了。

在这个过程中我们遇到了一个错误,最后记录下:

img

yolo v3框架并不能读取JPEGImage文件夹,只能读取images。因此我们需要对文件夹名进行修改,虽然感觉很脑瘫但是没有办法。

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值