在采用自动化或机器人系统进行电弧焊接时,为适应待焊接头的空间姿态改变和坡口尺寸局部变化、提高焊接过程的智能化水平、有效保障焊缝成形质量,需要实现焊枪运动和焊接执行机构的在线反馈控制,实时调控焊枪相对于焊接坡口的空间位姿、运动轨迹和速度等。为此焊接系统通常需搭载不同类型的传感器,以实时获取焊接坡口的形状和尺寸参数、接头的空间姿态、焊枪与坡口之间的相对位姿关系等信息。例如,旋转或摆动式电弧传感器通过检测焊接电流或电弧电压的变化规律,可确定焊枪相对于焊接坡口的位置关系;惯性或重力传感器通过检测焊枪倾角变化,可确定焊枪或工件的绝对空间姿态;视觉传感器通过拍摄坡口和投射在坡口上弯折的激光结构光图像,经图像预处理、特征提取和相关检测算法,可确定焊接坡口的形状和尺寸信息、焊枪与坡口之间的相对位姿关系等。
视觉传感具有检测精度高、应用范围广、实时性好等诸多优势,是当前焊接自动化和智能化研究与应用的热点[1]。视觉传感分为被动视觉与主动视觉[2]。被动视觉的光源来自于周围环境,弧焊过程的强弧光、飞溅及工件表面反光等会对视觉图像产生严重干扰,增加图像处理的复杂性、降低检测精度[3-5]。主动视觉的典型光源是精心布置的激光结构光,激光具有良好的单色性、稳定性和亮度等,显著优于被动视觉的环境光源,配合对应波段的窄带滤光片,在弧焊环境下仍能获得具有较高质量的视觉图像。基于激光结构光的视觉传感广泛应用于自动化焊接过程的坡口识别和焊缝跟踪[6-8],与其他传感技术融合将进一步扩大其应用范围。
对CCD相机所捕获的包含投射在焊接坡口上的激光线的图像进行有效处理,进而准确识别和提取图像中的多条激光线的中心线及其交点和在坡口边缘产生的弯折点等特征点信息,是基于激光结构光视觉传感的核心与关键。经过多年的研究和发展,已有丰富且成熟的激光结构光之特征信息提取算法,包括骨架提取与边缘提取等。贺浩等[9]利用基于灰度重心的骨架提取算法获得了结构光的法线方向,识别精度较高但处理速度较慢;孙小亮等[10]使用基于LOG算子的边缘检测算法,实现了阴极板焊缝的自动化焊接。完整的图像处理算法通常具有专用性,仅适合当前的系统与工作环境。如何将相关算法进行优化、组合,构建适用于弧焊环境的图像预处理和图像特征提取算法,保证特征信息识别的准确性与实时性,仍是将基于激光结构光的视觉传感器进一步推广用于自动化和智能化电弧焊接的重要研究方向[11],值得不断深入探索。
本文设计开发了基于视觉与重力融合的多源传感器,深入研究了针对弧焊环境的图像预处理算法组合和优化问题,并采用2种不同的图像特征提取算法,对投射在焊接坡口上的激光结构光特征信息进行了识别和提取,讨论了它们的优势和适用性,为进一步采用相关算法确定焊接坡口的形状和尺寸信息、焊枪与坡口间的相对位姿关系、接头的空间姿态等奠定了基础。
1 视觉与重力融合的多源传感器
本文设计开发的视觉与重力融合的新型多源传感器如图 1所示,主要包括双轴倾角传感器、3个一字线激光器、工业CCD相机及滤光片等。
图 1 视觉与重力融合的多源传感器
图选项
工业CCD相机与3个一字线激光器依次设置在焊枪行进的前方,它们的中轴线与焊枪中轴线共面(简称平面A),且CCD相机中轴线与焊枪中轴线平行,一字线激光器中轴线与CCD相机中轴线(焊枪中轴线)之间存在夹角θ0(传感器固有参数);双轴倾角传感器固连于焊枪行进的反方向,其底面与焊枪中轴线垂直,侧面之一与平面A垂直。
一字线激光器组发射出3个激光投射面S1、S2和S3。其中,S1和S2相互平行,间距为常数(传感器固有参数),并与平面A垂直;S3位于平面A内;它们投射于工件表面时,将在工件表面形成3条激光线L1、L2和L3,L1、L2分别与L3产生1个交点;当激光投射面投射在焊接坡口上时,激光线L1和L2会在坡口的左右两侧和根部发生弯折,产生6个弯折点(以V形坡口为例),图 1所示为L3恰巧位于V形坡口根部,L1、L2和L3的交点恰好与L1、L2在坡口根部的弯折点重合的特例(一般情况下,存在6个激光线弯折点和2个交点)。工业CCD相机实时捕获包含激光线及其弯折点和相交点的坡口局部图像,并以位图格式传输和存储。经图像预处理和特征提取算法准确提取这6~8点的图像坐标后,可采用相关算法求解确定焊接坡口的尺寸、焊枪与坡口之间的相对位姿关系等。
图 1中的双轴倾角传感器负责检测焊枪与重力加速度方向之间的2个夹角分量。利用这2个夹角数据,与焊枪相对于坡口的位姿信息结合,可进一步判定待焊接头的绝对空间姿态,进而确定待焊坡口的焊接工艺为平焊、立焊、横焊及仰焊或它们的组合形式。
2 图像预处理
焊接坡口的三维形状和尺寸、焊枪(与传感器固联)与坡口间的相对空间位姿变化,均会导致激光线在工件表面的交点和在坡口上的弯折点发生改变,体现在CCD相机所捕获图像的激光线交点和弯折点位置变化中。然而,在图像拍摄及传输过程中,均可能引入噪声如焊接过程的弧光、飞溅等。如果直接对图像中的激光线交点和弯折点坐标值进行提取,因各类噪声的影响将会产生与实际值之间的较大偏差。因此,在进行图像特征提取前,需尽可能获得高品质的CCD图像,并进行合理有效的预处理,以尽可能降低噪声干扰对提取激光线交点和弯折点坐标准确性的影响,这是关系到多源传感器视觉检测功能实用性的关键。
在工业CCD相机的前端采用窄带滤光片进行减光处理,是削减各类噪声对图像质量干扰的有效措施。对于熔化极混合气体保护电弧焊(Ar与CO2体积比为4∶1),试验检测获得的电弧光谱如图 2所示。由图可知,620~700 nm波长范围的弧光强度最弱,因此选用波长为662 nm的激光发射器及透光波段为(660±8)nm的窄带滤光片,可避开此波段内的弧光局部尖峰,确保激光结构光能够高比率透过,有效滤除此波段范围外的强弧光。
图 2 MAG焊电弧光谱图
图选项
采用激光结构光-窄带滤光片组合的模式,尚不能完全消除弧光等对CCD成像质量的干扰,为此,需要进一步设计并优化针对弧焊环境的图像预处理算法,为准确并快速地提取激光线交点和弯折点坐标奠定基础。图 3为图像预处理流程。
图 3 图像预处理流程
图选项
2.1 Gauss滤波和顶帽变换
常用的图像滤波算法有均值滤波、中值滤波及Gauss滤波等,都属于邻域处理算法。均值滤波计算模板内所有像素点灰度的均值,将其赋予模板中心像素点,该算法只能减弱而不能消除噪声,在存在严重弧光干扰的弧焊环境下,难以发挥有效作用[12]。中值滤波将模板内各像素点灰度值的中值赋予中心像素点,可较好地去除由飞溅导致的椒盐噪声,但可能造成图像不连续[13-14]。Gauss滤波[15]在对图像的某像素点进行处理的同时,对该像素点的邻域进行修正,由式(1)的Gauss公式计算获得卷积核矩阵的各个权重参数。Gauss滤波卷积核的大小需严格控制,过大将使激光线边缘模糊而导致失真。
$
G(x, y)=\frac{1}{2 \pi \sigma^{2}} \mathrm{e}^{-\frac{x^{2}+y^{2}}{2 \sigma^{2}}}.
$
(1)
其中:G(x, y)为像素坐标(x, y)处的权重参数,σ为二维Gauss分布标准差。
采用Gauss滤波算法对所拍摄的图像进行第一步处理,在保证图像不失真的前提下,滤除Gauss噪声、椒盐噪声(如小颗粒飞溅),同时保留图像的总体灰度分布特征,如图 4所示。
图 4 Gauss滤波效果示例
图选项
对Gauss滤波后的图像直接二值化,处理后的图像仍包含有大量弧光干扰,不利于后续的图像特征提取。因此,在进行图像二值化分割前,还需要采取措施进一步削减弧光干扰。在曝光时间小于1 ms即不过曝的前提下,考虑到激光线-窄带滤光组合模式的滤光效果,图像中的弧光亮度始终弱于激光线,因此可采用顶帽变换算法,保留图像中的最亮特征-激光线。顶帽变换的原理为
$
\text { Tophat }(f)=f-(f \circ b).
$
(2)
其中:f为原始图像,b为形态学运算的卷积核。首先,(f°b)通过对图像作形态学开运算,会略微弱化图像中的高亮度区;再求取原始图像灰度减去形态学运算后图像灰度的差值,该灰度差值代表原图像中的高亮度区,如图 5所示。
图 5 顶帽变换效果示例
图选项
当CCD相机的曝光时间过长时,会导致CCD图像中的弧光和激光线灰度值均为255,将不存在弧光亮度低于激光线的顶帽变换前提条件。因此,实际应用时需根据焊接过程的电流大小严格控制CCD相机的曝光时间。
2.2 图像分割与形态学运算
经顶帽变换后,所拍摄图像中的弧光干扰已被大幅削弱,此时,可采用OTSU二值化算法,实现全局阈值的图像分割,如图 6a所示。然后,利用形态学开运算,去除图像中的小颗粒杂点,运用形态学闭运算,填充小颗粒孔洞,以进一步减少对后续图像特征提取的干扰,实际处理效果如图 6b所示。
图 6 图像分割与形态学运算效果
图选项
电弧焊的强弧光和飞溅环境,不可避免地对所拍摄图像带来严重干扰,从而对图像处理提出了更高要求。上述应对弧焊环境干扰的核心思路为:首先,充分利用激光线的单色性,并与窄带滤光片有效配合,严格控制曝光时间,确保弧光在拍摄图像中的亮度低于激光线;其次,采取顶帽变换,单独、高效地提取出图像中的最亮区域-激光线,大幅降低弧焊环境对拍摄图像的严重外部干扰。试验和图像处理结果表明,该处理策略简捷易行,能大幅且有效地削减弧光对图像特征提取的负面影响。
3 图像特征提取
图像特征(激光线交点和弯折点坐标)提取是视觉检测的核心环节,其处理速度与识别精度是评价检测算法的最直接指标。下面分别采用边缘提取(称为算法1)与骨架细化(称为算法2)对图像中的视觉特征信息进行提取(见图 7),并对比、分析和讨论2种算法的优势与可能的应用场景。本文的图像处理使用型号为i7-7700HQ、基频为2.8 GHz的CPU。
图 7 图像特征提取流程
图选项
3.1 基于Canny算子的边缘提取
首先,采用Canny算子(见式(3))计算图像中所有像素点(x, y)的灰度梯度和方向。
$
\left\{\begin{array}{l}
M[x, y]=\sqrt{G_{x}(x, y)^{2}+G_{y}(x, y)^{2}}, \\
\mathit{\Theta}[x, y]=\arctan \left(G_{x}(x, y) / G_{y}(x, y)\right).
\end{array}\right.
$
(3)
其中:Gx(x, y)为像素点(x, y)的灰度值在x方向的一阶偏导,是像素点(x, y)的灰度梯度x方向分量;Gy(x, y)为像素点(x, y) 的灰度值在y方向的一阶偏导,是像素点(x, y) 的灰度梯度y方向分量;M[x, y]为像素点(x, y)的灰度梯度,即灰度值的最大变化速度;Θ[x, y]为像素点(x, y)的灰度梯度方向。
然后,采用非极大值抑制,保留局部范围内的灰度梯度方向上的灰度值变化最快的点,并剔除其他像素点;最后,进行双阈值筛选,即同时设置高阈值与低阈值,保存高于高阈值的像素点,并对介于高阈值与低阈值之间的像素点进行填充,使检测结果尽可能闭合,从而实现边缘提取。图 8为示例图像的Canny算子边缘提取效果。
图 8 基于Canny算子的边缘提取效果
图选项
由图 8可知,利用Canny算子可实现对激光线边缘的有效提取,在后续的直线检测算法中,对每条激光线将识别出2条边缘线,求取它们的表征参数均值即可获得激光线的中心线表征参数。
3.2 基于迭代腐蚀的骨架细化
骨架细化的核心思想是对图像不断地进行形态学的腐蚀运算,直至图像仅剩单像素点的骨架。在每一步的腐蚀操作中,遍历图像边界的像素点,并针对每个点的3像素×3像素邻域内的像素点进行检查,如果有3~7个灰度值为255的点与之相邻,则删除该中心像素点。
根据所处理图像的实际情况,在保证识别精度的前提下进行迭代腐蚀操作,将遍历检查的循环次数由5减少至3,以缩减骨架细化算法的执行时间。图 9为示例图像的骨架细化效果。
图 9 基于迭代腐蚀的骨架细化效果
图选项
3.3 直线检测与特征点坐标提取
对边缘提取或骨架细化后的图像,采用概率Hough线变换[16-17]算法进行检测,以获得每一条直线。概率Hough线变换的检测结果是长度满足阈值范围的线段的端点。实际检测的每一条直线会有多个检测结果,需要根据每个线段的端点坐标值计算出极径ρ和极角θ,并取相近直线的ρ和θ的均值,作为该直线的最终检测结果。
特征点是激光线的交点或其在焊接坡口边缘和底部的弯折点,在已知各直线在极坐标系下的参数ρ和θ之后,可根据式(4)计算特征点的坐标值。
$
\left\{\begin{array}{l}
x=\left(\rho_{1} \sin \theta_{2}-\rho_{2} \sin \theta_{1}\right) / \sin \left(\theta_{2}-\theta_{1}\right), \\
y=\left(\rho_{1} \cos \theta_{2}-\rho_{2} \cos \theta_{1}\right) / \sin \left(\theta_{1}-\theta_{2}\right).
\end{array}\right.
$
(4)
其中ρ1和θ1、ρ2和θ2分别为第1、2条直线的极径和极角。
采用算法1和2分别进行图像特征点坐标提取,所获得的最终检测结果如图 10所示。
图 10 激光线与交点检测结果
图选项
由图 10可知,在该示例中,骨架细化对激光线中心线的最终识别结果的对中性是优于边缘提取的。
3.4 分析与讨论
选择弧焊环境下拍摄的包含激光线的焊接坡口CCD图像中具代表性的18幅,分别采用2种算法进行处理,通过比较处理时间和检测精度讨论适用性。
1) 处理时间。算法1和2的总处理时间分别为42和887 ms。电弧焊的焊枪前进速度通常不超过0.6 m/min,在检测系统处理一幅图像并输出检测数据的时段内,对应的焊枪移动量分别为不超过0.42和8.87 mm。可见,算法1完全能够满足焊缝跟踪的实时性需求,而算法2则难以满足。
2) 检测精度。表 1给出了2种算法的识别误差对比。首先,采用人工鉴别方式,利用OpenCv的封装函数cvSetMouseCallback ( ) 获取了每幅图像的6个特征点的x、y坐标值(共12个数据),并以此作为标准值;其次,分别采用2种算法自动检测每幅图像的6个特征点的x、y坐标值,将检测结果与标准值进行对比,得到每幅图像12个数据的平均识别误差与最大识别误差。
表 1 识别误差对比
图像编号
平均识别误差/像素
最大识别误差/像素
算法1
算法2
算法1
算法2
1
4.01
0.94
12.05
2.90
2
1.20
1.09
2.55
2.67
3
0.91
0.67
2.07
2.17
4
1.37
0.79
2.37
1.65
5
1.23
1.52
4.71
2.26
6
5.11
1.50
19.00
2.65
7
1.26
1.14
3.56
2.89
8
0.81
0.86
2.10
2.29
9
1.76
1.39
3.67
2.69
10
1.34
1.24
4.06
2.81
11
1.81
1.66
5.29
3.79
12
1.60
1.42
3.61
3.48
13
1.44
1.09
4.35
2.46
14
1.66
0.97
3.77
2.00
15
2.11
1.45
6.88
2.94
16
1.81
1.79
4.43
3.10
17
1.50
1.11
3.40
3.09
18
3.69
2.81
11.12
7.70
表选项
由表 1可知,采用算法1时, 18幅图像检测结果的平均误差和最大误差分别为1.92和5.50个像素;采用算法2时, 18幅图像检测结果的平均误差和最大误差分别为1.30和2.98个像素。在焊枪导电嘴末端距离工件表面为10 mm时,每个像素的大小为0.10 mm×0.10 mm,此时,算法1和2检测结果的平均误差分别为0.19和0.13 mm。由此得知,算法1和2的识别精度均可满足电弧焊接过程的焊缝跟踪精度需求,而算法2的识别精度更高。
综合对比基于Canny算子的边缘提取图像处理算法和基于迭代腐蚀的骨架细化图像处理算法的处理速度与识别精度,前者适合应用于焊缝跟踪等对实时性有较高要求的检测过程,而后者更适合应用于焊前或焊接间歇中对检测实时性没有太高要求的场景,能够给出更精确的检测结果。
4 结论
本文提出了用于弧焊过程的视觉传感图像处理及特征信息提取方法。研发了基于视觉与重力融合的多源传感器;选择了合适的激光发射器和窄带滤光片,能够大幅降低弧光对CCD图像的干扰,并确保图像中的激光线具有足够亮度;进一步采用顶帽变换,可有效提取出图像中的最亮区域(激光线),最大限度地削弱弧光干扰。
改进并实现了2种不同的图像特征提取算法,对实际采集的包含激光线的焊接坡口CCD图像进行了处理和特征点坐标检测试验。基于Canny算子边缘提取的图像处理算法完全能够满足弧焊过程的焊缝跟踪的实时性与检测精度要求;而基于迭代腐蚀骨架细化的图像处理算法可提供识别精度更高的检测结果,适合应用于焊前的焊接坡口参数检测等对实时性要求不高的场景。随着未来硬件配置的持续升级或边界定位算法的进一步优化,骨架细化算法的实时性将得以提高,从而扩大其适用范围。