谢 宁,陈 梁,裴自卿,何智成*,陈 涛,3
(1.上汽通用五菱汽车股份有限公司,广西 柳州 545007;2.湖南大学 汽车车身先进设计制造国家重点实验室,湖南 长沙 410082;3.湖南湖大艾盛汽车技术开发有限公司,湖南 长沙 410217)
随着汽车产业的发展,汽车产量逐年增加,人们对汽车的创新及安全性要求也随之提高。汽车白车身作为全车最大的零件,承载着其他所有零件,在某种程度上决定了汽车的安全性能。在生产过程中,焊接是白车身运用最多的连接工艺,一个白车身的点焊个数能达到4 000~5 000个,所以焊点的质量检测就显得尤为重要。通过计算机视觉对焊点进行定位,进而配合其他焊点质量检测装备的方式与传统人工检测和离线示教的方法相比可以大大提升检测效率,实现实时定位误差补偿。王树强等[1]利用传统图像处理提取目标特征的方法易受到光线、污渍等各种环境因素的影响,从而出现误检和漏检的情况,造成焊点定位精度和效率低下。何智成等[2]通过目标检测的方式对焊点定位,但难以进一步定位到焊点圆心位置。图像分割是计算机视觉的基础,是理解图像信息的重要方式,能大大降低环境因素的影响,可以以像素级的精度将焊点从图像中分离出来[3]。
2015年,Long J等[4]提出了一种语义分割的框架,即Fully Convolutional Networks(FCN),使用全卷积与反卷积操作,可以接受任意大小的图像并输出相同大小的预测结果,产生像素级的分类效果;受ResNet 残差网络的启发,Xiao X 等[5]提出了Res-U-Net,通过引入加权注意机制和跳过连接解决视网膜血管的分割问题;Chen L C等[6]将深度卷积神经网络与条件随机场相结合,在测试集中达到了71.6%的IOU准确率,开创了PASCAL VOC-2012图像分割任务的新水平。
U-Net 网络[7]的提出构建了一套完整的encoder(编码器)-decoder(解码器)结构,不同于FCN 通过对应像素值相加融合特征,UN-et 采用通道拼接的方式形成更厚的特征层,保留了更多维度,更利于图像分割。Guan S 等[8]受密集连接的启发,提出一种全密集U-Net 来去除图像中的伪影;Huang H 等[9]利用全面的跳过连接和深度监督,构造出了U-Net 3+网络,不仅将低级细节与不同尺度特征图的高级语义相结合,而且从全尺寸聚合特征图中学习分层表示,提高检测精度和计算效率。Chen L C 等[10]提出了一种专门处理语义分割的DeepLab 系列网络,去掉池化层减少信息丢失,引入空洞卷积,在有效扩大感受野的情况下不增加计算量。
深度学习的迅速发展使得神经网络的结构越来越复杂,训练所需时间越来越长。相比之下,UNet网络结构简单,只需要较小的数据集就能达到比较好的分割效果[11],汽车白车身的焊点定位类别单一、结构单一,因此选用U-Net 网络为基础网络进行修改,并且通过实验证明,提出的RPSA-U-Net网络性能较原网络有显著提升。
U-Net 网络是一种常见的图像分割模型,简单、高效、容易构建,它提出的初衷是为了解决医学图像分割问题,其结构如图1 所示,通过对输入图片进行一系列卷积、池化、下采样操作,获得不同尺寸的特征图,然后对最后一层的特征图进行上采样或反卷积,再与上一层特征图进行拼接,最终输出理想尺寸的预测结果。
图1 U-Net模型结构Fig.1 U-Net model structure
U-Net网络相比于其他语义分割模型规模较小,但在复杂车间环境下对白车身焊点检测的精度还有待提高。当增加网络深度以增大感受野时又会导致细节的丢失,不利于焊点这类小目标的检测。为此,从卷积结构、损失函数对UNet网络进行改进,并融合注意力机制建立通道关联,得到最终的RPSAU-Net网络模型来弥补U-Net的不足。
标准卷积核的参数量和运算量都较大。对于输入尺寸大小为w×h×c,输出尺寸大小为w1×h1×c1的特征图,拟定卷积核大小为k×k,分组卷积的运算过程如图2 所示,若使用标准卷积核,则参数量为
图2 分组卷积运算过程Fig.2 Grouping convolution procedure
计算量为
若使用分组卷积,将卷积核分为g组,则参数量为
计算量为
由式(1)~式(4)可知,使用分组卷积时的参数量和计算量只为使用标准卷积时的1/g,group设置越大,数值减小越多。分组卷积的应用可以使网络模型更轻量化,同时还能使模型以并行方式在多个GPU上进行训练,提高训练效率。
受He K 等[12]提出的残差网络的启发,利用其shortcut 短接思想,通过跳过一些层来解决梯度消失的问题,并融合分组卷积,用3×3分组卷积改变特征维数,再用一个标准卷积克服分组卷积带来的通道间信息不流动现象,同时进一步下采样。在每一层的两个3×3 卷积两端用shortcut连接,并使用1×1分组卷积保证维度相同,同时减少运算量。通过使用BN(Batch Normalization)层来解决梯度消失或梯度爆炸的现象,采用Dropout 结构避免网络过拟合,提高模型泛化能力,用LeakyReLU 激活函数避免负半轴的信息丢失。最终形成新的卷积结构如图3 所示,在降低整体参数量的同时可以有效避免随着深度增加网络出现的过拟合现象。
图3 改进卷积结构示意图Fig.3 Diagram of improved convolution structure
在分类问题中常使用交叉熵损失函数,针对白车身焊点的定位检测属于二分类问题,即焊点和背景,若输入图像中某像素点为焊点的概率为P,则为背景的概率为1-P,交叉熵损失函数的表达式为
式中:xi为第i个像素点的label,正类为1,负类为0;yi为第i个像素点预测为正样本的概率。
Dice 系数是图像分割的重要评价指标,是一种集合相似度度量函数,通常被用来衡量网络预测结果和label 之间的相似程度,大小在0~1 之间,其公式为
Dice损失函数公式为
式中:|X∩Y|为X与Y的交集,在数学上表示对应的像素矩阵点乘后再将结果的各元素相加的总和;|X|和|Y|为对像素矩阵各元素直接求和或平方和。
交叉熵损失函数是一种常用的分类损失函数,它注重平等地对每个像素点分类,然后对所有像素损失取平均,但针对本数据集而言,焊点区域在图片整体占比较小,因此训练出来的模型会更偏向于预测为背景类,影响预测结果的准确性。Dice Loss 是一种区域相关性较强的损失函数,将其引入可使网络在训练中更加注重对前景的挖掘,能够以更整体的方式看待预测结果,在焊点和背景像素点数量不平衡的情况下有着不错的效果。因此,将Dice 损失函数和交叉熵损失函数结合,在关注焊点区域的同时克服了Dice Loss带来的训练不稳定的问题。令λ为交叉熵损失的权重系数,通过调节λ的大小改变网络对这种损失函数的关注程度,进而设计了一个新的损失函数(DC Loss),其表达式为
对λ的取值采用消融实验的方式进行比较,最终发现,当λ=0.7时,网络的性能最好。
人类视觉的注意力机制是关注所有信息的某一部分,同时忽略其他信息,同理,计算机视觉的注意力机制关注图片的局部区域,而忽略其他不重要的区域[13]。因此,通过引入注意力机制,可以使网络在训练过程中更关注对焊点区域的学习。将Pyramid Squeeze Attention(PSA 模块)[14]融入改进网络,在U-Net 网络执行拼接操作之前将encoder 部分每一层的特征图通过PSA 注意力机制,利用多尺度金字塔卷积结构来整合输入特征图的信息,通过对张量通道维度的压缩得到不同尺度特征图的空间特征和注意力权重,进而进行拼接构建跨维度交互,再通过softmax 对输出进行加权,由此建立一个长期的通道依赖。通过融入PSA 注意力机制,改进后的网络模型可以对不同尺度的特征图提取有效信息,并对通道建立长期稳定的依赖关系,其主要流程如图4 所示。
图4 PSA注意力机制工作流程Fig.4 PSA attention mechanism workflow
综上所述,将PSA 注意力机制融入U-Net 神经网络,结合交叉熵损失函数和Dice 损失函数的优缺点对网络损失函数进行优化,并改进卷积结构,结合分组卷积和shortcut 跳跃思想,使整体网络更加轻量化,更好地将深层和浅层信息融合,从而提高网络性能。最终提出的RPSA-UNet网络结构如图5 所示。
图5 RPSA-U-Net模型结构Fig.5 RPSA-U-Net model structure
所提焊点检测网络是基于U-Net 网络改进的模型,和其他目标检测或语义分割的网络相比,只需要较小的训练样本,因此,选用了400 张不同光线下不同位置的白车身焊点图片作为训练图像,包括过明、过暗、油污、生锈等各种车间内常见的情况,并用labelme软件对焊点位置进行像素级标注,再选260 张图片作为验证集,大小均为224×224。
语义分割模型的评价指标通常有Pixel Accuracy(PA),Mean Intersection over Union(MIOU)以及Dice系数。
PA表示分类正确的像素数量占总像素数量的比重,操作简单,但不适合评价焊点这种小目标的语义分割效果;MIOU是语义分割的标准度量,即为每一类的平均交并比,其计算公式为
式中:k+1 为总的类别数,对于二分类问题,k=1;pij为将i预测为j类,表示False Positive(FP);pii为将i预测为i类,表示True Positive(TP);pji为将j预测为i类,表示False Negative(FN)。
通过建立混淆矩阵得到准确的MIOU 值,同时采用1.2 节中提到的Dice 系数作为评价指标,综合两个系数评判网络效果。
所有的实验均在pytorch 深度学习框架下进行,对400 张白车身焊点图像进行训练,通过消融实验来证明改进的合理性。根据前文中提到的改进思路划分7 种工况分别训练,如表1 所示,训练轮数为300 个epoch,选用Adam 优化器,batchsize 设为2,学习率为0.001,每10 步打印1 次训练损失,对每个epoch 的 Dice 系数和MIOU 值取平均数,训练结束后比较每种工况下的MIOU 和Dice 系数,并在验证集上进行验证,比较检测结果。
表1 工况名称及含义Tab.1 The name and meaning of working conditions
各训练模型最后1个epoch的MIOU,Dice系数以及参数量情况如表2 所示。
表2 各模型的训练结果对比Tab.2 Comparison of training results for each model
由表2 结果可知,与原始U-Net 相比,所有改进思路均有提升效果,R-U-Net 网络将Dice 系数提高了1.4%,MIOU 提高了1.26%;GU-Net 网络的参数量相比原始网络减少了36%,Dice 系数提高了4.8%,MIOU 提高了4.6%;LU-Net和PSA-U-Net网络对焊点检测效果的提升程度比较接近,Dice 系数分别提高了6.38%和6.31%,MIOU 分别 提高 了6.8% 和6.7%;RGL-U-Net 网络在将参数量减少29.6%的同时,Dice 系数提高了6.9%,MIOU 提高了7.8%;最终的RPSA-U-Net 网络检测效果最好,相较于原始UNet 网络,其Dice 系数提高了8.76%,达到0.983 6,MIOU 提高了11.5%,达到0.967 81,同时网络参数量减少了7%。
最终提出的RPSA-UNet 网络在训练过程中的损失变化曲线如图6 所示,由于batchsize 设为2,即每次传入2 张训练样本,400 张样本,300 轮,共计6×104次迭代。可知在第300 个epoch 时,损失基本趋于稳定,模型达到收敛状态。Dice 系数变化曲线和MIOU 变化曲线如图7所示,在前10 个epoch 数值都迅速增加,最后在第275个epoch左右逐渐趋于稳定。
图6 训练损失变化曲线图Fig.6 Change curve of training loss
图7 Dice系数、MIOU变化曲线图Fig.7 Change curve of Dice and MIOU
网络模型在验证集上的分割效果如图8 所示,从上往下分别为原图、原始U-Net 和提出的RPSA-U-Net 模型的分割结果。通过实验对比可知,光照环境对分割结果影响很大,在光线较强或较弱时,U-Net 网络会出现检测结果不完整甚至漏检的情况;当图像中出现类似焊点的干扰信息时,U-Net 网络出现了误检的情况;在焊点被部分遮挡的情况下,U-Net无法检测到相关信息。综上,最终提出的RPSA-U-Net 鲁棒性更强,分割效果明显提升。
图8 模型分割效果对比Fig.8 Comparison of the segmentation effects of the models
传统的霍夫圆检测算法复杂度随模型参数量呈指数增长[15]。理想的焊点在图像中呈正圆形,但由于拍摄角度在大多数情况下并不垂直于焊点平面,且由于在生产过程中存在误差,实际的白车身焊点在图像中更近似于椭圆。由此,本文对RPSA-U-Net 的图像分割结果进行椭圆拟合,从而找到焊点圆心,相比于传统的图像处理方法,前者提取焊点圆心的效果更好。为进一步证实找到焊点中心,使用所提方法对分割结果图进行圆心定位,再用图像处理的方法进行圆心定位检测,主要流程为:导入图片、灰度化、滤波处理、canny 边缘检测、霍夫圆变换。两种方法在过明、过暗、生锈、污渍几种不同环境下的圆心检测结果对比如图9 所示。第一行是所提方法拟合出的焊点圆心图,第二行是基于传统图像处理方法找到的焊点中心图。通过对比可知,光线对传统图像处理方法的影响很大,在光线过明或过暗情况下都难以识别到完整的焊点轮廓,更无法准确检测出圆心位置;在生锈或有污渍的情况下能够检测到部分焊点的圆心,但噪点会对检测效果产生很大的影响,容易出现误检的情况。总得来说,使用传统图像处理方法检测焊点圆心鲁棒性差,且易受到环境的影响,而基于RPSA-UNet 的深度学习检测方法鲁棒性强,对环境的敏感度低,检测效果更好。相比于人工检测,也能在提高效率的同时保证检测精度。
图9 两种检测圆心方法对比Fig.9 Comparison of two methods for detecting the center of the circle
为解决白车身焊点质量检测过程中基于计算机视觉定位容易受到环境因素的影响,从而影响定位精度和检测效率的问题,提出了一种基于U-Net 网络改进的语义分割模型RPSA-U-Net,通过融入shortcut 跳跃思想,加强深层和浅层特征图的信息融合;合理运用分组卷积减轻网络结构,减少网络参数和运算量;融合Dice Loss改进损失函数,用交叉熵损失函数来平衡Dice Loss造成的梯度不平衡现象,并通过实验找到效果最好的融合系数;融入PSA 注意力机制,能够有效建立通道依赖,提升网络性能。所提RPSA-U-Net模型受光线、生锈、油污等环境因素的影响更小,鲁棒性更强,能够适应车间恶劣的生产环境,并结合椭圆拟合的图像处理方法可进一步找到焊点圆心,从而配合其他自动化设备有效检测焊点质量,大大提高了检测效率,具有应用价值。