APP下载

基于颜色特征的智能焊点定位算法*

2013-07-31谢宏威张坤邝泳聪张宪民裴海龙

关键词:焊点像素点直方图

谢宏威 张坤 邝泳聪 张宪民 裴海龙

(1.华南理工大学自动化科学与工程学院,广东广州510640;2.华南理工大学广东省精密装备与制造技术重点实验室,广东广州510640)

电子元件微小化、细密化、无铅化的发展趋势[1-4],使自动光学检测(AOI)系统在微电子产品的制造中发挥了越来越重要的作用[5-7].在AOI系统中,焊点定位是焊点检测的关键步骤之一.目前,焊点定位方法主要有模板匹配法[8-12]、基于直方图的特征分析法[13]以及基于灰度投影图的方法[14].模板匹配法在操作性、检测速度方面具有一定优势,但其对模板的要求高,且由于实际焊点的图像变化多样,因而定位精度无法保证;基于直方图的特征分析法通过提取焊点直方图特征,并利用此特征对焊点进行定位,定位速度较快,但对光源稳定性要求很高;灰度投影法首先利用颜色阈值对焊点图像进行二值化,并在二值化图像的X、Y轴投影图上对焊点进行定位,这种方法定位速度很快,但需要人工确定二值化的阈值,且噪声较大时定位误差较大.

为了对焊点进行精确定位,同时兼顾速度和可操作性,文中提出了一种基于颜色特征的智能焊点定位算法.该方法将以往智能化程度较低的人工阈值选取过程自动化,同时,使用面积最大法对焊点进行精确定位;为了提高定位速度,对面积最大法的运算过程进行优化;最后,通过实例运算对该方法的有效性进行了验证.

1 焊点定位流程

文中采用经过优化设计的RGB三色环形光[15-16]和彩色相机获取焊点图像.图像中的红色、绿色和蓝色分别与焊锡表面的平坦、斜坡和陡坡部分相对应,从而反映焊点的三维信息[17-18].在实际应用中一般设定一个搜索窗和两个焊盘窗,然后使用定位算法确定焊盘窗在搜索窗中的准确位置,如图1所示.

图1 搜索窗和焊盘窗Fig.1 Search window and solder windows

文中焊点定位算法流程如图2所示.定位之前人工标定训练样本中的焊盘位置,然后通过统计运算自动获取焊盘区域主要颜色的阈值;在定位时,使用该阈值对搜索区域进行二值化,然后在二值化后的图像中使用优化后的最大面积法来定位焊点.

图2 焊点定位算法流程图Fig.2 Flowchart of solder joint positioning algorithm

2 阈值自动获取

2.1 颜色阈值的人工选取

使用抽取颜色的方式进行焊点定位时,人工设置颜色阈值的操作过程如图3所示.

图3 人工选取阈值流程图Fig.3 Flowchart of artificially threshold selection

在图3中,初始阈值经过人工不断地调整,达到最佳焊点抽出效果为止.这个过程较为费时,但是是一个较为标准的流程,且选取标准可以量化.鉴于此,文中使用计算机来模拟人工操作过程,提出颜色阈值自动选取方法.首先,根据颜色直方图计算每个样本的初始阈值;然后,对多个样本的初始阈值进行修正,得到统一的阈值,用于图像二值化.

2.2 初始阈值的获取

2.2.1 设计思路

文中分别统计每个样本图像在色调(H)、饱和度(S)和亮度(I)平面的直方图,并计算相应的阈值.假设灰度级为0-255,参照AOI实际抽取颜色的过程,将H平面分为红色、绿色、蓝色3个固定区间:红色[0,43)∪[200,255]、绿色[43,124)、蓝色[124,200),然后在每种色调区间分别求取相应的S和I的阈值.因此,最终用于二值化的阈值实际上是由3组阈值组合而成,下面讨论的都是求S或I阈值的方法.

定义 直方图中,如果大部分像素值分布在区间[i1,i2]内,则称[i1,i2]为有效灰度范围.有如下定义:

其中,ni为灰度级,θ(0< θ<1)为评价指标,N 为像素总数.当θ接近于1时,灰度在[i1,i2]内的像素包含了这个区域内的主要颜色.

使用阈值[t1,t2]对图像进行二值化,位置(x,y)处的像素点c(x,y)的二值化结果f(x,y)可表示为

为了最大程度地将焊盘区域提取出来,同时尽量少地提取焊盘区域以外的像素,必须保证:

其中,D1为焊盘窗区域,D2为搜索窗以内、焊盘窗以外的区域.

通过大量的实例研究发现,在提取的焊盘内外像素数相差较大时,定位效果较好.因此,定义函数A(s'1,s'2,i'1,i'2)如下:

其中,[s'1,s'2]和[i'1,i'2]分别表示 S 和 I的阈值.

