yolov5 口罩检测模型训练及测试

本文详细介绍了使用Yolov5进行口罩检测模型的训练过程,包括数据集准备(xml转txt,数据分类),yaml配置文件创建,训练参数调整以及训练中遇到的问题与解决方案。此外,还讲解了模型测试阶段的权重文件路径和测试图片路径的修改方法。
摘要由CSDN通过智能技术生成

yolov5 口罩检测模型训练及测试

一、数据集准备

1.利用网上公开数据集

在这里插入图片描述
在这里插入图片描述

2.xml转txt

可以看到公开数据集标注保存的为xml文件格式,利用上一篇文章中所述的python脚本文件,将xml文件转txt文件如下:
在这里插入图片描述

3.数据集分类处理

将上述图片文件和标注的txt文件分为训练集train和验证集valid,train文件夹和valid文件夹下均有images文件夹和labels文件夹,images文件夹中为图片文件,labels文件夹中为标签文件,两个文件夹中的文件名称和数量须相同。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
新建data.yaml配置文件,内容如下
train: C:/Users/Desktop/yolov5/mask/train/images
val: C:/Users/Desktop/yolov5/mask/valid/images
nc: 3
names: [‘mask’, ‘nomask’,‘worongmask’]

注明训练集和验证集图片位置、分类数量、分类名称即可

二、开始训练

打开源码中的train.py文件修改以下文件对应位置即可
在这里插入图片描述
另注意修改bach-size参数,works参数可能要为0,否则报错缺失dll

源码路径下cmd ,运行 python train.py文件即可进入训练
在这里插入图片描述

终端运行:tensorboard --logdir=训练路径,复制链接打开即可看到可视化参数面板

若报错,按以下方法处理:
在这里插入图片描述

再次重新输入tensorboard --logdir=训练路径即可
在这里插入图片描述

运行若报以下错误:
RuntimeError: result type Float can‘t be cast to the desired output type long int
可参考原文
修改【utils】中的【loss.py】里面的两处内容

1.打开你的【utils】文件下的【loss.py】

2.按【Ctrl】+【F】打开搜索功能,输入【for i in range(self.nl)】找到下面的一行内容:
在这里插入图片描述
(上面的代码在【loss.py】的后半部分)

将下面的代码替换掉上图中的红圈部分:

anchors, shape = self.anchors[i], p[i].shape

替换之后的效果是这样的:
在这里插入图片描述

3.按【Ctrl】+【F】打开搜索功能,输入【indices.append】找到下面的一行内容:
在这里插入图片描述

(上面的代码在【loss.py】的最后部分,具体位置在上一处搜索位置的下面10行左右)

将下面的代码替换掉上图中的红圈部分:

indices.append((b, a, gj.clamp_(0, shape[2] - 1), gi.clamp_(0, shape[3] - 1))) # image, anchor, grid

替换之后的效果是这样的:
在这里插入图片描述
4.保存刚才的两个替换操作

5.再次运行【train.py】文件,问题解决!!!代码跑通!!!

注意代码对齐!!!

三、测试

更改detect.py 文件的权重文件路径 与 测试图片路径即可

yolov5 源码文件下cmd ,运行python detect.py

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值