基于改进YOLOv7的金属表面缺陷检测方法

2023-09-25 19:32冷浩夏骄雄
计算机时代 2023年9期
关键词:注意力机制

冷浩 夏骄雄

摘  要: 针对金属表面缺陷检测中不同缺陷之间存在相似性以及小目标缺陷的问题,提出一种基于改进YOLOv7的金属表面缺陷检测算法。首先通过构建更大的高效层聚合网络(V-ELAN)模块来有效增强网络对不同缺陷间差异较小的学习能力。其次在Neck部分结合空间通道双重注意力机制,提升对图像中小目标特征提取能力,减少无用特征的干扰;采用Alpha IOU损失函数替换原来的CIOU损失函数,加速网络收敛,提高网络的鲁棒性。最后引入深度可分离卷积,在降低网络的参数量和计算量的同时尽可能减少精度损失。结果表明,改进后的YOLOv7网络模型较原来YOLOv7网络模型提升了3.6%,且mAP达到79.0%,模型大小减少了4.4%,检测效果要优于原网络模型和其他主流目标检测网络模型。

关键词: 金属表面缺陷检测; YOLOv7; 小目标检测; 注意力机制; 损失函数

中图分类号:TP399          文献标识码:A     文章编号:1006-8228(2023)09-48-06

Metal surface defect detection method based on improved YOLOv7

Leng Hao1, Xia Jiaoxiong2

(1. School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China;

2. Committee of Shanghai Academy of Educational Sciences of the Communist Party of China)

Abstract: Aiming at the similarity between different defects and small object defects in metal surface defect detection, an improved YOLOv7-based metal surface defect detection algorithm is proposed. Firstly, a larger V-ELAN module is constructed to enhance the learning ability of the network for different defects. Secondly, in the Neck part, the dual attention mechanism of spatial channel is combined to improve the ability of feature extraction of small objects and reduce the interference of useless features. The Alpha IOU loss function is used to replace the CIOU loss function to accelerate the convergence of the network and improve the robustness of the network. Finally, the depth separable convolution is introduced to minimize the accuracy loss while reducing the number of parameters and computation of the network. The results show that the improved YOLOv7 network model is 3.6% higher than the original YOLOv7 network model, the mAP reaches 79.0%, the model size is reduced by 4.4%, and the detection effect is better than the original network model and other mainstream object detection network models.

Key words: metal surface defect detection; YOLOv7; small object detection; attention mechanisms; loss function

0 引言

在工業实际生产过程中,由于加工不当、设计偏差、环境恶劣以及其他因素导致产生的金属表面缺陷(如折痕、压痕、油斑、异物、冲孔等)往往是造成重大安全事故的元凶[1]。对金属表面缺陷的检测,传统的检测方法是人工检测,但由于人的劳动强度大、生产效率低以及对人员的专业知识要求高等原因,导致检测的效率大大折扣。因此,开发一种有效、准确的检测方法势在必行。

近年来,随着深度学习的发展,越来越多的研究将深度学习用在缺陷检测,并取得了不错的效果。目前,主要有以Faster RCNN[2]为代表的两阶段目标检测算法和以SSD[3]和YOLO[4]为代表的一阶段目标检测算法。Faster RCNN在精度上远超其他算法,但由于需要在候选区域筛选,导致速度上存在不足,而兼顾速度和精度的YOLO算法则为金属表面缺陷检测提供了更好的方案。程等人[5]对YOLOv3算法进行改进,利用将第11层浅层特征与网络深层特征进行融合的方式来对图片中的小缺陷目标进行检测,虽能更好地检测出小目标缺陷,但却忽略了不同缺陷之间存在相似性。方等人[6]提出一种更改损失函数和改进 k-means++聚类的YOLOv3算法进行了缺陷检测,却忽略了对小目标缺陷的改进。李等人[7]通过引入轻量型GhostNet网络代替YOLOv5主干网络中的残差模块,来减少网络的计算量和网络参数量,虽然速度得到了较大提升,但没有考虑不同缺陷之间存在相似性以及小目标缺陷的问题。

