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

文档序号:35501574发布日期:2023-09-20 13:10阅读:101来源:国知局
一种基于改进YOLOv7算法的带钢表面缺陷检测方法

本发明属于目标检测领域,涉及一种基于改进yolov7算法的带钢表面缺陷检测方法。


背景技术:

1、早期带钢表面缺陷检测方法主要包括人工检测法、涡流检测法、红外检测法、漏磁检测法、激光扫描检测法等。实际工业生产中,由于检测对象在形状、大小、纹理、颜色、背景、布局和成像光照等方面差异较大,使得复杂环境下对缺陷进行检测分类成为一项艰巨任务。在深度学习的背景下,卷积神经网络因具有强大的端对端自动特征提取能力,被广泛用于表面缺陷检测,根据检测任务的不同可分为分类网络、目标检测、实例分割。随着目标检测技术的发展,可以使用基于深度学习的检测方法来检测带钢表面缺陷,其可靠性、实用性、高效性都远优于早期识别带钢表面缺陷的方法。

2、目前基于深度学习的目标检测算法主要包括两类:第一类是两阶段检测算法,即基于区域提取的目标检测算法,这类算法使用滑动窗口等方式在图像中提取出多个候选区域,然后对每个候选区域进行分类和边界框回归,最终得到目标检测结果。该类算法包括r-cnn、fastr-cnn、fasterr-cnn、maskr-cnn等。第二类是单阶段目标检测算法:这类算法不需要显式的候选区域提取,而是直接在图像上进行分类和边界框回归,从而实现目标检测。该类算法包括yolo、ssd、retinanet等。这两类算法各有优劣,基于区域提取的算法准确率较高,但速度较慢;而单阶段目标检测算法速度快,但准确率相对较低。


技术实现思路

1、为了克服上述现有技术存在的不足,本发明提出一种基于改进yolov7算法的带钢表面缺陷检测方法,能够在保证拥有较高检测速度的前提下,提高检测的准确率。

2、一种基于改进yolov7算法的带钢表面缺陷检测方法,包括以下步骤:

3、(1)准备数据集;

4、(2)对数据集进行处理;

5、(3)改进网络;

6、(4)训练网络;

7、(5)测试网络。

8、进一步的所述步骤(1)包括以下步骤:

9、在网络上下载东北大学热轧带钢表面缺陷的数据集。在下载的数据集中选取其中的1800张图片,其中分为六类带钢表面缺陷,包括夹杂(inclusion)、划痕(scratches)、压入氧化皮(rolled-in-scale)、裂纹(crazing)、麻点(pitted-surface)和斑块(patches)对这些图片进行预处理。

10、进一步的所述步骤(2)包括以下步骤:

11、对数据集进行处理,将数据集分为训练集测试集和验证集,比例为8:1:1,将标注数据集的xml文件存放在annotations文件夹中,将标注结果为xml格式的文件使用脚本转化为txt格式的文件存放在labels文件夹,使用脚本将数据集划分的训练集测试集和验证集所包含的图片名称存放在imagesets文件夹中,图片路径放在data目录下。

12、进一步的所述步骤(3)包括以下步骤:

13、(3-1)通过使用k-means++聚类方法计算出适用于该数据集的anchorbox的尺寸,并在yaml文件中将原来的anchorbox的参数替换为新生成的anchorbox的参数。

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

15、将网络中的elan模块中的部分卷积替换为pconv,并将替换卷积后的cbs模块重新命名为pbs模块,新的elan模块命名为elanp。

16、(3-3)在网络中特征层输出的地方添加se注意力机制,为了方便将注意力机制添加到网络中,为了方便添加,将注意力机制添加到elan模块最后的卷积层中,将最后一个cbs模块命名为cbs-att,新的elan模块命名为elanp-att。为了更好的提取特征图的信息,将所有concat拼接前的elan模块替换为添加了注意力机制的elanp-att模块。将注意力机制添加到sppcspc模块中,命名为sppcspc-att,并将网络中唯一一个sppcspc模块替换成sppcspc-att模块。

