謝宏威 張坤 鄺泳聰 張憲民 裴海龍
(1.華南理工大學(xué)自動(dòng)化科學(xué)與工程學(xué)院,廣東廣州510640;2.華南理工大學(xué)廣東省精密裝備與制造技術(shù)重點(diǎn)實(shí)驗(yàn)室,廣東廣州510640)
電子元件微小化、細(xì)密化、無(wú)鉛化的發(fā)展趨勢(shì)[1-4],使自動(dòng)光學(xué)檢測(cè)(AOI)系統(tǒng)在微電子產(chǎn)品的制造中發(fā)揮了越來(lái)越重要的作用[5-7].在AOI系統(tǒng)中,焊點(diǎn)定位是焊點(diǎn)檢測(cè)的關(guān)鍵步驟之一.目前,焊點(diǎn)定位方法主要有模板匹配法[8-12]、基于直方圖的特征分析法[13]以及基于灰度投影圖的方法[14].模板匹配法在操作性、檢測(cè)速度方面具有一定優(yōu)勢(shì),但其對(duì)模板的要求高,且由于實(shí)際焊點(diǎn)的圖像變化多樣,因而定位精度無(wú)法保證;基于直方圖的特征分析法通過(guò)提取焊點(diǎn)直方圖特征,并利用此特征對(duì)焊點(diǎn)進(jìn)行定位,定位速度較快,但對(duì)光源穩(wěn)定性要求很高;灰度投影法首先利用顏色閾值對(duì)焊點(diǎn)圖像進(jìn)行二值化,并在二值化圖像的X、Y軸投影圖上對(duì)焊點(diǎn)進(jìn)行定位,這種方法定位速度很快,但需要人工確定二值化的閾值,且噪聲較大時(shí)定位誤差較大.
為了對(duì)焊點(diǎn)進(jìn)行精確定位,同時(shí)兼顧速度和可操作性,文中提出了一種基于顏色特征的智能焊點(diǎn)定位算法.該方法將以往智能化程度較低的人工閾值選取過(guò)程自動(dòng)化,同時(shí),使用面積最大法對(duì)焊點(diǎn)進(jìn)行精確定位;為了提高定位速度,對(duì)面積最大法的運(yùn)算過(guò)程進(jìn)行優(yōu)化;最后,通過(guò)實(shí)例運(yùn)算對(duì)該方法的有效性進(jìn)行了驗(yàn)證.
文中采用經(jīng)過(guò)優(yōu)化設(shè)計(jì)的RGB三色環(huán)形光[15-16]和彩色相機(jī)獲取焊點(diǎn)圖像.圖像中的紅色、綠色和藍(lán)色分別與焊錫表面的平坦、斜坡和陡坡部分相對(duì)應(yīng),從而反映焊點(diǎn)的三維信息[17-18].在實(shí)際應(yīng)用中一般設(shè)定一個(gè)搜索窗和兩個(gè)焊盤(pán)窗,然后使用定位算法確定焊盤(pán)窗在搜索窗中的準(zhǔn)確位置,如圖1所示.
圖1 搜索窗和焊盤(pán)窗Fig.1 Search window and solder windows
文中焊點(diǎn)定位算法流程如圖2所示.定位之前人工標(biāo)定訓(xùn)練樣本中的焊盤(pán)位置,然后通過(guò)統(tǒng)計(jì)運(yùn)算自動(dòng)獲取焊盤(pán)區(qū)域主要顏色的閾值;在定位時(shí),使用該閾值對(duì)搜索區(qū)域進(jìn)行二值化,然后在二值化后的圖像中使用優(yōu)化后的最大面積法來(lái)定位焊點(diǎn).
圖2 焊點(diǎn)定位算法流程圖Fig.2 Flowchart of solder joint positioning algorithm
使用抽取顏色的方式進(jìn)行焊點(diǎn)定位時(shí),人工設(shè)置顏色閾值的操作過(guò)程如圖3所示.
圖3 人工選取閾值流程圖Fig.3 Flowchart of artificially threshold selection
在圖3中,初始閾值經(jīng)過(guò)人工不斷地調(diào)整,達(dá)到最佳焊點(diǎn)抽出效果為止.這個(gè)過(guò)程較為費(fèi)時(shí),但是是一個(gè)較為標(biāo)準(zhǔn)的流程,且選取標(biāo)準(zhǔn)可以量化.鑒于此,文中使用計(jì)算機(jī)來(lái)模擬人工操作過(guò)程,提出顏色閾值自動(dòng)選取方法.首先,根據(jù)顏色直方圖計(jì)算每個(gè)樣本的初始閾值;然后,對(duì)多個(gè)樣本的初始閾值進(jìn)行修正,得到統(tǒng)一的閾值,用于圖像二值化.
2.2.1 設(shè)計(jì)思路
文中分別統(tǒng)計(jì)每個(gè)樣本圖像在色調(diào)(H)、飽和度(S)和亮度(I)平面的直方圖,并計(jì)算相應(yīng)的閾值.假設(shè)灰度級(jí)為0-255,參照AOI實(shí)際抽取顏色的過(guò)程,將H平面分為紅色、綠色、藍(lán)色3個(gè)固定區(qū)間:紅色[0,43)∪[200,255]、綠色[43,124)、藍(lán)色[124,200),然后在每種色調(diào)區(qū)間分別求取相應(yīng)的S和I的閾值.因此,最終用于二值化的閾值實(shí)際上是由3組閾值組合而成,下面討論的都是求S或I閾值的方法.
定義 直方圖中,如果大部分像素值分布在區(qū)間[i1,i2]內(nèi),則稱(chēng)[i1,i2]為有效灰度范圍.有如下定義:
其中,ni為灰度級(jí),θ(0< θ<1)為評(píng)價(jià)指標(biāo),N 為像素總數(shù).當(dāng)θ接近于1時(shí),灰度在[i1,i2]內(nèi)的像素包含了這個(gè)區(qū)域內(nèi)的主要顏色.
使用閾值[t1,t2]對(duì)圖像進(jìn)行二值化,位置(x,y)處的像素點(diǎn)c(x,y)的二值化結(jié)果f(x,y)可表示為
為了最大程度地將焊盤(pán)區(qū)域提取出來(lái),同時(shí)盡量少地提取焊盤(pán)區(qū)域以外的像素,必須保證:
其中,D1為焊盤(pán)窗區(qū)域,D2為搜索窗以?xún)?nèi)、焊盤(pán)窗以外的區(qū)域.
通過(guò)大量的實(shí)例研究發(fā)現(xiàn),在提取的焊盤(pán)內(nèi)外像素?cái)?shù)相差較大時(shí),定位效果較好.因此,定義函數(shù)A(s'1,s'2,i'1,i'2)如下:
其中,[s'1,s'2]和[i'1,i'2]分別表示 S 和 I的閾值.
于是,問(wèn)題轉(zhuǎn)化為求取使 A(s'1,s'2,i'1,i'2)取得最大值時(shí)的變量s'1、s'2、i'1、i'2的值.若采用遍歷所有取值組合的方法來(lái)求這幾個(gè)值,運(yùn)算量將非常大,無(wú)法滿足實(shí)際工程的速度需要.
2.2.2 計(jì)算初始閾值
以S平面為例,對(duì)于給定的θ,在其直方圖中,從頻數(shù)最高的灰度開(kāi)始向左右兩側(cè)不斷擴(kuò)展,并結(jié)合式(1),可自動(dòng)計(jì)算出S平面的有效范圍,然后用同樣的方法求出I平面的有效范圍.并以S平面的有效范圍為初始值,求出I平面的閾值(iT1,iT2),然后在(iT1,iT2)的基礎(chǔ)上求出S平面的閾值(sT1,sT2).為了提高運(yùn)算速度,文中采用簡(jiǎn)化的模型來(lái)求取這4個(gè)閾值.在搜索窗內(nèi),假設(shè)焊盤(pán)區(qū)域內(nèi)外統(tǒng)計(jì)的I平面直方圖有效范圍分別為[i1,i2]和[ie1,ie2],[i1,i2]和[ie1,ie2]的分布共有 4 種類(lèi)型,如圖 4所示.
(1)[i1,i2]∩[ie1,ie2]≠?,且 i1< ie1<i2< ie2
如圖4(a)所示,由于 i1落在[ie1,ie2]之外,閾值iT1可以取為 i1,只需找出另一閾值 iT2∈[ie1,i2].焊盤(pán)區(qū)域內(nèi)外提取像素點(diǎn)的面積之差可表示為
圖4 直方圖分布模型Fig.4 Distribution models of histogram
其中,n1i和n2i為焊盤(pán)區(qū)域內(nèi)、外灰度為i的像素?cái)?shù).于是
由此可求出ie2的值.
(2)[ie1,ie2]?[i1,i2]
如圖4(b)所示,需要以ie1與ie2為起點(diǎn),分別向左、右兩個(gè)方向進(jìn)行搜索,在兩個(gè)方向分別找出面積差值最大時(shí)的iT1和iT2,并將其作為最后的閾值.
(3)[i1,i2]?[ie1,ie2]
如圖4(c)所示,采用類(lèi)似(1)的方法,分別以i1、i2為各自起點(diǎn)向左、右兩個(gè)方向搜索求出iT1和iT2.
(4)[i1,i2]∩[ie1,ie2]= ?
如圖4(d)所示,這是最理想的類(lèi)型.顯然,此時(shí)的閾值 iT1=i1、iT2=i2.
根據(jù)上述步驟,即可求出每個(gè)樣本在H、S和I平面的初始閾值范圍.
對(duì)多個(gè)樣本初始閾值進(jìn)行修正后才能得到一個(gè)統(tǒng)一閾值用于圖像二值化.假設(shè)有m個(gè)樣本,其初始閾值依次為{iT1,i'T1,sT1,s'T1},{iT2,i'T2,sT2,s'T2},…,{iTm,i'Tm,sTm,s'Tm},統(tǒng)一閾值為{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 平面的初始閾值來(lái)搜索最優(yōu)閾值.
對(duì)初始閾值進(jìn)行修正,使用統(tǒng)一閾值對(duì)圖像進(jìn)行二值化時(shí),對(duì)于訓(xùn)練樣本總體上要盡量將焊盤(pán)區(qū)域抽取出來(lái),同時(shí)要盡量少地抽取焊盤(pán)區(qū)域之外的部分.假設(shè)焊盤(pán)窗內(nèi)使用當(dāng)前閾值未被抽出的像素點(diǎn)的總數(shù)為1,搜索窗內(nèi)、焊盤(pán)窗外符合閾值范圍的像素點(diǎn)的個(gè)數(shù)為2,當(dāng)前要搜索閾值的取值t,則當(dāng)前樣本像素?fù)p失R(t)為
來(lái)搜索求出i0的值.由定義可知1≥0,且2≥0,因此,R(t)≥0,可以保證一定存在一個(gè)i0的取值使目標(biāo)函數(shù)最?。?,以i0為I平面閾值的初始值搜索得到i'0的值,即得到了I平面的閾值[i0,i'0].依此方法,可以得到S平面的閾值[s0,s'0].值得注意的是,根據(jù)式(4)求取4個(gè)閾值需要遍歷 s'1、s'2、i'1、i'2這4個(gè)變量可能取值的所有組合,運(yùn)算復(fù)雜度為O(m4);采用簡(jiǎn)化的模型,依次求取每個(gè)變量取值時(shí),都是先假設(shè)其他3個(gè)變量不變來(lái)求取另外一個(gè)變量的取值,運(yùn)算復(fù)雜度降低為O(m).
如圖5所示,以搜索窗左下角為原點(diǎn),水平和豎直方向分別為X和Y軸.設(shè)搜索窗長(zhǎng)和寬分別為ws和 hs,焊盤(pán)窗 W1和 W2長(zhǎng)和寬分別依次為 w1、h1、w2、h2.W1左下角相對(duì)于 W2左下角的坐標(biāo)為(w21,h21),W2左下角坐標(biāo)為(x,y).定位時(shí),保持W1和W2的相對(duì)位置不變.x取值范圍為[-min(0,w21),ws-max(w2,w21+w1)],y取值范圍為[0,hs-(h21+h1)].假設(shè)兩焊盤(pán)窗內(nèi)屬于閾值范圍的像素?cái)?shù)為S(x,y),xs=-min(0,w21),xe=ws- max(w2,w21+w1),ys=0,ye=hs-(h21+h1).則必有一點(diǎn)(xp,yp)使得
使用式(9)進(jìn)行定位需要在每一個(gè)可能的位置上遍歷兩個(gè)焊盤(pán)區(qū)域,運(yùn)算次數(shù)為(xe-xs)(yeys)(w1h1+w2h2),需要對(duì)其進(jìn)行優(yōu)化以提高定位速度.
圖5 定位坐標(biāo)系Fig.5 Location coordinate
焊盤(pán)窗W在(x,y)處時(shí),二值化圖像中包含的像素G(x,y)可表示為
按照常規(guī)的思路,當(dāng)焊盤(pán)窗在搜索窗內(nèi)滑動(dòng)時(shí),無(wú)論是橫向或者縱向移動(dòng),均需對(duì)整個(gè)焊盤(pán)窗內(nèi)的像素點(diǎn)掃描一遍,如圖6所示.
圖6 焊盤(pán)位置的搜索過(guò)程Fig.6 Search process of solder position
文中采用優(yōu)化后的算法,盡量減少掃描像素的個(gè)數(shù).以圖6(a)為例,對(duì)于長(zhǎng)為w、寬為l的窗口,可將式(10)修改為
其中,A表示在位置(x,y)處焊盤(pán)窗內(nèi)除第一列外其他區(qū)域的像素?cái)?shù).
當(dāng)此窗口向右滑動(dòng)一個(gè)像素后,計(jì)算像素?cái)?shù)的公式可以表示為
也就是說(shuō),在已知上一個(gè)位置像素點(diǎn)數(shù)G(x,y)時(shí),G(x+1,y)可由計(jì)算出來(lái).其中為窗口在(x,y)處時(shí)
因此,除了在初始位置需對(duì)窗口內(nèi)所有像素點(diǎn)進(jìn)行一次掃描,在其他位置均只需對(duì)其中的兩行或者兩列進(jìn)行掃描即可.對(duì)于長(zhǎng)為w、寬為l的窗口,每一次橫向滑動(dòng)掃描的像素點(diǎn)的個(gè)數(shù)由原來(lái)的2wl減少為2l.同理,如圖6(b)所示,當(dāng)焊盤(pán)窗縱向移動(dòng)一個(gè)像素時(shí),掃描的像素點(diǎn)的個(gè)數(shù)由原來(lái)的2wl減少為2w.整個(gè)定位過(guò)程中,總的運(yùn)算次數(shù)由(xe-xs)(ye-ys)(w1h1+w2h2)減少為(w1h1+w2h2)+2l(xe-xs)+2w(ye-ys).總體來(lái)看,搜索過(guò)程的運(yùn)算復(fù)雜度由 O(n4)降低為O(n2),運(yùn)算量大大減少.
為驗(yàn)證文中算法的有效性,使用筆者所在課題組與某公司聯(lián)合研發(fā)的在線AOI系統(tǒng)為實(shí)驗(yàn)平臺(tái)(PC 配置為 CPU Intel i3 3.10GHz,內(nèi)存2G,算法用VC.NET2005實(shí)現(xiàn)),選取某型號(hào)PCB板上的CHIP元件為實(shí)驗(yàn)對(duì)象進(jìn)行實(shí)驗(yàn).
每種CHIP元件選取10個(gè)有代表性的樣本手工標(biāo)定焊盤(pán)的精確位置并用于訓(xùn)練,自動(dòng)獲取焊點(diǎn)的顏色閾值,然后用這些顏色閾值抽取焊點(diǎn)的顏色,屬于閾值范圍的像素點(diǎn)用白色顯示.自動(dòng)抽取效果如圖7所示.觀察圖7可知,焊點(diǎn)區(qū)域的顏色抽取效果良好,對(duì)其中存在諸如焊點(diǎn)顏色單一、與背景色相似和元件貼裝有文字等干擾因素,焊點(diǎn)顏色的抽取效果仍然能夠令人滿意.
圖7 焊點(diǎn)顏色自動(dòng)抽取的效果Fig.7 Effectiveness of automatic extraction of the weld color
為了驗(yàn)證文中提出的焊點(diǎn)定位算法的性能,選擇實(shí)驗(yàn)PCB板上的數(shù)量最多的0402和0805兩種CHIP元件進(jìn)行實(shí)驗(yàn).其中0402元件51個(gè),搜索窗大小為52×103像素,焊盤(pán)窗大小為24×32像素;0805元件45個(gè),搜索窗大小為52×103像素,焊盤(pán)窗大小為45×60像素.分別使用模板匹配法[8]、灰度投影法[14]和文中算法進(jìn)行定位,定位精度和定位速度如表1所示.其中Δ為定位誤差.
表1 不同定位算法的性能Table 1 Performance of different positioning algorithms
由表1可知,模版匹配法的定位精度最低,這是由于焊點(diǎn)圖像的形態(tài)變化較為復(fù)雜,需要使用較多模板.文中的實(shí)驗(yàn),每個(gè)焊點(diǎn)都使用了6張模板,但定位結(jié)果仍然不能令人滿意,也因此導(dǎo)致定位速度最慢.灰度投影法的定位速度最快,且定位精度較高.文中算法在定位精度上優(yōu)于其他兩種算法;定位速度比模板匹配法快,比灰度投影法慢,但定位0402元件平均耗時(shí)0.48 ms,定位0805元件平均耗時(shí)1.87ms,基本可以滿足實(shí)際應(yīng)用的要求.
圖8 魯棒性實(shí)驗(yàn)結(jié)果Fig.8 Robust experiment results
為了驗(yàn)證文中算法對(duì)于噪聲的魯棒性,選擇兩張焊點(diǎn)周?chē)嬖谳^大噪聲的圖像進(jìn)行魯棒性實(shí)驗(yàn).首先使用文中算法自動(dòng)獲取焊點(diǎn)顏色閾值,并使用此閾值對(duì)焊點(diǎn)圖像進(jìn)行二值化,然后分別使用灰度投影法和文中算法進(jìn)行焊點(diǎn)定位,結(jié)果如圖8所示.
觀察圖8可知,灰度投影法由于沒(méi)有充分利用焊點(diǎn)圖像的像素分布信息,出現(xiàn)了較大的定位誤差;而文中算法定位準(zhǔn)確,對(duì)噪聲具有較強(qiáng)的魯棒性.
綜合以上實(shí)驗(yàn)結(jié)果可知,文中提出的焊點(diǎn)定位算法的性能較好,可應(yīng)用于實(shí)際CHIP元件的焊點(diǎn)定位.但在訓(xùn)練階段樣本需要手工標(biāo)定精確位置,且定位速度還不夠快,這兩方面仍然需要提高.
針對(duì)現(xiàn)有焊點(diǎn)定位算法的不足,提出了一種基于顏色特征的智能焊點(diǎn)定位算法.通過(guò)對(duì)樣本顏色直方圖進(jìn)行統(tǒng)計(jì)分析,實(shí)現(xiàn)了焊點(diǎn)顏色的自動(dòng)抽?。褂米畲竺娣e法對(duì)焊點(diǎn)定位,對(duì)運(yùn)算過(guò)程進(jìn)行優(yōu)化,減少了運(yùn)算量.實(shí)例運(yùn)算結(jié)果表明,文中提出的算法可自動(dòng)設(shè)定顏色參數(shù),且定位精度高、定位速度快、魯棒性較好,可以滿足實(shí)際應(yīng)用的需要.
[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,F(xiàn)ukuda 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] 吳福培,鄺泳聰,張憲民,等.無(wú)鉛焊點(diǎn)魯棒定位的灰度積分投影算法[J].華南理工大學(xué)學(xué)報(bào):自然科學(xué)版,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] 盧盛林,張憲民.無(wú)鉛焊點(diǎn)檢測(cè)光源的分析與優(yōu)化設(shè)計(jì)[J].光學(xué)精密工程,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òng)光學(xué)檢測(cè)系統(tǒng)關(guān)鍵理論與技術(shù)研究[D].廣州:華南理工大學(xué)機(jī)械與汽車(chē)工程學(xué)院,2008.
[17] 謝宏威,張憲民.鄺泳聰,等.印刷電路板焊點(diǎn)的智能檢測(cè) [J].光學(xué)精密工程,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.