彭剛,熊超,夏成林,林斌
在3C行業(yè)的印刷電路板(PCB)制造過程中,為了實現(xiàn)點膠機器人對目標的定位,常采用Mark點輔助的方式。首先,機器人系統(tǒng)對PCB上的Mark點進行視覺定位,然后根據(jù)Mark點與目標的相對位置關系,可計算出目標位置。其中,Mark點定位精度直接影響點膠精度。通過優(yōu)化Mark點識別與定位算法,可以提高操作的定位精度和可靠性,從而有效地提高產(chǎn)品質量。當前常用的Mark點定位方式有霍夫曼圓變換[1-3]、Surf、Sift特征匹配[4-6]等算法,其中霍夫曼圓變換可以適應更多類型的Mark點,但該算法的準確度易受到圓的圖像規(guī)則度影響,一般還需結合其他復雜方法[7]才可保證準確度。而Surf和Sift方法準確率雖高,但實時性不佳。本文則從工程應用角度對Mark點定位算法的旋轉不變性、縮放不變性、實時性、可靠性等方面綜合考慮,對常用Mark點定位算法的實驗結果進行分析比較,提出了一種基于Mark點幾何特征的改進模板匹配算法。
模板匹配[8-10]的原理相對簡單,如圖1所示,(a)是待檢測圖S,(b)是模板圖T。使用模板圖T依次從左至右,從上至下移動掃描圖S的每1個像素。每移動1個像素匹配1次結果,掃描完畢就可找出最佳匹配結果。
模板匹配類型包括相關匹配、標準相關匹配、平方差匹配、標準平方差匹配、相關系數(shù)匹配和標準相關系數(shù)匹配[11]。這里使用相關匹配、平方差匹配、相關系數(shù)匹配分別進行實驗并對比,匹配效果如圖2所示。
圖2 3種匹配方法結果Fig. 2 Results of three template matching methods
從匹配的結果來看,平方差的效果最好。平方差模板匹配公式如式(1),結果為0時匹配效果最好,值越大匹配效果越差。
PCB板上的Mark點一般都是在印刷時通過敷銅制成,常由圓形和其他常見幾何圖像組合而成,本文所使用的Mark點的灰度圖像如圖3所示。從Mark點的灰度圖可知其顯著特征:正中心白實心圓,八邊形輪廓,最外圍大圓輪廓,其余都近似是黑色。
圖3 Mark點圖像Fig. 3 Mark point
除此之外,大圓輪廓外部的圖像是冗余信息且具有不確定性,Mark點信息只包括大圓輪廓內部圖像。
相機拍攝的圖像一般為彩色圖像,為了利于后續(xù)操作需將其轉換成灰度圖并進行二值化。為了使邊界更加清晰,還可對圖像進行銳化處理,銳化方法主要分為梯度銳化和拉普拉斯銳化法。本文采用后者,假設是拉普拉斯算子,分別對圖像函數(shù)計算垂直和水平方向的二階偏導,兩者之和就是拉普拉斯算子[12-14],如式(2)~(4)所示:
對于擴散現(xiàn)象引起的圖像模糊,可用式(5)作銳化處理[15-16]。
銳化操作會放大圖像的部分孤立噪聲,所以在銳化前需濾除這些噪聲。本文的孤立噪聲濾波方式是判斷白色像素的鄰域是否全為黑色像素,若是則將當前像素置為黑色。圖4(a)是二值化圖,圖4(b)是單點濾波圖,圖4(c)是銳化圖,從這幾幅圖可以看出它們的對比效果。
圖4 Mark點對比Fig. 4 Comparison of mark point images
2.3.1 根據(jù)幾何特征提取Mark點結果集
根據(jù)本文2.1節(jié)的Mark點幾何特征分析,可知Mark點幾何特征主要包括3部分:小實心圓、八邊形輪廓、外圍大圓輪廓,具體如圖5所示。
圖5 Mark點特征Fig. 5 Features of mark point
為了讓輪廓更加清晰,根據(jù)上述2.2節(jié)對待檢測圖進行二值化、濾波和銳化等預處理。圖像預處理完成后,就可以根據(jù)幾何特征提取疑似目標集[19-20]。
本實驗中,已知標準Mark點圖片最小尺寸為80×80。在此基礎上,對待檢測圖從左至右、從上至下逐像素地按步驟進行搜索:
1)以待檢測圖的左上角首個像素點為起始中心點,判斷該像素是否為白色,若否,則返回,若是則如圖6所示繼續(xù)從中心點沿上下左右搜索各方向第一個黑點,并記錄黑點位置。因為小圓半徑不超過80像素,故可限定搜索半徑為80像素。4個方向都搜索到黑點后就比較中心點與各黑點的距離是否基本相等,是則繼續(xù),否則返回。
圖6 小圓搜索路徑圖Fig. 6 Search path of small circle
2)如圖7所示,由于正八邊形旋轉周期是45°,所以從中心點起始并以45°為周期,到8個邊的距離都相等。故以45°為周期,從當前中心點開始向8個方向搜索第一個八邊形輪廓并記錄位置。最后判斷中心點到八邊形各邊的距離是否基本相等,是則繼續(xù),否則返回。第二個八邊形搜索規(guī)則一樣,從上一個八邊形輪廓繼續(xù)向前搜索即可。
圖7 正八邊形搜索路徑圖Fig. 7 Search path of regular octagon
3)大圓的識別可以從步驟2)中搜索得到的外八邊形輪廓開始,沿上下左右4個方向搜索并記錄大圓輪廓的首個白像素點。最后判斷中心點沿各方向到大圓輪廓的距離是否基本相等,是則計算出大圓半徑,否則返回。因為在待檢測圖中幾乎沒有與大圓相近的目標,故可根據(jù)霍夫圓變換和大圓半徑參數(shù)進一步確認所得大圓輪廓是否正確。
若上述3個條件都滿足要求,就可以將搜索得到的疑似Mark點目標保存到結果集中。具體的搜索決策流程如圖8所示。
圖8 決策流程圖Fig. 8 Decision-making flowchart
在實現(xiàn)時,為防止漏識別,搜索條件一般較寬松,最后得到的可能是一個結果集,所以還需要繼續(xù)對結果集進行篩選。
2.3.2 根據(jù)改進型模板匹配算法對Mark點結果集進行篩選
本文采用改進型模板匹配法進行結果集篩選,為了準確地匹配有旋轉和縮放的目標,需要計算縮放比例和旋轉角度。假定結果集中的任一Mark點元素外圍大圓半徑值為r,且標準Mark點對應的該參數(shù)為R。同時,設內八邊形輪廓與圓心在水平方向上的距離為L,且標準Mark點對應的參數(shù)為M;則縮放比例T和旋轉角度的計算如式(7)、(8)所示。因為旋轉包括兩種相反方向的旋轉狀態(tài),所以對應的旋轉角也有兩個值。
根據(jù)得到的縮放比例與旋轉角,對標準Mark點進行相應的縮放和旋轉變換校正,從而得到與結果集中Mark點有著相同縮放和旋轉狀態(tài)的Mark點模板圖。由于標準Mark點大圓以外的冗余圖像部分具有不確定性,故只截取并保留校正變換后Mark點的大圓內接正方形部分,并將該部分作為Mark點的新匹配模板,如圖9所示。
圖9 新匹配模板Fig. 9 New matching template
依次將結果集中的疑似Mark點元素與新的Mark匹配模板進行傳統(tǒng)模板匹配操作,疑似Mark點元素的匹配區(qū)域是Mark點的大圓內接正方形部分。不斷重復Mark點模板校正、截取及模板匹配步驟,計算并保存各個結果集元素的匹配值。最后對匹配結果進行比較,選取最佳匹配結果,具體的Mark點搜索流程如圖10所示。
圖10 Mark點搜索流程圖Fig. 10 Mark point search flowchart
圖11為本文實驗使用的樣本,(a)是待檢測圖,大小為522×391;(b)是Mark點模板圖,大小為 160×160。
圖11 待檢測圖和模板圖Fig. 11 Test image and template image
在主頻2.53 GHz的CPU,4 GB內存,Windows7系統(tǒng)的電腦上,使用基于MFC和OpenCV2.4.9開發(fā)的圖像識別軟件,進行以下實驗測試。
根據(jù)前面引言部分所述,Sift和Surf算子都可用于Mark點識別,本文為了清晰地展現(xiàn)各種算法的優(yōu)劣,特別對Mark點特征圖像在縮放和旋轉變換條件下使用Sift和Surf兩種算法進行識別實驗,實驗數(shù)據(jù)如表1和表2所示。
表1 縮放對比實驗結果Table 1 Comparsion of image scaling experiment
表2 旋轉對比實驗結果Table 2 Comparsion of image rotation experiment
從表中數(shù)據(jù)可以分析出:Sift算法匹配用時是Surf的2~3倍,Sift在圖像縮小變換后的匹配效果也不如Surf;但是Sift算法的有效匹配點對數(shù)一般都比Surf多,尤其是在旋轉狀態(tài)下。由此可見,兩種算法在Mark點匹配中各有一定優(yōu)缺點。
根據(jù)OpenCV庫中的平方差模板匹配算法,對經(jīng)過不同比例縮放(無旋轉)后的待檢測圖進行測試,測試結果如表3所示。其中待檢測圖像指標類型為1.0倍,表示未經(jīng)縮放的待檢測圖。
表3 平方差在模板縮放時的匹配結果Table 3 Matching results of square difference in different template scaling
從縮放后的匹配結果可以得出:匹配效果隨著待檢測圖的縮放程度增大而變差。顯然,該算法不太適合。
為了清晰地比較改進型模板匹配算法與Sift、Surf、平方差模板匹配算法之間的優(yōu)劣,在相同實驗條件下進行實驗。
1)測試經(jīng)過縮放的PCB板圖像。分別對縮放倍數(shù)為0.6、0.9、1.5和2.0倍的待檢測樣圖進行測試,測試耗時分別為125、194、363和513 ms,匹配效果如圖12所示。
2)測試經(jīng)過旋轉的PCB板圖像。分別對旋轉度數(shù)為45°、60°和120°的待檢測樣圖進行測試,測試耗時分別為484、455和442 ms,匹配效果如圖13所示。
圖13 旋轉后的匹配結果Fig. 13 Matching results after images rotation
根據(jù)上述測試結果可得出:提出的基于Mark點幾何特征的改進型模板匹配算法識別效果良好。從算法的時間復雜度上看,改進模板匹配算法的平均速度是Surf的2~3倍,滿足實時性要求。從縮放旋轉上看,改進的模板匹配算法同時具有旋轉和縮放不變性,且誤差在5個像素以內,滿足實際應用中的可靠性與準確性要求。
Mark點作為常用的視覺輔助定位對象,使用Sift、Surf和簡單模板等傳統(tǒng)匹配算法對其進行識別時,不能很好地同時滿足縮放旋轉及實時性等要求。本文提出了一種基于Mark點幾何特征的改進模板匹配算法,針對待檢測圖像的縮放旋轉狀態(tài),對匹配模板進行相應的縮放旋轉變換,不僅實現(xiàn)了對縮放變換的良好適應性,還保證了良好的實時性。應用該算法的視覺系統(tǒng)可以準確可靠地識別出Mark點并定位,從而可以根據(jù)相對位置關系實現(xiàn)對PCB目標點的準確定位。相比當前常用的Mark點定位算法,該算法保證了較高準確率,同時提高了實時性,可以適應當前不斷提高的視覺定位實時性要求,具有較好的工程應用價值。