由于自己部门需求及学习需求,需要自己制造训练集,并训练好自己的权重,用于检测目标与分割。开始自己探索制造训练集与训练网络的坑坑洼洼的道路,鉴于网上没有较好较为详细的教程,我想要把自己觉得的顺序步骤写出来,给大家减少遇到的坑。
(其实环境也不用相同,毕竟制造制造数据集的方法是相同的)
cfg文件说明
建议用本子记录一遍,加深理解。我就是这样做的(抱歉写字比较潦草)
2.理解以后,就开始搭建数据集,细分以下几步.
2.1准备自己想要训练的目标图片(我这里只准备了78张),放在一个文件夹(这里假设为picture)
2.2建立一个rename.py文件,在终端运行:
2.3同上面的操作类似,建立一个resize.py文件,在终端输入:将图片统一大小,非常重要!!我第一次就是没有做到统一大小,导致后面出问题,原因我没搞明白!知道的朋友麻烦留言告知。(当然如果你的图片全是大小一致的就跳过这一步)
resize.py文件代码:
此时,我们的图片大小已经统一了。
3.在darknet/scripts/目录下建立自己的数据集目录结构
3.1scripts下新建VOCdevkits目录
3.2VOCdevkits目录下建立JPEGImages,Annotations,ImageSets三个目录
3.3在ImageSets下建立Layout与Main两个目录
4.将刚才打标的图片放在建立的JPEGImages目录,对应的xml文件放在Annotations
5.运行test.py 转化标签信息,在Main目录生成三个文件
在终端运行
6.VOC数据转化为labels信息
YOLOV3的label,YOLOV3的label标注的一行五个数分别代表类别(从 0 开始编号), BoundingBox 中心 X 坐标,中心 Y 坐标,宽,高。这些坐标都是 0~1 的相对坐标。和我们刚才标注的label不同,因此我们需要下面的py文件帮我们转换label。
这里我提供源码:
注意,voc_label.py需要与VOCdevkits目录同级位置。
观察scripts目录下,是否生成了对应文件 2007_train.txt ;2007_val.txt ;2007_test.txt ;train.txt
坚持至此,兄弟们,数据集完成!!!!7.修改自己的cfg文件及data
7.1cfg/voc.data文件修改
可修改:random = 1:原来是1,显存小改为0。(是否要多尺度输出。我这里不用,因为样本不足时,这个参数会影响训练效果)
在文件开头,修改训练的batches,subdivisions,自己看情况,显卡不强的掂量以下哈哈
8.下载预训练的权重
恭喜,坚持到这里真不容易!!!过了这一步,就能训练自己的数据了!!
我训练10000次后测试图
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/do-yfwjc/56506.html