基于改进YOLOv8n的钢材缺陷检测算法
2025-02-21周文凯刘明豪周建华
摘要:钢材缺陷检测作为关键任务,对于预防潜在的安全隐患具有重要意义。传统的钢材缺陷检测方法往往依赖于人工检测,效率低下且容易受到人为因素的影响。随着计算机视觉技术的不断发展,目标检测在许多领域都得到了广泛的应用。研究提出了一种基于改进YOLOv8n的钢材缺陷检测算法,并在东北大学钢材缺陷公开数据集上进行验证,实验结果显示,相较于原始YOLOv8n模型,准确性提升3.0%,相较于YOLOv5n模型,准确性提升4.7%,很好地验证了改进的有效性,可以为钢材缺陷检测提供更好的技术支持。
关键词:钢材缺陷;改进YOLOv8n;缺陷检测;注意力机制
一、前言
钢铁工业生产的迅猛发展对钢铁产品的质量要求日益提高,给钢材质量检测提出了新的要求。钢材缺陷检测作为质量检测的关键环节,对于预防潜在的安全隐患、提升产品质量以及提高生产效率具有不可忽视的作用[1]。然而,传统的钢材缺陷检测方法主要依赖于人工目视检测,这种方法不仅效率低下,而且容易受到人为因素的影响,如视觉疲劳、主观判断差异等,导致检测结果的准确性和可靠性受到挑战。
随着计算机视觉技术的飞速进步,目标检测算法在图像处理领域展现出了强大的潜力和广泛的应用前景[2-3]。为了应对钢材缺陷检测中的特殊挑战,如小尺寸缺陷的识别、复杂背景下的准确检测等,本文提出了一种基于改进YOLOv8n的钢材缺陷检测算法。通过引入先进的改进策略和方法,提高算法对钢材缺陷的识别精度和鲁棒性,为钢材质量检测领域带来更加高效、准确的解决方案。对于推动工业自动化检测和质量控制的发展具有重要意义[4]。
二、钢材缺陷检测领域的相关工作
目前针对钢材缺陷检测,在实际应用中,工业上有多种方法来进行钢材缺陷检测,主要包含射线探伤、超声波探伤、涡流探伤、磁粉探伤等。射线探伤能够提供直观的缺陷图像,但存在辐射安全问题和高成本。超声波探伤适用于厚材料检测,速度快且成本低,但对表面平整度要求较高。涡流探伤则能快速检测导电材料的表面缺陷,但对非磁性材料效果不佳。磁粉探伤则直观且操作简单,但容易受钢材表面油污的影响。
尽管传统的钢材缺陷检测方法各有其独特的应用场景和优势,但它们也存在一些共同的局限性。这些方法往往受到材料类型、缺陷类型、表面状况以及操作环境等多种因素的影响。此外,这些方法通常需要专业的操作人员和复杂的设备,检测过程可能耗时且成本较高。
随着计算机视觉和深度学习技术的快速发展,目标识别方法,特别是基于深度学习的目标检测算法,为钢材缺陷检测提供了新的解决方案[5]。目前主流的目标检测算法有两阶段的RCNN(Region- based Convolutional Neural Network)、Fast RCNN、Faster RCNN算法,一阶段的 SSD(Single Shot Multibox Detector)、YOLO(You Only Look Once)算法,以及基于Transformer的目标检测算法DETR(Detection Transformer)。这些方法不仅具有更高的准确性和鲁棒性,还能够自动学习和提取图像中的特征,减少了对专业操作人员和复杂设备的依赖。
因此,采用目标识别方法进行钢材缺陷检测,有望克服传统方法的局限性,提高检测效率和准确性,为工业自动化检测和质量控制带来新的突破。
三、钢材缺陷检测总体方案
在目标识别模型领域,主要有以Faster R-CNN为代表的两步法目标检测模型与以YOLO为代表的一步法检测模型。其中,YOLO系列模型由于采用了端到端的目标检测识别模式,其在预测速度上有着天然的优势,更满足于生产现场的实际应用。
(一)Yolov8目标检测模型
YOLOv8是一种基于图像全局信息进行预测的目标检测模型,相较于之前YOLO系列方法,做出了诸多改进。
首先,在模型的Backbone主体部分,YOLOv8将YOLOv5中的跨阶段局部网络(CSP)模块替换为轻量级C2f模块,通过密集残差结构增强特征表达的能力。其次,根据缩放系数,通过拆分和拼接操作改变通道数,降低计算复杂度和模型容量。最后,在尾部使用快速空间金字塔池化层模块增加感受野并捕获场景中不同层次的特征信息。
在模型的Neck部分,对特征进行融合,采用路径聚合网络与C2f模块,针对Backbone三个阶段输出的不同尺度的特征图进行融合,帮助浅层信息向深层特征聚合。Head部分使用解耦头结构,分为分类和定位预测端,用于缓解分类和定位任务之间存在的冲突。
Loss计算包括分类损失Varifocal Loss(VFL Loss)和回归损失CIoU Loss + Distribution Focal Loss(DFL Loss)。Varifocal Loss是一种基于焦点损失函数的目标检测损失函数,可以更好地处理类别不平衡的情况,提高模型的检测准确率。CIoU Loss可以更好地处理预测框和真实框之间的重叠情况。DFL Loss可以更好地处理类别不平衡和背景类别的问题,能够让网络快速地聚焦于距离目标位置近的分布。
相较于之前版本算法,YOLOv8在模型结构上进行了优化,提高了模型的表达能力和泛化能力。新增的VFL Loss损失函数使得模型在训练过程中能够更好地处理分类和回归任务之间的不平衡问题,并动态地分配框匹配策略,从而提高检测准确率,适用于各种对实时性和准确性要求较高的场景。
(二)Yolov8的改进
本文采用YOLOv8模型中的YOLOv8n模型,主要在以下三个方面进行改进。
首先将YOLOv8n特征提取网络中第六层中的C2f卷积模块替换为C2f_DBB卷积模块,用于提取链结图像的高维度特征。DBB模块由多个分支组成,每个分支使用不同大小的卷积核分支进行特征提取,旨在提高网络的特征提取能力。每个分支提取不同尺度下的特征后,这些特征被合并或拼接在一起。模块内部的分支操作通常是并行的,有助于提高计算效率,同时允许网络学习多个尺度下的特征。C2f_DBB卷积模块示意图如图1所示。
其次在模型特征提取通道中添加了MLCA(Mixed Local Channel Attention)混合局部通道注意力机制,该机制结合了局部和全局特征以及通道和空间特征的信息,是一个轻量化的注意力机制,能够在增加少量参数量的情况下大幅度提高检测精度。
最后将检测头替换为DynamicHead动态检测头,这个方法包括三种不同的注意力机制,每种都专注于不同的方面:尺度感知注意力、空间感知注意力和任务感知注意力。应用动态检测头的三种注意力机制后,特征图变得更加清晰,从而为不同的目标检测任务提供了更好的基础。
四、训练过程与结果分析
(一)实验环境
实验所用的训练与推理环境为Linux系统, 系统版本为Ubuntu 18.04.6 LTS。深度学习框架采用Pytorch1.11.1。CPU为Intel(R) Core(TM)i7-9700K。运行内存为16GB。GPU为NVIDIA GeForce RTX2080ti×2,显存为22GB。
(二)钢材缺陷数据集
为评估本文所提算法的检测能力,钢材缺陷数据集采用东北大学(NEU)表面缺陷数据集,图片使用xml格式记录所有缺陷的位置、类别信息,图片为灰度图,相比其他数据集信息量更少,同时缺陷的边界没有统一的划分标准,增加了位置信息的检测难度。
该数据集收集了热轧带钢6种典型的表面缺陷,即夹杂、裂纹、斑块、点蚀、氧化皮和划痕6种缺陷。该数据库包括1800张灰度图像,每张图像的原始分辨率为200×200像素,6种不同类型的典型表面缺陷各300个样本,随机抽取训练集、验证集和测试集的比例为8:1:1。
(三)实验结果与分析
实验采用YOLOv8模型中的YOLOv8n进行测试,该模型为YOLOv8系列模型中参数量与权重最小的模型,更适合在生产现场应用。实验对比初始YOLOv8n模型、改进后的YOLOv8n模型与YOLOv5n模型在钢材缺陷检测数据上的表现。
目标检测模型的评价指标一般包括两个方面。一个是检测精度,也就是检测的准确程度,通常使用均值平均精度(Mean Average Precision,mAP)进行评估。另一个则是检测速度,一般使用检测帧率(Frames Per Second,FPS)进行评估。
mAP是指所有目标检测类别平均精度(average precision,AP)的均值,即
(1)
其中,n表示某一缺陷类别的数量,APj表示类别j的检测精度。
FPS则是指目标模型每秒可以处理多少帧图像。mAP的值越大,证明该模型的检测精度越高。FPS的值越大,则表示该模型的检测速度越快。
以mAP与FPS为检测指标,权重大小作为模型大小指标,使用YOLOv8n_ours模型、YOLOv8n模型和YOLOv5n模型对钢材缺陷数据集进行识别,各个模型平均准确率随训练轮数的变化如图2所示。
由图2可以看出,YOLOv5n模型对数据集的识别平均准确率最低,YOLOv8n模型识别的平均准确率虽有一定提升,但模型的波动很大,在此基础上,通过对模型的改进,本文所提出的YOLOv8n_ours模型的平均准确率得以进一步的提升,收敛速度也比YOLOv8n模型更快。将YOLOv5n模型结果、标准YOLOv8n模型的训练结果和改进模型的训练结果进行比较,验证本文所提出的改进算法模型的有效性。实验结果见表2。
可以看出,由于视频采集帧率通常为30帧/秒,因此以上三种模型实时性能够满足在工程应用中的检测要求。其中,原始的YOLOv5n模型由于算法简单,FPS较高,但mAP却最低,仅为76.4%,证明该模型虽然运算速度比较快,但识别准确率却有所不足。原始的YOLOv8n模型虽然准确率有所提升,但FPS则为最低,仅为452,证明该模型的处理速度较为不足。与两者相比,改进后的YOLOv8n_ours模型的处理效果则有明显提升,相较于YOLOv8n模型mAP提高3.0%,FPS提高24帧/秒,相较于YOLOv5n模型mAP提高4.7%,且模型大小仅为7.3M,兼顾了检测精度与实时性,具有最好的检测效果。
五、结语
针对生产现场缺乏钢材表面缺陷的有效的自动化检测手段,本文提出了一种基于改进YOLOv8n的钢材缺陷检测算法。通过引入C2f_DBB卷积模块、添加了MLCA的混合局部通道注意力、替换检测头的方法对YOLOv8n目标识别算法进行改进,使其在较少的模型参数的前提下,能够达到较高的检测准确率,在东北大学钢材缺陷公开数据集上进行验证,实验结果显示,相较于原始YOLOv8n模型,平均准确率提升3%;相较于YOLOv5n模型,平均准确率提升4.7%,可以为钢材表面缺陷检测提供一定的技术支持。
参考文献
[1]李轶杰.目标检测算法在智能交通监控中的应用研究[J].中国信息化,2022(06):67-69.
[2]曹义亲,伍铭林,徐露.基于改进YOLOv5算法的钢材表面缺陷检测[J].图学学报,2023,44(02):335-345.
[3]王春梅,刘欢.YOLOv8-VSC:一种轻量级的带钢表面缺陷检测算法[J].计算机科学与探索,2024,18(01):151-160.
[4]苏志威,黄子涵,邱发生,等.基于改进YOLOv8的航空铝合金焊缝缺陷检测方法[J].航空动力学报,2024,39(06):121-129.
[5]周繁,廖义奎.基于改进YOLOv5的工业钢材瑕疵检测算法[J].现代计算机,2022,28(22):1-8.
作者单位:浙江大华技术股份有限公司
责任编辑:张津平 尚丹