1. 引言
近年来人工智能技术的快速发展,缺陷检测系统在工业生产中的应用越来越广泛[1]-[4]。在带钢生产过程中,其表面质量监控作为核心工艺环节,通过深度学习目标检测算法实现智能化缺陷识别已成为主流技术路线。然而,当前基于深度学习的检测系统面临显著的实施瓶颈:一方面,高精度检测模型需要大规模标注数据进行监督训练,其参数的量级与计算复杂度通常较高;另一方面,工业现场部署的终端检测设备计算力受限,难以直接承载复杂模型的实时推理需求。这种模型规模与硬件资源之间的矛盾,构成了带钢表面质量检测领域亟待突破的关键技术挑战。因此,在保障检测精度的前提下,实现模型轻量化与计算效率的提升,成为推进工业智能检测系统实用化的重要研究方向。
2. 研究背景及相关工作
2.1. 背景介绍
当前主流的目标检测算法可分为两阶段的RCNN [5]、Fast RCNN [6]、Faster RCNN [7]-、Mask RCNN [10]算法,一阶段的SSD [11]、YOLO [12]算法,以及基于Transformer的目标检测算法DETR [13]。两阶段方法通过候选框生成与特征精修的两阶段处理实现高精度检测,但候选框筛选机制牺牲了部分推理速度;单阶段框架采用端到端回归思想整合定位与分类任务,显著提升实时检测性能;DETR模型则将检测任务转化为对象查询问题,通过并行解码机制突破传统滑动窗口范式,在检测效率与架构扩展性方面展现独特优势。
为解决主流的目标检测模型在计算资源有限的终端检测设备上的部署问题,蔡剑锋[14]等人将MobileNet引入Mask RCNN目标检测框架中,将MobileNet作为骨干特征提取网络,有效的降低模型参数量和计算量。Zhou [15]提出YOLOv5s-GCE轻量级带钢表面缺陷检测模型,引入了Ghost模块和CA (CoordinateAttention)注意力机制,在不影响检测精度的情况下减小了模型的体积和计算量。Yang [16]等人提出改进的CBAM-MobilenetV2-YOLOv5模型,同时引入MobilenetV2模块和CBAM (Convolutional Block Attention Module)注意力模块,得到更加轻量的带钢表面缺陷检测模型。随后,张政超[17]对YOLOv5进行了改进,使用了更加轻量的Shuffle Netv2作为骨干网络,降低了模型的复杂度,在检测速度方面具有一定的优势。Qin [18]等人提出EDDNet轻量级带钢表面缺陷检测算法,引入了EfficientNet作为骨干特征提取网络,有效的减少了计算开销。近年来,阎馨[19]等人改进的SSD算法引入了Involution算子和Transformer多头注意力模块,在提升模型检测精度的同时降低了计算资源的使用。以上研究对计算量庞大的目标检测模型做了一定的轻量化处理,有一定的启发意义。尽管现有研究在模型轻量化方面取得显著进展,但仍存在特征表征不足、多尺度检测能力有限等瓶颈问题。针对带钢表面缺陷检测的特殊需求,本文基于YOLOv8架构提出三点创新:(1) 引入全局注意力机制(GAM)增强特征表达能力;(2) 加入P2层级小目标检测层优化多尺度信息融合;(3) 提升算法对钢材表面缺陷等低分辨小物体的检测能力。
2.2. YOLOv8算法结构与工作原理
YOLOv8算法由Glenn-Jocher提出,是跟YOLOv3算法、YOLOv5算法一脉相承的,YOLOv8整体的网络结构由图1所示。
Figure 1. Overall structure diagram of YOLOv8
图1. YOLOv8整体结构图
主要的改进点如下:
(1) 数据预处理。YOLOv8延续了YOLOv5的数据预处理范式,在模型训练阶段实施多模态数据增强机制。其核心方法包含:采用马赛克增强(Mosaic)实现图像拼接扩增,运用混合增强(Mixup)进行跨样本特征融合,通过随机透视变换(Random Perspective)增强空间几何鲁棒性,以及利用HSV颜色空间扰动提升模型对光照变化的适应性。该增强体系有效扩展了训练数据的分布多样性。
(2) 骨干网络结构。YOLOv8的骨干网络结构继承并发展了YOLOv5的核心思想,通过层级化特征提取实现多尺度信息捕获。基础结构采用步长为2的3 × 3卷积进行下采样,配合特征强化模块构建深层语义表征。与YOLOv5的C3模块相比,YOLOv8创新性地引入C2f模块,通过增加并行分支数量形成更丰富的梯度传播路径,使特征学习过程具备更强的多流形表达能力,模块深度参数依据模型规模动态调整(基础配置为3/6/9/3)。
(3) FPN-PAN结构。YOLOv8仍采用FPN+PAN结构来构建YOLO的特征金字塔,使多尺度信息之间进行充分的融合。与YOLOv5的主要区别在于,FPN-PAN结构中的C3模块被替换为新型C2f模块,在保持原有特征融合机制的基础上,进一步强化了跨尺度特征的表达能力,其余层级结构与YOLOv5保持兼容。
(4) Detection head结构。YOLOv3至YOLOv5采用耦合检测头,通过单层卷积同步完成分类与定位任务。YOLOX首次引入解耦检测头后,YOLOv8延续了这一创新设计,采用双分支并行结构分别处理类别特征与位置特征。具体实现中,类别分支通过1 × 1卷积进行语义空间映射,位置分支则专注于坐标回归计算,这种解耦机制显著提升了检测任务的专项处理能力。
3. 改进YOLOv8的钢材表面缺陷检测算法
3.1. 加入GAM注意力机制
注意力机制的神经网络模块,称为GAM (Global Attention Module)。这个模块结合了通道注意力和空间注意力,用于增强图像特征的表示能力。这两种注意力机制的原理如下。
通道注意力:通道注意力机制用于调整输入特征图的每个通道的重要性。在这个模块中,通过两个全连接层对输入特征图的通道维度进行线性变换和激活操作,从而得到每个通道的注意力权重。全连接层的作用是将每个通道的特征进行线性变换,以学习每个通道在特定任务中的重要性。通过ReLU激活函数对线性变换的结果进行非线性处理,以保留特征的非线性关系。最后,通过Sigmoid激活函数将注意力权重归一化到[0, 1]范围内,以表示每个通道的重要性。具体模块结构图如图2所示。
Figure 2. Channel attention module structure diagram
图2. 通道注意力模块结构图
空间注意力:空间注意力机制用于调整输入特征图的每个空间位置的重要性。在这个模块中,通过两个卷积层对输入特征图进行卷积操作,从而得到每个空间位置的注意力权重。第一个卷积层对输入特征图进行卷积操作,提取空间信息。通过Batch Normalization对卷积结果进行归一化处理,以加速收敛和提高模型的泛化能力。通过ReLU激活函数对归一化后的卷积结果进行非线性处理,以保留特征的非线性关系。第二个卷积层对非线性处理后的结果进行卷积操作,得到最终的空间注意力权重。最后,通过Sigmoid激活函数将注意力权重归一化到[0, 1]范围内,以表示每个空间位置的重要性。具体模块结构图如图3所示。
Figure 3. Spatial attention module structure diagram
图3. 空间注意力模块结构图
综合通道注意力和空间注意力,GAM模块能够动态地调整输入特征图的每个通道和每个空间位置的重要性,从而增强了特征的表示能力,有助于提升图像处理任务的性能。
3.2. 加入P2小目标检测头
在YOLOv8模型中,原本有P3、P4和P5层分别负责检测小、中、大目标,目标检测任务便是在这三个不同尺度的特征图上进行的。但对于分辨率较小的目标而言,8倍下采样所得特征图的感受野仍然过大,这有可能导致部分小目标的位置信息和细节丢失。为了解决目标漏检的问题,对模型的Head结构进行改进,在原有三个检测头的基础上,增加一个专门用于检测微小目标的检测头。
4. 实验与结果分析
4.1. 实验准备
4.1.1. 数据集
NEU-DET钢材缺陷数据集由1800幅工业检测场景下的灰度图像构成,其中训练样本1440张,测试集与验证集各含180张。图像依据表面缺陷类型划分为6个种类,包含裂缝(Crazing)、夹杂物(Inclusion)、斑块(Patches)、点蚀表面(Pitted-Surface)、氧化皮(Rolled-in-Scale)和划痕(Scratches)。该数据集遵循均衡化采样原则构建,各类缺陷样本数量呈均匀分布,为钢材表面质量检测算法研究提供了标准化的基准测试平台。
4.1.2. 实验环境与参数设置
在ubuntu20.04系统中采用PyTorch深度学习框架搭建网络,处理器为11thGen Intel(R) Core(TM)i7-11700KF @3.60HGz。显卡为NVIDIA GeForceGTX 4060Ti,PyTorch版本为3.9,CUDA版本为11.3。本实验整个训练过程有200epoch,优化器为SGD,初始学习率为 0.01,动量为0.98,权重减因子为0.001,batchsize为16。
4.1.3. 评价指标
实验使用Precision,recall,mAP作为评价指标。
(1) Precision。用来衡量模型在所有被分类为正类的样本中,真正属于正类的样本所占的比例。计算公式为:
(1)
其中:TP表示待检目标被正确的检测到,FP表示非待检目标被视为正确的检测。
(2) recall。来衡量模型在所有实际正类样本中成功识别为正类的比例。计算公式为:
(2)
其中:TP表示待检目标被正确的检测到,FN为缺陷没有被检测框检测到的。
(3) mAP。反映所有类别的识别平均准确率均值,计算公式为:
(3)
其中:c为图像总类别数,i为检测次数,AP为单一类别的识别平均准确率。
此外,在不同阈值条件下,mAP会有不同的形式,一般在目标检测中以mAP@0.5这个指标最为常见。
mAP@0.5:全称是mean Average Precision (IoU = 0.5),即将IoU设为0.5时,计算每一个类别下所有图片的平均AP,即mAP。
4.2. 实验结果
4.2.1. 消融实验
在保证各项环境及参数设置均不变的情况下,分别对原YOLOv8算法和改进后的算法进行消融实验,消融实验的结果见表1。
Table 1. Ablation results
表1. 消融实验结果
Modle |
Pre |
Recall |
mAP@0.5 |
mAP@0.5:0.95 |
YOLOv8x |
0.895 |
0.879 |
0.942 |
0.711 |
YOLOv8x + GAM |
0.912 |
0.897 |
0.954 |
0.729 |
YOLOv8x + P2 |
0.909 |
0.904 |
0.955 |
0.734 |
YOLOv8x + GAM + P2 |
0.92 |
0.912 |
0.963 |
0.746 |
在原算法的基础上加入GAM注意立机制之后,可以从一定程度上的提高模型的性能,使得模型可以对感兴趣区域进行准确的捕获,其中Precision提高到了0.912,recall提高到了0.897,mAP@0.5提高到了0.954,mAP@0.5:0.95提高到了0.729。但是依然存在不足,精准性不够。为了解决精准性的问题,引入改进点2。可以看到,通过加入了P2检测头,可以更好的多尺度信息融合,提高了物体检测性能。最终,在结合这两个改进点后,模型性能有着显著的提升。相比于原算法,Precision提高了2.5%;recall提高了3.3%;mAP@0.5提高了2.1%;mAP@0.5:0.95提高了3.5%。
4.2.2. 改进前后的算法训练结果图
以下就是改进前和改进后的算法训练结果图,如下图4、图5所示。由图中数据比较可以看出,改进后的YOLOv8算法mAP@0.5值由94.2%提升到96.3%,提升2.1个百分点。其中裂缝值从85.1%提升到90.8%,提升了5.7个百分点,氧化皮类AP值由93.9%提升到97.6%,提升了3.7个百分点。斑块类AP值从90.3%提升到93.1%,提升了2.8个百分比。
Figure 4. Original YOLOv8 algorithm training results
图4. 原YOLOv8算法训练结果图
Figure 5. Training result graph after improving YOLOv8 algorithm
图5. 改进YOLOv8算法后训练结果图
4.2.3. 改进前后的算法效果图
以下就是改进前和改进后的算法效果图,如下图6所示。
Figure 6. Comparison between YOLOv8 algorithm and the improved algorithm
图6. YOLOv8算法和改进算法后的训练效果图对比
通过效果图可以看出,该算法在改进后一方面识别准确率得到提升,另一方面小目标检测效果也有所改善,所以可见改进后的模型能够更准确地定位和识别缺陷,提高检测的准确性。
5. 结语
针对当前钢材表面质量检测领域存在的精度不足与检测效率瓶颈问题,本研究创新性构建了基于增强型YOLOv8算法的缺陷识别模型,在维持检测精度的同时满足实时性检测需求。算法改进包含两个核心维度:首先引入GAM注意力机制,通过通道注意力与空间注意力的协同作用,强化图像特征的多维度表征能力;其次加入P2小目标检测头以增强小目标检测能力,实现多尺度缺陷特征的深度融合。实验验证表明,改进模型在钢材表面缺陷识别任务中展现出显著的性能优势,有效提升了检测系统的综合效能。尽管改进模型已展现性能提升,但后续研究仍可针对精度优化展开深入探讨,通过进一步挖掘特征表达潜力与模型架构优化,推动工业检测技术的持续发展。
基金项目
江苏省研究生科研与实践创新计划项目XSJCX23_40。