针对前人研究的不足以及存在的问题,本文以YOLOv7为基础,构建了V-ELAN模块来增强网络对不同缺陷间差异较小的学习能力,在neck部分结合空间通道双重注意力机制(ShuffleAttention,SA),提升对图像中小目标特征提取能力,并且采用alpha IOU损失函数替换原来的CIOU损失函数,加速网络收敛,最后引入深度可分离卷积(Depthwise Separable Convolution)降低网络的参数量和计算量。下面我们先简要介绍YOLOv7模型的相关理论基础,然后重点介绍V-ELAN模块和关键创新,最后通过对比实验和消融实验证明本文算法的有效性。

1 相关工作

1.1 YOLOv7-x网络结构

YOLO系列算法作为一阶段目标检测算法的代表,在速度和精度之间达到了非常好的平衡,YOLOv7[8]是当前YOLO系列中的最先进的算法,在速度和精度上都超过以往的YOLO系列,相比较于其他YOLO系列,YOLOv7通过采用更加高效的聚合网络ELAN、更加有效的标签分配方法、模型重参数化方法以及辅助头训练,在速度和精度上都远超同类检测器。YOLOv7网络主要包括输入端(Input)、主干网络(Backbone)、颈部(Neck)、预测头(Head)四个部分,Backbone部分主要由ELAN模块、CBS模块、MPConv模块组成。CBS模块由卷积层、BN层和SiLU激活函数组成,MPConv模块有两个分支,一个分支进行Max Pooling后再接一个卷积进行通道数调整,另外一个分支先接一个步长为2的3×3卷积进行宽高调整,后接一个卷积调整通道数,最后把两个分支进行concat连接,来提高网络的特征提取能力。ELAN模块主要借鉴VoVNet[9]和CSPNet[10]的思想,通过控制最大最长梯度路径,使网络能够学到更多的特征,具有更强的鲁棒性。

Neck部分整体架构和YOLOv4、YOLOv5一样,采用的是PAN结构,主要包括SPPCSPC模块、MPConv模块以及ELAN模块。SPPCSPC模塊是在SPP模块的基础上进行改进,SPP层的作用是增大感受野,使算法可以适应不同分辨率的图像。SPPCSPC模块一条分支在经过多次卷积后进行多次并行的Max Pooling操作,这几个不同尺度的Max Pooling有四种感受野,主要用来区分不同目标的物体,另外一条分支进行普通卷积处理,最后将这两条分支合并,这样不仅能够减少计算量,同时也增大了感受野,避免由于对图像操作所导致的图像失真问题。Head部分还是基于锚框的,主要使用三个不同尺寸的检测头,分别检测大、中、小物体。YOLOv7目前主要提供YOLOv7、YOLOv7-x、YOLOv7-W6、YOLOv7-E6、YOLOv7-D6几个版本,本文选用YOLOv7-x作为基线改进,具体结构如图1所示。

YOLOv7损失函数整体上和YOLOv5差不多,主要包括置信度损失、分类损失和坐标损失。其中置信度损失和分类损失采用的是BCEWithLogitsLoss,坐标损失采用的是CIOU损失。在正负样本选取上与YOLOv5一致,但额外采取了SimOTA的策略,在训练过程中给每个GT自适应地动态分配k个正样本,从而自动决定每个GT需要从哪个特征图来检测。

2 YOLOv7-x算法改进

2.1 V-ELAN模块

在YOLOv7网络中,ELAN模块结合了CSPNet和VoVNet的思想,一条分支进行常规卷积操作,另一条分支采用VoVNet中的OSA模块思路,在进行一系列常规卷积的操作后,在最后一层会一次性聚合前面的所有层,最后和另一个分支进行concat连接,再经过一个常规卷积进行通道数调整。通过控制最短最长梯度路径,来使网络学习到更多不同的特征,从而达到更好的效果。具体结构如图2所示。

