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:训练结果不好,以个人经历的结果考虑,数据集要足够大,每个类别的图片要足够多,标签要足够精确,才能训练出好的结果,如果精度不够高,说明迭代次数还不够

猜你喜欢

转载自blog.csdn.net/cyh20182808/article/details/130088384