梁智滨, 吴鹏飞, 李灵巧,3, 杨辉华,3
(1.桂林电子科技大学 电子工程与自动化学院,广西 桂林 541004;2.桂林电子科技大学 计算机与信息安全学院,广西 桂林 541004;3.北京邮电大学 人工智能学院,北京 100876)
电子接插件作为可分离式元件在电子系统中起着至关重要的作用[1],是电子系统中信号与功率的重要载体,必须对装配前的电子接插件进行严格的质量检测。视觉检测作为一种非接触式的自动检测技术,具有高精度、高效率的优点,在汽车电子工业的自动检测领域得到了广泛应用[2]。
接插件的插针图像是基于阵列椭圆的灰度图像,椭圆中心作为期望的金属插针的位置特征点[3],直接影响插针位置度的检测精度。目前,常用的圆形特征点定位方法包括灰度质心法、Hough变换法[4]、模板匹配法、边缘检测法[5]等像素级检测方法。Georgescu等[6]使用二阶Riesz分数导数推广了一些经典的边缘检测器,利用分数微分法的优势克服了Robert、Prewitt和Sobel等传统算子的缺点。传统的像素级检测方法已经难以适应如今工业上高精度的检测要求。因此,针对亚像素边缘检测算法的研究被广泛关注。亚像素边缘检测原理是通过对边缘附近的像素进行细分来实现精确的边缘定位。常用的亚像素边缘检测方法有插值法、拟合法和矩方法。其中,插值法相对简单,但易受噪声的影响;拟合法可以获得更好的边缘,但计算量相对较大,所需的模型也更加复杂;矩方法相比插值法和拟合法具有较好的抗噪性和高效性,被广泛应用于高精度检测系统[7]。Tabatabai等[8]采用三阶灰度矩的边缘检测方法,实现了亚像素检测精度,该方法以闭合形式提供边缘位置,且无需插值或迭代,不受加性和乘性灰度变化的影响。Lyvers等[9]提出一种基于空间矩的方法,利用空间矩和边缘阶跃参数确定边缘位置。虽然文献[8-9]的方法具有较高的精度,但计算量太大,只适合信息量小的图像。Ghosal等[10]提出一种基于Zernike正交矩的亚像素定位算法,仅需3个Zernike矩便可获得边缘相关参数,能以较低的计算量获得较高的精度,但该算法在判断边缘时需要通过人工调整来选择阈值,不仅效率低下,且容易误判,严重影响检测的精度。Peng等[11]提出一种新的基于边缘梯度方向插值和Zernike正交矩的子像素边缘检测方法,大大提高了边缘检测的精度,在图像中存在复杂边缘时,避免了边缘干扰。Liu等[12]针对边缘检测的快速、高精度要求,提出一种快速亚像素边缘检测方法,利用Otsu阈值进行背景分割,并使用Zernike矩计算边缘点的梯度方向。张晓林等[13]利用被测物的几何信息,只使用零阶矩实现了对边缘的亚像素定位,大幅减少了运算量。Duan等[14]提出了一种基于高斯积分模型的亚像素边缘检测算法。这些改进的检测算法主要集中在亚像素边缘检测,却未保留传统像素级边缘检测的速度快和计算复杂度低的优点。为此,提出一种基于改进的Zernike矩边缘检测方法,结合均值漂移以实现插针位置度的亚像素检测。
Zernike矩是一种复正交矩阵,其核心是在极坐标空间中定义在单位圆(x2+y2=1)内的一组由复多项式表示的完全正交基。图像f(x,y)的n阶m次Zernike矩可定义为
(1)
基于Zernike矩的亚像素边缘定位原理是通过图像的3个不同阶的Zernike矩计算模型的4个参数,将这些参数与设定的阈值比较,从而准确定位图像的边缘。假设单位圆的中心点在图像的某个像素点,并且图像的边缘穿过该圆,从而创建理想的边缘阶跃模型。Zernike矩的理想边缘模型如图1所示。
图1 Zernike矩的理想边缘模型
图1中,h为图像背景灰度,k为灰度差,阴影部分的灰度为h+k,D为理想边缘,ab、cd表示在不同阶次的Zernike矩下的图像边缘,l1、l2分别为原点到ab、cd的垂直距离,lD为原点到边缘的垂直距离,φ为l与x轴的夹角。将图像顺时针旋转φ,旋转后的图像与y轴平行。旋转后的图像关于x轴对称,可表示为
(2)
(3)
图像的旋转角度为
(4)
(5)
与A00、A11、A20对应的积分和函数分别为V00=1,V11=x+jy,V20=2x2+2y2-1。旋转图像的Zernike矩的推导如下:
(6)
(7)
(8)
结合式(6)~(8)及l、k、h可推导出
(9)
(10)
(11)
由此图像的亚像素边缘为
(12)
其中,(xs,ys)为亚像素边缘坐标,(x,y)为像素级边缘位置。
针对图像的Zernike亚像素边缘检测,需要将不同阶的Zernike模板在图像上逐像素移动,再与其相对应的像素进行卷积操作,得到不同的Zernike矩,通过图像的Zernike矩计算各像素所对应的l、k、h、φ参数,用以判断该点是否属于边缘点。传统算法采用5×5像素的Zernike模板系数进行边缘检测,存在检测结果定位精度低、边缘较粗的问题。本模型采用7×7像素的Zernike模板系数,更大的Zernike矩边缘算子可相应提高边缘定位精度,噪声抑制能力也会相应增强,从而提高检测精度。
令图像f(x,y)=1,根据式(1)记Anm的模板为Mnm,则有
(13)
单位圆被7×7像素模板划分,如图3所示。
图2 7×7像素模板
设圆x2+y2≤1所围成的面积为C,图2中第i行、第j列的正方形面积为Sij,对应的积分域表示为ωij=C∩Sij,由此可计算第i行、第j列的模板系数
(14)
通过式(13)、(14)可计算出7×7的模板系数A00、A11、A20、A31、A40。由于边缘点的判断和计算只需参数l、k、h、φ,根据式(4)、(9)~(11)可知,仅需计算A00、A11、A20即可。
由于未考虑模板放大效应,式(12)在实际计算亚像素边缘坐标时会产生偏差。假设模板是N×N,上述亚像素边缘公式的推导和模板系数的计算均在单位圆内进行,而实际上模板在图像上移动并与相对应的像素进行卷积操作,在模板中心周围被N2像素覆盖,单位圆的半径变为N/2。因此,距离l在单位圆上计算的值应放大N/2倍,并转换为N×N模板所需的形式。亚像素边缘坐标公式修改为
(15)
单个接插件含有27根插针,为准确定位各插针的精确位置,需要对检测到的所有插针边缘点进行聚类,从而分离出单根插针的所有边缘点。
在d维空间Rd,给定n个数据采样点集{xi,i=1,2,…,n},由核函数K(x)和窗口半径h得到多元核密度估计函数为
(16)
径向对称核函数K(x)满足
K(x)=ck,dk(‖x‖2),
(17)
(18)
(19)
meanshift矢量
(20)
由式(20)可知,均值漂移向量所指的方向是密度增加最大的方向。插针分类流程为:
1)计算检测到的每个亚像素坐标的均值漂移向量mh,G(x);
2)对每个坐标点mh,G(x)进行平移,xi=xi+mh,G(xi);
3)重复步骤1)、2),直到亚像素坐标点收敛,即mh,G(x)=0;
4)收敛到相同点的亚像素坐标被归为同一插针簇。
由于插针金属材质的高反光特性,在补光灯照射下,摄像机成的像是椭圆形的白色亮斑。由于使用了更大尺寸的7×7模板,计算量会大幅增加。为减少计算量、提高检测效率,通过图像预处理将插针与背景分离,获得只保留插针点基本轮廓的灰度图像;使用Canny算子对预处理图像进行边缘粗定位,提取插针ROI;基于改进的Zernike矩对插针边缘进行亚像素精确定位,获得边缘亚像素坐标点集;为分离出每根插针,采用meanshift对所有亚像素坐标进行聚类;最后采用非线性最小二乘法建立椭圆参数的优化目标函数,对每根插针所含坐标进行椭圆拟合,求解每根插针的中心点坐标,从而实现插针位置的精确定位。插针位置度检测流程如图3所示,亚像素检测流程如图4所示。
图3 插针位置度检测流程
图4 亚像素检测流程
检测具体步骤为:
1)使用工业相机对汽车电子接插件拍摄灰度图像,采用高斯滤波核对图像去噪,分离图像前后景,保留只含插针的图像。
2)Canny算子对预处理图像进行边缘粗定位,提取插针ROI,获得边缘点像素集合{P}。
3)计算7×7的Zernike模板系数M00、M11、M20、M31、M40,将该模板系数与边缘点集合{S}进行卷积操作,计算得到A00、A11、A20、A31、A40矩。
4)从集合{P}中逐一取出第i个像素点Pi,根据式(4)、(9)、(10)计算相应的边缘参数。
5)判断边缘Pi是否满足参数阈值条件,若不满足则将该点从边缘集合{P}中删除,并继续检测下一个边缘点;将满足条件的点根据式(15)计算其亚像素边缘坐标,继续判断该点亚像素坐标是否满足条件(取值为0.5像素)。将满足上述条件的亚像素边缘点保存到点集{S}。
6)采用meanshift对亚像素边缘点集{S}进行聚类,将边缘点集{S}分成K类,提取每根插针的ROI。本接插件图像中插针共27根,根据实际的接插件图像将meanshift的窗口搜索半径w设置为25像素,可将亚像素边缘点集{S}分为27个类K1,K2,…,K27,每个类包含若干个亚像素边缘点坐标。
7)遍历每个类Ki,根据最小二乘法,针对该类所含的亚像素边缘坐标建立椭圆的一般方程,进而求解椭圆参数,得到椭圆圆心(x,y),以此精确定位插针的位置。
图5 仿真图像边缘检测结果比较
实验2目的是测试本方法对图像边缘的亚像素坐标的检测精度。表1为检测仿真圆测试图像的部分边缘数据。从表1可看出,使用5×5模板的Ghosal算法检测精度可控制在0.5像素内,使用改进模板的7×7 Zernike矩方法可将检测精度提高0.2像素,达到0.3像素内。本方法使用更大的模板和优化阈值判定条件,将边缘检测精度提高到0.1像素内。此外,在单张测试图像的计算耗时方面,Ghosal算法耗时541 ms,改进模板方法耗时559 ms,本方法耗时603 ms,3种方法所需的计算时间相差不大,说明本方法只增加少量时间成本,但具有更高的检测精度。
表1 仿真圆测试图像部分检测坐标
实验3目的是测试噪声的敏感度。由于实际图像的采集过程中对光照变化的非绝对可控、相机发热及镜头成像所带来的噪声会影响边缘的检测精度,使得插针位置的定位精度受到影响。为尽可能模拟真实使用环境,由软件生成指定椭圆中心坐标的插针模拟图像,并对模拟图像加入噪声系数为σ=0.002和σ=0.004的高斯白噪声。图6为加入σ=0.004高斯白噪声插针模拟图。利用本方法对模拟图像进行边缘提取,对获取的边缘坐标使用meanshift将插针进行分类,利用椭圆最小二乘法对坐标进行中心拟合。
图6 混合高斯白噪声插针模拟图
表2为仿真测试图定位精度对比。从表2可看出:本算法对模拟图像的绝对均值误差和方差都最小;在添加噪声系数为0.002和0.004的图像中,本方法相对Ghosal算法的5×5模板系数和改进模板系数的方法,绝对均值误差及方差都是最小的。说明本方法抗噪性能较好,具有良好的稳定性。
表2 仿真测试图定位精度对比
图7为实际拍摄获得的接插件插针区域图像。使用本方法对插针图像进行边缘检测,边缘定位结果如图8所示。从图8放大的插针边缘检测图像可看出,使用本方法检测的插针边缘,在插针与图像背景的灰度过渡像素区域准确描绘了亚像素边缘位置以及预测的边缘方向,插针边缘定位达到亚像素等级。
图7 接插件插针检测原图
图8 插针边缘定位结果
对提取的插针边缘坐标使用meanshift聚类分离单个插针ROI的边缘坐标,采用最小二乘法进行椭圆拟合,获得插针中心,分别计算每个插针中心的标准差。由于插针数量过多,仅列出图8中放大显示的6个插针点的标准差数据,检测结果如表3所示。x坐标和y坐标的最大标准偏差值均小于0.2像素。因此,本方法适用于接插件的插针位置检测,针对一般的视觉检测任务具有较高的检测精度和稳定性。
表3 插针位置标准差
在汽车电子接插件的视觉检测系统中,针对接插件插针位置度的高精度检测,在传统Zernike矩方法基础上,提出了一种基于改进Zernike矩和meanshift聚类的汽车电子接插件亚像素位置度检测方法。通过改进传统Zernike矩模板系数,提高亚像素检测精度;同时为了精确定位接插件每根插针的位置,采用meanshift聚类算法对插针进行单根插针ROI提取,并采用最小二乘法椭圆拟合出中心坐标。实验结果表明,本方法不仅能准确检测插针的亚像素边缘,且边缘检测精度小于0.2像素。本方法对噪声敏感度较低,具有较强的抗噪性,能适用于一般的视觉检测环境,满足实际生产检测要求,对提高接插件生产质量有重要意义。