基于深度学习改进的钢材表面缺陷检测研究
作者: 胡祥龙
关键词:钢材;深度学习;表面缺陷;目标检测;机器视觉
中图分类号:TP391 文献标识码:A
文章编号:1009-3044(2024)36-0032-04
开放科学(资源服务) 标识码(OSID) :
0 引言
钢材具有优异的硬度、可塑性、韧性和抗腐蚀性,广泛应用于建筑、汽车制造、机械电子等支柱产业,并在航空、国防、化工等领域发挥重要作用。随着我国钢材产量和消费量的持续增长,提升钢材性能和使用寿命成为生产制造企业的重要课题,而钢材表面缺陷是其中的关键问题之一。钢材表面缺陷主要包括裂纹、夹杂物、氧化皮等,这些缺陷可能由原材料、工艺控制或外部环境因素造成。
本研究旨在深入探究基于深度学习的钢材表面缺陷检测技术,并对相关领域的研究方法和成果进行梳理和评价。本文首先介绍钢材表面缺陷检测技术的发展历程,然后概述常用的深度学习算法,重点关注近三年内针对工业实际需求的算法改进方向。通过上述研究,可以发现对深度学习缺陷检测技术的优化方式主要包括更换卷积模块、引入注意力机制、特征融合处理、结合传统图像处理算法等。这些方法旨在提升深度学习模型对小目标缺陷检测的能力,平衡检测速度与精度,使网络模型更轻量化,能够适用于实际工业生产情景。最后,针对当前改进方法存在的问题,展望未来的研究方向。
1 钢材表面缺陷检测技术发展
早期的表面缺陷检测方法主要包括目视检测、涡流检测、红外检测、漏磁检测、激光扫描检测[1]等。这些方法在实际应用中各有优缺点。目视检测是早期最常用的方法,通过人工目测或光源频闪的方法来识别表面缺陷。这种方法的优点是操作简便、成本低廉,但存在效率低、准确率低、易受主观因素影响等问题。涡流检测利用电磁感应来判断钢表面或近表面的缺陷。当涡流通过缺陷区时,检测线圈会感受到涡电流的变化量,从而对缺陷处进行测定。漏磁检测是通过在钢材表面施加磁场,并通过传感器接收磁通和磁感线走向变化的一种方法。红外检测技术基于热力学原理,通过区分钢材表面和缺陷处的温度差异来识别缺陷位置。激光扫描检测通过将激光束反射至钢材表面进行扫描,结合光电转换技术来识别缺陷信息。这些方法(如涡流检测、红外检测、漏磁检测、激光扫描等) 虽然能够提高检测效率,但设备成本高、操作复杂,且对缺陷类型和位置的识别能力有限。
近年来,机器视觉技术在表面缺陷检测领域得到了广泛应用,主要分为两类:传统的图像处理方法[2]和基于深度学习的缺陷检测方法。传统的图像处理方法首先利用高分辨率工业摄像头和专业光源采集图像,然后进行噪声滤除、图像增强等预处理,并应用边缘检测等方法进行图像处理。最后,利用模式识别和机器学习算法进行图像分析,以判断材料表面是否存在缺陷以及缺陷的类型、位置和严重程度。与早期方法相比,基于图像处理的缺陷检测技术减少了人为因素的影响,提高了检测效率和缺陷识别准确率。但该方法也存在设备通用性低、对光源环境和图像采集设备要求高、使用和维护成本高昂等问题。钢材表面缺陷检测方法的分类框架如图 1 所示。
2 深度学习算法及其改进
随着人工智能技术的快速发展,深度学习因其在不同环境和检测对象下展现出的良好鲁棒性和泛化性,逐渐被应用于材料缺陷检测任务中。基于深度学习的缺陷检测算法主要利用目标检测技术来完成钢材表面缺陷检测。目前,常见的深度学习算法可以根据工作原理和设计结构分为两类:单阶段目标检测算法和两阶段目标检测算法。单阶段目标检测算法可以直接生成表面缺陷的位置、类别及其计算概率,代表算法有 YOLO 系列[3]和 SSD[4]。两阶段目标检测算法需要先得到一个候选框,然后对框内目标进行深度定位和分类,代表算法有 Faster R-CNN[5]和Mask R- CNN[6]。对比发现,单阶段目标检测算法的测试速度更快,但精确性相对较低;两阶段目标检测算法则具有更高的检测精度,但检测速度较慢。下文将首先介绍常用的数据集和评价指标,然后解析两类代表性算法及其改进成果。
2.1常用数据集及评价指标
1)NEU-DET数据集。NEU-DET数据集是目前应用最广泛的钢材表面缺陷检测数据集。该数据集包含1800张尺寸为200×200的灰度图像,主要分为六大类缺陷:轧制氧化皮(ROLLED_IN_SCALE)、斑块(PATCHES)、开裂(CRAZING)、点蚀表面(PITTED_SURFACE) 、内含物(INCLUSION) 和划痕(SCRATCHES),每类300张。除明确指出的数据集外,本文后续研究均以NEU-DET数据集作为目标检测对象。部分图像如图2所示。
2)Severstal数据集。Severstal数据集由谢韦尔钢铁公司提供,包含12568张尺寸为1600×256的图像,涵盖4种缺陷,每张图像可能包含1~4种缺陷。
3)评价指标。钢材表面缺陷检测模型常用的性能评价指标包括平均精度(mAP)和每秒帧数(FPS),其计算公式分别为:
式中:AP表示P-R曲线和坐标轴所围成的面积,其中精确率P和召同率R分别作为纵轴和横轴;Fra-meNum表示投入缺陷检测的图像总数;Processing-Time表示缺陷检测所需总时问。除此之外,常用的评价指标还包括每秒10亿次浮点运算量(GFLOPs)和参数量(Params)等。
2.2单阶段目标检测算法及其改进
1)YOLO。YOLO算法是一种端到端的实时目标检测技术,能够综合执行检测、分割和实时追踪任务,具有较高的检测速度和准确性。YOLOv8网络模型在YOLOv5的基础上进行了优化,由Backbone、Neck和Head三部分组成。在Backbone和Neck部分,除了引入SPPF(Spatial Pyramid Pooling with Features)模块外,均采用了CSP(Cross Stage Partial)设计,并使用更丰富的C2f结构代替YOLOv5中的C3模块,同时针对不同规模的模型调整了通道数量。
Head部分的改动最为显著,原有的耦合头结构已被日前主流的解耦头结构所取代,将分类头和检测头分离,并从Anchor-Based转变为Anchor-Free,训练过程不再依赖先验框。这一改变进一步提升了模型的性能。YOLOv8包括YOLOv8 n/s/m/l/x五个版本,其中YOLOv8n是系列中参数最少的版本,具有较小的模型体积和较低的计算需求,适合在边缘设备上运行,满足钢材表面缺陷检测的工业场景需求。因此,本文重点关注对YOLOv8n的改进。YOLOv8n的网络结构如图3所示。
基于YOLOv8n算法,研究者们提出了多种改进方法,以进一步提升钢材表面缺陷检测的性能。以下是几种典型的改进算法及其特点:
①MCB-FAH-YOLOv8。崔克彬等提出了一种MCB-FAH-YOLOv8算法,该算法在基线模型的Backbone中增加了MCB(Modified CBAM),它是一个改进后的CBAM(Convolutional Block Attention Mod-ule),以增强密集目标信息的提取能力。同时,将SPPF模块替换为YOLOv6 v3.0中的SimCSPSPPF模块,在保持相似速度的同时提升了检测精度。此外,将Neck部分的FPN结构更换为BiFPN结构,解决了不同层语义差异的问题。最后,在Head部分设计了四头白适应特征融合ASFF检测头,提升了检测微小日标的精度。该算法的mAP达到了81.8%,比基准模型提高了3.4%,在检测精度上有所提升,但牺牲了部分速度。
②YOLOv8-RDP。刘昱等提出了一种YO-LOv8-RDP算法,通过将基线模型中的C2f模块替换为RepNCSPELAN4模块,增强了模型的特征提取能力。同时,引入可变形注意力机制(DA)到主干网络中,以提升模型的精确性。最后,对检测头部分进行了优化,采用了PConv结构,有效减少了模型参数,降低了计算复杂度。在数据集上,该模型的mAP达到78.8%,相比基线模型提升了1.8%。其参数量为1.87M,GFLOPs为3.5G,分别较基线模型降低了37.9%和57.0%。经过改进的模型在保持高精度的同时,对计算资源的需求明显降低,适合部署在计算资源有限的设备上。
③STC-YOLOv8。黄奥国等提出了一种STC-YOLOv8算法,该算法将Backbone的Conv替换为SAConv,使卷积核在弥补小目标特征提取能力不足的同时,获得更大的感受野。此外,该算法将Neck部分的upsample方法替换为CARAFE(Content-Aware Re-Assembly of Features),具有计算快、感受野大的特点。最后,在Head部分引入RepDetect模块,利用其重参数化的多分支特征提取机制,增强模型对目标与背景之间的辨别能力。在数据集上的mAP为82.4%,较基线模型提升了3.8%,但参数量增加了1.4M,FPS减少了18.75%,实时检测能力有待提高。
④YOLOv8n-MDC。彭菊红等提出了一种Y0-LOv8n-MDC算法,该算法在主干网络中加入多尺度交叉融合网络(MCN),优化了非相邻层次特征的融合效果。同时,将基线模型中的C2f调整为DCN-C2f,结合可变形卷积的思想,自适应地调整卷积核的几何形状及其在特征图上的位置。最后,在Neck部分加入CA通道注意力机制,在保持轻量级网络的基础上,更有效地关注关键特征信息。数据集上的mAP达到了81.0%,比基准模型提高了4.2%。该算法检测速度快,精度较高,参数量增加有限,但对裂缝和氧化皮的识别精度仍有不足。
2) SSDo SSD(Single Shot MultiBox Detector)是一种经典的缺陷检测网络,其结构由四部分组成:基于VGG16修改的主干网络、增设的提高检测精度的特征层、去掉全连接层的目标检测层(将更多注意力集中到周围信息)和NMS(Non-Maximum Suppression)筛选层(消除重复的检测框)。SSD的多尺度特征图设计和前置验框的引入,有助于不同尺度目标的检测。同时,多任务学习的方式使得分类和回归两任务可以得到联合优化,从而更快速、准确地进行目标检测。SSD300的总体结构如图4所示,而SSD512的网络结构仅增加了一个卷积层,因此不再赘述。
对SSD算法进行改进以专门用于钢材表面缺陷检测的研究较少,但可以通过扩展到小目标缺陷检测领域进行对比分析。以下是几种改进SSD算法的研究:
①LT-SSD。杨月川等提出了一种LT-SSD算法,使用融人空间注意力机制的Transformer模块替换原模型主干网络中的最后5个卷积层,结合特征融合模块,让局部的小目标缺陷与整体图像联系更加紧密。由于优化后的Transformer模块使计算量增加、降低检测速度,设计了L-Involution卷积取代标准卷积,并重新构造轻量化的L-Transformer模块,将二者结合组成了LT-SSD的主干网络。实验结果显示,该算法的mAP达到72.86%,较原有算法提升4.19%。FPS从29.77上升至37.34,更适合在实际生产制造过程中部署使用。
②改良SSD用于风电叶片缺陷检测。郭贺针对风电叶片内腔缺陷检测提出了一种改良的SSD算法,将基础框架从VGG-16更换为ResNetl01,增强了特征提取能力和模型的泛化性能,同时加快运算速度,减少资源占用,并降低参数和计算负担。此外,在原有SSD中引入全卷积空间注意力模块(FCSE),提升了检测精度,最后,在损失函数中加入超参数控制平滑区间,加强了模型的稳定性。在收集标注的数据集上,改进模型的mAP达到83.6%,高于原SSD(74.2%)9.4个百分点。 ③改进SSD用于手机盖板玻璃缺陷检测。唐孝育等针对手机盖板玻璃表面缺陷检测提出了一种改进SSD模型。该模型使用改进的ResNet50模块,并引入膨胀卷积(Dilated Convolution)以获得多尺度感受野,同时加入通道注意力机制SeNet,防止缺陷被噪声等无用信息抑制。在自制的数据集上进行实验,改进模型的mAP达到76.78%,较原SSD算法提升1.86个百分点。不过,该研究并未考虑模型的轻量化设计,实时性能有所降低。