在github上找到了非常良心的一个中文复现yolov5的链接。
https://github.com/DataXujing/YOLO-v5
这个是官方发布的链接:
https://github.com/ultralytics/yolov5
本想用yolor训练自己的数据集,因为比较着急,不熟悉docker,因此使用了yolo5替代。
由于已经有了VOC格式的数据集,所以很快就复现了这个代码。现在记录一下过程和遇到的问题。
1 配置环境
这个链接和官方发布的版本基本是一样的。因此我按照官网陈述的环境进行配置,pytoch去pytorch.org找到适应自己服务器的版本进行下载,或者自动下载也行。
你可以先尝试使用作者描述的通过pip install -r requirement.txt的方法下载 ,但我是报了pytorch的错误,然后卸载后老老实实去pytorch官网找到对应的pytorch下载。然后把requirement.txt的pytorch注释掉,以免重复安装。之后缺什么模块就pip install xxxx 补什么就可以了。
2 制作数据集
首先你要有VOC数据集,也就是图片和.xml标注文件。比如:abc.jpg和abc.xml。然后去datasets文件夹下,作者有1234四个python文件,分别运行,里面分别是检查文件,检查boundding box,第三个文件是分割数据集,按照一定比例。分为训练和验证集。第四个是将xml文件转换为txt文档。
当然每个人在处理之前的数据个路径啊,什么的各不相同。很多代码的错误的原因是因为没找到数据。所以自行调整一下自己的文件结构。
3 按照作者描述的,此时你的数据集应该是这样子的。
其中,labels里面应该是txt文档而不是xml文档。并且所有的图片与txt文档的名称都要是相同的。比如abc123.jpg和acb1233.txt
train.txt和val.txt是之前制作数据集第三个py文件生成的,里面包含了训练和测试的文件名称。然后第四个文件夹需要根据这两个文件,遍历所有xml文件,生成对应txt文档。
需要注意的是,你一定要修改好对应路径,否则生成之后你找不到你的txt文档,这需要你的阅读代码的能力。如果这个不会的话,就需要提高自己能力了。
4 按照作者提供的百度网盘下载预训练模型。然后修改相应配置文件,比如data.yaml 和model.yaml文件。
5 修改好相应的文件之后,就可以运行训练代码了。如果报错说xxx not found,或者label not found,这个时候你就要检查一下,到底你的路径对不对了。我建议你的文件夹名字是images和labels,否则会出错。当然你可以自己去dataset.py代码中修改。为了不必要的麻烦,老老实实用labels和images,少个s不行的哦。