郭峰林,管庶安,孔 巖
(武漢工業(yè)學(xué)院數(shù)學(xué)與計(jì)算機(jī)學(xué)院,武漢 430023)
在基于機(jī)器視覺(jué)的印刷電路板缺陷檢測(cè)系統(tǒng)(AOI)中,采用攝像機(jī)對(duì)PCB進(jìn)行拍照,將樣本板和被測(cè)板的圖像進(jìn)行比較,從而發(fā)現(xiàn)PCB中的缺陷[1]。本文采用參考對(duì)比法進(jìn)行 PCB缺陷檢測(cè)。由于樣本圖像與待測(cè)圖像間有偏移,在缺陷檢測(cè)之前,必須將樣板圖像與被測(cè)PCB圖像進(jìn)行對(duì)準(zhǔn),只有對(duì)準(zhǔn)后,才能搜索待檢PCB與樣本PCB的差別之處,進(jìn)而發(fā)現(xiàn)缺陷問(wèn)題。
常規(guī)的PCB圖像對(duì)準(zhǔn)方法一般為定位點(diǎn)檢測(cè)法,即在PCB的邊角部位設(shè)置圓形定位標(biāo)記,然后利用Hough變化法進(jìn)行圓形定位標(biāo)記的檢測(cè)[2,3]。這種算法簡(jiǎn)單,易于操作,但需要設(shè)置定位點(diǎn),難以達(dá)到PCB生產(chǎn)廠家無(wú)損檢測(cè)的要求。另一種方法是由Besl和Mckay提出的一種優(yōu)化算法為迭代最近點(diǎn)(ICP)算法[4],通過(guò)不斷重復(fù)運(yùn)動(dòng)變換,確定最近點(diǎn),來(lái)求運(yùn)動(dòng)變換的過(guò)程并逐步改進(jìn)。這種算法的優(yōu)點(diǎn)是可對(duì)含噪聲的圖像進(jìn)行精確對(duì)準(zhǔn),但是這類算法的計(jì)算量太大,并且有可能陷入局部極值點(diǎn)[5]。
本文在分析印刷電路板圖像偏移特征之后,提出一種圖像邊緣強(qiáng)度對(duì)準(zhǔn)模型,利用該模型評(píng)價(jià)樣本PCB圖像與待測(cè)PCB圖像間的對(duì)準(zhǔn)程度,從而準(zhǔn)確地計(jì)算出它們之間的平移和旋轉(zhuǎn)參數(shù)。由于選取的圖像對(duì)準(zhǔn)模型具有全局性和均衡性,因此,算法的時(shí)間復(fù)雜度低、實(shí)時(shí)性好、對(duì)準(zhǔn)精度高。
在中小型PCB生產(chǎn)企業(yè)中,出于成本考慮,PCB的下料和絲網(wǎng)漏印階段多數(shù)是半自動(dòng)化工作,在同批次PCB中,每塊PCB的覆銅線路部分與基板的相對(duì)位置都存在不同程度的偏移,這種偏移包括一定量的平移或旋轉(zhuǎn)角度。對(duì)于單面PCB而言,這種偏移量要比雙面PCB大得多。根據(jù)統(tǒng)計(jì),一般地,偏移量最大不超過(guò) ±5 mm,旋轉(zhuǎn)角度最大不超過(guò)±2°。另外,在AOI檢測(cè)系統(tǒng)中,由于摩擦等因素的影響,運(yùn)動(dòng)機(jī)構(gòu)也會(huì)產(chǎn)生一定的移位偏差,從而攝像機(jī)采集到的圖像在不同程度上與樣本圖像也有位移偏差。待測(cè)圖像與樣本圖像間的位移偏差需要對(duì)準(zhǔn)后,才能采用參考對(duì)比法或非參考比較法對(duì)PCB圖像進(jìn)行缺陷搜索。
樣本PCB圖像和待測(cè)PCB圖像間的偏差,主要由水平移位、垂直移位以及旋轉(zhuǎn)3種因素產(chǎn)生。為了精確計(jì)算偏差值,實(shí)現(xiàn)圖像對(duì)準(zhǔn),先對(duì)樣本圖像進(jìn)行分析、邊緣點(diǎn)抽樣,提取圖像線路特征點(diǎn)。
假定PCB圖像為8位灰度圖像,圖像大小為2592×1944像素,分辨率為620 dpi,圖像對(duì)應(yīng)的PCB規(guī)格約106 mm×80 mm。PCB圖像中有效信息只有兩種,即覆銅區(qū)和底板區(qū),分別用1,0代表。
定義p(x,y)為PCB圖像中任意點(diǎn),圖像邊緣點(diǎn)為 p(x,y,d),其中 x,y為 p在圖像中的像素坐標(biāo),d為p處的覆銅區(qū)邊緣法向角φ的編碼。為了計(jì)算方便,將φ量化為8個(gè)離散值,分別編碼為0,1,2,3,4,5,6,7,每個(gè)離散值代表45°范圍,如圖1 所示。
由于PCB中以水平和垂直線路為主,抽樣時(shí)保存這兩個(gè)方向的特征邊緣點(diǎn)即可。在全部邊緣點(diǎn)中,先抽取d=2和d=6的特征邊緣點(diǎn),假設(shè)共有q點(diǎn),這些點(diǎn)均落在覆銅區(qū)水平邊緣上;再抽取d=0和d=4的特征點(diǎn),假設(shè)共有p點(diǎn),這些點(diǎn)均落在覆銅區(qū)垂直邊緣上。接著,從q個(gè)水平邊緣點(diǎn)中等間隔抽取M點(diǎn),形成集合Sx
從p個(gè)垂直邊緣點(diǎn)中等間隔抽取N點(diǎn),形成集合Sy
Sx和Sy分別用于垂直對(duì)準(zhǔn)和水平對(duì)準(zhǔn)的特征邊緣點(diǎn)集合。由于抽樣點(diǎn)在整幅圖像上分布密度均勻,因此適合全局對(duì)準(zhǔn)。
圖1 覆銅區(qū)邊緣點(diǎn)法線及其編碼方法Fig.1 Edge point normal vector and normal vector coding method in copper-clad area
記 PCB圖像上的像素點(diǎn)為 f(x,y),定義f(x,y)在(x,y)點(diǎn)的關(guān)于法向d的3×7模板梯度為 gd(x,y),法向?yàn)?,2,4,6 的模板梯度公式見(jiàn)式1。
對(duì)應(yīng)的卷積模板如圖2所示。
圖2 法向?yàn)?,4,2,6對(duì)應(yīng)的卷積模板Fig.2 Normal vector codes 0,4,2,6 corresponding convolution template
g4(x,y)和g0(x,y)是檢測(cè)垂直邊緣的梯度,當(dāng)沿水平方向從垂直邊緣的亮區(qū)(底板區(qū))進(jìn)入黑區(qū)(覆銅區(qū))時(shí),g4(x,y)取得正極大值,g0(x,y)取得負(fù)極大值;而從黑區(qū)進(jìn)入亮區(qū)時(shí),g0(x,y)取得正極大值,g4(x,y)取得負(fù)極大值。相應(yīng)地,g6(x,y)和g2(x,y)用于檢測(cè)水平方向邊緣梯度。
將邊緣點(diǎn)抽樣集合Sx和Sy合并為集合S,S=Sx∪Sy。由于Sx∩Sy=?,故S中共有M+N點(diǎn)。由于樣本PCB圖像與待測(cè)PCB圖像的錯(cuò)位包括平移和旋轉(zhuǎn)。記它們間的平移量和旋轉(zhuǎn)量分別為dx,dy,α。用dx,dy,α的各種組合值對(duì)S中的各點(diǎn)作平移和旋轉(zhuǎn)變換,記為S′。
定義 S′與圖像 f(x,y)的邊緣對(duì)準(zhǔn)強(qiáng)度為E(dx,dy,α),即
式(2)中,d為pk的d分量。顯然,通過(guò)式(2)可以看出S′中擊中或貼近f(x,y)的對(duì)應(yīng)的水平或垂直邊緣的點(diǎn)越多,E(dx,dy,α)的值越大。當(dāng) E(dx,dy,α)取得最大值時(shí),對(duì)應(yīng)的 dx,dy,α 即樣本與圖像對(duì)準(zhǔn)時(shí)的平移和旋轉(zhuǎn)量。
PCB樣本圖像與待測(cè)圖像的對(duì)準(zhǔn)算法實(shí)現(xiàn)分兩步。首先對(duì)樣本PCB圖像進(jìn)行邊緣點(diǎn)抽樣,再根據(jù)邊緣對(duì)準(zhǔn)強(qiáng)度函數(shù),評(píng)價(jià)圖像對(duì)準(zhǔn)程度,獲得量化的平移及旋轉(zhuǎn)角度dx,dy,α。
在樣本邊緣點(diǎn)采集中,實(shí)際的圖像邊緣點(diǎn)數(shù)量大,為了提高計(jì)算速度,在抽樣時(shí),僅保留表征PCB覆銅線路特征的部分邊緣點(diǎn),在對(duì)準(zhǔn)階段也僅需計(jì)算特征邊緣點(diǎn)。實(shí)際工程計(jì)算中,取水平邊緣點(diǎn)M=500、垂直邊緣點(diǎn)N=500就能充分滿足對(duì)準(zhǔn)要求。若M<實(shí)際水平邊緣點(diǎn)數(shù)p,則取M=p;若N<實(shí)際垂直邊緣點(diǎn)數(shù)q,則取N=q;實(shí)踐表明,只要M和N均大于300,皆能較好地實(shí)現(xiàn)對(duì)準(zhǔn)。
待測(cè)PCB圖像與樣本圖像對(duì)準(zhǔn)需要計(jì)算邊緣強(qiáng)度,并將其作為對(duì)準(zhǔn)程度評(píng)價(jià)依據(jù)。在實(shí)際工程中,當(dāng)樣本圖像與PCB圖像平移量在±500像素點(diǎn)(±20 mm)內(nèi)、旋轉(zhuǎn)角度在±2°內(nèi)時(shí),要求能實(shí)現(xiàn)全局對(duì)準(zhǔn)。并且對(duì)準(zhǔn)的精度達(dá)到平移誤差±1像素點(diǎn),旋轉(zhuǎn)角度誤差±0.05°。如果采用常規(guī)循環(huán)搜索,則水平、垂直方向平移單位像素再加上旋轉(zhuǎn)角度單位增量0.05°,則循環(huán)次數(shù)將達(dá)到1000×1000×(4÷0.05)=80000000次,每次循環(huán)中還含有1000次求梯度運(yùn)算。顯然不能滿足工程應(yīng)用中的實(shí)時(shí)處理要求,因此有必要設(shè)計(jì)快速算法。
快速算法基本思想是解除水平、垂直平移量和旋轉(zhuǎn)量3個(gè)對(duì)準(zhǔn)參量之間的相互制約關(guān)系,使得3個(gè)參量能獨(dú)立進(jìn)行對(duì)準(zhǔn)運(yùn)算,則可將對(duì)準(zhǔn)循環(huán)次數(shù)降低到1000+1000+(4÷0.05)=2080次,計(jì)算量降低了38500倍。
以水平Sx方向?qū)?zhǔn)為例,算法設(shè)計(jì)如下:
1)令Sx中邊緣點(diǎn)沿水平方向整體滑動(dòng),步長(zhǎng)為1,滑動(dòng)范圍為n=-500~500像素;
2)求PCB圖像水平方向?qū)?zhǔn)強(qiáng)度Ex=
3)重復(fù)步驟1)和2),直到n循環(huán)完成;
4)比較最大Ex,即可得水平方向?qū)?zhǔn)偏移dx。
采用同樣方法對(duì)豎直方向、旋轉(zhuǎn)角度進(jìn)行對(duì)準(zhǔn)計(jì)算,最后獲取對(duì)準(zhǔn)參數(shù)dx,dy,α。
PCB圖像對(duì)準(zhǔn)算法采用Windows XP操作系統(tǒng),i3-550 CPU,2G 內(nèi)存,在 Visual C++6.0 環(huán)境下進(jìn)行編程實(shí)現(xiàn)。首先選取一個(gè)標(biāo)準(zhǔn)PCB作為樣本,對(duì)樣本進(jìn)行邊緣點(diǎn)采樣,得到水平方向邊緣點(diǎn)356個(gè),垂直方向邊緣點(diǎn)379個(gè)。然后選取4塊待測(cè)PCB與樣本進(jìn)行對(duì)準(zhǔn)實(shí)驗(yàn),每塊待測(cè)PCB執(zhí)行了100次對(duì)準(zhǔn)操作,記錄統(tǒng)計(jì)的偏移量均值及方差、對(duì)準(zhǔn)強(qiáng)度和耗時(shí)均值及最大最小值。實(shí)驗(yàn)結(jié)果見(jiàn)表1。
表1 對(duì)準(zhǔn)實(shí)驗(yàn)結(jié)果Table 1 Registration experimental results
從表中的測(cè)試數(shù)據(jù)可以看出,第4塊PCB對(duì)準(zhǔn)時(shí)間相對(duì)較長(zhǎng),這是由于它相對(duì)于樣本PCB圖像的偏移量較大。另外,偏移量的方差較大的原因主要由于運(yùn)動(dòng)機(jī)械產(chǎn)生的錯(cuò)位??焖賹?duì)準(zhǔn)算法耗時(shí)基本在50 ms內(nèi)完成,對(duì)整體檢測(cè)總耗時(shí)的影響不大。
通過(guò)本文的分析和實(shí)驗(yàn)可以看出,在樣本圖像的邊緣點(diǎn)抽樣基礎(chǔ)上,待測(cè)PCB圖像的對(duì)準(zhǔn)強(qiáng)度評(píng)價(jià)模型能夠很準(zhǔn)確地描述PCB圖像的移位和旋轉(zhuǎn)偏差。采用這種快速搜索算法,在最短時(shí)間內(nèi)實(shí)現(xiàn)圖像對(duì)準(zhǔn)。相較于常規(guī)搜索算法,搜索時(shí)間大大縮短,極大地提高檢測(cè)系統(tǒng)的實(shí)時(shí)性。本文中對(duì)準(zhǔn)強(qiáng)度評(píng)價(jià)模型及快速算法已在廣東梅州泰源科技有限公司合作項(xiàng)目全自動(dòng)印刷電路板缺陷檢測(cè)系統(tǒng)中得到應(yīng)用,從大量PCB檢測(cè)的實(shí)際結(jié)果來(lái)看,該算法的對(duì)準(zhǔn)速度快、準(zhǔn)確度高,為后期的缺陷搜索提供了可靠的偏移參數(shù)。
[1] Moganti,Madhav,Ercal,et al.Automatic PCB inspection systems[J] .1995,14(3):6-10.
[2] 張 利,高永英,汪 浩,等.PCB板檢測(cè)中的定位研究[J] .中國(guó)圖象圖形學(xué)報(bào),1999,4(8):659–661.
[3] 郭世鋼.印制電路板圖像對(duì)準(zhǔn)算法研究[J] .計(jì)算機(jī)應(yīng)用,2009(12):220-224.
[4] 張鴻賓,唐積堯.多視點(diǎn)距離圖像的對(duì)準(zhǔn)算法[J] .自動(dòng)化學(xué)報(bào),2001,1(27):39-46.
[5] 韓 斌,劉以安,吳小俊,等.印刷缺陷檢測(cè)中的圖像對(duì)準(zhǔn)[J] .華東船舶工業(yè)學(xué)院學(xué)報(bào):自然科學(xué)版,2002,16(2):37-40.