由于金属表面缺陷种类众多,而且不同缺陷间差异较小,不容易分辨,从而造成误检。在受到CenterMask[11]的启发后,本文提出一个新的结构V-ELAN,来增强网络对不同缺陷间差异较小的学习能力。V-ELAN引入ResNet的残差连接和SENet[12]的SE模块,将输入直接加到输出上,增加短路连接,由于SE模块中间的FC层会造成信息丢失,所以将其去掉。V-ELAN相比ELAN不仅加强了对不同缺陷特征的学习能力,而且能够训练更深网络。V-ELAN具体结构如图3所示。

2.2 Shuffle Attention注意力模块

注意力机制主要分为两种,一种是通道注意力,另一种是空间注意力,二者主要用于捕获通道间依赖关系和图像像素对间的关系,同时使用会有更好的效果,但也会带来计算量的增加。Shuffle Attention(SA)[13]却能很好地结合二者,在提升效果的同时不会带来额外的计算量。SA在设计上使用组卷积来降低计算量,首先将输入的特征图分为g组,在每个组里使用Shuffle Unit处理,Shuffle Unit通过Concate方式将组内的信息进行融合,最后使用ChannelShuffle对组进行重排,实现不同组之间信息流通,将融合后的特征图作为SA的输出。具体结构如图4所示。

由于金属表面存在小目标缺陷难以检测,从而出现小目标漏检现象的发生,通过向YOLOv7的Neck部分添加SA模块可以有效地提高模型对小目标缺陷的检测,提高模型的检测性能。

2.3 深度可分离卷积

深度可分离卷积是由Depthwise卷积和Pointwise卷积两部分组成,主要是用来减少模型的参数量和计算量,从而提高模型的检测速度。Depthwise卷积是一个卷积核负责处理一个通道,而Pointwise卷积和常规卷积类似,使用1×1卷积调整通道数。具体结构如图5所示。

对常规卷积来说,假设输入大小为DX×DY×M,使用大小为DK×DK×M的N个卷积核进行计算,得到输出特征图尺寸为N×DH×DW。

普通卷积的计算量和参数量:

[QC=DKDKMNDHDW]  ⑴

[PC=DKDKMN]  ⑵

深度可分离卷积的计算量和参数量:

[QD=DKDKMDHDW+MNDHDW]  ⑶

[PD=DKDKM+NM]  ⑷

普通卷积与深度可分离卷积的计算量之比k:

[k=N+DKDK]  ⑸

从式⑸可以看出,深度可分离卷积要比普通卷积快N+DKDK倍。

由于YOLOv7大量使用常规卷积会导致检测速度下降,因此,在Head部分加入深度可分离卷积可以有效提升检测速度,大大降低参数量和计算量。

2.4 Alpha IOU

边框回归是物体检测中的重要环节,通过预测目标物体的bbox来定位图像中需要检测的物体。最常用的是IOULoss,通过真实框和预测框的交并比来求损失,但当预测框和真实框不相交时, IOULoss为0,就无法反映出两个框的距离远近。GIOU[14]通过引入预测框和真实框的最小外接矩形来解决IOULoss存在的问题,但当预测框和真实框重合时,即二者是包含关系时,GIOU会退化成IOU。针对GIOU出现的问题,DIOU[15]通过最小化预测框和真实框中心点的标准化距离来加速损失的收敛。虽然DIOU通过直接最小化预测框和真实框中心点距离加速收敛,但却忽略了一个重要因素“长宽比”,CIOU[16]通过在DIOU的惩罚项基础上加了一个影响因子,这个因子将预测框和真实框的长宽比考虑进去,从而提升回归精确度。

Alpha IOU[17]是对前面所有IOU的一种加速收敛的改进,用于精确边界框回归。通过引入一个Alpha指数项,对现有的IOU损失进行统一幂化,加速收敛。通过调节Alpha,从而更加灵活地实现不同水平的边界框回归精度,当Alpha为3时,增加了高IOU目标的损失和梯度,进而提高边界框回归精度。YOLOv7坐标损失使用的是CIOU,具體定义如下:

[LCIOU=1-IoU+ρ2(b,bgt)c2+βv]  ⑹

