当前位置: 首页 > 专利查询>淮阴工学院专利>正文

一种基于改进YOLOv7算法的带钢表面缺陷检测方法技术

技术编号:38871718 阅读:5 留言:0更新日期:2023-09-22 14:07
本发明专利技术公开了一种基于改进YOLOv7算法的带钢表面缺陷检测方法,网络的改进方式包括:通过使用k

【技术实现步骤摘要】
一种基于改进YOLOv7算法的带钢表面缺陷检测方法


[0001]本专利技术属于目标检测领域,涉及一种基于改进YOLOv7算法的带钢表面缺陷检测方法。

技术介绍

[0002]早期带钢表面缺陷检测方法主要包括人工检测法、涡流检测法、红外检测法、漏磁检测法、激光扫描检测法等。实际工业生产中,由于检测对象在形状、大小、纹理、颜色、背景、布局和成像光照等方面差异较大,使得复杂环境下对缺陷进行检测分类成为一项艰巨任务。在深度学习的背景下,卷积神经网络因具有强大的端对端自动特征提取能力,被广泛用于表面缺陷检测,根据检测任务的不同可分为分类网络、目标检测、实例分割。随着目标检测技术的发展,可以使用基于深度学习的检测方法来检测带钢表面缺陷,其可靠性、实用性、高效性都远优于早期识别带钢表面缺陷的方法。
[0003]目前基于深度学习的目标检测算法主要包括两类:第一类是两阶段检测算法,即基于区域提取的目标检测算法,这类算法使用滑动窗口等方式在图像中提取出多个候选区域,然后对每个候选区域进行分类和边界框回归,最终得到目标检测结果。该类算法包括R

CNN、FastR

CNN、FasterR

CNN、MaskR

CNN等。第二类是单阶段目标检测算法:这类算法不需要显式的候选区域提取,而是直接在图像上进行分类和边界框回归,从而实现目标检测。该类算法包括YOLO、SSD、RetinaNet等。这两类算法各有优劣,基于区域提取的算法准确率较高,但速度较慢;而单阶段目标检测算法速度快,但准确率相对较低。

技术实现思路

[0004]为了克服上述现有技术存在的不足,本专利技术提出一种基于改进YOLOv7算法的带钢表面缺陷检测方法,能够在保证拥有较高检测速度的前提下,提高检测的准确率。
[0005]一种基于改进YOLOv7算法的带钢表面缺陷检测方法,包括以下步骤:
[0006](1)准备数据集;
[0007](2)对数据集进行处理;
[0008](3)改进网络;
[0009](4)训练网络;
[0010](5)测试网络。
[0011]进一步的所述步骤(1)包括以下步骤:
[0012]在网络上下载东北大学热轧带钢表面缺陷的数据集。在下载的数据集中选取其中的1800张图片,其中分为六类带钢表面缺陷,包括夹杂(Inclusion)、划痕(Scratches)、压入氧化皮(Rolled

in

Scale)、裂纹(Crazing)、麻点(Pitted

Surface)和斑块(Patches)对这些图片进行预处理。
[0013]进一步的所述步骤(2)包括以下步骤:
[0014]对数据集进行处理,将数据集分为训练集测试集和验证集,比例为8:1:1,将标注
数据集的xml文件存放在Annotations文件夹中,将标注结果为xml格式的文件使用脚本转化为txt格式的文件存放在Labels文件夹,使用脚本将数据集划分的训练集测试集和验证集所包含的图片名称存放在ImageSets文件夹中,图片路径放在data目录下。
[0015]进一步的所述步骤(3)包括以下步骤:
[0016](3

1)通过使用k

means++聚类方法计算出适用于该数据集的anchorbox的尺寸,并在yaml文件中将原来的anchorbox的参数替换为新生成的anchorbox的参数。
[0017](3

2)将部分卷积替换为更轻量更快速的PConv卷积模块,其原理是在卷积操作中只对遮挡区域外的像素进行卷积,而遮挡区域内的像素则被视为缺失值。PConv的核心是部分卷积操作,该操作仅对输入特征图中非遮挡区域的像素进行卷积运算,而遮挡区域内的像素则被忽略或视为0。然后,部分卷积操作将非遮挡区域的像素和遮挡区域的掩码结合起来,计算输出特征图中的相应像素值。这种方法可以有效地利用周围像素的上下文信息,从而更好地恢复图像的缺失部分。
[0018]将网络中的ELAN模块中的部分卷积替换为PConv,并将替换卷积后的CBS模块重新命名为PBS模块,新的ELAN模块命名为ELANP。
[0019](3

3)在网络中特征层输出的地方添加SE注意力机制,为了方便将注意力机制添加到网络中,为了方便添加,将注意力机制添加到ELAN模块最后的卷积层中,将最后一个CBS模块命名为CBS

