2021-05-03

                 用自己的数据集训练yolov4
    由于比赛涉及到目标检测,就将已给的数据集用到yolov4模型中,中间道路非常坎坷,不过还是实现了。

1.所提供的数据集是没有标签的,需要手动设置标签,于是在ubantu18上安装了labeling标签软件,软件非常好用,首先要到相应文件夹下,把自己将要标注的类别标签复制到原有的类别文件夹下(labeling/data/predefined_classes.txt),切忌不要使用中文标签,也不要忘记修改类别标签。
2.所选的数据集有一部分格式是.bmp或者.png的需要将其转化成.jpg格式在进行图片标注,这里我直接采用网络软件进行的转换,方便快捷。
3.给大量所用图片进行重命名,这也是踩坑最多的一步,利用命令“dir /b>renames.xls”(windows)或使用find -name “.jpg” > list.txt(ubantu)将所用图片的名字生成excel文件。
4.这里我采用的是将每一类从上到下排序,对图片进行重命名,由于之后在选取训练集的时候,每隔四张图片选取一个测试集,这样不会导致过多的选取一个类中的目标图片。
5.重命名是在windows系统中进行的,首先使用excel进行重复类别排序,在将自己想要的图片名字输入第二列,第一列是原有图片的命名(自己在第三步中提取出来的),如果重命名里没有加.jpg,可以在c列输入公式=B1&“.jpg”,有.jpg就直接在c列输入公式=“ren “&A1&” “&B1””下拉就可以。之后将ren那列复制下来,可以建一个文本文件,将其复制到文本文件,将.txt改成.bat,会发现文件变成了设置的那种图案,双机就可以实现名字转换,这里我的有显示读取错误,之后发现.bat文件的编码是UTF-8,将其转换成ANSI,就可以了。
6.终于将所有图片的格式名字做完了,接下来就是用已给的数据集训练YOLOV4,这里参考了大佬们的复现。
以下想总结一下训练过程中的错误:
首先,在根目录下运行make时,报错并提示没有相应的cudnn.h文件,我是使用服务器进行训练的,总结下来是因为服务器里没有相应的cuda和cudnn,对其进行安装(这里补充一下,在vim ~/.bashrc时出现.swp文件,这可能是以前读取时没有进行相应的保存导致的,使用rm .*.swp就可以把他删除掉,之后就正常了)。安装cuda和cudnn之后,发现相应错误已经不见(这里我改了Makefile里相应的cuda、cudnn与nvcc的路径)。
其次,opencv又有相应的错误,在本机终端环境中也出现这样的错误,但通过pip install libopencv-dev、pip install stam之后,已经可以运行(只是会爆显存),但将此环境传到服务器中还会显示fatal error: opencv2/core/version.hpp: No such file or directory,到现在还是没有解决这个问题。
最后,最令人头大的是模型保存时一直显示Couldn’t open file: backup#权重保存的位置/yolov4-obj_last.weights,查询相应的路径发现并没有错误,绝对路径也尝试过了,但还是保存不了模型,没办法,我将路径改成了其他名字,没有在使用backup命名,结果就可以保存下来了(经过找问题,obj.data文件里的代码是直接从网上复制下来的,里面有一些注释用的中文不符合读取条件,可以试着把注释删除,就可以尝试打开,测试时,读取obj.names也是如此)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值