yolov7 训练自己的数据集并部署
第一步 数据集准备
第二步 train.py载入自己的数据集并训练
第三步 将训练好的pt文件做成接口调用
首先,先说明我只是初步接触yolov7,写这篇文章的主要目的是可以让大家快速应用自己的数据集进行训练。没有接触过yolov5也没有关系,该篇文章会逐步进行演示如何训练。
第一步 数据集准备
首先确保你有labelimg标图软件,若无,需要自行去下一个并看一下标图教程。
当你已经标注完成,获得了img以及相对应的xml之后(如图)
接下来就是可选择项:是否需要图像增强来获取更多样本,如需要百度网盘链接:https://pan.baidu.com/s/1nRDHJXJ8HGR96KX5And6tg?pwd=1bww 提取码:1bww ,直接用enhance_img.py去增强。之后我的习惯是每有一个项目需要训练,则会新建一个文件夹,项目存放的文件如图:
下面ImageSets\Main用于存放后续脚本文件划分训练集测试集的相对应的train.txt,test.txt。hyp.scratch.p5.yaml为yolov7的超参设置,可以直接从yolov7\data下面去拷过来放到你项目里。icon.yaml为你要所要训练的类别和相应的类,同时也会写上实际训练时训练数据和测试数据。该文件如下图。
Main.py就是划分你的数据为训练集和测试集.txt的脚本。整体新建的项目目录就是这样。下面说一下操作流程:1 首先确保是该项目目录方式 2 运行main.py脚本文件得到了ImageSets\Main下面的train.txt,test.txt。3 在yolov7的根目录下运行xml2txt脚本文件。main.py xml2txt.py文件见百度连接:链接:https://pan.baidu.com/s/1ffRgyf7s7F3-G29TS23ONQ?pwd=411n 提取码:411n 注意要将该文件的类和项目名改成自己的。如图:
此时,我们的数据准备阶段已经完成,项目目录如图:
第二步 train.py载入自己的数据集并训练
红色箭头和红框就是常见改动的地方,改动后就可以训练了。
第三步 将训练好的pt文件做成接口调用
在等待训练完成之后,就会在runs/train下面获得训练的best.pt,你可以拿着这个pt去做接口使用了。首先,在自己的项目里使用必须要确保yolov7根目录下的models和utils文件夹放到了你的项目根目录。然后下载model_import.py百度链接:链接:https://pan.baidu.com/s/1WZ5iyoFeaMe9mpsMPZndoA?pwd=1y5p 提取码:1y5p 嵌入你的任何项目路径下调用predict函数就可以输出检出结果了。
最后,如果有任何疑问可以在下方留言,我看到后会第一时间回复,确保大家都可以快速进行yolov7的训练和部署!