蒋美仙,郑碧佩,郑佳美,吴光华,周 健
(浙江工业大学 机械工程学院,浙江 杭州 310023)
制造金属构件时,受焊接环境和工艺的影响,焊接处常常会产生裂纹等缺陷。传统焊缝缺陷检测依靠人工目视检测,存在许多弊端,如要求检测人员具有足够丰富的经验,检测人员重复相同工作易产生视觉疲劳无法保证检测精度等,更不能满足现代化生产要求。半自动化检测系统需要进行大量标注工作,由工人对焊缝缺陷的特征进行设计,容易受现场检测环境、图像背景纹理等因素的干扰,造成误检和漏检问题。近年来随着深度学习的发展,基于深度学习的焊缝缺陷检测的相关研究已经取得了一定的成效。Allende等[1]采用一种以特征选择算法和人工神经网络为基础的在线焊缝质量监测处理技术,利用SFFS算法实现维数减小,对焊缝缺陷运用PCA算法进行检测识别,打破了基于特征的焊缝缺陷检测的局限。Yuan等[2]提出一种改进的产品表面缺陷检测方法,实验结果表明该方法在各种表面缺陷检测中是有效的,与其他阈值分割法如最大熵法、价重法、奥图法和修正的价重法相比,该方法展示了更好的分割结果。Huang等[3]提出了一种基于深度学习的全卷积网络提取特征缺陷并进行语义分割的图像识别算法。
通过查阅文献可知:焊缝缺陷检测研究大多遵循图像分割、特征提取和缺陷分类等3个步骤。目前大多数基于深度学习的检测方法使用的数据集都是基于数据研究,在图像数据标注等环节需要人工参与,还未达到完全自动化,焊缝缺陷检测领域还有广阔的研究空间。笔者通过将深度学习技术应用到焊缝缺陷检测中,设计自动化焊缝缺陷检测算法,可以实时检测焊接质量,推动焊接技术的自动化、智能化发展。
通过线阵激光三维扫描仪,沿着焊缝方向进行扫描,能够快速获取焊接部位的三维模型,如图1所示为焊接部位三维点云图。
图1 焊接部位三维点云图
金属构件的焊接是在两个平面的交界处,单纯从二维角度拍摄,焊缝缺陷很难在二维图像上得到呈现。缺乏焊缝的深度信息,容易对咬边、破洞等缺陷产生误判,故在算法内部设计拟合焊缝两边两个平面,再分别垂直于这两个垂直平面投影至二维深度图,以45°角投影得到另外一个深度图。从这3 个角度投影得到3 张深度图,能够在图像上将焊缝缺陷更好地展现出来。
制造现场环境复杂,对焊缝缺陷识别前,一般需要采用图像预处理技术改善图像质量,图像预处理流程包括图像填充、图像降噪及图像增强,采用双线性插值法[4]进行图像填充,采用中值滤波算法[5]进行图像降噪,采用Sin函数[6]进行图像增强,其流程如图2所示。
图2 焊缝图像与处理流程
使用原始生成的对抗网络扩展图像样本时,通常会获得图像质量较低的人工样本。当把这些低质量的样本图像用于后续的分类任务中时,最终评估指数将下降,因此使用循环一致性对抗网络进行图像数据扩展。焊缝样本数据扩充结果示意图见图3,焊缝样本数据扩充后样本数量见表1。
图3 焊缝样本数据扩充示意图
表1 扩充后样本数据数量
焊缝缺陷检测主要有两个步骤,分别是定位和缺陷分类。定位包括焊缝区域定位和焊缝缺陷定位,准确地定位到焊缝区域是检测的基础。不同缺陷表现出的缺陷特征也不同,分析破洞、咬边、裂纹和焊偏等4 种主要的焊缝缺陷特征。破洞缺陷的特征是在焊缝区域出现不规则性空洞;咬边缺陷的特征是在焊缝边缘区域出现类似于齿印的形状;裂纹缺陷的特征是在焊缝区域出现细长的空洞;焊偏缺陷的特征是焊缝的纹路在某一段突然变窄。
设计4 种基于缺陷特征的焊缝缺陷检测方法,分别基于阈值分割判定、基于边缘宽度均匀性判定、基于区域厚度均匀性判定和基于边缘矢量均匀性判定,这4 种方法的共同前提是定位焊缝边缘。定位焊缝边缘从左投影图及右投影图切入,焊缝区域对应的深度图在焊缝左、右边界梯度变化较快,从深度图梯度变化的角度,可以通过梯度变化在左投影图上搜索焊缝左边缘、在右投影图上搜索焊缝右边缘,最后可在45°投影图上将焊缝边缘显示出来,并进行后续的焊缝缺陷检测。以左投影中搜索焊缝左边界为例,其算法逻辑及结果如表2和图4所示。
表2 搜索焊缝左边界算法逻辑
图4 焊缝左边缘查找结果示例
分别进行基于阈值分割判定、基于边缘宽度均匀性判定、基于区域厚度均匀性判定和基于边缘矢量均匀性判定等焊缝缺陷检测。阈值分割有固定阈值分割和自适应阈值分割。在有先验认知的情况下可以使用固定阈值,根据三维点云投影得到焊缝的深度图,其图像灰度值具有不可预测性,故不宜采用固定阈值进行图像分割,选择采用自适应阈值分割的方法;边缘宽度均匀性判定主要根据焊缝的横向宽度均匀性指标进行焊缝的缺陷检测,若焊缝有边缘性缺陷,则边缘宽度将表现出不均匀,如咬边、焊偏等,可通过边缘宽度均匀性指标进行检测;区域厚度均匀性判定方法与边缘宽度均匀性判定方法的思路类似,其区别是边缘宽度均匀性判定是通过计算焊缝边缘的宽度波动方差来进行判定,而区域厚度均匀性判定则是通过计算焊缝区域的厚度波动方差来进行判定。对于破洞、气孔等缺陷,其焊缝区域在深度图上会表现出厚度值波动较大的特征,可以通过区域厚度均匀性将其检测出来;边缘矢量均匀性判定是对边缘宽度均匀性判定的补充,通过焊缝边缘相邻像素的矢量夹角的波动情况来检测边缘缺陷。
Deeplab网络发展至今出现了几代网络模型,2015年Chen等[7]在Deeplab网络基础上提出了Deeplab-V2网络,He等[8]将空洞卷积与空间金字塔池化方法相结合提出ASPP算法,Deeplab-V2网络设计了不同的空洞卷积核。2017年Chen等[9]在此基础上联级多个空洞卷积模块,并对ASPP进行改进,提出Deeplab-V3网络。Deeplab-V3网络是在Deeplab-V1网络及Deeplab-V2网络基础上作了进一步改善,添加了BN层,以获得多尺度信息。此外,与Deeplab-V1网络及Deeplab-V2网络不同,全连接条件随机场作为后阶段处理过程,独立于卷积网络之外,没有完整融入到分割模型的训练中,因此Deeplab-V3网络减少了全连接条件随机场的使用。ResNet(Residual neural network)网络是优秀的深度卷积神经网络架构,Deeplab-V3网络中运用了ResNet网络相关方法。
Deeplab-V3的模型结构[10]如图5所示,该模型由一个编码器与一个解码器构成。编码器的作用是捕获焊缝的边界,包括两个模块,分别是Xception模块和ASPP模块。前者可以利用较少的参数抓取焊缝特征,后者则可以通过池化不同分辨率的特征,以捕获焊缝的信息;Xception模型结构[10]如图6所示,该模型由一个编码器和一个解码器构成。编码器的作用是捕获焊缝的边界,包括两个模块,分别是Xception模块和ASPP模块。前者可以利用较少的参数抓取焊缝特征,而后者则可以通过池化不同分辨率的特征,以捕获焊缝的信息。ASPP模块结构[10]如图7所示,该模块包括ASPP1,ASPP2,Aspp3,ASPP4,ASPP5等5 个部分。其中ASPP1模块中的卷积含有256 个通道且卷积核为1;ASPP2,ASPP3,ASPP4模块中的卷积均为256 个通道,卷积核均为3,扩张率分别为6,12,18;ASPP5模块中的卷积含有256 个通道且卷积核为1。ASPP1,ASPP2,Aspp3,ASPP4,ASPP5等5 个部分均包含ReLU激活函数,其中ASPP5模块中增加了全局池化且与双线性插值操作。
图5 Deeplab-V3网络模型结构网
图6 Xception模型结构图
图7 空洞空间金字塔池化结构图
由图5~7可知:Deeplab-V3网络不仅可以有效进行图像分割,还可以对样本进行标注生成标签图,标签使用W颜色通道标注当前焊缝缺陷的区域,标签图像如图8所示。
图8 标签图
基于MNet的Deeplab-V3模型训练数据集来源于Deeplab-V3网络的分割及标注,数据集一共有12 764 张图片和对应的标签图片,图片分辨率为80×160。数据集混合了不同时间、不同作业环境的图片,包括夜间、早上和下午。模型使用Pytorch框架进行训练,训练时将数据集随机分为训练集和验证集,其中训练集大小为数据集的90%,验证集大小为数据集的10%,设置epoch=10,bach_size=4。表3为Deeplab-V3模型在焊缝数据集下的训练误差和验证误差收敛情况。
表3 Deeplab-V3模型的训练误差和验证误差收敛情况
基于MNet的Deeplab-V3焊缝缺陷检测流程如图9所示,以滑动窗口为基础的MNet网络对标签图进行处理后生成概率图,基于概率图生成边界框进行高斯平滑,再做非极大值抑制操作计算生成焊缝缺陷检测结果。
图9 MNet网络检测方法流程
基于Deeplab-V3网络分割的焊缝缺陷图像数据集构建分类测试集、训练集和验证集,并基于循环一致性生成对抗网络扩充的样本数据,将切割出的缺陷子块进行4 个角度旋转(0°,90°,180°,270°),最终得到缺陷图像子块的数量如表4所示。
表4 缺陷子块数量表
对焊缝缺陷图像子块集使用3 种不同的优化算法训练MNet模型,分别是Momentum,RMSProp和Adam。不同损失函数的分类准确率如表5所示。
表5 优化函数结果对比表
Adam优化算法明显优于Momentum和RMSProp,它使用的epoch数量更少,却能达到更高的准确率。使用Adam算法后,结果的平均准确率大约提升11%。可见,合适的优化算法不但能够减少训练次数,而且还能提升准确率。
基于AHP和FCE[11-12]的焊缝缺陷检测方法评价,先建立评价指标体系,运用层次分析法确定各指标权重,再运用模糊综合评判法对两种焊缝缺陷检测方法进行综合评价,计算出综合隶属度、综合得分和指标得分率,最后得出两种焊缝缺陷检测方法综合得分。基于特征的焊缝缺陷检测方法综合得分为75.05 分,基于深度学习的焊缝缺陷检测方法综合得分为90.890 分。综上可知基于深度学习的焊缝缺陷检测方法优于基于特征的焊缝缺陷检测方法。
焊缝缺陷检测系统主要包括五大模块,软件整体流程如图10所示。设计焊缝缺陷检测系统的登陆界面如图11所示。图12为系统图像处理的主界面,显示了一幅焊缝图像,用户可以进行图像变换、图像缺陷提取、图像分割和边缘检测等操作。
图10 软件整体流程图
图11 焊缝缺陷检测系统界面
图12 图像处理主界面
图像处理操作后,进行焊缝图像识别操作,先提取焊缝缺陷的特征不变矩参数和形状特征参数,再通过深度学习模型训练数据完成对缺陷的识别,最后由等级评定模块完成焊缝等级评定。图13~15分别为焊缝缺陷检测界面、焊缝等级评定界面和焊缝等级评定结果界面。
图13 焊缝缺陷检测界面
图14 焊缝缺陷评定界面
图15 焊缝缺陷等级评定结果界面
焊缝缺陷检测具有成像难、易受噪声干扰等特点,传统的焊缝检测方法存在许多弊端。首先,采用三维激光线扫方式获取焊接部位的三维点云模型,得到了3 个角度的投影,利用循环一致性对抗网络对焊缝样本数据进行扩充;其次,提出了基于Deeplab-V3模型焊缝缺陷自动化检测算法,并与传统的基于特征的焊缝缺陷检测算法进行对比,得出基于深度学习的焊缝缺陷检测的检测效果较好;最后,开发了焊缝缺陷检测系统,进行测试和校验,验证了基于Deeplab-V3模型的焊缝缺陷检测模型的可行性和有效性。同时,实际工厂车间检测环境复杂,而且焊接种类多样,深度神经网络参数规模大,要实现一种适用于复杂环境的基于深度神经网络的焊缝缺陷检测,并达到良好的检测效果,还需进一步研究。