1 引言
表面贴装元器件的视觉检测和定位是影响贴片机整体性能的关键因素,其主要任务包括获取元件的图像,利用识别算法对图像进行处理,识别元件的质量、位置、角度、判断所拾取的元件是否合格,以便调整其贴装位置和角度[1]。
在目前现场应用中,表面贴装元器件边缘提取采用的是边界跟踪的方法,即从一个梯度幅值图像(边界锐化图像)着手进行处理,依据一定的算法和准则,搜索到所有边界上灰度值最大的点为边缘点,具体算法过程见文献[2]。但这种算法也存在问题:(1)边缘提取点的精确度影响到其后的最小二乘法运算,任何一个参与运算点位置变化都会改变最小二乘法的结果,所以当参与运算的边界点能够符合实际的边界轨迹时,最小二乘法能得到和边界接近的直线方程,但若不符合边界轨迹,就会产生较大的干扰。(2)数字图像的基本组成单位是像素,进行的边界锐化算法精度为1个像素,但实际中像素值的变化是一个渐变的过程,其差分最大值可能不会出现在单位像素的位置,而是出现在两个像素之间,这时单位像素的精度就满足不了需要,需引入亚像素的概念。
2 基于亚像素的边缘检测
亚像素边缘检测技术最早由Hueckel提出,在发展过程中形成了一些基本方法,如①几何方法,利用图像中某一目标的几何特征得到亚像素精度的测量数据,一般是利用图像中一些规则形状的目标,如圆、三角形、正方形等形状[3-4],但这种算法精度较低,对不规则形状的图像效果不好。②矩估计方法,由于矩是基于积分的运算,被认为是对噪声不敏感的稳定特征,已被应用于图像识别等领域。运用到亚像素中的有空间矩,ZOM正交矩[5]等,定位精度较好,但算法复杂度较大,计算时间较长。③插值法,是基于亚像素边缘检测的原理生成,主要有线性插值、三次正交多项式插值(即多项式)、样条插值、双线性插值四类。在文献[6]中对这几种算法进行了对比研究,空间矩法和最小二乘法有很高的定位精度,但其计算时间较长,并且最小二乘法需要有一定的先验知识,而且其抗噪能力较差;插值法计算时间相对较短;样条插值和双线性插值的抗噪能力和定位精度都较高,但计算时间较长一点。
样条插值可以用较少的点反映整个曲线的变化趋势,所需的计算量相对双线性插值要小些,并且它可以根据情况选择合适的阶数。图像噪音小,可用高阶样条,以便能得到很好的逼近性能,使边缘定位更为准确;反之,噪音大的,可用低阶样条进行平滑。在样条插值中应用最多的是三次样条插值,因为它既克服了低次样条在端点上有间断的一阶或二阶导数成为角点的情况,又克服了高次样条计算量大和出现不一致收敛的现象。
在现有的表面贴装元器件边缘提取的算法中,也有用到亚像素的概念,如在文献[7]和[8]中都是基于边缘的直线特性,通过全局特性和局部小领域特性结合的方法,得到亚像素的精度边缘,能达到良好的定位精度,但此方法只对具有直线边缘的表面贴装元器件有良好的效果。在文献[9]和[10]中,对集成块引脚的测量中用到了样条插值的算法,但只是粗略的分析,没有具体说明其算法思想。
基于以上分析,本文选择三次样条函数作为提取亚像素边缘点的方法,并且详细阐述如何从像素级到亚像素级的递进边缘检测算法。
3 利用三次样条插值的亚像素算法
基于多尺度边缘检测的思想,先在大尺度下抑制噪声,粗定位找到边缘处像素级的点,然后在小噪声,粗定位找到边缘处像素级的点,然后在小尺度下通过三次样条插值的亚像素的方法,恢复边缘光强函数,细定位得到边缘的真实位置。拿表面贴装元器件中片式元件(chip)为例来说明此算法。
3.1 粗定位
粗定位是在传统的sobel算子边缘检测出轮廓之后,用边界跟踪提取出像素级的边界点。边界跟踪是由梯度图中一个边缘点出发,依次搜索并连接相邻边缘点从而逐步检测出边界的方法。本文采用的是八领域边界跟踪算法。
梯度图像中灰度值最大的像素点都集中在边界上,因此从梯度图中选出灰度值最大的点作为边界跟踪的第一个起点,然后在该点的八领域中选灰度值最大的点作为第二个边界点。在以当前边界点为中心的3×3领域内,考察前一个边界点位置相对的邻点和这个邻点两旁的两个点,下一个边界点就是上述三点中具有最高灰度值的那个点,若所有三个或两个相邻边界点具有同样灰度值,就选择中间的那个点,若两个非邻接点具有同样的最大灰度值,就任选其一。
3.2 细定位
在由粗定位、边界跟踪得到的点的基础上,用三次样条函数(如式1)构造边界点的光强度函数
|
式中:hi=xi-xi-1;xi为由粗定位得到的边缘点的X或Y方向的坐标信息;yi为xi点对应的灰度值。其中C0~Cn可由式(2)的矩阵方程组解出
对式(1)用一阶微分的最大值或二阶导数的零交叉准则,就可获得亚像素级的定位精度。
由于粗定位后的chip图是已经二值化处理过的,其光强度函数已被破坏,则重新load原图进行亚像素插值定位。具体算法如下:
以上边界为例,由粗定位得到的上边界点中间点为第一个处理点,令其横坐标不变,纵坐标以1为单位分别向上向下各搜索3个点,对这3个点构造三次样条函数, xi为这3个点的Y方向的坐标信息,yi为xi点相应的灰度值。由式(1)和(2)可得到六段函数Si(x)(i=1~6)。
光强度函数值最大的点为边缘点的真实位置,对这六段函数(式3)采取分段函数求极值的方法来确定亚像素级的边界点。
下边界求法类似于上边界求法和分段函数求极值的方法。
4 实验结果
在亚像素算法得到物体准确的边界点后,通过最小二乘法拟和出该片式元件的边界直线方程,并由最小二乘法性质可知其倾斜角度,也就反映了元件的倾斜角度,进而可求出元件尺寸,判断能否被贴装等。因此可在以上的后续算法中采用两种评价准则来考核本文算法的有效性。这里对不同角度的片式元件进行实验,并同目前没有采用亚像素的算法进行比较。
① 最小二乘法对边缘点拟合直线的程度可由相关系数│rxy│来评价[11],两种算法│ rxy│比较见表1。
由表1可看出,三次样条插值亚像素算法比现有算法得到的│rxy│更能趋近于1,线性相关程度更大,即有效地逼近边缘直线段的概率大些。
②最终求得的偏转角度的误差情况,由最小二乘法拟合直线对原图求的角度为a;人工旋转角度为b;在对人工旋转角度后的chip用算法得到的角度为c,则算法误差为│c- (a+b)│。表2为对两种算法的角度误差比较的部分数据。
由表2看出,三次样条插值亚像素算法比现有算法误差降低了约一个数量级,角度测量的精度大大提高。但由于三次样条插值亚像素方法是在边界跟踪的基础上进行的,整个算法时间上肯定要比仅边界跟踪进行边缘提取要长些(见表3)。
5 结论
本文在现有算法的基础上,针对亚像素边缘检测理论,提出了基于三次样条插值的亚像素算法,通过实验比较,该算法在拟合精度和偏转角度精度两方面都比现有算法有一定的提高,满足含有直线边缘的表面贴装元器件进行边缘提取的需要,并且由于边缘点提取的准确性,可应用到其他曲线边界的表面贴装元器件图像的检测处理上。但该算法在速度方面不是很理想,如果是对含多直线边缘的表面贴装元器件(如QFP)边缘提取则时间上消耗很大。因此,下一步的研究方向是如何将粗定位和细定位更有效地结合起来,减少算法复杂度,提高处理速度。
|