本发明涉及工业缺陷检测应用领域,特别涉及一种基于yolov5改进的钢铁表面缺陷检测算法。
背景技术:
1、在钢材生产过程中,表面缺陷检测是至关重要的一环,它不仅直接影响到钢材的结构完整性和使用寿命,而且对于维持生产线的稳定运行、确保产品达到行业标准和消费者预期起到关键作用。通过准确的缺陷识别和分类,生产团队可以及时发现并解决生产过程中出现的质量问题,预防缺陷钢材流入市场,从而保障最终产品的质量和性能。因此,开发高效、精确的钢铁表面缺陷检测方法是钢材生产领域持续研究和技术创新的重点。
2、钢铁表面缺陷存在着的类别内差异大、类别间差异小、不同缺陷尺度对比大以及与背景融合度过高等特点,给传统的检测方法如人工检测法、光电检测法带来了极大的挑战。而近年来,深度学习相关理论的迅速发展,使得端到端的检测方案得以实现,可以有效克服传统方法的局限性,提高检测的准确性与效率。因此本发明针对钢铁表面缺陷检测的实际需求,提出了一种基于改进yolov5的钢铁表面缺陷检测算法。
技术实现思路
1、本发明的目的是提供一种基于yolov5改进的钢铁表面缺陷检测算法,在yolov5s网络的基础上引入注意力机制、改进sppf结构、改进检测头,并使用wise-iou边界框回归损失函数作为评价指标。本发明具有较高的检测精度,同时保证了较好的检测效率,为钢铁工业生产的质量控制提供了重要支撑。
2、本发明的目的是通过以下技术方案来实现的:基于yolov5改进的钢铁表面缺陷检测算法,包括以下步骤:
3、s1、获取钢铁表面缺陷数据集,对数据集中的图像数据进行预处理操作,并划分数据集;
4、s2、改进yolov5钢铁表面缺陷检测模型,改善模型在钢铁表面缺陷检测任务上的性能;
5、s3、将步骤1所得的数据集输入至步骤2改进的yolov5的钢铁表面缺陷检测模型中训练,获取在验证集上表现最优的权重文件;
6、s4、输入待检测钢铁表面图像,加载步骤3的最优模型权重进行缺陷识别,并输出待测钢铁表面缺陷图像的最终结果。
7、进一步地,所述步骤s1包括以下子步骤:
8、s11、选定公开数据集,对钢铁表面缺陷公开数据集中的图像数据进行高斯滤波的图像去噪操作;
9、s12、对钢铁表面缺陷公开数据集中的图像数据进行自适应灰度均衡化的图像增强操作。
10、s13、将数据集的图像数据及标签文件按照8:1:1的比例划分为训练集、验证集与测试集以用于模型训练。
11、进一步地,所述步骤s2包括以下子步骤:
12、s21、在yolov5主干网络中引入cbam注意力机制。cbam模块结合了通道注意力与空间注意力两种注意力机制,能够全面分析和强化特征信息,可以使模型更加关注缺陷图像的关键区域,实现对缺陷的高效准确检测。
13、s22、将sppf模块中的最大池化操作替换为软池化操作,同时调整模块中池化核尺寸为3×3,5×5和9×9,以提高模型对不同尺度特征的响应性,改进后sppf模块命名为s-sppf模块。
14、s23、将yolov5原有的耦合检测头替换为yolox的解耦检测头,并进一步做出改进,移除了1×1的降维卷积层,并根据主干网络和颈部的宽度系数调整检测头维度;同时简化了两个分支,减少了一个3×3cbs卷积模块,以避免过多卷积层造成的计算量增加以及信息损失。另外,采用更为简单的elu激活函数替换原解耦检测头cbs模块中的silu函数,形成cbe模块。改进后解耦检测头可以缓解目标检测中分类与定位的冲突,进一步提升钢铁表面缺陷的检测精度;
15、s24、将yolov5模型的损失函数ciou替换为一种能够平衡数据质量的wise-iou损失函数,以减轻低质量数据对网络训练的惩罚。wise-iou损失函数的具体公式如公式(1)-公式(4)所示:
16、
17、其中,r为预测框所得梯度增益;rwiou为预测框与标注框的几何差异;为预测框交并比损失值;x,y为预测框的中心坐标;xgt,ygt为标注框的中心坐标;wg,hg为最小封闭框的宽和高;β为预测框的离群度;α与δ为超参数;为预测框的动态交并比损失均值。
18、进一步地,步骤s3所述的改进后yolov5钢铁表面缺陷检测模型的训练过程如下:
19、使用步骤1中所得的钢铁表面缺陷数据集对改进后yolov5钢铁表面缺陷检测模型进行训练。设置模型训练的相关参数,选择batch-size大小为32,初始学习率设置为0.01,采用线性学习衰减率策略进行训练,权重衰减参数为0.0005,动量因子设置为0.937;根据yolov5作者建议训练较小的自定义数据集,使用adam优化器,训练轮数为200轮,其中前3轮采用warm-up的方法预热学习率。另外,根据经验设置wise-iou中δ=3.0,α=2.2。训练完成后,将表现最佳的模型权重保存为文件best.pt,以便用于后续的钢铁表面缺陷检测任务。
20、进一步地,所述步骤s4包括以下子步骤:
21、s41、向改进后yolov5钢铁表面缺陷检测模型中输入待检测图像,加载预训练的最佳权重文件best.pt进行检测,输出的图像上将标出检测到的对象类别及其对应的置信度。
22、s42、对改进后yolov5钢铁表面缺陷检测模型的准确性进行验证,评估模型性能时,将采用ap(平均精度)和map(平均精度)作为关键指标,计算方式如公式(5)、公式(6)所示:
23、
24、其中,n代表样本的数量,p(ri)表示将recall等间隔取值,第i个召回率下的准确率,ap(j)表示第j个类别识别的平均精度,k表示类别总数。
25、本发明的有益效果是:提出了一种基于改进yolov5的钢铁表面缺陷检测算法,解决了由钢铁表面缺陷特点带来的检测模型性能不理想问题。引入cbam注意力机制聚焦缺陷区域;将sppf模块中的最大池化操作替换为软池化操作,并调整池化核大小,有效减少了与背景融合度高的缺陷和微小缺陷的信息丢失;基于解耦结构改进检测头,将分类与定位任务分解,缓解了两个任务间的潜在冲突;最后选用wise-iou替换原yolov5网络中的ciou损失函数,减轻了低质量数据对网络训练的惩罚。本发明的钢铁表面缺陷检测改进后模型map值达到80.6%,相比yolov5s提升了4.8%,大大减少误检漏检情况。
1.基于改进yolov5的钢铁表面缺陷检测算法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于改进yolov5的钢铁表面缺陷检测算法,其特征在于,所述步骤s1包括以下子步骤:
3.根据权利要求1所述的基于改进yolov5的钢铁表面缺陷检测算法,其特征在于,所述步骤s2包括以下子步骤:
4.根据权利要求1所述的基于改进yolov5的钢铁表面缺陷检测算法,其特征在于,所述步骤s3包括以下子步骤:
5.根据权利要求1所述的基于改进yolov5的钢铁表面缺陷检测算法,其特征在于,所述步骤s4包括以下子步骤:
