APP下载

基于YOLOV7的改进汽车零件缺陷检测算法

2024-05-29申科翔方群

申科翔 方群

摘要:汽车零部件缺陷检测通常采用基于 YOLOV7 的深度学习模型,针对生产环境中计算资源受限的问题,提出了改进 YOLOV7 的汽车零部件表面缺陷检测算法,首先使用MobileNetV3模块替换YOLOV7骨干网络,其次将颈部网络替换为重复加权双向特征金字塔网络BiFPN和多路径高效设计BepC3模块,最后采用一种基于高斯Wasserstein距离的回归损失函数代替原有的损失函数。实验结果表明,该算法相较传统YOLOV7的AP50精度提高0.155,比YOLOx算法AP50精度提高0.139,在检测精度和效率方面综合表现优异。

关键词:零件缺陷检测;YOLOV7;MobileNetV3;数据增强;轻量化网络

中图分类号:TP391.4 文献标志码:A 文章编号:1001-2443(2024)02-0118-05

引言

在汽车零部件生产中,产出的零部件难免会出现各种影响质量的缺陷,因为原材料的差异、生产环境的变化或者是设备的故障等等。汽车生产过程当中,汽车零件的生产质量要求很高,因此为了提高产出零件的质量,质检工作便成了工业生产过程中的重要环节。传统的工业质检多用人工观察法,不仅受主观经验影响较大,同时投入的人工成本也相当高,从而大幅增加了零件生产成本和风险。所以,高效完成零件的自动化检测,对于汽车零件的生产过程具有关键作用。

表面缺陷检测技术[1]在工业零件生产中的很多环节例如材料质检,机器诊断,损耗检测等方面均取得了较好的表现,但对于零部件表面缺陷检测的研究仍然不多,并且通常为了提高模型的检测能力,忽略了对于计算资源的使用效率。由于实际生产中对于检测效率有着较高的要求,并且考虑到计算资源容易受运营成本的限制,如何能够在性能上对检测精度和检测速度做综合的平衡,正是工件缺陷检测[2]的研究需要解决的问题。YOLO算法是由Redmon等[3]提出的一步(one-stage)目标检测算法,将目标检测[2]问题转化为简单的回归任务,大幅提高了检测效率。 YOLOV7是YOLO系列算法的第7代,作者降低模型的训练门槛,提高卷积神经网络(Convolutional Neural Networks,CNN[5])的准确性,在显著提高了检测精度的情况下,同时检测速度没有下降。

尽管 YOLOV7 在图像辨识与目标侦测上表现优异,但小目标侦测仍有失准的情形,常有漏检、误检的情形发生,因此需要优化模型、压缩网络参数数量、提高小目标精确度,尤其是针对汽车零件的缺陷检测,以确保不降低模型性能。MobileNet[6]模型是Google针对手機等嵌入式设备提出的一种轻量化深度神经网络模块,使用的核心思想是深度可分离卷积,但整流线性单元(Rectified Linear Unit,ReLU)激活函数因为没有使用残差结构从而信息损失问题严重,导致在通道数较少的低维特征层上提取特征更加单一。借鉴以上的方法,本文选择使用轻量级网络(Mobile Network Version3,MobileNetV3[7])作为YOLOV7的网络基础构架,同时将颈部网络替换为重复加权双向特征金字塔网络(feature pyramid network,FPN[8])和多路径高效设计模块BepC3。MobileNetV3提出了一种具有线性瓶颈的倒置残差结构[7]单元Irblock,该模块解决了原模型激活函数的特征信息损耗问题,增强了模型的检测性能,同时YOLOV7的激活函数在通道数较少的低维特征层[10]上有严重的信息损失[11]问题,这些都会极大程度上影响对于汽车零件缺陷检测的准确度。

本文主要贡献如下:

(1)将特征提取网络优化成新的骨干网络,改进后的骨干网络融入了MobileNetV3模块,加入注意力机制的网络设计以提高模型的准确度。

(2)采用BiFPN模块和BepC3模块替代原YOLOV7的颈部网络,增强了模型多尺度特征融合的能力,增强对汽车零件表面缺陷的检测能力。

(3)优化v7的损失函数,融合WDLOSS(Wasserstein distance loss)模块,使模型可以收敛至更高的精度。

1 系统模型

汽车零部件缺陷检测算法中的网络模型,对于获取到的汽车零部件图像,在颈部网络中输入MobileNetV3模块输出的特征图,通过MobileNetV3模块将得到的特征图转化为大小不变的多尺度特征图,其通道数均为 256 个,为提升系统性能,本文基于 MobileNetV3构造YOLOV7网络的基础构架,用MobileNetV3模块替换YOLOV7的原骨干网络,并将颈部网络替换为重复加权双向特征金字塔网络bifpn和多路径高效设计BepC3模块。改进后的YOLOV7网络结构图如图1所示。

