常雪莲
(烟台汽车工程职业学院,山东 烟台 264000)
随着汽车制造领域的飞速发展,使汽车制造领域逐渐走向智能化、自动化。传统汽车制造领域主要采用人工方式完成生产,但是汽车生产线的热处理设备长期处于高温环境下,工作环境温度过高,可使作业人员易出现疲劳状态,具有生产效率低、质量较差等缺陷,如何实现热处理炉的自动化控制成为亟待解决的问题。为此本研究采用高柔性化、高自由度的六轴机器人代替传统人工作业,将其应用于热处理炉的自动化控制中,有利于提高汽车行业的整体经济效益。
六轴机器人对图像的处理包括6个步骤:图像的采集、预处理、分割、描述、识别以及结果输出,本研究主要对六轴机器人图像的预处理步骤和分割步骤进行分析。通过对图像进行预处理和分割,有利于提高六轴机器人对图像处理的精准度。
热处理炉的工作现场环境较差,通常处于高温状态,采用六轴机器人对处于高温火焰喷射的炉门进行图像采集,可直接造成图像出现质量问题,该方式采集的图像在背景与目标边缘方面较为模糊。为保证六轴机器人采集图像的质量,本研究对采集的图像进行预处理。图像预处理实际上是预先对图像进行变换,以此实现抑制或者滤去采集图像过程中存在的噪音点,最大限度地强化图像的轮廓边界,全部操作执行完毕后,即可得到质量较好的图像[1]。
图像预处理包含滤波和锐化两个步骤,对图像进行滤波处理时,可选用一种快速算法。快速中值滤波算法与传统的中值滤波算法进行对比可知,快速中值滤波算法对图像进行预处理时,充分考虑了相邻两个滤波窗口信号数据的相关性,为有效提高图像处理的运算效率,该算法采用比较的方式取代传统算法的排序运算。将该算法应用于热处理炉的自动控制中,有利于提高热处理炉的控制效果。
快速中值滤波算法对图像进行预处理的基本步骤为:首先假设图像像素的长度为L,建立中值滤波窗口,该窗口为2N+2,移动步长为2;其次,每次中值滤波窗口出现移动现象时,应立即计算窗口内前2N+1个像素的灰度中值M1,再计算中值滤波窗口内后2N+1个像素的灰度中值M2;最后采用灰度中值M1和M2替代窗口内N和N+1位置上的灰度值[2]。
中值滤波窗口以移动步长为2不断向后滑动,直至经历整幅图像后,停止对图像的预处理。通过对图像进行中值滤波处理后,有利于提高图像的平滑和保护边缘的效果。通常情况下,六轴机器人对图像的细节要求较低,仅采用一次快速中值滤波操作即可满足热处理炉的自动化控制要求。
六轴机器人采集图像预处理的第二步为锐化,锐化实际上是从图像中检出目标的边缘。边缘检测的原理为:将边缘灰度幅度微分不连续性原理作为核心,采用各种线性、非线性边缘增强算子方法对六轴机器人采集的图像进行卷积。图像锐化处理的计算量较大,不适用于六轴机器人的系统,本研究为满足热处理炉自动化控制的实时性要求,选用Sobel算子以及一个3×3的邻域,例如:
(1)
该邻域中的A点位处理点,经过处理点的直线包括4条,每条直线可将邻域中剩余的像素划分为两部分,每部分包含3个像素,可将其称之为子邻域,每个像素的计算次数为4次,将4个差值的最大绝对值替代中心像素A[3]。
采用快速中值滤波算法对图像进行预处理,可有效满足微分转换为差分运算后的方向性要求,同时可大大简化运算过程。通过Sobel算子锐化后的图像具有边界清晰、细节强化等优势。
六轴机器人采集图像预处理完毕后,需要对目标和背景进行分割。图像的分割方法是确定阈值T,若灰度值大于T,可称之为目标;若灰度值小于T,则可称之为背景。阈值确定的方法为视觉图像分割的关键,对阈值方法进行选择时,应充分结合不同的应用角度,并按照像素的灰度值分布情况和像素领域的平均灰度值分布构成的直方图实现阈值的分割。当图像的信噪处于较低状态时,可直接造成退选哪个的错误分割,该方式有利于降低图像分割错误的可能性。本研究为最大限度地缩短图像分割运算时间,选用二维熵阈值分割快速算法作为图像分割的核心算法。六轴机器人采集图像时,易使图像出现同态性。图像同态性指的是:图像目标和背景处的像素灰度值和领域平均灰度值之间较为接近。当图像像素的灰度值和邻域平均灰度值之间的差异性较大时,为使目标类和背景类的后验熵最大,可选择二维熵阈值(S,T)作为目标与背景分割的阈值[4]。
快速二维熵阈值分割算法对图像进行分割操作的基本步骤为:首先,对图像各个像素点的邻域平均灰度值进行计算,将数值作为主要依据,以此建立二维灰度直方图;其次,初始化max=0,Pst(s,t)=0,Hst(0,t)=0,t∈[0,L],并计算出最佳阈值矢量S和T。两个类的熵定义为
(2)
本研究为得到全局最优结果,将判别函数作为主要依据,并采用穷举搜索法对阈值矢量(S,T)进行计算,判别函数为
H(S,T)=max(min{H0(s,t),H1(s,t)})
(3)
式中,s=1,2,…,L;t=1,2,…,L。
最后按照二维阈值化函数实现图像的分割,其公式为
(4)
在确定图像的阈值T后,即可对图像进行二值化处理。当像素值小于T的灰度值时,可将像素值记作b0;当像素值等于或大于T的灰度值时,可将像素值记作b1。通过对图像进行二值化处理,即可得到含托架轮廓的二值图像。采用快速二维熵阈值分割算法对阈值矢量(S,T)的熵进行计算时,其关键在变频数之和为相加(减)。因此,对每个阈值矢量(S,T)进行计算时,为最大限度地提高计算速度,应降低计算的复杂性,由O(L4)减少到O(L2)[5]。
为进一步对图像进行数学描述,提取图像所表示物体的面积、周长、质心等几何特征。描述图像特征的方法主要包括两种:行程码法、链码法,本研究采用行程码法实现特征的描述,该方法可用于计算图像的面积、质心等特征,具有计算量小、速度快等优势。
行程码方法的图像描述过程为:采用逐行(列)的方法对二值图像进行扫描,假设背景点为0,物体点为1,当该方法从背景点扫描到物体点时,即可对一个行程段的开始进行标明,并将坐标记作Xi和Yi,直至行程码法重新扫描到背景点时,可认为该行程段为结束状态,此时物体点为1的像素长度为Li。无限循环该过程,直至一幅图像成功转换为行程段码的集合,即可结束该行程。每个行程段均包含三个数据:Xi、Yi、Li[6]。
采用行程码对物体的纯面积进行计算时,可将每个行程段码的长度相加,其公式为
A=∑Li
(5)
通常情况下,可选择物体面积的中心点替代物体在图像中的位置,面积中心实际上指的是:当单位面积质量处于恒定状态时,相同形状图像的质心即为面积中心,该面积中心可通过计算物体的一阶矩Mx和My获取。采用行程码方法获取Mx和My的数值时,每个行程段均对应一个ΔMx和ΔMy,其公式为
(6)
一阶矩Mx和My的公式为
Mx=∑ΔMx,My=∑ΔMy
(7)
质心坐标为
X0=My/A,Y0=Mx/A
(8)
式中:X0和Y0为中心点的坐标。
六轴机器人事故性叠放图像及行程码表示如图1所示[7]。当六轴机器人的齿轮叠放在辊道上时推动热处理炉,推动现象如图1(a)所示,可直接造成六轴机器人出现故障现象。本研究为避免六轴机器人出现故障问题,在操作六轴机器人之前,对六轴机器人的齿轮叠放状态进行事故判别。判别方法包括两种:方法一,通过计算物体的二阶矩,判断物体的实际“方向”;方法二,行程码法。方法一在实际操作过程中对计算积分和投影三角函数的要求较高,具有计算量过大、操作繁琐等缺陷。为此选用行程码法对机器人托架的叠放状态进行判断,如图1(b)和图1(c)。当六轴机器人因齿轮叠放在辊道上而出现故障现象时,可与正常叠放状态的行程码进行比较,有利于迅速判别故障的发生,并将故障信息上传至系统内部。
图1 六轴机器人事故性叠放图像及行程码表示
热处理炉在实际运行过程中,可将炉门到辊道上齿轮中心的距离定义为固定值。因此,采用六轴机器人对图像进行处理时,可实现三维图像到二维图像的简化。视场系统与六轴机器人系统之间的坐标转换实际上是二维空间的线性映射。
六轴机器人坐标系统可对图像进行预先标定,为确定图像在视场坐标系中的位置,可将视场系统内已知的固定点作为参照物,以此确定图像的实际位置。本研究选用热处理炉炉门上直接分布的三个角点作为参照物点,并测算三个角点在六轴机器人坐标系统的坐标,三个角点的坐标分别为:(Xr1,Yr1)、(Xr2,Yr2)、(Xr3,Yr3)。
三个角点在图像中的坐标分别为:(Xv1,Yv1)、(Xv2,Yv2)、(Xv3,Yv3)。
视场系统与六轴机器人系统之间的坐标转换关系为线性变换,变换的最终结果为
(9)
通过式(9),即可得到视场系统与六轴机器人系统坐标之间的线性映射常数,将得到的线性映射常数作为主要依据,求出托架中心线和齿轮中心在机器人坐标系中的位置[8]。
六轴机器人视觉系统的瓶颈为计算机处理速度,为最大限度地提高计算机的处理速度,可采用隔点隔行采样方法。但是该方法可直接造成图像的质量出现问题。热处理炉自动化控制系统中全部程序均采用BorlandC++语言和汇编语言完成编写,通过对系统程序进行优化,可将定位的误差控制在2 mm之内,其定位时间不超过2 s,符合热处理炉自动化控制系统的要求。
由于热处理炉的工作现场环境较差,通常处于高温状态,采用六轴机器人对处于高温火焰喷射的炉门进行图像采集,可直接造成图像出现质量问题,该方式采集的图像在背景与目标边缘方面较为模糊。为保证六轴机器人采集图像的质量,采用快速中值滤波算法对图像进行预处理,可有效满足微分转换为差分运算后的方向性要求,同时可大大简化运算过程,有利于提高机器人的控制精度。通过Sobel算子锐化后的图像具有边界清晰、细节强化等优势,通过对系统程序进行优化,可将定位的误差控制在2 mm之内,其定位时间不超过2 s,符合热处理炉自动化控制系统的要求。