APP下载

基于BCGS-YOLOv7 tiny 的零件表面微小缺陷检测*

2023-10-24苏工兵曾文豪

制造技术与机床 2023年10期
关键词:特征提取注意力卷积

袁 梦 苏工兵② 王 晶② 曾文豪②

(①武汉纺织大学机械工程与自动化学院,湖北 武汉 430200;②湖北省数字化纺织装备重点实验室,湖北 武汉 430200)

工业零件制造和生产中存在一些大小、形状、种类各异的表面缺陷,尤其是形态多变的微小缺陷,既影响了产品质量,也难以察觉。用传统检测方法[1-2]检测起来耗时费力,还难以做到实时精确检测。近年来,随着对小目标检测[3-5]领域的研究越来越深入,YOLO 系列[6-9]目标检测算法为开展这类研究提供了广阔的应用前景,不少研究者在此基础上进行了表面缺陷检测算法的相关研究。刘亚姣等[10]提出1 种基于可变形卷积与多尺度-密集特征金字塔的型钢表面缺陷检测算法——Steel-YOLOv3。付思琴等[11]提出1 种基于改进YOLOv4 的焊接件表面缺陷检测算法,使用了轻量级网络 GhostNet 替换YOLOv4 的主干特征提取网络(Backbone)CSPDarknet53,并在 GhostNet 网络结构中嵌入改进的通道注意力机制。李鑫等[12]提出1 种改进YOLOv5的钢材表面缺陷检测算法,使用GhostBottleneck 结构替换原YOLOv5 网络中的C3 模块和部分卷积结构,在BackBone 部分引入 SE 注意力机制;在网络中增加1 个检测层,并在Neck 部分增加特征融合结构,使用DW 卷积替换部分标准卷积。这些改进后算法的检测平均精度和检测速度都获得了相应提高,但存在一些不足,特别是对于零件表面形态各异的众多微小缺陷来说,这些算法的检测精度和推理速度远不及预期,无法满足准确度与实时性的识别需求。

针对上述问题,提出BCGS-YOLOv7 tiny 检测网络,通过对原YOLOv7-tiny 算法的特征提取网络和特征融合网络进行改进,增加针对小目标的检测模块,从而增强零件表面各种微小缺陷的识别精度,同时也能平衡好检测速度以满足实际检测的需求。

1 数据集构建

原始数据集采用GC10-DET 公开数据集,共2 294张灰度图像,分辨率为 2 048×1 000。为了检验算法对微小缺陷的检测性能,经实验比较分析,将数据集中明显检测精度较高的冲孔、月牙弯和面积较大的丝斑、水斑、腰部折痕这5 类缺陷删除。其余的折痕(crease) 、 油斑( oil_spot) 、 夹杂物(inclusion)、凹坑(rolled_pit)和焊缝(welding_line)这5 类缺陷因面积微小、形态复杂异形,缺陷尺寸大小占比均不到5%,甚至夹杂物的尺寸大小占比不足1%,采用YOLO 系列原始架构难以达到相应精度。为此,以余下5 种微小缺陷的1 823张图像为基础,通过labelimg 对图像重新标注,并采用倒置、镜像、增强亮度、高斯模糊及仿射变换的数据增广方式增加样本量,同时均衡样本,得到9 000 张图像及对应标签,作为最终进行实验对比的数据集。5 种缺陷的图像标注示例如图1 所示。

图1 5 种缺陷示例图

2 BCGS-YOLOv7 tiny 算法

YOLOv7-tiny 算法是基于YOLOv7[13]算法的精简版本,它采用级联的模型缩放策略,在保证检测精度的前提下,实现了更少的参数量和更快的检测速度,符合缺陷检测的实际应用需求。为了提高微小缺陷实时检测的精度和速度,在YOLOv7-tiny 算法架构的基础上,通过在特征提取阶段增加CBAM注意力机制,并用SPD-Conv 下采样层代替原网络的跨步卷积以及最大池化层;在特征融合阶段将路径聚合特征金字塔(PAFPN)网络替换为BPANet网络结构,并在BPANet 网络深层特征的传递通路增加gnCSP 模块,同时用SPD-Conv 下采样层替换跨步卷积,增强网络对微小缺陷的检测能力。重构的BCGS-YOLOv7 tiny 检测网络结构如图2 所示。图中的ELAN 模块和SPPCSPC 模块都在YOLOv7网络对应模块的基础上进行了精简与优化。

图2 BCGS-YOLOv7 tiny 网络结构图

2.1 增强网络特征提取能力

重构的缺陷数据集经过原YOLOv7-tiny 的特征提取网络后,特征图尺寸最小会缩小为原图像的1/32,小目标的特征信息会严重丢失,导致原网络对这些表面缺陷的检测精度不高。因此,在特征提取阶段将原网络进行改进,通过增加CBAM 注意力机制,并用SPD-Conv 下采样层代替跨步卷积和最大池化层,增强算法在特征提取阶段对小目标特征信息的保留与关注,提升小目标的特征提取性能。

2.1.1 CBAM 注意力机制提升微小缺陷关键特征的敏感度

为了使特征提取网络更好地提取微小缺陷的关键特征,引入CBAM 注意力机制[14],通过对输入特征在空间和通道两个维度重要程度的学习,优化特征融合网络输入端的特征,提升后续特征融合网络性能。

CBAM 模块包含 channel attention module (CAM模块)和 spatial attention module (SAM 模块)等两个部分,总体结构如图3 所示。图中⊕表示对应元素相加操作,⊗表示哈达玛积操作。

图3 CBAM 模块结构图

通道注意力模块利用特征图通道之间的关系来生成通道注意图。首先将特征提取所得的特征图FRHW×C在channel 维度通过平均池化和最大池化操作生成两个C维向量,再将两个向量分别通过共享MLP 结构,生成大小为C×1×1 的通道注意力映射。将两个映射进行逐元素求和,最终得到每个通道的权重值。通道注意力计算如式(1)~式(3)所示。

式中:AvgPool表示平均池化操作;MaxPool表示最大池化操作;MLP表示两层神经网络; σ表示sigmoid 激活函数。

空间注意力模块利用特征空间之间的关系生成空间注意图。将经过通道注意力模块优化后的特征F′∈RHW×C作为空间注意力的输入特征,沿通道轴应用平均池和最大池操作得到两个H×W×1 的特征图,再将它们拼接起来组成一个H×W×2 的特征图。接着运用一个卷积核大小为7×7 标准卷积层进行卷积,产生最后的二维空间注意力映射。空间注意力计算如式(4)所示。

给定输入特征F∈RHW×C,CBAM 依次对其进行通道注意力映射和空间注意力映射,整个注意力机制添加的过程如式(5)所示。

式中:F表示输入特征图;F'表示经过通道注意力映射后的特征图;F''表示经过空间注意力映射后的特征图;Mc表示通道注意力操作;Ms表示空间注意力操作; ⊗表示哈达玛积操作。

2.1.2 SPD-Conv 下采样层避免小目标特征信息的丢失

为了避免小目标的特征信息在特征提取降低分辨率的过程中丢失,引入SPD-Conv 下采样层[15]替换特征提取网络中的跨步卷积和最大池化下采样操作,SPD 结构能够在保留通道维度的所有信息的前提下对特征图进行下采样,对微小缺陷的精准识别意义重大。

SPD-Conv 下采用层由SPD(space-to-depth)层和非跨步卷积层(Conv)构成。

SPD 操作将大小为N×N×C1的特征图M切分为4 组子特征图,子特征图按宽高分别为1/2 的比例对M进行抽样:在特征图M上按2×2×C1的尺寸划分出小网格,将每块网格(0,0)、(1,0)、(0,1)、(1,1)位置的特征向量分别组成4 个大小为N/2×N/2×C1的子特征图,并按顺序在channel 维度拼接起来。通过以上操作将特征图M(N,N,C1),转换为中间特征图M′(N/2,N/2, 2C1)。

SPD 操作得到中间特征图后,连接一个带有C2个大小为1×1 的卷积核的非跨步(即stride=1)卷积层,其中C2<2C1。使用非跨步卷积核能够尽可能保留特征图所有的细节信息,与小目标检测的目标相符,且使用大小为1×1 的卷积核比使用大小为3×3 的卷积核计算量更少,更加节约运算成本。SPD-Conv 层的运算过程示意图如图4 所示。

图4 SPD-Conv 下采样层运算示意图

2.2 改善特征融合网络性能

2.2.1 BPANet 网络加强小目标的特征融合

YOLOv7-tiny 的特征融合网络沿用YOLOv5系列路径聚合特征金字塔(PAFPN)网络架构,该结构浅层特征需要通过较长的通路才能到达输出端与检测头连接,因此浅层小目标的重要特征会逐步丢失,影响检测效果。本研究借鉴BiFPN 网络[16]的思想,提出了BPANet 特征融合网络结构。首先保持原网络自上而下和自下而上的传递通路,在横向同一尺度的浅、深层特征之间增加一条跳跃连线实现特征的再一次融合,使得网络的输出节点能够保留浅层小目标的重要信息,并结合三种不同深度特征的优点,增强微小缺陷特征的表达。具体结构如图5 所示。

图5 BPANet 结构图

此外,BPANet 网络的每个输出节点都进行了可学习的参数加权,对不同特征的表达进行增强或抑制,该方法能够减轻由于多个目标重叠而导致识别不准确的问题。图中P3~P5是特征提取网络不同尺度的特征输入,每个输出节点的数学表达式见式(6)~式(11)。

式中:Conv表示卷积操作;Pin表示浅层输入节点的特征;Ptd表示中间输出节点的特征;Pout表示深层输出节点的特征; ωi为每条路径上的权重; δ为防止数据不稳定的极小值,设置为 0.000 01。

2.2.2 gnCSP 模块进行高阶空间交互

在深度模型中,由于大多数运算是非线性的,两个空间位置之间存在复杂且往往是高阶的相互作用。Rao Y M 等[17]提出的递归门控卷积能够高效实现任意阶空间的相互作用,因此能够获取特征与其邻近区域之间内在的联系,对于区分微小缺陷目标与背景意义重大。

高阶递归门控卷积(gnConv)的运算过程如式(12)~式(14)所示,首先将输入的特征M进行线性投影后channel 产生相应的变化,在channel维度切分后得到特征x0,y0,···,yn-1,再将获取的特征依次输入到门控卷积中进行递归运算。最后,将最终递归输出的结果yn输入到一个投影层。递归运算的过程示意图如图6 所示。

图6 gnConv 运算示意图

式中: φin表示对输入特征的投影变换操作;表示点积操作; 1/α表示每次运算的输出特征按照 1/α进行缩放使训练更平稳;gk是运算过程中保证维度相同的维度映射函数。

为了提升检测头的准确度,并用尽可能低的计算量和占用内存产生更优的效果,本研究以递归门控卷积为基础设计了gnCSP 模块,具体结构如图7所示。设gnCSP 模块的输入为x,输出为F(x),将输入特征分为两个分支,一个分支直接进行gnConv操作,另一个分支依次经过gnConv和两个以gnConv和MLP 结构为主体的残差结构,最后将两个分支拼接起来再次进行gnConv操作。gnCSP 模块将浅层细节特征与深层抽象特征结合在一起,能够增加特征的重复利用率,在一定程度上避免了信息传递时特征的丢失。在连接输出端的特征传递通路中添加gnCSP 模块,有助于挖掘不同特征更加深层的内在联系,使输出特征更加优质,提升后续检测头的准确度,以较低的计算成本获得更优秀的检测性能。

图7 gnCSP 模块结构图

2.2.3 SPD-Conv 下采样层提升小目标检测性能

为了提高零件表面微小缺陷的检测效果,在特征融合网络也引入了SPD-Conv 下采样层,用该模块替换特征融合网络深层特征传递通路中的跨步卷积层,避免丢失小目标的特征信息,提升对小目标的检测能力。

3 实验对比与分析

3.1 实验配置与评测标准

从重构的零件表面缺陷数据集9 000 张图片中随机抽取训练集、验证集和测试集,比例为8∶1∶1,即训练集7 200 张,验证集900 张,测试集900 张。实 验 采 用 的 硬 件 配 置 为 Intel Core i9-10900@2.80 GHz 处理器,显卡为 NVIDIA GeForce RTX 3070Ti 8GB。 软 件 环 境 为 CUDA11.6 和cuDNN8.3.2,操作系统为 Ubuntu18.04。网络模型基于 Pytorch 框架搭建,python 版本为 3.8,pytorch版本为 1.12.1。本研究参考齐向明等[18]的参数设置,将 batch size 为 16,将epoch 设置为200,初始学习率为 0.01,最低学习率为0.000 1,动量为0.937,权重衰减系数为 0.000 5。通过对数据集具体缺陷目标及其标注框特点的分析,将非极大值抑制的IoU阈值设置为 0.65。

为评价算法模型的有效性,采用精确率(precision, P)、召回率(recall, R)、均值平均精度(mAP)、模型计算量(FLOPs)和模型参数量(number of participants)5 个指标作为模型的评估指标。

P、R的表达式分别如式(15)、式(16)所示。

式中:TP为真正例;FP为假正例;FN为假负例。

P-R曲线以召回率R为横轴,精确率P为纵轴构成,该曲线是对不同置信度阈值下精确率和召回率的直观图像表示。AP是P-R曲线下的面积,反映精确率与召回率的综合性能,表达式如式(17)所示。

mAP@0.5 是在交并比(IoU)阈值为0.5 的情况下,所有类别AP值的平均数,该指标能够衡量模型的整体性能,表达式如式(18)所示。

式中:n为类别个数。模型计算量用来评估模型的复杂度,模型参数量用来评估模型的体量。

训练过程中训练集和验证集的损失曲线如图8所示,从图中可看出BCGS-YOLOv7 tiny 网络在迭代200 个epoch 的过程中分类损失、置信度损失和定位损失最终都能收敛于非常小的数值,达到实验预期。