于是,问题转化为求取使 A(s'1,s'2,i'1,i'2)取得最大值时的变量s'1、s'2、i'1、i'2的值.若采用遍历所有取值组合的方法来求这几个值,运算量将非常大,无法满足实际工程的速度需要.

2.2.2 计算初始阈值

以S平面为例,对于给定的θ,在其直方图中,从频数最高的灰度开始向左右两侧不断扩展,并结合式(1),可自动计算出S平面的有效范围,然后用同样的方法求出I平面的有效范围.并以S平面的有效范围为初始值,求出I平面的阈值(iT1,iT2),然后在(iT1,iT2)的基础上求出S平面的阈值(sT1,sT2).为了提高运算速度,文中采用简化的模型来求取这4个阈值.在搜索窗内,假设焊盘区域内外统计的I平面直方图有效范围分别为[i1,i2]和[ie1,ie2],[i1,i2]和[ie1,ie2]的分布共有 4 种类型,如图 4所示.

(1)[i1,i2]∩[ie1,ie2]≠∅,且 i1< ie1<i2< ie2

如图4(a)所示,由于 i1落在[ie1,ie2]之外,阈值iT1可以取为 i1,只需找出另一阈值 iT2∈[ie1,i2].焊盘区域内外提取像素点的面积之差可表示为

图4 直方图分布模型Fig.4 Distribution models of histogram

其中,n1i和n2i为焊盘区域内、外灰度为i的像素数.于是

由此可求出ie2的值.

(2)[ie1,ie2]⊂[i1,i2]

如图4(b)所示,需要以ie1与ie2为起点,分别向左、右两个方向进行搜索,在两个方向分别找出面积差值最大时的iT1和iT2,并将其作为最后的阈值.

(3)[i1,i2]⊂[ie1,ie2]

如图4(c)所示,采用类似(1)的方法,分别以i1、i2为各自起点向左、右两个方向搜索求出iT1和iT2.

(4)[i1,i2]∩[ie1,ie2]= ∅

如图4(d)所示,这是最理想的类型.显然,此时的阈值 iT1=i1、iT2=i2.

根据上述步骤,即可求出每个样本在H、S和I平面的初始阈值范围.

2.3 基于像素损失的阈值修正

对多个样本初始阈值进行修正后才能得到一个统一阈值用于图像二值化.假设有m个样本,其初始阈值依次为{iT1,i'T1,sT1,s'T1},{iT2,i'T2,sT2,s'T2},…,{iTm,i'Tm,sTm,s'Tm},统一阈值为{i0,i'0,s0,s'0},令imin=min{iT1,iT2,…,iTm},imax=max{i'T1,i'T2,…,i'Tm},smin=min{sT1,sT2,…,sTm},smax=max{s'T1,s'T2,…,s'Tm},则有 imin≤i0< i'0≤imax,smin≤s0< s'0≤smax.分别以[imin,imax]和[smin,smax]为 I平面和 S 平面的初始阈值来搜索最优阈值.

对初始阈值进行修正,使用统一阈值对图像进行二值化时,对于训练样本总体上要尽量将焊盘区域抽取出来,同时要尽量少地抽取焊盘区域之外的部分.假设焊盘窗内使用当前阈值未被抽出的像素点的总数为1,搜索窗内、焊盘窗外符合阈值范围的像素点的个数为2,当前要搜索阈值的取值t,则当前样本像素损失R(t)为