为了加速损失收敛,提高边界框回归精度,本文使用Alpha IOU损失函数代替CIOU损失函数,具体定义如下:

[LαCIOU=1-IoUα+ρ2α(b,bgt)c2α+(βv)α]  ⑺

结合上述改进,最后得到的基于YOLOv7-x算法改进结构如图6所示。

3 实验结果及分析

3.1 实验平台和数据集

实验所使用的软件环境是:操作系统CentOS 7,Python3.8,Pytorch1.12.1,CUDA11.3,CPU Core(TM) i5-7500,GPUTesla A100,网络输入的图像大小640×640,学习率使用的是0.01,优化器是SGD,batch size为16,训练次数epoch为300。

实验选择的数据集是公开数据集 GC10-DET[18],该数据集包含十类金属表面缺陷,分别是冲孔、焊缝、月牙弯、水斑、油斑、丝斑、异物、压痕、折痕、腰折,总共有2294张图像,图像的大小为2048×1000。数据集示例如图7所示。

由于实验数据集样本过少,各个缺陷类别间存在不平衡。因此需要通过常用数据增强,对数据集进行扩充,将原来数据集扩充到4600张,其中选取3910张作为训练集,690张作为测试集。

3.2 实验评价指标

为了验证改进算法的有效性,实验采用所有类别的平均精度均值mAP@0.5(mean Average Precision,IoU阈值取大于0.5)、单张图片的耗时以及模型的参数量进行评估,mAP是指对所有类的平均精度(AP)求平均,其中准确率(Precision)、召回率(Recall)、AP、mAP的表示如下:

[P=TPTP+FP]  ⑻

[R=TPTP+FN]  ⑼

[AP=01P(R)dR]  ⑽

[mAP=1ci=1cAPi]  ⑾

其中,TP表示预测正确的正样本,TN表示预测正确的负样本,FP表示预测错误的正样本,FN表示预测错误的负样本。c表示类别数。

3.3 消融实验

为了验证改进YOLOv7x算法的有效性,实验在GC10-DET数据集上进行。消融实验结果见表1。其中V-ELAN、SA、DWConv、AlphaiOU为本文改进点,Params为模型的参数量大小,所有结果均在输入大小为640×640下计算得到。从表1中可以看出,第一组实验使用YOLO v7x作为基准时,其mAP为75.4%,第二组实验是将YOLOv7x中的ELAN替换为V-ELAN后,mAP提升了2.3%,第三组实验是在第二组实验的基础上融合空间通道双重注意力机制(SA)后,mAP提升了1.7%。第四组实验是在第三组实验基础上将Head部分的常规卷积替换为深度可分离卷积,虽然mAP下降了0.6%,但模型大小相比实验三减少了23.7%,相比实验一模型大小减少了4.4%,且mAP增加了3.6%。YOLOv7x改进前后精确率和召回率如表2所示,其中P为平均精确率,R为平均召回率。

从表2可以看出,改进的YOLOv7x相比YOLOv7x,平均精确率提升了4.1%,平均召回率提升了3%。图8为改进YOLOv7x算法在测试集上的效果,可以看到对于一些小目标缺陷的检测还是不错的,但由于生产环境以及光照的影响,部分缺陷的检测效果不佳。

3.4 改进YOLOv7x算法与其他算法的对比

为了验证改进YOLOv7x算法的有效性,将其与其他经典主流算法进行对比,实验结果如表3所示。

從表3可以看出,改进的YOLOv7x算法在mAP和模型大小都远超Faster RCNN和YOLOv3等经典算法。相对于YOLOv5x,mAP提升了1.5%的同时,模型大小减少了17.5%。相对于YOLOv7x,mAP提升了3.6%且模型大小减少了4.4%。试验结果表明,本文改进算法还是十分有效的。

4 结束语

