改进YOLOv3的轮毂焊缝缺陷检测
2021-10-04张秀峰
王 宸,张秀峰,刘 超,张 伟,唐 禹
(1.湖北汽车工业学院 机械工程学院,湖北 十堰 442002;2.上海大学 上海市智能制造与机器人重点实验室,上海 200072)
1 引 言
轮毂是车辆的承载部件,其主要由轮圈和辐板两部分组成,制造方法有焊接法、铸造法和锻造法。在焊接法的生产过程中,需要对轮毂焊接焊缝的缺陷进行检测,来保障轮毂产品质量。轮毂焊缝缺陷多为表面缺陷,目前采用人工目测的方法进行检测,但此方法检测效率低,检测人员容易疲劳,存在漏检和误检等问题。随着机器视觉等技术的不断进步,尤其是人工智能技术在工业领域的应用[1],给智能化检测带来了更多解决方案[2]。为了改进人工检测方法[3],可以把焊缝缺陷看作目标检测问题,采用目标检测的方法实现焊缝缺陷的智能化检测。目标检测[4]的方法主要可以分为两类:一类是采用传统机器视觉的方法另一类是采用深度学习的方法。
传统的机器视觉方法使用特定编程算法,提取特征信息进行分类识别。罗志伟等[5]根据焊球的形状和尺寸特征,使用高斯混合模型实现了其缺陷的识别分类,得到了97.06%的检测准确率,但是存在较高的误判率,数据样本较少。高向东等[6]采用主成分分析和支持向量机对高强钢焊缝特征的动态磁光图像进行分析,实现了焊缝缺陷的自动检测,识别率为92.6%。Malarvel等[7]使用了机器视觉方法对焊缝图像进行去噪,利用梯度幅值增强图像特征,实现了焊缝缺陷检测,但方法对于弱缺陷特征的检测效果较差。汤勃等[8]采用了多尺度高斯函数方法提取了图像的光照参数,实现了对光照不均的自适应校正,并且使用遗传算法优化图像分割阈值,实现了钢板表面缺陷的有效检出,该方法受环境和光照等因素的影响较大。上述的传统机器视觉方法都是针对特定问题,设计特征提取算法,不能高效地提取多种焊缝缺陷特征,并且在复杂环境下易受干扰,准确率较低。
深度学习算法特别是卷积神经网络(CNN)[9]算法拥有强大的自动提取特征能力,使得其在复杂环境下能较好地完成目标检测任务[10]。上海大学的马立等[11]对Tiny YOLOv3算法模型的特征提取网络与损失函数进行改进,提升了模型对小目标的检测准确率。王建林等[12]改进了YO‐LOv2算法模型,利用数据增强扩充数据集,得到了90.48%的多类型合作目标检测精度。余永维等[13]将Inception网络结构结合SSD算法,最终在自制的零件数据集上得到了97.8%的准确率,其检测速度快满足实际生产的零件检测需求。华中科技大学的谢经明等[14]使用轻量化的YOLO算法实现了焊缝X射线图像的准确识别。周明浩和朱家明[15]使用卷积神经网络检测机械零件的表面缺陷,取得了极高的识别准确率,证明了其在零件表面缺陷检测方面的优势。赵海文等[16]使用卷积神经网络对汽车轮毂的划痕、擦伤等表面缺陷进行了检测,检测试验结果表明该方法检测准确率高、鲁棒性强。Chen等[17]使用深度卷积神经网络检测铁路接触网的悬臂连接件的缺陷,通过大量实验和比较,该方法在复杂环境下具有较高的检测率和良好的环境适应性。
轮毂生产的环境十分复杂,焊缝的表面缺陷种类多,使用传统机器视觉的检测方法通用性差,算法鲁棒性不足,检测效率低,难以满足实时性需求。基于深度学习的目标检测算法[18]通用性好、鲁棒性高,检测速度快、准确率高,适用于环境复杂的工业目标检测。本文基于YO‐LOv3[19-20]算法,首先设计了检测平台结构,然后采集了焊缝图像制作数据集,最后对YOLOv3算法进行了改进优化,得到YOLOv3-MC算法模型并进行检测试验。
2 材料与方法
2.1 智能检测平台与检测试验流程
在轮毂的生产过程中,企业依靠人工目视来检测轮毂焊缝的焊接质量,筛选出不合格产品。为了能在实际的生产过程中实现轮毂焊缝缺陷的智能化检测,本文模拟生产中的实际情况设计和搭建了智能检测平台。其结构简图如图1所示。
图1 检测平台结构设计简图Fig.1 Structure diagram of detecting platform
检测平台的主要结构有输送装置、图像采集装置和缺陷工件顶出装置,平台的检测流程如下:在实际生产过程中通过输送装置将轮毂由上一工序传输到检测平台,当轮毂到达预定位置并触发光电传感器时,图像采集装置开始对轮毂焊缝进行取像。在取像时,由于轮毂的尺寸是固定的,轮圈和辐板的焊接位置是一个固定位置的圆,并且焊接机器人焊接的焊缝长度是固定值10 cm,每个轮毂有四条焊缝,所以将相机聚焦到该圆附近进行旋转拍照即可完成数据采集。然后将图像信息传输到工作站进行处理并判断是否合格,若其结果是焊缝无缺陷,则检测结束,轮毂传输至下一工序。若检测结果是焊缝存在缺陷,则在轮毂经过1第二个光电传感器时启动顶出装置,将不合格轮毂顶出到缺陷工件回收滚道上,搭建的模拟智能检测平台实物如图2所示。
图2 智能检测平台Fig.2 Intelligent detecting platform
本文的检测试验流程可分为图像数据采集,制作数据集,训练模型,测试模型和对比分析。试验首先需要采集轮毂焊缝图像,使用BFS-U3-89S6C-C型号面阵CCD传感器工业相机,其最大分辨率为4 096×2 160,帧频为42FBS,数据接口为USB3.0,使用型号为HC3505A的定焦镜头。然后对采集的图像做预处理并且制作数据集,使用图像标注工具对各类焊缝缺陷图像进行标注。数据集包含了用于模型训练的训练集,用于评价模型性能的验证集和用于检测的测试集,并且使用数据增强方法扩充数据集。最后进行识别检测,对检测结果数据进行分析。整体试验流程如图3所示。
图3 轮毂焊缝检测试验流程图Fig.3 Flow chart of test about wheel hub welds detection
2.2 图像采集与数据增强
轮毂焊缝缺陷图像数据来源于某轮毂生产企业中的轮毂焊缝缺陷样本。根据常见的轮毂焊缝表面缺陷类型,将焊缝缺陷划分为断弧、焊瘤、偏焊、起弧不良和气孔5种缺陷类型。其中断弧的缺陷特征是焊缝表面有明显的凹陷或穿透;焊瘤是指焊接过程中,熔化金属流淌到焊缝之外未熔化的母材上所形成的金属瘤;偏焊缺陷特征为焊缝发生偏移,未在中间位置;起弧不良的缺陷特征为焊缝两段的端头有缩颈;气孔是指熔池中的气泡在凝固时未能逸出而残留在焊缝表面形成的空穴。
在轮毂生产过程中,出现焊缝缺陷的概率较小,但是深度学习需要大量的训练图像来减少过拟合,减少由不相关特征产生的建模偏差。现有的解决方法有数据增强、正则化和元学习(Metalearning)等,由于轮毂焊缝的背景较为相似,使用数据增强方法不仅可以扩充数据集的数量,而且可以避免模型学习到背景特征。采用数据增强后最终得到可用的轮毂焊缝图像共计18 990张。
2.3 标注与制作数据集
将缺陷图像划分为训练集、验证集和测试集,划分比例大约为7∶2∶1,其中训练集9 064张,验证集3 140张,测试集有缺陷焊缝图像1 368张,统计结果如表1所示。本文试验使用开源图像标注工具LabelImg[21],标注图像数据中的焊缝缺陷位置,共标注了12 204张图像。其中断弧缺陷标注2 484张;焊瘤缺陷共标注2 484张;偏焊缺陷共标注2 457张;起弧不良缺陷共标注2 286张;气孔缺陷共标注2 493张。轮毂实际生产过程中,轮毂焊缝产生缺陷是相对概率较小的事件,所以在测试集中加入了5 418张完好无缺陷的焊缝图像作为干扰项,模拟实际情况。如图4所示展示了最终的数据集的5类缺陷,其中第一列是采集图像,第二列是标注图像,其余三列是增强后的图像数据。
图4 轮毂焊缝检测试验流程图Fig.4 Flow chart of test about wheel hub welds detection
表1 数据集中各类别图像数量Tab.1 Numbers of each types in the dataset
3 算法原理与改进
3.1 YOLOv3原理
YOLOv3是基于回归方法的端到端的目标检测算法,其直接通过一个深度卷积神经网络将原始图像数据信息转变为目标物体的位置和类别信息,把目标检测问题转化为回归问题,得到边界框和类别置信度。这种端到端的一步式处理方法使检测速度得到极大提升,适用于实时检测,并且该算法通用性强,检测准确率高。
YOLOv3的主干网络是Darknet-53的卷积神经网络,用于对输入图像的特征进行提取。YOLOv3可以实现对不同大小尺度的目标进行检测[22],其采用多尺度融合的方法实现局部特征交互[23],对主干网络提取到的三个不同尺度的特征图Y1,Y2和Y3进行融合预测。不同尺度的特征图是把输入图像划分成不同数量的单元格,数量越多越容易检测小目标物体。特征图的每一个单元格所含信息大小用维数D表示,其计算方法如式(1)所示,YOLOv3的整体算法网络结构示意图如图5所示。
图5 YOLOv3网络结构示意图Fig.5 YOLOv3 network structure diagram
其中,E表示每个单元预测的边界框数量,F表示检测目标的类别数,G代表每个边界框包含的4个位置坐标信息和1个目标性得分信息。在YO‐LOv4算法中有多种改进方法,例如使用Mish激活函数和CIoU计算损失函数的方法等[24]。通过这些改进,算法的检测精度和检测效率都有明显提升。
3.2 非线性激活函数改进
YOLOv3的算法结构最小单元是DBL结构,其由卷积层,批次归一化层(Batch Normaliza‐tion)和非线性激活组成。非线性激活是使神经网络具有非线性的关键单元,它决定了人工神经元是否处于激发状态,这种模拟生物神经结构的方法赋予了深度学习算法学习复杂函数的能力,YOLOv3算法采用Leaky ReLU激活函数。本文针对YOLOv3主干网络的激活函数做优化,使用Mish函数替换原激活函数[25],图6是这两种激活函数曲线图。
图6 激活函数曲线图Fig.6 Activation function graph
Leaky ReLU激活函数的表达式如下公式2所示,Mish激活函数的表达式如下公式3所示。显然可以发现Mish函数是连续函数,其可以连续微分,这使得在反向传播时梯度优化更容易,优化效果更好,网络泛化效果也更好。并且Mish函数在正无穷方向发散,在负无穷方向收敛到0,函数在x轴下方具有非单调性且有最小值,这可以产生较强的正则化效果。通过函数表达式计算可得,Mish函数的最小值点为(-1.192 4,-0.308 44),这使得绝对值较小的负输入也会有相对较大的负输出,提高了模型表达能力和控制流。本文在主干网络中采用了Mish激活函数替换Leaky ReLU激活函数,以期得到更高的检测平均准确率,并在下文的试验中验证了其改进效果。
3.3 损失函数改进
YOLOv3算法在进行迭代计算时使用损失函数来表征预测框与真实框之间的差异程度,通过不断更新权重值,损失函数值不断减小,YO‐LOv3的损失函数公式如公式4所示。
式(4)中的1,2项为定位损失函数,3,4项为置信度损失函数,第5项是分类损失函数。式中obj表示单元格内含有目标,noobj表示单元格内没有目标,i表示第i单元格,j表示该单元格预测的第j框。txi,tyi表示预测框的中心点横纵坐标偏移值,twi,thi分别表示预测框宽与图像宽的比,预测框高和图像高的比,同样的,tpxi,tpyi,tpwi,tphi分 别 表示真实框的相应地的位置信息。“1”表示第i单元格第j框中是否含有目标的示性函数,C表示预测框置信度得分,P表示条件类别概率值。公式4中的λcoord=2-w×h,其取值范围是(1,2)。如公式4中的最后一项所示,YOLOv3在分类损失计算中使用了交叉熵。
YOLOv3算法计算损失函数的过程中,前两项的定位损失函数计算,使用的是位置坐标的二范数值,这种度量方法有可能出现交并比(Inter‐section over Union,IoU)不同,但二范数值却相同的情况。如果直接使用IoU又会带来梯度消失问题。2019年Rezatofighi H等人引入广义交并比GIoU来弥补IoU的缺点,对深度学习算法的损失函数的度量方法进行优化[26],GIoU计算公式如公式6所示。
其中,A表示真实框,B表示预测框,M表示包含A和B的最小外接矩形。GIoU不仅可以度量重合度还度量了非重合的程度,可以更好地反映预测框的优劣。但从式(6)可知,当真实框A与预测 框B处于包含关系时,M-(A∪B)=0即GIoU退化为IoU。事实上要度量两个框的重合程度应该同时考虑重叠面积、中心点距离和长宽比三个因素。
Zheng和Wang等人在2019年提出了能同时计算这三要素的度量指标CIoU[27],该方法是在IoU的计算后面加入关于中心点距离和长宽比的两项惩罚项,如式(7)~式(9)所示。改进度量指标后可以提升算法模型的检测准确率,尤其可以显著提高预测框的定位精度,下文的试验结果验证了该改进的效果。
其中,c表示最小外接矩的对角线长度,b,bgt分别表示预测框和真实框的中心点,ρ2表示欧氏距离,v表示长宽比一致性衡量参数,wgt,hgt分别表示真实框的宽和高,w和h表示预测框的宽和高。
4 试验结果与分析
4.1 试验训练与检测过程
本文的轮毂焊缝智能化检测方法所训练和测试的模型均运行在Windows 10操作系统的高性能工作站上,其配置为英特尔2.10 GHz八核CPU,32 GB内存,Nvidia GeForce RTX 2080Ti显卡。试验通过模型验证结果反馈,选择最优超参数值,每次训练模型迭代20 000次,用时在22 h左右。
4.2 模型的评价指标
为了对训练出来的模型进行客观评价,需要使用一些评价指标。准确率(Precision)表示预测为真的样本中正样本数的比例,召回率(Recall)表示在所有真实情况为正的样本中预测为真的样本数的比例,平均精度AP(Average Precision)是不同召回率下的准确率的平均值,均值平均精度mAP表示不同类别的AP值的平均值,辅助评估值F1[28]值是准确率与召回率的综合值,具体公式如下。
其中,TP表示预测为真的正样本(True posi‐tive),FN表示 预测为假的负样本(False nega‐tive),FP表示预测为假的正样本(False posi‐tive),k表示类别数,AP(i)表示第i个类别的AP值。
4.3 试验结果对比分析
在本次试验中,综合考虑不同训练超参数和不同算法模型的影响,选用以下四种算法模型进行对比:使用原始YOLOv3算法,用YOLOv3表示;使用Mish激活函数优化主干网络的YO‐LOv3算法,用YOLOv3-M表示;使用CIoU优化损失函数的YOLOv3算法,用YOLOv3-C表示;同时使用Mish激活函数和CIoU优化方法,用YOLOV3-MC表示。如下图7和图8所示,对四种模型的训练过程作可视化处理,以便分析训练过程中的损失函数(Loss)值和平均交并比变化情况。
图7 Loss值随着迭代次数变化曲线图Fig.7 Loss value curve changes with iterations
如图7所示,四种算法模型在训练中Loss值整体变化趋势一致,它们都在前2 000次训练中快速下降,然后逐渐趋于稳定,但依然会小幅震荡。如图8所示,平均交并比在训练前期数值较低且波动较大,在训练7 000次后都会逐渐稳定。YOLOv3-C和YOLOv3-MC的平均交并比要明显高于其余两种算法,并且波动程度较小。这和3.3小节的理论分析结果一致,即当使用更完备的度量值优化损失函数时,可以提升算法的定位精度,并且有助于得到准确率更高的结果模型。
图8 平均交并比迭代曲线Fig.8 Iteration curves of average IoU
本文试验主要以公式12的mAP值作为评价指标,以验证集作为真值,计算不同算法模型在不同迭代训练次数下的mAP值。计算时判定为正样本的参数条件为:与真实框的IoU值大于0.5[27],结果数据统计如图9所示。改进后的YO‐LOv3-MC的mAP值在多数迭代次数下数值最高,曲线也更稳定。四种算法模型在20 000次迭代中的最优结果模型的验证集检测结果数据如表2所示。YOLOv3-MC算法在验证集中检测正确的正样本(TP)数量最高,检测错误的FP和FN数量最少,各个类别准确率和召回率也最高。YOLOv3-MC的最优模型的mAP相较于原始YOLOv3的最优模型的mAP值提升了1.88%。
图9 mAP值随迭代次数变化Fig.9 Mean average precision changes with iterations
此外,使用相同的数据集在原始SSD和Faster-RCNN算法上进行训练,得到最优模型为迭代60epoch后的模型,在验证集上检测模型的mAP等各类指标,如表2所示。可以看出验证集准确率低于YOLOv3-MC算法模型,并且在下文的测试集检测中发现,SSD和Faster-RCNN算法模型的误检率较高,有大量的无缺陷图像被误检为缺陷图像。综上所述,改进Mish激活函数和CIoU度量指标的YOLOv3-MC算法是更优的算法,得出的最优模型的检测效果也最好,其在IoU阈值为0.5的验证集上的mAP值为98.94%,F1得分值为0.99,平均交并比为80.92%,每张图像的检测时间不超过14毫秒,模型大小234 MB,满足轮毂生产企业检测需求,该算法模型可用于智能检测系统。
表2 不同模型的验证集检测结果数据Tab.2 mAP of validation sets for different models under different IoU thresholds
4.4 测试集检测结果与分析
最终确定改进后的YOLOv3-MC的最优模型作为智能系统的检测模型。为了证明该算法模型的实际检测效果,使用测试集图像进行检测。测试集图像包括了与训练集相独立的图像数据以及作为干扰项的无缺陷焊缝图像。测试集检测时置信度阈值设为0.25[19],图10展 示 了五种缺陷类型的检测结果图。测试集检测试验完成后,统计各类型的正确率,结果统计如表3所示。
表3 YOLOv3-MC在测试集上的检测结果Tab.3 YOLOv3-MC detection results on test set
图10 测试集上的检测结果图Fig.10 Test renderings on test sets
表3以能否正确识别图像样本缺陷类型为判断条件,得到测试集的检测结果,测试集中的所有图像均未出现在训练集中。其中各缺陷类别数据检测正确率均为100%,无缺陷焊缝检测正确率为99.11%。说明了该模型对于缺陷样本的检测精度很高,可以满足检测需求。但是,在测试集的全部5 418张无缺陷图像中,有48张无缺陷焊缝图像错误检测出了缺陷,其中误检为断弧(置信度为0.33)一张,如图11(a)所示;误检为焊瘤(置信度为0.38)一张,如图11(b)所示;误检为气孔9张,如图11(c)所示;误检为偏焊37张,如图11(d)所示。
图11 测试集无缺陷图像误检结果图Fig.11 Error detection result of no defects images on test set
分析以上48张误检样本,对于误检为气孔缺陷的图像,其特征为含有呈金色且形状较小的斑点,而真实气孔缺陷焊缝的缺陷特征为黑色斑点且形状较大。误检为偏焊的图像中,由于拍摄角度使得焊缝和缝隙有偏差,这种特征和偏焊的缺陷特征类似。误检为焊瘤的图像,其特征和焊瘤缺陷特征也非常类似,从人工角度去判断也有困难。为了在实际检测中尽可能的减少无缺陷样本的误检,即提高召回率,在采集图像进行检测时,要尽可能保证焊缝的清晰完整和角度垂直,避免出现误检;另一方面在算法上扩大数据集的规模,可以有更好的检测结果。其次,也可将无缺陷类型样本图像也作为一个缺陷类型进行训练和测试,可以减少误检情况发生,但是会增加模型的训练难度和降低模型的泛化能力。
此外,YOLOv3-MC算法不仅可以得到如上图10和11的检测结果图像,还可以得到具体图像中缺陷检测框的坐标和缺陷类型置信度,如下数据所示:“duanhu:82%(left_x:246 top_y:205 width:63 height:54)”,在后续的工作中可以对这些结果数据作分析。
5 结 论
本文提出了关于轮毂焊缝缺陷智能化检测的新方法,将YOLOv3算法作为基础检测算法,设计了检测方案,制作了数据集。使用效果更优的Mish激活函数改进算法,以及使用CIoU度量指标改进损失函数,最终改进后的算法在检测试验中有更高的准确率和效率。
检测试验结果表明,改进后的模型在验证集上(IoU阈值为0.5)的F1值为0.99,mAP值达到了98.94%,平均交并比为80.92%,在测试集上检测的总体正确率为99.29%。检测算法的单张检测时间不超过14毫秒,检测效率较高,满足轮毂生产企业的生产线节拍要求。说明了该模型拥有高精度和较好的鲁棒性,其可以在实际应用中准确识别、分类与定位轮毂焊缝缺陷,实现轮毂焊缝缺陷的智能化检测,代替人工目测。
在后续工作中,由于YOLOv3-MC算法对硬件设备要求较高,在实际的工业应用中增加了成本,需在不损失检测精度和效率的情况下,对模型进行剪枝等操作,缩减模型大小,降低使用成本。