基于
改进
YOLOv7
金属表面
缺陷
检测
方法
Computer Era No.9 20230 引言在工业实际生产过程中,由于加工不当、设计偏差、环境恶劣以及其他因素导致产生的金属表面缺陷(如折痕、压痕、油斑、异物、冲孔等)往往是造成重大安全事故的元凶1。对金属表面缺陷的检测,传统的检测方法是人工检测,但由于人的劳动强度大、生产效率低以及对人员的专业知识要求高等原因,导致检测的效率大大折扣。因此,开发一种有效、准确的检测方法势在必行。近年来,随着深度学习的发展,越来越多的研究将深度学习用在缺陷检测,并取得了不错的效果。目前,主要有以Faster RCNN2为代表的两阶段目标检测算法和以 SSD3和 YOLO4为代表的一阶段目标检测算法。Faster RCNN在精度上远超其他算法,但由于需要在候选区域筛选,导致速度上存在不足,而兼顾速度和精度的YOLO算法则为金属表面缺陷检测提DOI:10.16644/33-1094/tp.2023.09.011基于改进YOLOv7的金属表面缺陷检测方法冷浩1,夏骄雄2(1.上海理工大学光电信息与计算机工程学院,上海 200093;2.中共上海市教育科学研究院委员会)摘要:针对金属表面缺陷检测中不同缺陷之间存在相似性以及小目标缺陷的问题,提出一种基于改进YOLOv7的金属表面缺陷检测算法。首先通过构建更大的高效层聚合网络(V-ELAN)模块来有效增强网络对不同缺陷间差异较小的学习能力。其次在Neck部分结合空间通道双重注意力机制,提升对图像中小目标特征提取能力,减少无用特征的干扰;采用Alpha IOU损失函数替换原来的CIOU损失函数,加速网络收敛,提高网络的鲁棒性。最后引入深度可分离卷积,在降低网络的参数量和计算量的同时尽可能减少精度损失。结果表明,改进后的YOLOv7网络模型较原来YOLOv7网络模型提升了3.6%,且mAP达到79.0%,模型大小减少了4.4%,检测效果要优于原网络模型和其他主流目标检测网络模型。关键词:金属表面缺陷检测;YOLOv7;小目标检测;注意力机制;损失函数中图分类号:TP399文献标识码:A文章编号:1006-8228(2023)09-48-06Metal surface defect detection method based on improved YOLOv7Leng 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:Aimingat thesimilaritybetweendifferent defectsandsmall object defectsinmetal surfacedefect detection,animproved YOLOv7-based metal surface defect detection algorithm is proposed.Firstly,a larger V-ELAN module is constructed toenhance the learning ability of the network for different defects.Secondly,in the Neck part,the dual attention mechanism ofspatial channel is combined to improve the ability of feature extraction of small objects and reduce the interference of uselessfeatures.The Alpha IOU loss function is used to replace the CIOU loss function to accelerate the convergence of the network andimprove the robustness of the network.Finally,the depth separable convolution is introduced to minimize the accuracy loss whilereducing the number of parameters and computation of the network.The results show that the improved YOLOv7 network modelis 3.6%higher than the original YOLOv7 network model,the mAP reaches 79.0%,the model size is reduced by 4.4%,and thedetection 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收稿日期:2023-04-21作者简介:冷浩(1999-),男,江西九江人,硕士,主要研究方向:计算机视觉。通讯作者:夏骄雄(1973-),男,河北故城人,博士,研究员,硕士生导师,主要研究方向:数据挖掘、智能决策支持系统。48计算机时代 2023年 第9期供了更好的方案。程等人5对 YOLOv3 算法进行改进,利用将第11层浅层特征与网络深层特征进行融合的方式来对图片中的小缺陷目标进行检测,虽能更好地检测出小目标缺陷,但却忽略了不同缺陷之间存在相似性。方等人6提出一种更改损失函数和改进 k-means+聚类的YOLOv3算法进行了缺陷检测,却忽略了对小目标缺陷的改进。李等人7通过引入轻量型GhostNet网络代替YOLOv5主干网络中的残差模块,来减少网络的计算量和网络参数量,虽然速度得到了较大提升,但没有考虑不同缺陷之间存在相似性以及小目标缺陷的问题。针对前人研究的不足以及存在的问题,本文以YOLOv7为基础,构建了V-ELAN模块来增强网络对不同缺陷间差异较小的学习能力,在neck部分结合空间通道双重注意力机制(ShuffleAttention,SA),提升对图像中小目标特征提取能力,并且采用alpha IOU损失函数替换原来的CIOU损失函数,加速网络收敛,最 后 引 入 深 度 可 分 离 卷 积(Depthwise SeparableConvolution)降低网络的参数量和计算量。下面我们先简要介绍YOLOv7模型的相关理论基础,然后重点介绍V-ELAN模块和关键创新,最后通过对比实验和消融实验证明本文算法的有效性。1 相关工作1.1 YOLOv7-x网络结构YOLO系列算法作为一阶段目标检测算法的代表,在速度和精度之间达到了非常好的平衡,YOLOv78是当前YOLO系列中的最先进的算法,在速度和精度上都超过以往的 YOLO 系列,相比较于其他 YOLO 系列,YOLOv7通过采用更加高效的聚合网络ELAN、更加有效的标签分配方法、模型重参数化方法以及辅助头训练,在速度和精度上都远超同类检测器。YOLOv7网络主要包括输入端(Input)、主干网络(Backbone)、颈部(Neck)、预测头(Head)四个部分,Backbone部分主要由 ELAN 模块、CBS 模块、MPConv 模块组成。CBS 模块由卷积层、BN 层和 SiLU 激活函数组成,MPConv模块有两个分支,一个分支进行Max Pooling后再接一个卷积进行通道数调整,另外一个分支先接一个步长为2的33卷积进行宽高调整,后接一个卷积调整通道数,最后把两个分支进行concat连接,来提高网络的特征提取能力。ELAN模块主要借鉴VoVNet9和CSPNet10的思想,通过控制最大最长梯度路径,使网络能够学到更多的特征,具有更强的鲁棒性。图1YOLOv7-x网络结构图49Computer Era No.9 2023Neck 部分整体架构和 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所示。图2ELAN模块结构图由于金属表面缺陷种类众多,而且不同缺陷间差异较小,不容易分辨,从而造成误检。在受到CenterMask11的启发后,本文提出一个新的结构V-ELAN,来增强网络对不同缺陷间差异较小的学习能力。V-ELAN引入ResNet的残差连接和SENet12的SE模块,将输入直接加到输出上,增加短路连接,由于SE模块中间的FC层会造成信息丢失,所以将其去掉。V-ELAN相比ELAN不仅加强了对不同缺陷特征的学习能力,而且能够训练更深网络。V-ELAN具体结构如图3所示。图3V-ELAN模块结构图2.2 Shuffle Attention注意力模块注意力机制主要分为两种,一种是通道注意力,另一种是空间注意力,二者主要用于捕获通道间依赖关系和图像像素对间的关系,同时使用会有更好的效果,但也会带来计算量的增加。Shuffle Attention(SA)13却能很好地结合二者,在提升效果的同时不会带来额外的计算量。SA在设计上使用组卷积来降低计算量,首先将输入的特征图分为 g 组,在每个组里使用Shuffle Unit处理,Shuffle Unit通过Concate方式将组内的信息进行融合,最后使用 ChannelShuffle 对组进行重排,实现不同组之间信息流通,将融合后的特征图作为SA的输出。具体结构如图4所示。图4SA模块结构图由于金属表面存在小目标缺陷难以检测,从而出现小目标漏检现象的发生,通过向YOLOv7的Neck部分添加SA模块可以有效地提高模型对小目标缺陷的检测,提高模型的检测性能。2.3 深度可分离卷积深度可分离卷积是由Depthwise卷积和Pointwise卷积两部分组成,主要是用来减少模型的参数量和计算量,从而提高模型的检测速度。Depthwise卷积是一个卷积核负责处理一个通道,而Pointwise卷积和常规卷积类似,使用 11 卷积调整通道数。具体结构如图5所示。50计算机时代 2023年 第9期图5深度可分离卷积结构图对常规卷积来说,假设输入大小为DXDYM,使用大小为DKDKM的N个卷积核进行计算,得到输出特征图尺寸为NDHDW。普通卷积的计算量和参数量:QC=DKDKMNDHDWPC=DKDKMN深度可分离卷积的计算量和参数量:QD=DKDKMDHDW+MNDHDWPD=DKDKM+NM普通卷积与深度可分离卷积的计算量之比k:k=N+DKDK从式可以看出,深度可分离卷积要比普通卷积快N+DKDK倍。由于 YOLOv7大量使用常规卷积会导致检测速度下降,因此,在Head部分加入深度可分离卷积可以有效提升检测速度,大大降低参数量和计算量。2.4 Alpha IOU边框回归是物体检测中的重要环节,通过预测目标物体的bbox来定位图像中需要检测的物体。最常用的是IOULoss,通过真实框和预测框的交并比来求损失,但当预测框和真实框不相交时,IOULoss为0,就无法反映出两个框的距离远近。GIOU14通过引入预测框和真实框的最小外接矩形来解决IOULoss存在的问题,但当预测框和真实框重合时,即二者是包含关系时,GIOU 会退化成 IOU。针对 GIOU 出现的问题,DIOU15通过最小化预测框和真实框中心点的标准化距离来加速损失的收敛。虽然DIOU通过直接最小化预测框和真实框中心点距离加速收敛,但却忽略了一个重要因素“长宽比”,CIOU16通过在DIOU的惩罚项基础上加了一个影响因子,这个因子将预测框和真实框的长宽比考虑进去,从而提升回归精确度。Alpha IOU17是对前面所有IOU的一种加速收敛的改进,用于精确边界框回归。通过引入一个Alpha指数项,对现有的IOU损失进行统一幂化,加速收敛。通过调节Alpha,从而更加灵活地实现不同水平的边界框回归精度,当Alpha为3时,增加了高IOU目标的损失和梯度,进而提高边界框回归精度。YOLOv7坐标损失使用的是CIOU,具体定义如下:LCIOU=1-IoU+2(b,bgt)c2+v为了加速损失收敛,提高边界框回归精度,本文使用Alpha IOU损失函数代替CIOU损失函数,具体定义如下:LCIOU=1-IoU+2(b,bgt)c2+(v)结合上述改进,最后得到的基于YOLOv7-x算法改进结构如图6所示。图6改进后的YOLOv7-x网络结构图51Computer Era No.9 20233 实验结果及分析3.1 实验平台和数据集实验所使用的软件环境是:操作系统CentOS 7,Python3.8,Pytorch1.12.1,CUDA11.3,CPU Core(TM)i5-7500,GPUTesla A100,网络输入的图像大小640640,学习率使用的是0.01,优化器是SGD,batch size为16,训练次数epoch为300。实验选择的数据集是公开数据集 GC10-DET18,该数据集包含十类金属表面缺陷,分别是冲孔、焊缝、月牙弯、水斑、油斑、丝斑、异物、压痕、折痕、腰折,总共有2294张图像,图像的大小为20481000。数据集示例如图7所示。图7数据集样图由于实验数据集样本过少,各个缺陷类别间存在不平衡。因此需要通过常用数据增强,对数据集进行扩充,将原来数据集扩充到4600张,其中选取3910张作为训练集,690张作为测试集。3.2 实验评价指标为了验证改进算法的有效性,实验采用所有类别的平均精度均值 mAP0.5(mean Average Precision,IoU阈值取大于0.5)、单张图片的耗时以及模型的参数量进行评估,mAP是指对所有类的平均精度(AP)求平均,其中准确率(Precision)、召回率(Recall)、AP、mAP的表示如下:P=TPTP+FPR=TPTP+FNAP=01P(R)dRmAP=1ci=1cAPi其中,TP表示预测正确的正样本,TN表示预测正确的负样本,FP表示预测错误的正样本,FN表示预测错误的负样本。c表示类别数。3.3 消融实验为了验证改进 YOLOv7x算法的有效性,实验在GC10-DET数据集上进行。消融实验结果见表1。其中V-ELAN、SA、DWConv、AlphaiOU为本文改进点,Params为模型的参数量大小,所有结果均在输入大小为640640下计算得到。从表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为平均召回率。表1消融实验结果模型实验一实验二实验三实验四实验五V-ELANSADWConvalphaIOUmAP0.5(%)75.477.779.478.879.0模型大小142.2M178.3M178.3M136.0M136.0M表2YOLOv7x改进前后P、R对比模型YOLOv7x改进YOLOv7xP/%76.780.8R/%69.772.7从表2可以看出,改进的YOLOv7x相比YOLOv7x,平均精确率提升了4.1%,平均召回率提升了3%。图8为改进 YOLOv7x算法在测试集上的效果,可以看到对于一些小目标缺陷的检测还是不错的,但由于生产环境以及光照的影响,部分缺陷的检测效果不佳。图8改进YOLOv7x算法检测效果52计算机时代 2023年 第9期3.4 改进YOLOv7x算法与其他算法的对比为了验证改进 YOLOv7x算法的有效性,将其与其他经典主流算法进行对比,实验结果如表3所示。表3改进YOLOv7x算法与其他算法结果对比模型Faster RCNNYOLOv3YOLOv5xYOLOv7x本文算法输入大小640640640640640640640640640640mAP/%57.265.377.575.479.0模型大小523M236M165M142.2M136.0M从表 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 networksJ.Advancesinneuralinformationprocessingsystems,2015,28.3 Liu W,Anguelov D,Erhan D,et al.Ssd:Single shotmultiboxdetectorC/ComputerVision-ECCV2016:14thEuropeanConference,Amsterdam,TheNether-lands,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-timeobjectdetectionC/Proceed-ings of the IEEE conference on computer vision andpattern 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:Trainablebag-of-freebiessetsnewstate-of-the-artfor real-time object detectorsJ.arXiv preprint arXiv:2207.02696,2022.9 Lee Y,Hwang J,Lee S,et al.An energy andGPU-computation efficient backbone network for real-timeobjectdetectionC/ProceedingsoftheIEEE/CVFconference on computer vision and pattern recognitionworkshops,2019.10 Wang C Y,Liao H Y M,Wu Y H,et al.CSPNet:A newbackbonethatcanenhancelearningcapabilityofCNNC/ProceedingsoftheIEEE/CVFconferenceon computer vision and pattern recognition workshops,2020:390-391.11 Lee Y,Park J.Centermask:Real-time anchor-freeinstancesegmentationC/ProceedingsoftheIEEE/CVFconferenceoncomputervisionandpatternrecognition,2020:13906-13915.12HuJ,ShenL,SunG.Squeeze-and-excitationnetworksC/Proceedings of the IEEE conference oncomputer vision and pattern recognition,2018:7132-7141.13 Howard A G,Zhu M,Chen B,et al.Mobilenets:EfficientconvolutionalneuralnetworksformobilevisionapplicationsJ.arXiv preprint arXiv:1704.04861,2017.14 Rezatofighi H,Tsoi N,Gwak J Y,et al.Generalizedintersectionoverunion:AmetricandalossforboundingboxregressionC/ProceedingsoftheIEEE/CVFconferenceoncomputervisionandpattern recognition,2019:658-666.15 Zheng Z,Wang P,Liu W,et al.Distance-IoU loss:Fasterand better learning for bounding box regressionC/ProceedingsoftheAAAIconferenceonartificialintelligence,2020,34(7):12993-13000.16 Zheng Z,Wang P,Ren D,et al.Enhancing geometric(下转第58页)53Computer Era No.9 2023图8图纸3A算法排布结果图9图纸6本文算法排布结果3 结束语本文对地下车库的车位排布问题建立如下算法模型:使用基于奖励机制的探索策略和区域划分算法对地下车库进行车位模块的划分,随后根据车位排布策略在车位模块内排布车位,得到最终车位排布结果。在CAD工程图纸的约束条件下使用该算法,利用Matplotlib 库对算法结果进行了可视化,得出了如下结论:经过本文模型的处理,可以保证因连通性问题而导致的无效车位尽可能少。对外圈模块使用本文提出的组合类型车位模块,在车位数量上会优于徐涵喆等4提出的水平式或者垂直式车位模块,从而进一步提高了项目的收益。冯嘉宇等6提出观点中,由于遗传算法具有不稳定性、收敛速度慢等问题,所以在时间上开销比较大,但使用本文模型可以解决该类问题,在使用相同图纸情况下,所用时间能减少1/2左右。参考文献(References):1 王欣.地下车库设计的合理性及经济性分析J.中国建筑装饰装修,2022(17):147-149.2 刘帅,牛家兴,曾丽雯,等.地下车库柱网及结构选型综合经济技术分析J.工程建设与设计,2021(12):4-6.3 谷锦彪.基于驾驶人行为特性的停车位规划方法研究D.安徽:合肥工业大学,2017.4 徐涵喆,黄逸彬,杨赫,等.基于规则的城市地下车库外圈车位排 布 启 发 式 算 法 J.北 京 邮 电 大 学 学 报,2019,42(4):102-108.5 黄逸彬,杨赫,周钟秉,等.基于图形分割的城市地下车库车位排布优化方法J.北京邮电大学学报,2020,43(4):7-14.6 冯嘉宇,王潇霆,沈炜.基于分离障碍物的地下车库车位排布算法J.智能计算机与应用,2023,13(1):25-30.7 杨羊.基于强化学习的持续集成测试用例优先排序奖励机制研究D.北京:北京化工大学,2022.8 何柳柳,杨羊,李征,等.面向持续集成测试优化的强化学习奖励机制J.软件学报,2019,30(5):1438-1449.9 余光鑫.基于强化学习的地下车库生成式设计研究D.广东:华南理工大学,2020.factorsinmodellearningandinferenceforobjectdetection and instance segmentationJ.IEEE Transac-tions on Cybernetics,2021.17 He J,Erfani S,Ma X,et al.Alpha-IoU:A Family ofPower Intersection over Union Losses for BoundingBoxRegressionJ.AdvancesinNeuralInformationProcessing Systems,2021,34:20230-20242.18 Lv X,Duan F,Jiang J,et al.Deep metallic surface defectdetection:The new benchmark and detection networkJ.Sensors,2020,20(6):1562.(上接第53页)CECE58