张 帅 杨龙兴 丁 力
(江苏理工学院机械工程学院,江苏 常州 213001)
焊接工艺在生产制造业中起着至关重要的作用,它己经渗透到了各个领域的加工环节中,与此同时,自动化焊接技术也愈发成熟并已在诸多行业得到了广泛的应用,例如车辆、飞机等大型的加工制造产业[1]。要想实现自动焊接的高精准性,焊缝的特征提取是至关重要的一步,如焊缝的宽度、深度、中心线以及角点位置,特别是角点能够反映出丰富的焊缝信息[2],对于V型焊缝而言,特征角点便显得格外重要。只有在焊接的过程中获取到了足够精确的焊缝特征信息,才能规划出准确的自动焊接路径。
文献[3]提出了一种改进的最小二乘法,采取引入相关变量对待拟合点进行筛选,去除偏离严重的点,通过多次筛选拟合进而得出最优的焊缝中心线。文献[4]提出了一种基于直线拟合的斜率分析法,对多个连续的光点进行直线拟合计算出斜率值,通过分析斜率变化情况实现了对于线结构光焊缝特征的有效提取。文献[5]提出了一种改进的快速中值滤波算法,改变了中值滤波传统滤波窗口单行排序的方式,采取滤波窗口沿着x轴方向,y轴方向和y=-x方向多方向同时排序的方式,大大地缩短了程序运行的时间。
上述方法在图像预处理过程中大都采取中值滤波对图像进行去噪处理,中值滤波能够有效的去除图像中的椒盐噪声和斑块噪声,但中值滤波会对激光条纹的边界部分造成一定模糊,因此提出在图像预处理中使用自适应双边滤波对图像进行去噪处理。
双边滤波算法是一种非线性滤波方法,拥有良好的去噪效果,且在去噪的同时,也能够较好地保持住原图像的边缘特征。文献[6]和文献[7]对传统的双边滤波算法进行改进,实现其滤波算法中图像空间标准差和灰度标准差的自适应调整,省去了原本需要根据图像具体情况进行手动调参的步骤。为了实现V型焊缝图像边缘的特征保护,从而更准确提取出焊缝特征,本文在其基础上根据焊接环境的具体情况提出一种基于改进自适应双边滤波V型焊缝特征的提取方法。
原始的激光条纹图像预处理的质量,会对后续焊缝的特征信息提取造成不可忽视的影响。高质量的图像预处理能够极大地降低后续焊缝特征提取过程中的难度,同时也能提高特征提取的精准度。
由于受焊接环境的影响,CCD相机采集到的激光条纹图像中存在着大量的噪声,这些噪声会对后续焊缝特征的提取造成较大的误差。图1为激光条纹的原始像,大小为372×402像素。图2为灰度化之后的激光条纹图像,灰度化能够将彩色图像转换为单通道的灰度图像,一方面是为了去除颜色对图像处理的干扰,另一方面是为了减少图像原始数据量,降低后续的计算工作量。
对于灰度图中的噪声,最常见的做法是采取中值滤波去除噪声,中值滤波能够有效地去除图像中的椒盐噪声和斑块噪声,但是,中值滤波会对激光条纹的边界部分造成一定模糊,其滤波效果如图3b,因此使用双边滤波算法对图像进行去噪处理。高斯滤波是一种线性平滑滤波方式,能够有效地去除高斯噪声,广泛应用于各种图像噪声去除,但是高斯滤波不具备图像边界的识别能力,通常会在去除噪声的同时将图像边界也变得模糊。双边滤波算法是一种基于高斯滤波算法衍生出的噪声去除算法,不仅有效地克服了高斯滤波在去噪时只针对图像空间信息而忽略图像灰度信息的缺点外,同时将图像的空间信息与灰度信息进行非线性组合,保留了高斯滤波优秀的去噪能力的同时,也能够较好地保持激光条纹图像的边缘信息。
传统的双边滤波算法公式如下:
(1)
(2)
(3)
式中:f(i,j)为滤波后图像f在坐标(i,j)处的灰度值,gray(i,j) 噪声图像f在坐标(i,j)处的灰度值,‖为取绝对值符号,r为滤波窗口半径,v表示为以坐标(i,j)为中心 ,以边长为(2r+1)的正方形区域内像素点坐标的集合,ωs(x,y) ,ωg(x,y) 分别为坐标(x,y)处的空间权重和灰度相似权重,σs、σg分别为空间域标准差和灰度域标准差。
ωs为空间高斯函数,其参数σs决定空间权重分布。可知σs越大,空间权重越分散,去噪效果就越好,但计算量也越大同时图像也就越模糊;反之,空间权重就会越集中,滤波后的图像就会越清晰,但去噪的效果就越差。ωg为灰度相似度函数,与中心点的灰度相似度越大的像素点分配的权重就越大。灰度标准差σg为ωg的参数,其值越大,对灰度的相似度的要求就越低。双边滤波的权重由ωs和ωg共同决定。图3c为滤波窗口半径r=4,空间域标准差σs=2,灰度域σg=0.1的效果图,与图3b相比较可以看出,激光条纹的边界部分更加清晰。传统的双边滤波器的参数不定,需要根据实际的噪声情况进行手动调参,且很少存在参数能够通用的情况,因此提出一种自适应的双边滤波算法。
(1) 空间域标准差
空间标域准差σs与滤波窗口半径r之间呈一定的线性关系,导致噪声标准差的准确度和滤波后图像清晰度之间存在矛盾。由于高斯函数的95%以上的分量都集中在区间[-2σs,2σs]中,为获得更多的样本数目,同时保证图像的清晰度,令
(4)
式中:k为常数,r为双边滤波窗口半径,并且通过多次实验得出,k的最佳取值范围在[0.75-0.85],能够有效防止空间权重过渡分散,导致图像模糊,其余在窗口边缘处r2-(kr)2个像素点的主要作用是参与噪声标准差的计算。
(2) 灰度标准差
灰度标准差σg较空间标准差σs而言,对双边滤波的去噪效果具有更大的影响,当σg的数值较大时对图像噪声的去除十分有利,但同时也会使得图像更加模糊,导至细节丢失。灰度标准差σg与噪声方差σz存在线性关系,并且σg/σz的比值范围为[2, 3][8],为了保留更多的图像细节信息,这里取σg= 2σz。噪声方差σz可通过拉普拉斯变换进行快速估算[9]。
(5)
式中:W和H分别为图像的宽和高,*为卷积操作,gray(i,j)*N表示灰度图与模板N进行卷积运算,N为离散拉普拉斯变换的掩模,
(6)
将其带回公式可求得灰度标准差σg
(7)
以matlab2016b为实验平台,滤波窗口半径r取4,常数k取0.8进行滤波可以得到图3d。通过对比图3c与图3d,可以看出改进的自适应双边滤波算法与传统的双边滤波算法结果相差无几,同时改进后的算法实现了空间标准差和灰度标准差的自适应调整,满足后续焊缝特征提取的要求。
为了能够从图像中得到目标物体,降低图像处理的时间,需要精确选取出感兴趣的区域。最常用的方法是对通过阈值分割对图像进行二值化处理,以此将激光条纹信息单独分离出来。二值化算法有两种,一种是全局阈值分割,另一种是局部阈值分割,这里采用全局阈值分割。通过 Otsu自适应阈值分割法对焊缝图像进行处理,阈值处理后的图像如图4所示。经过以上步骤的处理,可以得到一条明亮的焊缝条纹图像。
只有准确地提取出激光条纹的中心线,才能够得到焊缝特征角点。首先对二值化的图像,灰度重心法能够有效求取焊缝条纹的区域中心点,然后根据激光条纹的形状特征分割成4块区域。通过最小二乘法对每块区域的点进行直线拟合,得到4条直线和它们的回归方程。
对于亮度不均匀的目标图像(如光斑,光条纹等),灰度重心法可按目标光强分布采取灰度加权算法求出目标图像质心坐标,即光斑或光条纹中心坐标。灰度重心法中针对二值化图像的型心法公式如下:
(8)
式中:(x,y)表示该区域重心的坐标,(i,j)表示该区域中所有点的坐标,S表示该区域,N表示该区域像素个数。每间隔5个单位长度对焊缝条纹进行重心求解,得到激光条纹中心点坐标如表1所示。
最小二乘法是使用频率较高的直线拟合方法,其原理为:对给定的点集{(xi,yi)|1≤i≤n} ,设拟合的直线方程为y=ax+b,当所有待拟合点到拟合直线的距离之和S最小时,该直线为最终的拟合直线,如图5。
根据原理可得到如下等式:
(9)
表1 坐标点数据
对a,b求偏导,当∂S/∂a=0,∂S/∂b=0 时,S可取到其最小值。
代入数据,通过对方程组的求解可得到a和b的值,即得出拟合直线。这里将得到的表1中的点按照焊缝条纹的特征分为4份,对每份单独进行直线拟合,可得到4条焊缝中心线L1、L2、L3和L4,如图6所示。4条中心线回归方程的数据如表2所示。
表2 中心线方程数据
为了给跟踪焊接的机器人提供准确的焊接位置信息,需要进一步的获得焊缝特征角点在像素中的坐标。通过对已经得到的四条直线联立方程组求解交点便能够得到焊缝角点的坐标,具体的坐标值如表3所示。
表3 焊缝角点坐标
(1)提出的自适应双边滤波算法相比于常规的中值滤波算法,在去噪的同时能够更好保持住激光条纹的边界特征,同时相比于传统的双边滤波算法,实现了权重数值的自适应,省去了人工调参的环节。
(2)采用灰度重心法和最小二乘法结合的方法能够有效地提取出激光条纹中心线。
(3)通过对中心线方程联立求解得到的焊缝角点坐标可精确至小数点后3位,满足实际的焊接要求。