yolov7训练检测(个人备忘录)
首先:配好虚拟环境
这步不会的直接去PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】_哔哩哔哩_bilibili
我的版本是python3.8,cuda11.6,torch1.12.1+cu1.6
一:yolov7源代码下载地址GitHub - WongKinYiu/yolov7: Implementation of paper - YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
二:下载预训练权重模型
我下了yolov7.pt和yolov7x.pt,放在下好的yolov7-main文件夹中留着用
三:安装所需要的包
在anaconda中,进入虚拟环境,进入下载好yolov7-main的文件夹
(requirements文件里面是所需要的包)安装
pip install -r requirements.txt
把所需要用到的包都下载下来,不然还得一个一个下。
四:建一个datasets管理自己的数据集
datasets组成如下图,我的分配比例是8:1:1

每一个图片有一个对应自己的labels,格式为txt,内容为类别序号与位置坐标,这里使用labelimg标注的yolo格式的txt

五:在data文件夹下写一个自己的data.yaml文件
按照data文件夹下的coco.yaml文件抄,分别写数据集的train,val,test的绝对地址
有几个类别nc就是几,name就是类别的名字,一定要按顺序写

六:修改cfg文件夹下training文件夹下的yaml文件
用哪个就改哪个的nc,改成自己的类别数,与上一步data.yaml中的nc相同

七:修改train.py中的参数
要改红框一下参数default
weights为下载的预训练模型权重,注意地址问题,不然出错
cfg写改过的cfg文件夹下training文件夹下的yamle文件,注意地址问题
data写自己改的data文件夹下的data.yaml文件,注意地址问题
epochs迭代次数,默认300,过拟合就调小
batch-size一次扔进去几张图,电脑显存不够的话,调小一点
workers线程推荐设置为0(学习from小土堆)
(训练结果保存在runs文件夹下的train文件夹下exp)
其他具体参数详情学习地址:
训练YOLOv5模型(本地)(一)_哔哩哔哩_bilibili
(虽然是yolov5但是参数几乎一样,v5学好即通v7)

改完这些,可以进行训练了,运行train.py文件
运行起来长这样:

八:结果的分析
train:124张 val:26张 test:26张
类别2,face与mask,epoches=50,batch-size=4
训练结果 如下


虽然差点意思,但是这是我训练的第五个数据集了,终于有一个结果让我还可以满意了,那么这个文件夹以及每一个图代表什么意思看这里,日后我会继续扩增数据集(1条消息) yolov7模型训练结果分析以及如何评估yolov7模型训练的效果_yolo训练结果分析_把爱留给SCI的博客-CSDN博客
九:对训练的模型进行检测
修改detect.py文件
weights选择在训练结束后,产生最好的结果,best.pt
source为要检测的图片路径,我使用的数据集的test部分

改好了运行detect.py文件
产生检测结果在runs文件夹下的detect文件夹下exp
十:过程中出现的错误
1:没有utils模块,解决
pip install web.py==0.40-dev1
2:训练结果precision.recall.map全为0,解决:检查数据集,标签内容与图片是否对应,包括格式
3:cuda out of memory,显存不够,解决:减小batch-size,如果变成2或者1都不行,那就加上不计算梯度代码,其他博主有很多方法
4:训练结果不好,以个人经历的结果考虑,数据集要足够大,每个类别的图片要足够多,标签要足够精确,才能训练出好的结果,如果精度不够高,说明迭代次数还不够
更多推荐



所有评论(0)