Att,新的ELAN模块命名为ELANP

Att。为了更好的提取特征图的信息,将所有concat拼接前的ELAN模块替换为添加了注意力机制的ELANP

Att模块。将注意力机制添加到SPPCSPC模块中,命名为SPPCSPC

Att,并将网络中唯一一个SPPCSPC模块替换成SPPCSPC

Att模块。
[0020](3

4)将网络中的原来的CIOU损失函数替换为SIOU损失函数,SIOU引入了真实框与预测框之间的向量角度,加快了收敛速度。
[0021](1)角度损失:
[0022]其中c
h
为真实框与预测框中心点的高度之差,σ为真实框与预测框中心点的距离。
[0023](2)距离损失:
[0024][0025]其中c
w
和c
h
为真实框和预测框最小外接矩形的宽和高,为真实框中心坐标,为预测框中心坐标。
[0026](3)形状损失:Ω=(1

e

Ww
)
θ
+(1

e

Wh
)
θ
[0027][0028]其中(w,h)和(w
gt
,h
gt
)分别为预测框和真实框的宽和高。θ控制了对形状损失的关注程度,取值区间为[2,6]。
[0029][0030]进一步的所述步骤(4)包括以下步骤:
[0031]创建新的yaml文件,命名为YOLOv7

improve.yaml,将原网络的ELAN模块和SPPCSPC模块替换为改进好的模块,将train.py文件中的cfg文件路径改为YOLOv7

improve.yaml文件的路径,运行train.py文件对模型进行训练。训练完毕后记录训练的结果,包括精度,召回率,mAP的值,并保存生成的权重文件。
[0032]进一步的所述步骤(5)包括以下步骤:
[0033]将detect.py文件中的权重文件路径改为改进的模型训练后生成的权重文件的路径,将需要检测的带钢的图片数据集导入到模型中,运行detect.py文件,保存对图片的检测结果,为了对比模本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于改进YOLOv7算法的带钢表面缺陷检测方法,其特征在于,包括以下步骤:步骤1.准备数据集,在网络上下载有关带钢缺陷的数据集;步骤2.对数据集进行处理,得到能够进行训练的数据集;步骤3.改进网络,使用k

means++聚类算法计算出更适合此模型的目标框参数,将主干网络的部分卷积替换为PConv,将原模型的损失函数CIOU改为SIOU,并在每个特征层输出的地方添加SE注意力机制;步骤4.训练网络,将步骤3改进好的网络进行训练,并保存训练好的结果,将训练好的模型部署到电脑上对生产过程中的带钢进行缺陷的识别。2.根据权利要求书1所述的一种基于改进YOLOv7算法的带钢表面缺陷检测方法,其特征在于,在步骤1中,在网站上下载带钢缺陷的数据集,在下载的数据集中选取其中的1800张图片,其中分为六类带钢表面缺陷,包括夹杂(Inclusion)、划痕(Scratches)、压入氧化皮(Rolled

in

Scale)、裂纹(Crazing)、麻点(Pitted

Surface)和斑块(Patches)对这些图片进行预处理。3.根据权利要求书1所述的一种基于改进YOLOv7算法的带钢表面缺陷检测方法,其特征在于,在步骤2中,对数据集进行处理,将数据集分为训练集测试集和验证集,比例为8:1:1,将标注数据集的xml文件存放在Annotations文件夹中,将标注结果为xml格式的文件使用脚本转化为txt格式的文件存放在Labels文件夹,使用脚本将数据集划分的训练集测试集和验证集所包含的图片名称存放在ImageSets文件夹中,图片路径放在data目录下。4.根据权利要求书1所述的一种基于改进YOLOv7算法的带钢表面缺陷检测方法,其特征在于,在步骤3中,改进网络,改进网络包括:(1)通过使用k

means++聚类方法计算出适用于该数据集的anchorbox的尺寸,并在yaml文件中将原来的anchorbox的参数替换为新生成的anchorbox的参数;(2)将部分卷积替换为更轻量更快速的PConv卷积模块,其原理是在卷积操作中只对遮挡区域外的像素进行卷积,而遮挡区域内的像素则被视为缺失值。PConv的核心是部分卷积操作,该操作仅对输入特征图中非遮挡区域的像素进行卷积运算,而遮挡区域内的像素则被忽略或视为0,然后,部分卷积操作将非遮挡区域的像素和遮挡区域的掩码结合起来,计算输出特征图中的相应像素值。这种方法可以有效地利用周围像素的上下文信息,从而更好地恢复图像的缺失部分,将网络中的ELAN模块中的部分卷积替换为PConv,并将替换卷积后的CBS模块重新命名为PBS模块,新的ELAN模块命名为E...

【专利技术属性】
技术研发人员:郭浩宇赵环宇华尚赵延波孙幸
申请(专利权)人:淮阴工学院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1