1.1 引入注意力机制

注意力机制(Squeeze-and-Excitation Networks,SE)的核心思想是通过全连接网络自动学习特征权重,而不是直接根据特征通道的数值分配来判断,如图2所示在输入SE结构之前,特征图的各通道重要程度相同,在通过SE结构之后,有效特征通道的权重更大。不同颜色代表不同的权重,使得各特征声道重要度不同,进而使得NewNetworkDepthwisefilter将注意力集中在某些权重数值较大的声道上。在bottlenet结构的depthwise filter模块之后插入SE结构,因为SE结构耗时较多,若将expansion layer的channel变为原来的1/4,则既能提高精度,也可控制时间消耗。

1.2 修改尾部结构

在 MobileNetv3 的 AvgPooling 之前有一个 1x1 的卷积层,目的是为了更利于结构预测从而降低特征图的维度,为了减少计算量,V3 被修改后放到了 AvgPooling 的后面。先用 AvgPooling 把特征图的大小从 7x7 缩小到 1x1,缩小到 1×1 后,再用 1×1 来增加维度,这样就减少了 7×7 = 49 倍的运算量同时去掉前面纺锤型卷积的3×3以及1×1卷积,就变成了如图3所示的结构,将其中的3×3以及1×1去掉后,精度并没有得到损失,同时提高了速度。

1.3 增加BiFPN模块

本文将YOLOV7中的颈部网络修改为BiFPN,实现双向的深浅层特征融合,将特征信息在不同网络层之间的传递效率大幅度提升,增强了YOLOV7算法检测精度,使模型具有更加优越的检测性能。模型结构如图4。

1.4 增加BepC3模块

为了解决纯Repvgg网络无法达到检测准确性和速度权衡的问题,本文采用了一种新型Bep单元结构。Bep单元由多个RepConv(重参数化卷积模块)线性连接并带有额外的短路径。 CSP风格是YOLO系列框架中广泛使用的高效设计,例如YOLO v5。CSP风格结构使用交叉阶段部分网络,实现了更丰富的梯度组合,同时减少了计算量。本文将Bep单元与CSP风格结合,设计了一种新型结构,命名为BepC3模块,以平衡准确性和计算速度。BepC3的设计如图5所示。

2 损失函数

旋转检测回归损失设计的瓶颈一直是边界的不连续及其与最终检测度量的不一致。有研究者根据高斯Wasserstein距离提出了一种回归损耗,作为解决这一问题的基本途径。具体地说,通过梯度反向传播,可以通过有效地学习旋转边界框转换成二极高斯分布,从而使不能微量旋转的物体单位受到近似高斯距离(Gward)的损失,通过梯度反向传播有效地学习。即使在两个旋转的边界框之间没有重叠,GWD仍然可以提供学习信息,这通常是小目标检测的情况,尤其适用于体积较小的汽车零部件的缺陷检测,新框架的分析图6所示。

3 实验与分析

3.1 数据图像采集

本文训练数据集采用奇瑞汽车工厂提供的汽车零件图集,共有20000张照片,全部在真实场景下拍摄,如图5所示。采集系统由相机、汽车零件、光源、硬件等部分组成,相机选用CCD工业相机,光源采用环形光源的同轴光。

3.2 实验环境

神经网络训练环境采用Ryzen5-3600X处理器、32GB内存、NVIDIA TeslaP40 GPU 的PC,训练软件为python3.8,软件环境为Pytorch与MMDetection。在和其他常用的图像检测模型相比较时,为了衡量模型检测精度,本项研究采用平均精准度(Average Precision, AP)作为衡量指标,平均精准度IOU阈值取AP50(=0.5)与AP50:95(0.5 ~ 0.95)。

3.3 消融实验

设置了消融实验,对本文所提到的改进模型网络进行有效的验证。为了方便性能对比,YOLOV7原有模型的对应模块只替换成了相对应的试验模块。在收集到的数据集中,每组模型都要进行 400轮的训练。由于数据集包含了各种不同尺寸的零件缺陷类型,因此采用平均精确度AP50 与 AP50:95作为衡量该模型性能的标准。实验编号和结果如表1所示。

表1 消融实验

