基于改进YOLOv5的汽车车门装配工艺检测
2024-05-27计成睿
计成睿
(合肥大学 人工智能与大数据学院,安徽 合肥 230601)
中国作为全球最大的汽车市场,在2022年汽车的生产量为2747.6万辆,同比增长3.4 %,反映出了汽车生产行业在制造业中的地位。工业4.0电子信息化的普及,使得工业制造过程自动化控制程度进一步大幅提升,汽车生产流水线自动化比例高达95 %。但高自动化生产的过程中同样存在有一定的概率出现装配错误等问题,目前对于汽车车门装配工艺检验主要仍依靠人工检测,使用人工方法进行检测不仅耗时耗力,还容易受到疲劳、心理因素等的影响,发生漏检或者误检的情况。因此将图像识别技术应用于汽车车门装配工艺,对提高检测效率,实现自动装配具有重要意义。
深度学习的快速发展已逐渐取代了传统算法在计算机视觉领域内的应用,深度学习鲁棒性的特性也促进了许多计算机视觉技术的落地使用。Pei Z等人[1]提出一种基于Canny边缘检测算法和SSDA(顺序相似性检测算法)的焊接部件识别方法,并利用图像分割来提高Hough变换检测汽车门焊点的精度。Mo Z等人[2]提出一种基于YOLOv3算法的汽车门板焊点识别方法。YOLOv3利用卷积神经网络提取深度特征,能够有效区分图像特征,准确地识别和检测焊点位置。Li H等人[3]提出了一种基于点云学习的焊点形状缺陷检测方法,该方法主要依靠于其所设计的轻量级神经网络Solder PointNet,网络利用局部群体注意机制以避免扫描点云中异常点的不利影响,可自适应地找到有利的临界点特征,同时设计了一种调制损耗来保证可靠的低误检率。You W等人[4]提出了一种基于Faster R-CNN算法来识别汽车门板的焊点,通过VGG16卷积神经网络从图像中提取特征图。区域提案网络为特征图生成区域提案。ROI池化从输入特征图和提案中提取提案特征图。全连接层利用提案特征图来计算提案的类别,而边界框回归器则获得预测框的准确位置。在本文所研究的汽车门板装配检测任务中,拟对螺钉、焊点、扣件这三类装配点位的装配情况进行检测,判断是否存在有遗漏未装配的情况。在该任务中主要存在各装配点位较小、且相似度高不易区分等难点,为解决上述难点本文提出了一种改进的YOLOv5算法,将原YOLOv5主干网络的C3模块加入CBAM注意力机制提升其主干网络的特征提取能力,然后为了能有效区分目标间的特征关系对网络中的SPPF模块进行改进,增大感受野范围丰富特征信息提高检测器相应的分辨及定位能力,以此提高对汽车车门装配的检测效率,降低漏检,误检的情况。
1 相关理论
结合流水线生产对于检验速度的需求,本文选用了基于端到端回归预测的YOLOv5网络作为基线网络,其精简的网络结构设计,对于提升网络的推理速度有较大的帮助,YOLOv5整体网络结构如图1所示。
图1 YOLOv5网络结构图图
如图1所示,YOLOv5网络整体可分为Backbone主干网络、Neck网络及检测器模块三个部分,其中主干网络负责进行特征提取操作、Neck网络负责对低维度及高纬度的的特征进行聚合,而检测器模块则负责完成对目标类别判定及位置预测工作。[5]而其整体网络主要由CBS、C3及SPPF三种网络层模块搭建。CBS模块由卷积层、BatchNorm批归一化层及SiLU激活函数层所构成。C3模块是一种重要的组件,包含了3个标准卷积层和N个Bottleneck模块,在不增加计算量的情况下提高特征表达能力。SPPF模块中,输入的特征图首先经由一个CBS模块做特征的平滑过度,之后输入到串联的三个5×5大小的最大值池化层,在将CBS模块及三个池化层的输出由concat层进行拼接,最后再经由一个CBS模块调整特征图的通道维度。在SPPF模块中,两个5×5大小的池化层串联等效于一个9×9大小的池化层,而三个5×5大小的池化层串联则等效于一个13×13大小的池化层,因此对于concat层则可汇聚多感受野大小的特征。
综上所述,YOLOv5网络各子网络功能区划分明确,且模块构造简单。使其在检测速度上具有一定的优势,适合应用于对检测速度有一定要求的应用场景中,故在后续的实验探究中,本文在YOLOv5结构的基础上做进一步的优化改进。
2 网络结构优化
本文对于汽车门板装配工艺的检测,具体实施为对:螺钉、焊点、扣件、螺钉孔位、焊点孔位、扣件孔位这六类目标进行检测,若检测结果中螺钉、焊点、扣件的个数与需装配的个数不符或检测到螺钉孔位、焊点孔位、扣件孔位这三类目标,则可判定装配工艺存在有漏装或装配错误等问题。由于螺钉等配件及装配孔位相对于车门板目标的形态较小、且目标间具有较高的相似性,对网络的特征提取能力有较高的要去。原有的YOLOv5网络对于小目标特征的提取未做专门设计,使得在检测精度上无法满足实用要求。因此本文基于YOLOv5网络结构进行优化设计,强化其对于小目标的特征提取能力。
2.1 C3-CBAM模块设计
首先,本文对主干网络中C3模块进行优化,在C3模块中引入CBAM注意力机制,CBAM是一种轻量级模块,在不需太多额外计算的同时,能够在通道与空间2个维度上提取特征图的注意力信息,提升检测精度。该模块包含了通道注意力模块和空间注意力模块两个子模块,[6]其网络结构如图2所示。
图2 CBAM模块结构图
通道注意力模块如图3所示,输入的特征首先通过平均池化层和最大池化层的操作聚合特征图的空间信息,然后送入MLP层通过加权求和操作生成通道注意力图,再经过Sigmoid激活操作将特征图转化为值域在[0,1]的矩阵,即为通道全权值图,该将权值矩阵与C3-CBAM模块输入的特征图相乘,完成对输入特征图的通道注意力计算,生成空间注意力模块的输入,通道注意力模块计算公式为:
图3 通道注意力机制模块
MC(F)=σ{MLP[AvgPool(F)]}+MLP[MaxPool(F)]
(1)
空间注意力模块如图4所示,将通道注意力模块的输出F’作为空间注意力模块的输入,首先经过首先进行最大池化层与平均池化层,对二者输出进行融合卷积操作,再经过Sigmoid激活操作生成空间全权值图,将加权系数MS与空间注意力模块的输入特征相乘便得到了最终的输出特征图F’’,[7-8]空间注意力模块计算公式为:
图4 空间注意力机制模块
MS(F)=σ(f7×7{[AvgPool(F),maxPool(F)]})
(2)
综上所述,引入CBAM注意力模块可以概括为:给定一个输入特征F,首先经过通道注意力模块,得到输出结果F’,该过程如式(3)所示,再将F’输入到空间注意力模块,得到F’’该过程如式(4)所示。
F′=MC(F)⊗F
(3)
F″=MS(F′)⊗F′
(4)
改进后的C3模块如图5所示,该模块增强主干网络对于特征的提取能力,提高了目标的检测精度。
图5 C3-CBAM模块
2.2 RFEM模块设计
其次,本文对SPPF模块进行优化设计,SPPF模块在网络中通过构建感受野金字塔结构以提取不同感受野的上下文语义信息进行融合,丰富特征图的语义信息。但SPPF模块中感受野金字塔的构建为最大池化层,其仅需较少的计算资源即可完成感受野的叠加计算,但无法进行深层次的特征提取。由于本文所检测的目标具有较高的相似性,为有效区分目标间的特征关系需依靠语义间的特征信息进行判别,因此本文在SPPF模块结构的基础上增加了空洞卷积组,以增强对深层语义特征的进一步提取,[9]优化后的模块本文命名为RFEM(Receptive field expansion module),模块结构如图6所示。
图6 RFEM模块结构图
相比于SPPF模块在RFEM模块中增加了空洞卷积组,通过空洞卷积组构造了感受野金字塔以提取不同粒度大小的特征信息。[10]空洞卷积相比较于标准卷积,其增加了空洞率参数r调整卷积核之间的间隔大小。假设原卷积核大小为k,加入空洞率后其卷积核大小k′的计算公式为:
k′=k+(k-1)(r-1)
(5)
以3×3大小的卷积核为例,当空洞率为1时其卷积核大小仍为3×3,空洞率调整为2时,其卷积核大小则扩大至5×5。即在相同计算参数的情况下,通过控制空洞率可等效更大的卷积核,以有效降低计算量。如图6所示,本文基于3×3卷积核分别将空洞率r设置为1、3、5构建了空洞卷积组。输入到RFEM模块的特征图由两条并行的上下文提取支路进行特征计算,其中一条为上述所述的空洞卷积组,其负责对语义级的上下文特征进行提取及合并;另一条支路为原SPPF模块中最大值池化组。起负责对空间级的上下文特征进行提取及合并。最终,采用concat层将两条支路所输出的特征图进行合并,获取更丰富的上下文特征信息。
综上,本文对原网络的C3模块及SPPF模块进行优化升级,增强主干网络对于小目标的特征提取能力,及对于空间、语义层次的上下文特征整合能力。相比于优化前,主干网络所输出的特征图增强了目标的权值比,具有更丰富的特征信息,对提高检测精度起到正向提升作用。
3 实验及数据分析
3.1 实验配置
本实验是基于Windows10操作系统,CPU为12th Gen Intel(R) Core(TM) i7-12700K,GPU为NVIDIA GeTForce RTX3090TI,使用Anaconda创建编译语言为python3.7的虚拟环境,使用CUDA和cuDNN图形加速,深度学习框架采用PyTorch1.9。
3.2 数据集说明
在数据集方面由于数据集较少,所以在训练之前,先通过旋转、裁剪等方法对原有数据集进行扩充,增加数据量的同时,也提高数据的鲁棒性。增强后共有汽车门板装配图1500张,其中1300张作为训练集、200张作为测试集。共标记六类目标,每类目标在数据集中的样本个数情况如表1所示。
表1 样本分布情况
3.3 网络训练
设定本次实验,学习率为0.01,动量为0.9,权重衰减设定为0.0005,bacthsize为8,训练轮数为500轮,输入模型的图片为640×640×3。整个训练过程的损失函数的变化情况如图7所示,根据损失值的变化可以发现前300轮的训练,损失值下降的较快,到500轮时,基本趋于稳定,说明网络已经收敛,可以对模型进行测试工作。
图7 损失函数曲线
3.4 评价指标
在对模型的检测性能评测环节,本文选用以下客观衡量指标,各衡量指标意义及公式如下所述:
Precision:指模型预测正确的正样本与其检测出的所有正样本数量之比;
(6)
Recall:指模型预测正确的正样本与实际所有正样本的数量之比;
(7)
其中TP表示模型预测为正样本且实际也为正样本的数量,FP表示模型预测为正样本但实际为负样本的数量,FN表示模型预测为负样本但实际为正样本的数量。
F1-Score:Precision与Recall指标的调和指标,由于Precision指标与Recall指标存在有互斥关系,因此采用F1-Score指标综合反映模型的查准率与查全率;
(8)
mAP:AP值计算仅仅是针对一个类别计算精确率,mAP是计算所有类别的精确率取其平均值;
(9)
3.5 消融对比实验
在实验环节,首先本文基于YOLOv5网络采用消融实验法,以评估本文所设计的C3-CBAM模块及RFEM模块对于网络检测性能的提升,在消融实验中共设置四个网络,各网络的设置及评估指标值如表2所示:
表2 消融对比实验结果
网络1即为YOLOv5,其作为网络2、3、4的参照对比网络。网络2相比于网络1将主干网络中的C3模块均替换为C3-CBAM模块,从数据对比中可以发现网络2的相对于网络1综合性能mAP提高了4.8 %,说明了C3-CBAM模块对于网络检测性能具有一定正向作用。Recall指标相较于替换前有了明显的增加,但在Precision指标上相比于网络1也有较明显下降,说明虽然网络2的综合性能有所提高,但对某些特征不明显类的检测效果还不是很好。网络3相比于网络1,将SPPF模块替换为RFEM模块,RFEM模块通过空洞卷积组对上下文语义特征进行提取,同时将语义特征与原SPPF模块中的最大值池化层组所提取到的上下文空间形态特征进行融合,从测试结果中可以看出采用RFEM模块对特征不明显的类别识别有了明显的改善。网络4即为本文所设计网络的最终形态,其结合了网络2与网络3的优势,与网络1的数据相比,在各项指标上均有明显的提升,从综合性能指标F1和mAP来看,网络4的F1和mAP相对于网络1分别提高了5.4 %和5.9 %,Precision指标提高了2.1 %,Recall指标提高了8.4 %。
为了能够进一步的证明优化后的模型效果要比原模型的效果要好,分别使用网络4与网络1的模型在实际车内门板的部分检测效果对比如图8所示:
从上组对比图中,可以直观的看出优化后的网络模型对于扣件和焊点空位缺陷类有了明显的提高,对焊点缺陷类检测精度基本保持不变。由此证明改进后的模型在检测精度上有了较大的提升。
3.6 多网络模型对比实验
为验证本文所设计网络相较于其他类型及同类型的网络模型在该任务上的检测性能优势,本文选用了YOLOv3、SSD等目标检测算法,采用相同数据集进行训练与测试,所得到的对比数据结果如表3所示:
表3 多网络模型对比结果
在表3中,首先对比数据结果中可以直观的看出本文所设计的网络在各项指标中均最优。其他网络型态不适用该任务的主要原因如下,YOLOv3整体结构与本文网络不同,YOLOv3使用的是DarkNet网络,而YOLOv5使用的是CSPNet,它通过分离卷积和处理重复计算提高了网络的精度;SSD网络整体设计以轻量化为主,网络深度较浅,存在对目标特征提取不充分等问题。
综上,本文通过消融实验与多网络形态的对比实验,验证了本文整体工作的有效性,解决了在汽车门板检测任务中,零部件相似度高、特征不明显等难点。
4 结论
本文基于YOLOv5网络中的C3即SPPF模块进行优化替换,将优化后的网络用于对汽车门板装配工艺中相应配件及装配孔位的检测。结合对实际应用场景的难点分析,本文所用的C3-CBAM模块提升了对于目标特征的感知能力、RFEM模块提升了对于上下文特征的聚合能力,使得主干网络的性能有较为显著的增强。经过实验验证,本文所设计网络相比于优化前及其他类型的目标检测网络,在该任务中整体鲁棒性表现最优。