来搜索求出i0的值.由定义可知1≥0,且2≥0,因此,R(t)≥0,可以保证一定存在一个i0的取值使目标函数最小.同理,以i0为I平面阈值的初始值搜索得到i'0的值,即得到了I平面的阈值[i0,i'0].依此方法,可以得到S平面的阈值[s0,s'0].值得注意的是,根据式(4)求取4个阈值需要遍历 s'1、s'2、i'1、i'2这4个变量可能取值的所有组合,运算复杂度为O(m4);采用简化的模型,依次求取每个变量取值时,都是先假设其他3个变量不变来求取另外一个变量的取值,运算复杂度降低为O(m).

3 定位方法

3.1 最大面积法定位

如图5所示,以搜索窗左下角为原点,水平和竖直方向分别为X和Y轴.设搜索窗长和宽分别为ws和 hs,焊盘窗 W1和 W2长和宽分别依次为 w1、h1、w2、h2.W1左下角相对于 W2左下角的坐标为(w21,h21),W2左下角坐标为(x,y).定位时,保持W1和W2的相对位置不变.x取值范围为[-min(0,w21),ws-max(w2,w21+w1)],y取值范围为[0,hs-(h21+h1)].假设两焊盘窗内属于阈值范围的像素数为S(x,y),xs=-min(0,w21),xe=ws- max(w2,w21+w1),ys=0,ye=hs-(h21+h1).则必有一点(xp,yp)使得

使用式(9)进行定位需要在每一个可能的位置上遍历两个焊盘区域,运算次数为(xe-xs)(yeys)(w1h1+w2h2),需要对其进行优化以提高定位速度.

图5 定位坐标系Fig.5 Location coordinate

3.2 运算速度优化

焊盘窗W在(x,y)处时,二值化图像中包含的像素G(x,y)可表示为

按照常规的思路,当焊盘窗在搜索窗内滑动时,无论是横向或者纵向移动,均需对整个焊盘窗内的像素点扫描一遍,如图6所示.

图6 焊盘位置的搜索过程Fig.6 Search process of solder position

文中采用优化后的算法,尽量减少扫描像素的个数.以图6(a)为例,对于长为w、宽为l的窗口,可将式(10)修改为

其中,A表示在位置(x,y)处焊盘窗内除第一列外其他区域的像素数.

当此窗口向右滑动一个像素后,计算像素数的公式可以表示为

也就是说,在已知上一个位置像素点数G(x,y)时,G(x+1,y)可由计算出来.其中为窗口在(x,y)处时

因此,除了在初始位置需对窗口内所有像素点进行一次扫描,在其他位置均只需对其中的两行或者两列进行扫描即可.对于长为w、宽为l的窗口,每一次横向滑动扫描的像素点的个数由原来的2wl减少为2l.同理,如图6(b)所示,当焊盘窗纵向移动一个像素时,扫描的像素点的个数由原来的2wl减少为2w.整个定位过程中,总的运算次数由(xe-xs)(ye-ys)(w1h1+w2h2)减少为(w1h1+w2h2)+2l(xe-xs)+2w(ye-ys).总体来看,搜索过程的运算复杂度由 O(n4)降低为O(n2),运算量大大减少.

4 实验结果与分析

为验证文中算法的有效性,使用笔者所在课题组与某公司联合研发的在线AOI系统为实验平台(PC 配置为 CPU Intel i3 3.10GHz,内存2G,算法用VC.NET2005实现),选取某型号PCB板上的CHIP元件为实验对象进行实验.

4.1 颜色抽取效果

每种CHIP元件选取10个有代表性的样本手工标定焊盘的精确位置并用于训练,自动获取焊点的颜色阈值,然后用这些颜色阈值抽取焊点的颜色,属于阈值范围的像素点用白色显示.自动抽取效果如图7所示.观察图7可知,焊点区域的颜色抽取效果良好,对其中存在诸如焊点颜色单一、与背景色相似和元件贴装有文字等干扰因素,焊点颜色的抽取效果仍然能够令人满意.

图7 焊点颜色自动抽取的效果Fig.7 Effectiveness of automatic extraction of the weld color

4.2 定位精度与速度

为了验证文中提出的焊点定位算法的性能,选择实验PCB板上的数量最多的0402和0805两种CHIP元件进行实验.其中0402元件51个,搜索窗大小为52×103像素,焊盘窗大小为24×32像素;0805元件45个,搜索窗大小为52×103像素,焊盘窗大小为45×60像素.分别使用模板匹配法[8]、灰度投影法[14]和文中算法进行定位,定位精度和定位速度如表1所示.其中Δ为定位误差.

表1 不同定位算法的性能Table 1 Performance of different positioning algorithms

由表1可知,模版匹配法的定位精度最低,这是由于焊点图像的形态变化较为复杂,需要使用较多模板.文中的实验,每个焊点都使用了6张模板,但定位结果仍然不能令人满意,也因此导致定位速度最慢.灰度投影法的定位速度最快,且定位精度较高.文中算法在定位精度上优于其他两种算法;定位速度比模板匹配法快,比灰度投影法慢,但定位0402元件平均耗时0.48 ms,定位0805元件平均耗时1.87ms,基本可以满足实际应用的要求.

4.3 鲁棒性实验

图8 鲁棒性实验结果Fig.8 Robust experiment results

为了验证文中算法对于噪声的鲁棒性,选择两张焊点周围存在较大噪声的图像进行鲁棒性实验.首先使用文中算法自动获取焊点颜色阈值,并使用此阈值对焊点图像进行二值化,然后分别使用灰度投影法和文中算法进行焊点定位,结果如图8所示.

观察图8可知,灰度投影法由于没有充分利用焊点图像的像素分布信息,出现了较大的定位误差;而文中算法定位准确,对噪声具有较强的鲁棒性.

综合以上实验结果可知,文中提出的焊点定位算法的性能较好,可应用于实际CHIP元件的焊点定位.但在训练阶段样本需要手工标定精确位置,且定位速度还不够快,这两方面仍然需要提高.

5 结论

针对现有焊点定位算法的不足,提出了一种基于颜色特征的智能焊点定位算法.通过对样本颜色直方图进行统计分析,实现了焊点颜色的自动抽取.使用最大面积法对焊点定位,对运算过程进行优化,减少了运算量.实例运算结果表明,文中提出的算法可自动设定颜色参数,且定位精度高、定位速度快、鲁棒性较好,可以满足实际应用的需要.

[1] Steiner F,Harant P.Solderability of the lead free surface finishes[C]∥Proceedings of Electronics System Integration Technology Conference.Dresden:IEEE,2006:365-369.

[2] Zednicek T,Vasina P,Sita Z,et al.Lead-free soldering effect to tantalum capacitors[C]∥Proceedings of 26th International Spring Seminar on Electronics Technology.Lanskroun:IEEE,2003:85-89.

[3] Leng E P,Ding M,Ahmad I,et al.Leaf-free flux effect in lead-free solder joint improvement[C]∥Proceedings of 31st International conference on Electronics Manufacturing and Technology.Petaling Jaya:TEEE,2006:541-548.

[4] Hirano T,Fukuda K,Ito K,et al.Reliability of lead free solder joint by using chip size package[C]∥Proceedings of the 2001 IEEE International Symposium on Electronics and the Environment.Denver:IEEE,2001:285-289.

[5] Loh Hong-hai,Lu Ming-sing.Printed circuit board inspection using image analysis[J].IEEE Transaction on Industry Applications,1999,35(2):426-432.

[6] Komkrit C,Sotoshi Y,Masayoshi I.Bare PCB inspection system with Sv-GMR sensor eddy-current testing probe[J].IEEE Sensors Journal,2007,7(5):890-896.

[7] Zhou Z,Li Zh M,Zuo Y Zh.Automated extraction of PCB components based on specularity using layered illumination [J].Journal of Intelligent Manufacturing,2011,22(6):919-932.

[8] Wu C H,Wang D Z,Andrew I,et al.A particle swarm optimization approach for components placement inspection on printed circuit boards[J].Journal of Intelligent Manufacturing,2009,20(5):535-549.

[9] Crispin A J,Rankov V.Automated inspection of PCB components using a genetic algorithm template matching approach[J].International Journal of Advanced Manufacturing,2007,35(3/4):293-300.

[10] Reed M J,Hutehinsion S.Image fusion and sub-pixel parameter estimation for automated optical inspection of electronic components[J].IEEE Transaction on Industrial Electronics,1996,43(3):346-354.

[11] Tsai Du-ming,Lin Chien-ta.Fast normalized cross correlation for defect defection[J].Pattern Recognition Letters,2003,24(15):2625-2631.

[12] Tsai Du-ming,Yang Cheng-hsiang.A quantile-quantile plot based pattern matching for defect detection [J].Pattern Recognition Letters,2005,26(3):1948-1962.

[13] Kim T H,Cho T H,Moon Y S,et al.Visual inspection system for the classification of solder joints[J].Pattern Recognition,1999,32(4):565-575.

[14] 吴福培,邝泳聪,张宪民,等.无铅焊点鲁棒定位的灰度积分投影算法[J].华南理工大学学报:自然科学版,2009,37(9):98-102.Wu Fu-pei,Kuang Yong-cong,Zhang Xian-min,et al.Robust positioning algorithm of lead-free solder joints based on gray-level integration projection[J].Journal of South China University of Technology:Natural Science Edition,2009,37(9):98-102.

[15] 卢盛林,张宪民.无铅焊点检测光源的分析与优化设计[J].光学精密工程,2008,16(8):1377-1383.Lu Sheng-lin,Zhang Xian-min.Analysis and optimal design of illuminator for leadfess tin solder joint inspection[J].Optics and Precision Engineerin,2008,16(8):1377-1383.

[16] 卢盛林,印刷电路板自动光学检测系统关键理论与技术研究[D].广州:华南理工大学机械与汽车工程学院,2008.

[17] 谢宏威,张宪民.邝泳聪,等.印刷电路板焊点的智能检测 [J].光学精密工程,2011,19(9):2154-2162.Xie Hong-wei,Zhang Xian-min,Kuang Yong-cong,et al.Intelligent detection of solder joints on printed circuit boards [J].Optics and Precision Engineering,2011,19(9):2154-2162.

[18] Xie H W,Zhang X M,Kuang Y C,et al.Solder joint inspection method for chip component using improved AdaBoost and decision tree[J].IEEE Transaction on Components,Packaging,and Manufacturing,2011,1(12):2018-2027.

猜你喜欢

焊点像素点直方图
符合差分隐私的流数据统计直方图发布
基于局部相似性的特征匹配筛选算法
用直方图控制画面影调
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
中考频数分布直方图题型展示
焊盘尺寸对SMT焊点可靠性的影响
基于空间变换和直方图均衡的彩色图像增强方法
DH36钢摩擦叠焊焊点分布规律研究