表1中的本文网络为使用MobileNetV3骨干网络,比较实验1和本项研究的网络可知,MobileNetV3模块通过高效提取多尺度特征图,有效提高了模型检测的精度;比较实验3与实验4可知,损失函数在融合WDLOSS之后使网络进一步收敛,进而实现更高的检测精度;比较实验1与实验2可知,MobileNetV3模块通过高效聚合多尺度特征图,有效提高了模型检测的精度;比较实验2与实验3可知,融和了BiFPN+BepC3颈部网络优化后的MobileNetV3网络相较于原YOLOV7模型对特征的提取有更高的效率,对于模型的检测精度有进一步的提升。上述结果表明本项研究所提出的优化方法对于YOLOV7模型的检测效率都有明显提升。

3.4 横向对比实验

在采集到的20000张汽车零件图片数据集上将改进后的算法与一些常见的图像检测模型进行对比试验,每一个模型进行400轮训练,由于采集到的数据集有大量大小不一种类不同的零件缺陷,故使用AP50、AP50:95与APs50:95作为模型的性能衡量指标。实验结果如图8所示。

由图8可知,在工厂汽车零件缺陷的检测场景中,本文所改进的模型在常规检测精度与小目标检测精度均高于RCNN,SSD,RetinaNet等常用汽车零件的缺陷检测算法,即使是面对传统的yolo x和v7等算法也有着明显的优势。在本项研究中对优化之后的YOLOV7模型进行400轮训练需要约86.4小时,是原YOLOV7模型所用时间的3.2倍。

4 结束语

本文针对汽车零件缺陷检测环境计算资源受限问题,以YOLOV7作为基础框架,采用MobileNetV3骨干网络作为特征提取网络,提高了模型的检测精度,同時也提升了其提取重 要特征的效率。训练时采用基于高斯Wasserstein距离的损失函数,加速算法收敛至更高精度。虽然在固定目标和小规模目标的检测中,使用 MobileNetv3 作为骨干网络的算法更具优势,但采用这种结构的模型需要更多的计算资源。未来研究的重点仍是如何减少零件缺陷检测算法所需的训练资源,并提高它们的训练效率。

参考文献

[1] 赵朗月, 吴一全. 基于机器视觉的表面缺陷检测方法研究进展 [J]. 仪器仪表学报, 2022, 43 (1): 198-219.

[2] 樊玮,李晨炫,邢艳,等.航空发动机损伤图像的二分类到多分类递进式检测网络[J].计算机应用,2021,41(8):2352-2357.

[3] REDMON J,DIVVALA S,GIRSHICK R,et al. You only look once:Unified,real-time object detection[C] Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway:IEEE,2016:779-788.

[5] SZEGEDY C,TOSHEV A, ERHAN D, et al.Deep neural networks for object detection[C] Proc of International Conference on Advances in Neural Information Processing Systems,2013 :25532561

[6] HOWARDA G,ZHU M,CHEN B,et al. MobileNets:efficient convolutional neural networks for mobile vision applications[EB/ OL].[2021-06-08]. https://arxiv. org/pdf/1704. 04861. pdf.

[7] ANDREW HOWARD, MARK SANDLER, GRACe C, et al. Searching for MobileNetV3[J]. ICCV Computer Vision and Pattern Recognition,2019,5(1):1905.02244.

[8] LIN T Y, DOLLAR P, GIRSHICK R,et al.Feature pyramid networks for object detection[J].IEEE Computer Society, 2017.DOI:10.1109/CVPR.2017.106.

[10] 孙博言,王洪元,刘乾,等.基于多尺度和注意力机制的混合监督金属表面缺陷检测[J].智能系统学报,2023,18(4):886-893.

[11] 程锦锋,方贵盛,高惠芳.表面缺陷检测的机器视觉技术研究进展[J].计算机应用研究,2023,40(4):967-977.

Detection Method of Auto Parts Defects Based on Improved YOLOV7

SHEN Ke-xiang , FANG Qun

(School of Computer and Information,Anhui Normal University,Wuhu 241003,China)

Abstract:The defect detection of automotive components usually adopts a deep learning model based on YOLOV7. In response to the problem of limited computing resources in the production environment, an improved YOLOV7 surface defect detection method for automotive components is proposed. Firstly, the lightweight network model MobileNetV3 is used to replace the YOLOV7 backbone feature extraction network. Secondly, the neck network is replaced with a repeated weighted bidirectional feature pyramid network BiFPN and a multi-path efficient design BepC3 module. Finally, a regression loss function based on Gaussian Wasserstein distance is used to replace the original loss function. The experimental results show that the algorithm improves the accuracy of AP50 by 0.155 compared to the traditional YOLOV7 and 0.139 compared to the YOLOx algorithm. It performs excellently in both detection accuracy and efficiency.

Key words: part defect detection; YOLOV7; Mobile NetV3; data enhancement; lightweight network

(責任编辑:马乃玉)