本文针对目前金属表面缺陷检测中存在的问题进行了分析,针对不同缺陷之间存在相似性的问题,通过构建V-ELAN模块,来增强网络对不同缺陷间差异较小的学习能力,在neck部分结合空间通道双重注意力机制(Shuffle Attention, SA),提升对图像中小目标特征提取能力,并且采用Alpha IOU损失函数替换原来的CIOU损失函数,加速网络收敛,最后引入深度可分离卷积,在降低网络的参数量和计算量的同时,尽可能较小减少精度损失。试验结果表明,本文改进算法效果优于原来网络及其他主流网络。由于目前模型大小还不足以达到工业部署的要求,下一步将会考虑进行网络轻量化相关研究。

参考文献(References):

[1] 韩九强.机器视觉技术及应用[M].北京:高等教育出版社,2009.

[2] Ren S, He K, Girshick R, et al. Faster r-cnn: Towards real-time object detection with region proposal networks[J].Advances in neural information processing systems,2015,28.

[3] Liu W, Anguelov D, Erhan D, et al. Ssd: Single shot multibox detector[C]//Computer Vision-ECCV 2016: 14th European Conference,Amsterdam,The Netherlands, October 11-14, 2016, Proceedings, Part I 14. Springer International Publishing,2016:21-37.

[4] Redmon J, Divvala S, Girshick R, et al. You only lookonce:Unified, real-time object detection[C]//Proceedings of the IEEE conference on computer vision and pattern recognition,2016:779-788.

[5] 程婧怡,段先华,朱伟.改进YOLOv3的金属表面缺陷检测研究[J].计算机工程与应用,2021,57(19):252-258.

[6] 方叶祥,甘平,陈俐.金属表面缺陷检测的改进YOLOv3算法研究[J].机械科学与技术,2020,39(9):1390-1394.

[7] 李衍照,于镭,田金文.基于改进YOLOv5的金属焊缝缺陷检测[J].电子测量技术,2022,45(19):70-75.

[8] Wang C Y, Bochkovskiy A, Liao H Y M. YOLOv7:Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors[J]. arXiv preprint arXiv:2207.02696,2022.

[9] Lee Y, Hwang J, Lee S, et al. An energy andGPU-computation efficient backbone network for real-time object detection[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition workshops,2019.

[10] Wang C Y, Liao H Y M, Wu Y H, et al. CSPNet: A newbackbone that can enhance learning capability of CNN[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition workshops,2020:390-391.

[11] Lee Y, Park J. Centermask: Real-time anchor-freeinstance segmentation[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition,2020:13906-13915.

[12] Hu J, Shen L, Sun G. Squeeze-and-excitationnetworks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition,2018:7132-7141.

[13] Howard A G, Zhu M, Chen B, et al. Mobilenets: Efficientconvolutional neural networks for mobile vision applications[J].arXiv preprint arXiv:1704.04861,2017.

[14] Rezatofighi H, Tsoi N, Gwak J Y, et al. Generalizedintersection over union: A metric and a loss for bounding box regression[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition,2019:658-666.

[15] Zheng Z, Wang P, Liu W, et al. Distance-IoU loss: Fasterand better learning for bounding box regression[C]//Proceedings of the AAAI conference on artificial intelligence,2020,34(7):12993-13000.

[16] Zheng Z, Wang P, Ren D, et al. Enhancing geometricfactors in model learning and inference for object detection and instance segmentation[J].IEEE Transactions on Cybernetics,2021.

[17] He J, Erfani S, Ma X, et al. Alpha-IoU: A Family ofPower Intersection over Union Losses for Bounding Box Regression[J]. Advances in Neural Information Processing Systems,2021,34:20230-20242.

[18] Lv X, Duan F, Jiang J, et al. Deep metallic surface defect detection: The new benchmark and detection network[J].Sensors,2020,20(6):1562.

猜你喜欢
注意力机制
基于注意力机制的行人轨迹预测生成模型
基于注意力机制和BGRU网络的文本情感分析方法研究
多特征融合的中文实体关系抽取研究
基于序列到序列模型的文本到信息框生成的研究
基于深度学习的手分割算法研究
从餐馆评论中提取方面术语
面向短文本的网络舆情话题
基于自注意力与动态路由的文本建模方法
基于深度学习的问题回答技术研究
基于LSTM?Attention神经网络的文本特征提取方法