随着现代战争的飞速发展,各国对武器装备目标打击的要求越来越高,这要求武器装备零件的精度也随之提高[1]。机器视觉技术通过数字化的方法对武器零件进行质量检测,能够提高检测的精度和效率,降低人工检测成本,提高产品质量和生产效率,在武器装备零件的生产过程中,机器视觉技术已逐渐成为零件精度检测环节必不可少的一部分。其中,螺丝作为机械加工中不可缺少的零部件,其表面缺陷的检测至关重要,这些缺陷如果未被及时发现,将会对螺丝的使用造成不利影响,影响螺丝的扭矩和螺纹连接力,从而导致武器装备的故障和安全事故[2],同时通过对螺丝表面缺陷的有效检测,可以在生产过程中及时发现不合格产品,减少不良品,提高生产效率,降低生产成本。因此,实现对螺丝表面缺陷的自动检测具有非常重要的意义。
目前,针对螺丝表面缺陷的检测主要依靠人工视觉检测和机器视觉检测2种方法。人工视觉检测的缺点在于检测效率低、主观性强、易出现疏漏和错误等问题[3]。而机器视觉检测技术则可以通过数字化的方法对螺丝表面缺陷进行自动检测,避免了人工检测的缺点,因此,机器视觉技术在螺丝表面缺陷检测中具有广泛的应用前景。深度学习技术在图像识别[4]、图像生成[5]、图像去噪[6]和图像增强[7]等众多领域有很广泛的应用,已经成为机器视觉技术的重要支撑。基于深度学习的方法可以通过构建深度卷积神经网络模型对螺丝表面缺陷进行自动识别和检测,从而提高检测的准确性和效率。Soukup等[8]在缺陷检测中引入了卷积神经网络的CNN方法,对比了基于无监督的正则化方法,但是检测精度仍然较低,无法满足武器装备的生产需要。赵月等[9]利用深度卷积对抗生成网络DCGAN对数据集增强,通过构建FasterRCNN网络,利用迁移学习方法进行螺丝的表面缺陷检测,该方法较为复杂,步骤较多且检测速度较慢。胡欣等[10]提出了一种基于改进YOLOv5的螺纹钢表面缺陷检测方法,该方法利用残差堆叠的思想,对YOLOv5中的SPP(spatial pyramid pooling,SPP)模块做了改进,但该方法存在候选框选择有偏差,导致缺陷类型进行分类存在不准确的情况。上述现有的这些方法在螺丝缺陷检测精度、缺陷定位准确度和检测速度上存在不同的短板,螺丝表面的光泽和复杂纹理容易导致图像处理难度增加,故而,采用更先进的深度学习技术,展开对螺丝多种常见缺陷进行检测的研究有很强的必要性。
YOLO系列算法是基于One-stage目标检测算法的典型代表[11],基于深度神经网络进行目标的定位和识别,有较高的检测精度和较快的检测速度。YOLOv7[12]是由Wang等在2022年提出的YOLO系列最先进的算法,在检测速度和精度上都超越了YOLO系列其他的检测算法。如图1所示,YOLOv7网络由3个部分组成,分别是输入端(Input),骨干网络(Backbone)和检测头(Head)。其中Conv(convolution)为卷积层;CBS(conv+batchnormalization+silu)由卷积层、批标准化和Silu[13]损失函数组成,Conv网络层和CBS用于特征提取;MP1和MP2由最大池化层MP(max pooling)和CBS组成;UP(upper sampling,UP)采用最近邻插值算法用于上采样,MP和UP共同用于特征融合和降维,加快网络训练速度;Cat(Concat)为连接层,用于多分支特征融合;ELAN(efficient layeraggregation network,ELAN)和ELAN2由多个CBS构成,通过控制最短和最长的梯度路径,使网络能够学习到更多的特征,输入和输出特征大小保持不变;SPPCSPC(spatial pyramid pooling layer+cross stage partial networks,SPPCSPC)为空间金字塔结构,通过不同的最大池化参数来获得不同感受野,用于检测图片中不同大小的目标;REP[14] (Planned re-parameterized convolution,REP)结构由RepConv组成,其借鉴了RepVGG的结构思想,RepConv是将3×3卷积、1×1卷积和恒等映射合成了一个卷积,网络中包含了3个REP分支,分别用于特征提取、平滑特征和特征传递。
图1 YOLOv7 架构图
Fig.1 YOLOv7 network architecture
改进后的YOLOv7网络模型骨干部分如图2所示,图中蓝色部分为本文提出的MP-S(max pooling+simam)[15]结构,替换YOLOv7原始架构中的MP1结构,MP-S融合了SimAM注意力机制,可以提高螺丝小目标缺陷的检测精度。本文中模型引入SIoU损失函数,考虑预测框与真实框之间的角度关系,减小网络模型训练损失,提高模型训练精度。本文中引入Soft-NMS优化预测框选择,在预测框重叠情况下,减少预测框被错误移除的情况。
图2 改进后的YOLOv7骨干网络架构图
Fig.2 Improved YOLOv7 network backbone
深度学习中的注意力机制,是一种受到人眼观察外界事物的特点,在复杂的环境中快速定位找到视觉中显著区域的启发而产生的一种深度学习算法,注意力机制是通过在网络中对输入的特征动态调整权重,使得网络能更好地感知图像中具有标识性的特征,从而快速地对目标进行定位,注意力机制已经被广泛应用到计算机视觉中,并取得了很大成功。本研究中提出基于SimAM注意力机制的MP-S(Max pooling+SimAM+Conv为主要结构的网络层)结构,如图3所示,相比MP1,MP-S在保留其降维和特征融合能力的同时,加强了对显著性小目标的定位能力,经过测试,用MP-S替换YOLOv7网络结构的MP1,可以增强检测过程中缺陷特征的目标定位能力,尤其对小目标缺陷的定位更加准确。SimAM注意力机制(simple,parameter-free attention module,SimAM)是由Yang在2021年提出的一种无参数注意力机制。该注意力机制不同于现有的1-D通道注意力机制和2-D空域注意力机制,SimAM注意力机制同时考虑空间和通道维度相关性,通过对特征层中的特征映射来推断3-D注意力权重,其本身只需通过一个能量函数来计算,无需额外参数去推导,是一个即插即用的注意力机制,因此无需对网络模型的结构进行调整,在改善卷积网络的表征能力上具有良好的灵活性和有效性。
图3 SimAM改进网络模型中的MP1结构
Fig.3 MP-S:SimAM improves MP1 structure
SimAM注意力机制的原理如图4所示。图4中X表示特征,C表示当前特征通道数,W和H分别表示当前特征宽度和高度,为输出特征,其中其中同样颜色的权重与特征表示数据流动的对应关系,即某一颜色处理后的特征是输入特征通过同样颜色的权重计算得到的,通过SimAM注意力机制3-D权重计算得到的输出特征更具全局性,对数据的处理同时包括空间维度和通道维度,参考信息更全面,可以更好地定位图片中的小目标。
图4 SimAM原理框图
Fig.4 SimAM schematic
SimAM计算过程如式(1)所示。
(1)
式(1)中:X为输入的特征;为通过能量函数计算后输出的特征;E为每个通道上的能量函数;⊙为点积计算,函数sigmod用于避免E值偏离中心位置过大导致的模型不收敛的问题,其中E的计算方法为
(2)
式(2)中: t为输入的特征值,t∈X,λ为常数,不同数据集λ值不同,μ和σ2表示X通道上的均值和方差,μ和σ2的计算方法如式(3)所示,其中M=H×W,表示每个通道上特征的数量。
(3)
改进后的网络在进行候选框定位时,包含目标的候选框数量更少,置信度更高,可以提高网络模型的收敛速度。如图5所示,原有网络对螺丝前端同一破损预测出2个较低精度的候选框,改进后的网络预测得到一个精度更高的候选框。
图5 小目标缺陷检测结果
Fig.5 Detect candidate box overlap
本研究中的模型引入SIoU(scylla-iou,SIoU)[16]替换YOLOv7中默认的CIoU(complete-iou,CIoU)[17]作为训练的损失函数。定义BGT为真实框,B为候选框,CIoU的计算方法为
(4)
式(4)中: ρ2(B,BGT)为预测框与真实框中心点之间的欧氏距离,c为同时包含真实框与预测框最小闭包矩形框的对角线距离,其中的惩罚项α和ν的计算方法为
(5)
在这个过程中,CIoU没有考虑预测框和真实框之间角度的问题,但框之间的夹角关系可以影响回归的结果,如图6所示,在不同的α值的情况下对于候选框的选择置信度是不同的,Cw和Ch分别为真实框和候选框的水平距离和垂直距离。
图6 计算角成本对损失函数的贡献
Fig.6 Calculate angular loss
SIoU在考虑到真实框和候选框之间的不同角度,可以影响候选框的置信度,定义角度损失为
(6)
式(6)中,σ为真实框和候选框之间中心点的距离。
针对现有的损失函数没有考虑框之间角度关系的问题,Gevorgyan等提出SIoU的损失函数为
(7)
式(7)中:SIoU由角度损失、距离损失、形状损失和IoU损失组成;Δ为距离损失函数;Ω为形状损失函数;计算距离损失Δ时需要先计算γ,γ需要先通过先计算角度损失Λ得到。如式(8)所示,其中WGT和W分别为真实框和预测框的宽度,HGT和H分别为真实框和预测框的高度,和BCx分别为真实框和预测框中心点的横坐标,和BCy分别为真实框和预测框中心点的纵坐标。
(8)
YOLOv7在进行目标框的选择时,采用的是非极大值抑制(non-maximum suppression,NMS)算法[18]。NMS算法是一种贪心算法,首先按照框的置信度从高到低进行排序,找到置信度最高的候选框M,然后计算其他较低置信度的框与M的交并比(intersection over union,IoU),过滤出那些IoU较大的候选框进行舍弃,不断迭代上面的操作,最终确定目标候选框。在迭代中,NMS算法将较小置信度的相邻候选框检测分数强制归零,即移除重叠部分大于重叠阈值的候选框,在这种情况下,如果一个真实的目标出现在重叠区域,如图7所示为网络模型检测出的候选框存在重叠的情况,同一处缺陷即被判定为2种缺陷,如将螺丝侧面缺陷同时判断为侧面缺陷和顶部缺陷,将前端缺陷同时判定为侧面缺陷和前端缺陷,NMS算法会导致对该目标的检测失败并降低算法的平均检测率,同时最终检测的结果会因NMS阈值设置的不同而不同,过小的阈值会导致误删候选框,过大的阈值会导致目标误检。考虑到螺丝表面缺陷检测的特点,螺丝表面缺陷的裂痕、破损等缺陷,所需要检测的目标较小,候选框的微小偏移会导致最终的预测结果有偏差,因此本文中引入Soft-NMS[19]替代NMS来对该问题进行改进。对比移除候选框的步骤,传统的NMS和Soft-NMS做法对比如式(9)和式(10)所示。
图7 检测候选框重叠
Fig.7 Detect candidate box overlap
(9)
(10)
其中,IoU(M,bi)计算的是最大置信度的候选框M和候选框bi之间的重叠率,通过与阈值Nt对比进行给候选框bi的置信度Si进行赋值。Soft-NMS在算法执行的流程上与NMS相同,在计算检测置信度得分方式上,NMS直接将候选框置信度设置为0,Soft-NMS通过计算降低置信度得分。Soft-NMS计算置信度得分的方法是线性计算,在没有明显增加计算量的情况下,可以优化由于目标重叠带来的目标检测失败和平均检测率降低的问题。Soft-NMS较为适合无法确定候选框重叠阈值的情况,NMS是Soft-NMS的一种特殊形式,即当得分重置函数采用二值化函数时,Soft-NMS和NMS是等价的。
实验所采用的数据来自HALCON中的MVTec螺丝数据集[20],经过扩充螺丝图像共计2 940张,分为5个类别,随机将图像划分为训练集、验证集和测试集3个数据集,比例为7∶2∶1。其中包括螺丝存在的典型缺陷类型,包含螺丝前端破损(manipulated_front)、顶部有划痕(scratch_head)、螺丝侧面破损(thread_side)、颈部有划痕(scratch_neck)和螺丝顶部划痕(thread_top)。评价指标包括模型的精确度(Precision,P)、召回率(Recall,R)和平均精度均值(mean average precision,mAP),其中当IoU阈值设置为0.5时计算的mAP记为mAP@0.5,IoU阈值从0.5到0.95每隔0.05计算一个mAP,将得到的mAP计算的平均值记为mAP@0.5:0.95。
YOLOv7训练结果和改进的YOLOv7训练结果对比如图8所示,其中蓝色为YOLOv7的训练结果,橙色为改进的YOLOv7训练结果。可以看出,YOLOv7网络模型在训练到600轮次,改进后的网络模型在500轮次时,模型在精确度、召回率和平均检测精度达到稳定且不再有波动,改进后的模型收敛速度更快。其中通过图中的Box和Objectness可以看出改进后的网络缺陷目标选择更加准确,通过Classification可以看出改进后的网络对缺陷类型分类更加准确,通过Precision可以看出改进后的网络找到的缺陷准确度更高,通过Recall可以看出改进后的网络漏检更少,通过mAP可以看出改进后的网络目标检测平均精度均值更高。
图8 YOLOv7与改进后的训练结果对比
Fig.8 YOLOv7 and improved YOLOv7 training results
在测试集上进行测试,缺陷检测结果如图9所示,可以看出训练后的网络针对不同种类的缺陷可以准确判断出缺陷类型,包括螺丝前端破损、顶部有裂痕、螺丝侧面破损、颈部有划痕和螺丝顶部划痕,并可准确定位缺陷所在位置。
图9 缺陷检测结果
Fig.9 Defect detection results
如图10所示,其中图10(a)为置信度-准确度曲线,图10(b)为置信度-召回率曲线,图10(c)为置信度F1分数(精确率和召回率调和平均数)曲线,图10(d)为召回率准确率曲线。在相同实验环境下,用原YOLOv7、SSD、YOLOv5、CNN、Faster RCNN和EfficientNet网络模型对构建的螺丝数据集进行检测,与改进后的YOLOv7网络进行对比,对比结果如表1所示。
表1 目标检测结果对比
Table 1 Comparison of target detection results
模型精度(P)Recall(R)mAP@0.5CNN[8]0.8810.9100.898SSD0.8330.6960.744Faster RCNN[9]0.9670.8640.927EfficientNet0.9280.9110.913YOLOv5[10]0.8400.8260.831YOLOv70.9530.9070.954改进后的YOLOv70.9890.9230.973
图10 改进的YOLOv7测试结果
Fig.10 Improved YOLOv7 test result
在精度上相比CNN提高10.8%,相比SSD提高15.6%,相比Faster RCNN提高2.2%,相比EfficientNet提高6.1%,相比YOLOv5提高14.8%,相比原始YOLOv7提高3.6%;在召回率上,相比CNN提高1.3%,相比SSD提高22.7%,相比FasterRCNN提高5.9%,相比EfficientNet提高1.2%,相比YOLOv5提高9.7%,相比原始YOLOv7提高1.6%;在平均精度均值相比CNN提高7.5%,相比SSD提高22.9%,相比Faster RCNN提高4.6%,相比EfficientNet提高6.0%,相比YOLOv5提高14.2%,相比原始YOLOv7提高1.9%。可以看出,本文中改进后的模型在螺丝缺陷检测任务中,在精度、召回率和平均检测精度上优于其他各方法,证明模型改进的准确性。
为了验证所改进的方法对螺丝缺陷检测有着更好的效果,本研究中设计了6组消融实验,每一组实验在相同的环境下,使用相同的参数和数据集,进行训练和测试,测试结果如表2所示,其中√表示模型包含所在列的方法改进,×表示模型不包含所在列的方法改进。其中,YOLOv7为基准网络。由表中数据可知,改进1包括SimAM注意力机制的改进,改进2包括损失函数SIoU的改进,改进3包括Soft-NMS候选框选择方式的改进,对比基准网络,这3种改进方式检测精度都有提升,其中改进1对精度和平均精度均值的提升最大,即SimAM注意力机制可以较大的提升网络模型对目标的定位能力。改进4包括SimAM注意力机制和损失函数SIoU的改进,检测精度优于改进1和改进2;改进5包括SimAM注意力机制和Soft-NMS候选框的选择方式,检测精度优于改进1和改进3;改进6包括损失函数SIoU和Soft-NMS候选框的选择方式的改进,检测精度优于改进2和改进3。通过改进4—6和改进1—3的对比,可以看出多种改进方式之间没有互斥作用,相互搭配使用可以同时提高网络检测精度。本文模型与改进1—6对比,可知本文模型的检测精度、召回率和平均精度均值都优于其他改进模型,优化效果最好。
表2 消融实验结果对比
Table 2 Comparison of ablation experiment results
改进名称SimAM损失函数Soft-NMS精度(P)Recall(R)mAP@0.5YOLOv7×××0.9530.9070.954改进1××0.9640.9080.960改进2××0.9590.9120.956改进3××0.9630.9070.957改进4×0.9800.9130.964改进5×0.9670.9110.963改进6×0.9790.9140.962本文模型0.9890.9230.973
为了提高螺丝表面缺陷检测精度,提出了改进神经网络模型的检测方法。使用MP-S替换MP1,融合SimAM注意力机制,提高对于小目标的定位能力,提高模型对于缺陷目标的检测精度;并通过改进网络模型的损失函数,引入SIoU的损失函数,将预测框与真实框之间的角度损失引入到网络的损失函数中,使网络模型预测框与真实框之间差距更小,提高模型目标检测精度;同时通过引入Soft-NMS方法优化候选框选择方法,减少了由于误删候选框导致的目标误检的情况,提高了模型检测精度。通过对比实验和消融实验,在公开螺丝数据集MVTec上验证了改进后的模型取得了98.9%的检测精度,较YOLOv7网络提高了3.6%,从而验证了本文方法能够有效地解决螺丝表面缺陷的检测问题。
[1]张天琦,吕卫民,陈健,等.基于DoDAF的岸舰导弹武器装备体系结构建模[J].火力与指挥控制,2022,47(5):20-28.
ZHANG Tianqi,LYU Weimin,CHEN Jian,et al.Architecture modeling for shore-ship missile weapon and equipment system based on DoDAF[J].Fire and Command Control,2022,47(5):20-28.
[2]程国建,卞晨亮.基于目标识别的钢材缺陷检测方法[J].计算机工程与设计,2022,43(10):2977-2983.
CHENG Guojian,BIAN Chenliang.Steel defect detection method besed on target recognition[J].Computer Engineering and Design,2022,43(10):2977-2983.
[3]林杰,宣寒玉,宋学勇,等.基于机器视觉微小螺纹孔缺陷智能检测技术的研究[J].制造技术与机床,2022,723(9):104-110.
LIN Jie,XUAN Hanyu,SONG Xueyong,et al.Research on intelligent detection technology of micro threaded hole defects based on machine vision[J].Manufacturing Technology &Machine Tool,2022,723(9):104-110.
[4]TIAN C,ZHENG M,ZUO W,et al.Multi-stage image denoising with the wavelet transform[J].Pattern Recognition,2023,134:109050.
[5]TIAN C,ZHANG X,LIN J C W,et al.Generative adversarial networks for image super-resolution:A survey[J].arXiv preprint arXiv:2204.13620,2022.
[6]ZHANG Q,XIAO J,TIAN C,et al.A robust deformed convolutional neural network (CNN) for image denoising[J].CAAI Transactions on Intelligence Technology,2022.
[7]TIAN C,ZHANG Y,ZUO W,et al.A heterogeneous group CNN for image super-resolution[J].IEEE Transactions on Neural Networks and Learning Systems,2022.
[8]SOUKUP D,HUBER-MÖRK R.Convolutional neural networks for steel surface defect detection from photometric stereo images[J].Advancesin Visual Computing,2014,8887:668-677.
[9]赵月,张运楚,孙绍涵,等.基于深度学习的螺纹钢表面缺陷检测[J].计算机系统应用,2021,30(7):87-94.
ZHAO Yue,ZHANG Yunchu,SHUN Shaohan,et al.Defect detection method of rebar based on deep learning[J].Computer Systems &Applications,2021,30(7):87-94.
[10]胡欣,周运强,肖剑,等.基于改进YOLOv5的螺纹钢表面缺陷检测[J].图学学报,2023:17-17.
HU Xin,ZHOU Yunqiang,XIAO Jian,et al.Surface defect detection of threaded steel based on improved YOLOv5[J].Journal of Graphics,2023:17-17.
[11]PHAM M,COURTRAI L,FRIGUET C,et al.Yolo-fine:one-stage detector of small objects under various backgrounds in remotesensing images[J].Remote Sensing,2020,12:2501.
[12]WANG C,BOCHKOVSKIY A,LIAO H.Yolov7:Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors[J].arXiv,2022,vol.abs/2207.02696.
[13]ELFWING S,UCHIBE E,DOYA K.Sigmoid-weighted linear units for neural network function approximation in reinforcement learning[J].NeuralNetworks,2018,107:3-11.
[14]SOUDY M,AFIFY Y,BADR N.RepConv:A novel architecture for image scene classification on Intel scenes dataset[J].International Journal ofIntelligent Computing and Information Sciences,2022:1-11.
[15]YANG L,ZHANG R,LI L,et al.SimAM:A simple,parameter-free attention module for convolutional neural networks[J].InternationalConference on Machine Learning,2021,139:11863-11874.
[16]GEVORGYAN Z.SIoU loss:More powerful learning for bounding box regression[J].ArXiv,2022,abs/2205.12740.
[17]ZHENG Z,WANG P,LIU W,et al.Distance-IoU loss:Faster and better learning for bounding box regression[J].Proceedings ofthe AAAI Conference on Artificial Intelligence,2020,34:12993-13000.
[18]NEUBECK A,VAN L G,Efficient non-maximum suppression[C]//18th International Conference on Pattern Recognition (ICPR’06).[S.l.]:[s.n.],2006:850-855.
[19]BODLA N,SINGH B,CHELLAPPA R,et al.Soft-NMS —Improving object detection with one line of code[C]//2017 IEEE InternationalConference on Computer Vision (ICCV):[S.l.]:[s.n.],2017,5562-5570.
[20]BERGMANN P,FAUSER M,SATTLEGGER D,et al.MVTec AD —A comprehensive real-world dataset for unsupervised anomaly detection[C]//2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR),2019.[S.l.]:[s.n.],2021:9584-9592.