17、(3-4)将网络中的原来的ciou损失函数替换为siou损失函数,siou引入了真实框与预测框之间的向量角度,加快了收敛速度。

18、(1)角度损失:

19、其中ch为真实框与预测框中心点的高度之差,σ为真实框与预测框中心点的距离。

20、(2)距离损失:

21、

22、其中cw和ch为真实框和预测框最小外接矩形的宽和高,为真实框中心坐标,为预测框中心坐标。

23、(3)形状损失:ω=(1-e-ww)θ+(1-e-wh)θ

24、

25、其中(w,h)和(wgt,hgt)分别为预测框和真实框的宽和高。θ控制了对形状损失的关注程度,取值区间为[2,6]。

26、

27、进一步的所述步骤(4)包括以下步骤:

28、创建新的yaml文件,命名为yolov7-improve.yaml,将原网络的elan模块和sppcspc模块替换为改进好的模块,将train.py文件中的cfg文件路径改为yolov7-improve.yaml文件的路径,运行train.py文件对模型进行训练。训练完毕后记录训练的结果,包括精度,召回率,map的值,并保存生成的权重文件。

29、进一步的所述步骤(5)包括以下步骤:

30、将detect.py文件中的权重文件路径改为改进的模型训练后生成的权重文件的路径,将需要检测的带钢的图片数据集导入到模型中,运行detect.py文件,保存对图片的检测结果,为了对比模型改进前和改进后对物体检测效果的区别,将detect.py文件中的权重文件路径改为原网络训练后生成的权重文件,再对同一批图片数据集进行识别,保存对图片的检测结果,然后这两次检测的效果进行对比。对比图如图4-6所示。



技术特征:

1.一种基于改进yolov7算法的带钢表面缺陷检测方法,其特征在于,包括以下步骤:

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中,改进网络,改进网络包括:

5.根据权利要求书1所述的一种基于改进yolov7算法的带钢表面缺陷检测方法,其特征在于,在步骤4中,包括以下步骤:创建新的yaml文件,命名为yolov7-improve.yaml,将原网络的elan模块和sppcspc模块替换为改进好的模块,将train.py文件中的cfg文件路径改为yolov7-improve.yaml文件的路径,运行train.py文件对模型进行训练,训练完毕后记录训练的结果,包括精度,召回率,map的值,并保存生成的权重文件。

6.根据权利要求书1所述的一种基于改进yolov7算法的带钢表面缺陷检测方法,其特征在于,在生产带钢的车间中,通过使用固定的摄像机拍摄传送带上需要进行检测的带钢,将拍摄好的视频导入到已经配置好能够运行改进后的yolov7模型的电脑上,使用改进后的模型对拍摄的视频进行检测,模型会输出对带钢存在的缺陷的检测结果。


技术总结
本发明公开了一种基于改进YOLOv7算法的带钢表面缺陷检测方法,网络的改进方式包括:通过使用k‑means++聚类算法计算出更适合此模型的目标框参数,将主干网络的部分卷积替换为PConv,将原模型的损失函数CIOU改为SIOU,并在每个特征层输出的地方添加SE注意力机制。通过改进网络,使得模型的检测精度从0.626提升到了0.792,召回率从0.611提升到了0.653,mAP值从0.65提升到了0.709。一种基于改进YOLOv7算法的带钢表面缺陷检测方法,与原网络相比在保证检测速度的同时拥有更高的检测精度,权重文件大小从原来的74.9Mb减少到66.3Mb,在带钢生产的过程中可以发挥重要作用,实现自动化检测、快速识别缺陷区域,提高生产效率和产品质量。在带钢生产的后期,使用改进YOLOv7算法对成品带钢进行表面缺陷检测,可以保证产品质量,避免缺陷产品流入市场,影响企业声誉。

技术研发人员:郭浩宇,赵环宇,华尚,赵延波,孙幸
受保护的技术使用者:淮阴工学院
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1