图8 损失曲线图

3.2 实验结果分析

3.2.1 单个模块实验分析

为了更加直观地展示所提方法在零件表面缺陷检测和识别方面的性能,本研究进行了对比实验,实验结果见表1。

表1 单个模块实验结果

由表1 可知,所提出的添加CBAM 注意力模块、SPD-Conv 结构、BPANet 特征融合网络和添加gnCSP 模块这4 种改进方法,独立使用均能够使mAP@0.5 值得到提升,且精确率和召回率平衡的效果更好。同时SPD-Conv 结构还能够有效降低计算量,提升检测效率。上述4 组对比结果表明,本研究提出的4 种方案均能提升零件表面微小缺陷的检测效果,使网络性能更加优越。

3.2.2 消融实验

为了验证4 种改进方案不同组合的改进效果及其有效性,在采用相同软硬件配置、相同参数设置的前提下,探究了原始YOLOv7-tiny 网络模型与添加 2 种、 3 种和4 种改进方案的不同优化效果,并进行对比实验,实验结果见表2。

表2 消融实验结果

由表2 可知:(1)第1 组实验为不使用任何改进方法的原YOLOv7-tiny 网络检测结果,作为后4 组实验的对比参照,mAP@0.5 值为85.6%。(2)第2 组实验运用CBAM 注意力机制和BPANet 网络两种改进方法,mAP@0.5 值提升了3.1%,对比使用单个改进模块效果都好,且模型计算量没有太大提升。(3)第3 组实验运用BPANet 网络和gnCSP两种改进方法,mAP@0.5 值提升了3.9%,精确率和召回率也得到明显提升。(4)第4 组实验运用CBAM 注意力机制、SPD-Conv 模块和BPANet 网络3 种改进方法,mAP@0.5 值为90.2%,优于第二组实验结果并且参数量和计算量都有所下降。(5)第5 组实验运用全部4 种改进方案,mAP@0.5 值以及精确率、召回率达到最高。由上述分析可知,4 种改进方案进行组合能够取得预想的改进效果,使网络对微小缺陷的检测效果得到大幅提升。

3.2.3 性能对比实验

将所提出的BCGS-YOLOv7 tiny 网络与原YOLOv7-tiny 网络以及YOLOv5s 网络进行对比实验,结果见表3。

表3 不同模型实验结果对比

由表3 中数据可知,BCGS-YOLOv7 tiny 网络对零件表面微小缺陷的识别精度大大优于其他网络,并且在精度和运算效率之间取得了较好的平衡。

为了进一步确定本算法对零件表面各类微小缺陷的检测效果,将YOLOv5s 算法、YOLOv7-tiny 算法与BCGS-YOLOv7 tiny 算法在各类缺陷上的检测精度(mAP@0.5)进行对比,结果如图9 所示。

图9 3 种检测算法精度对比图

由图9 可知,本研究算法对所有种类微小缺陷的检测精度均有上升,由此进一步证明本研究提出的网络模型对零件表面微小缺陷的检测具有突出效果,对于零件表面微小缺陷检测的实际应用具有重要意义。

改进前后的网络模型识别效果图如图10 所示,由图10 可知YOLOv5s 网络和YOLOv7-tiny 网络均存在漏检、误检、置信度较低、检测缺陷区域不准确等问题,BCGS-YOLOv7 tiny 模型对各类缺陷均有良好的检测效果,对于具有难度的微小缺陷检测与其他模型相比也有着更优的效果。

图10 3 种网络模型识别效果图

4 结语

以YOLOv7-tiny 网络架构为基础,提出了一种端对端的实时推理模型——BCGS-YOLOv7 tiny,通过在重构的零件表面微小缺陷数据集的实验表明,在特征提取阶段可有效增强对小目标的特征信息的保留与关注;在特征融合阶段,能够使浅层小目标的重要特征与深层特征得到更好的融合,提高输出端检测头的性能。BCGS-YOLOv7 tiny 网络模型在验证集中的mAP@0.5 值达到了91.6%,比原YOLOv7-tiny 网络提高了6.0%。模型参数量和计算量大大低于主流目标检测模型。该模型在检测准确度和检测速度上取得了较好的平衡,对零件表面微小缺陷检测具有重要的现实指导意义。

猜你喜欢

特征提取注意力卷积
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
基于Daubechies(dbN)的飞行器音频特征提取
基于傅里叶域卷积表示的目标跟踪算法
“扬眼”APP:让注意力“变现”
Bagging RCSP脑电特征提取算法
A Beautiful Way Of Looking At Things
基于MED和循环域解调的多故障特征提取
一种基于卷积神经网络的性别识别方法