YOLOv4训练自己的数据集

本文主要参考博客有两个:博客一博客二

数据集自定义,按照如下VOC数据集格式制作

在这里插入图片描述
Annotations是存放标签xml文件
JPEGImage 存放所有图片
ImageSets 中创建Main文件夹,然后在Main文件夹里面的3个txt文件按行存放着图片名字

0001
0002
0003
最终将整个VOCdevkit文件夹放在在这个地址里面
/home/xxxx/darknet/build/darknet/x64/data/voc
###上面这一步很关键

制作训练所需的目标坐标TXT文件和Labels
如何制作参考文一
其中有几点需要讲的是

1.

运行voc_label.py这个Python脚本,那个老哥所说的data可以不加,如果出现这个问题:
[Errno 2] No such file or directory: '/home/XXX/VOCdevkit/VOC2007\ImageSets\Main\train.txt’
或者出现这个问题:FileNotFoundError: [Errno 2] No such file or directory: './VOCdevkit/VOC2007\Annotations\.xml’
可以看这个博客里写的,虽然不详细,但是给了一点方向,我的问题是主要就是文件夹的地址问题,多捣鼓几次,把地址改来改去试试,脚本代码本身没有问题。
结果就是出现3个txt文件还有labels文件,labels文件主要是将xml里面的内容通过自带voc_label.py脚本取出来。
labels地址:/home/xxxx/darknet/build/darknet/x64/data/voc/VOCdevkit/VOC2007
放着不动
在这里插入图片描述

2.

三个txt文件里面是训练要用的图像的地址,如下图,如果位置不对就使用Ctrl+F搜索文件名全挪过来
地址:/home/xxxx/darknet/build/darknet/x64/data
在这里插入图片描述
训练图片存在以下地址:
在这里插入图片描述

修改cfg文档

参考博文1和2,都差不多。

训练

可能出现yolo-obj.cfg识别不到的问题,我将这个文件放到darknet主文件夹中解决了,我也不知道为啥,瞎捣鼓。
把obj.data和obj.names放到地址/home/xxx/darknet/data下面
最后检查一下2007_train.txt和2007_test.txt这两个文件名是否修改了,之前未曾修改可能出现报错
在这里插入图片描述

训练命令行:

./darknet detector train data/obj.data yolo-obj.cfg yolov4.conv.137 -gpus gpu_id

测试

不知道为啥测试的时候obj.data和obj.names这两个文件夹说找不到,估计是系统选择的是相对路径,找的是子文件夹data而不是主文件的data,所以这里把obj.data和obj.names放到
/home/xxxx/darknet/build/darknet/x64/data这个子文件夹里面

训练完成的权重放在/home/xxxx/darknet/backup文件夹里面

测试命令行:

./darknet detector test data/obj.data yolo-obj.cfg backup/yolo-obj_last.weights

提示所需要测试图像的文件位置,输入文件的位置即可。

中断训练后继续训练

通常由于不可抗因素的存在,终止训练,又不想重新训练,这时就可以把上次保存的
backup/yolo-obj_last.weights
拿出来,替换原有的 yolov4.conv.137即可

继续训练命令行:

./darknet detector train data/obj.data yolo-obj.cfg backup/yolo-obj_last.weights -gpus gpu_id
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值