劉西鋒,胡玉薇
(北京京儀儀器儀表研究總院有限公司 技術(shù)中心,北京 100079)
在電路板質(zhì)量檢測領(lǐng)域,傳統(tǒng)的人工視覺檢測逐漸被自動光學(xué)檢測(AOI)[1-2]、自動X射線檢測(AXI)[3-4]等新興檢測技術(shù)所代替。同時隨著電路板制造工藝的提高,對電路板內(nèi)部缺陷的研究也從二維擴展到三維,獲得電路板的三維形狀、空間位置、空間尺寸等信息,從而準確地了解缺陷。尤其是錐束CT的出現(xiàn),更加促進了三維缺陷檢測技術(shù)的發(fā)展。
錐束CT(Cone Beam Computed Tomography)系統(tǒng)采用某種掃描方式獲取目標物的投影圖像,然后根據(jù)投影數(shù)據(jù)利用特定的算法得到高分辨率三維圖像,且三個方向的分辨率一致[5]。與常規(guī)CT相比,錐束CT在檢測微小缺陷和內(nèi)部缺陷方面具有明顯的優(yōu)勢。電路板一般是由導(dǎo)線、過孔、焊盤、基板等構(gòu)成,由于目前元器件都采用貼片的形式,因此焊盤在電路板中可以通過二維圖像很好地檢測,導(dǎo)線在電路板均有分布,起到電路連接的作用,如果存在短路、斷路等缺陷會導(dǎo)致PCB的功能失效,因此對電路板中導(dǎo)線進行提取是三維分析的前提條件。目前直線檢測的常用方法主要是Hough變換[6],雖然Hough變換能檢測到直線,但不能確定直線的起始位置和尺寸。
本文在通過錐束CT設(shè)備采集CT圖像的基礎(chǔ)上,對采集的圖像進行層析獲得電路板分層圖像提取導(dǎo)線區(qū)域,最后利用等值面體繪制進行導(dǎo)線的三維可視化。
導(dǎo)線區(qū)域的提取是建立在圖像分割的基礎(chǔ)之上,其主要目標是將圖像劃分為目標區(qū)和非目標區(qū),其處理效果的好壞將直接影響圖像分析、缺陷識別等后續(xù)步驟。當一幅圖像背景和目標物對比度不夠時,采用全局閾值并不能較好地分割前景目標。如果通過頂帽變換先去除背景,得到較均勻的前景目標后再進行閾值分割,這樣會得到較為理想的分割結(jié)果。圖像的白頂帽變換(White Top-Hat,WTH)定義為原始圖像f與其開運算圖像r(f)的差,即:
WTH(f)=f-r(f).
(1)
數(shù)學(xué)形態(tài)學(xué)中的開運算一般能夠去除圖像中孤立的小點、毛刺和連通兩塊區(qū)域的部分。圖像分割后采用形態(tài)學(xué)開運算對連接區(qū)域進行平滑,能夠消除小點、毛刺等部分,圖像分割的結(jié)果如圖1所示。從圖1中可以看出,經(jīng)過對比度增強和頂帽變換后的圖像背景更加均勻,對于受到黑色偽影影響的區(qū)域,可以明顯看出偽影對導(dǎo)線的影響基本消除,分割后的形態(tài)學(xué)處理導(dǎo)線部分更加平滑。
圖1 分層圖像的分割結(jié)果
電路板分層圖像中除了有導(dǎo)線外還有過孔、焊盤等要素,為了很好地對導(dǎo)線進行單獨分析,需要對導(dǎo)線區(qū)域進行篩選。首先利用區(qū)域標識算法獲取連通區(qū)域的區(qū)域信息[7],然后利用設(shè)定的面積閾值進行約束以便刪除較小的非導(dǎo)線區(qū)域。當區(qū)域面積大于閾值時判斷為導(dǎo)線區(qū)域;當區(qū)域面積小于閾值時判斷為非導(dǎo)線區(qū)域并進行刪除,從而篩選出導(dǎo)線區(qū)域。
對導(dǎo)線進行提取之前首先需要對篩選出的導(dǎo)線區(qū)域進行細化以便提取導(dǎo)線的骨架。對于單像素骨架圖像的提取可以通過形態(tài)學(xué)多次細化得到。目前常用的二值圖像細化算法是根據(jù)圖像中每個區(qū)域的結(jié)構(gòu)特點來判斷是否能夠刪除其中心像素,從而實現(xiàn)骨架提取。本文采用OPENCV中的cvRectangle()函數(shù)對每個像素的八鄰域進行標記,遍歷圖像中的目標像素點,直到得到導(dǎo)線的單像素骨架圖像。
導(dǎo)線是有起始端點的一條直線,知道其端點就能完成導(dǎo)線的有效提取。對于導(dǎo)線的單像素骨架圖像來說,當某一像素的八鄰域中只有一個鄰接點時,判斷該像素點可能是導(dǎo)線的端點。以該像素為中心,提取導(dǎo)線骨架圖像每一像素點的八鄰域,當其鄰接點的個數(shù)大于2個時,該像素被認為是導(dǎo)線的最終端點然后將這些端點腐蝕,以斷開相連的導(dǎo)線。最后設(shè)定導(dǎo)線長度閾值進行導(dǎo)線的判斷,遍歷整幅圖像得到所有導(dǎo)線目標,如圖2所示。
導(dǎo)線是由線段構(gòu)成的,因此對每條導(dǎo)線的端點和拐點進行分析即可完成導(dǎo)線檢測。本文采用基于曲線曲率的方法對拐點進行檢測,該方法的關(guān)鍵是求取曲線的曲率,采用十一點法對曲線進行曲率的求解[8],然后通過取曲率鏈表的極大值判斷該位置是否拐點,最后遍歷曲率鏈表,如果當前曲率點的值在前后各三個點內(nèi)取得極大值時則認為該點為一個拐點并記錄,對每個導(dǎo)線區(qū)域進行以上的拐點分析過程,遍歷整幅圖像完成該層導(dǎo)線檢測。如圖3所示是經(jīng)過上述步驟的某一層導(dǎo)線提取結(jié)果。
圖2 細化后提取的導(dǎo)線
圖3 導(dǎo)線檢測結(jié)果
對電路板所有的分層圖像用前文所述的方法進行導(dǎo)線目標提取,最后使用體繪制方法在MATLAB中對提取導(dǎo)線后的序列CT分層圖像進行三維重建[9]。三維體繪制的步驟如下:
(1) 對提取的電路板24層CT圖像數(shù)據(jù)進行三維數(shù)據(jù)集提取,得到一個三維的矩陣,該矩陣由圖像數(shù)據(jù)的長和寬以及數(shù)據(jù)集的總數(shù)構(gòu)成。本文中實驗樣品得到的三維數(shù)據(jù)集為512×299×24矩陣。
(2) 通過調(diào)用MATLAB函數(shù)庫中的reducevolume函數(shù)來減少數(shù)據(jù)量,提高運算速度。
(3) 通過調(diào)用MATLAB函數(shù)庫中的isosurface函數(shù)來計算數(shù)據(jù)集在顯示平面的累計投影。
(4) 通過調(diào)用MATLAB函數(shù)庫中的patch函數(shù)對碎片進行重建。
(5) 自定義顯示效果。
通過上述步驟,運用MATLAB程序?qū)崿F(xiàn)了電路板導(dǎo)線的三維重建,如圖4所示。實驗結(jié)果表明:該方法對印刷電路板中的導(dǎo)線能夠?qū)崿F(xiàn)有效的自動檢測。
圖4 三維導(dǎo)線檢測結(jié)果
本文針對印刷電路板中三維線狀目標,提出了一種基于電路板分層圖像的導(dǎo)線自動檢測方法。首先通過分析圖像中連通區(qū)域的面積對導(dǎo)線目標區(qū)域進行粗略定位和提取,然后通過形態(tài)學(xué)細化對導(dǎo)線單像素骨架進行了提取后分析導(dǎo)線的端點和拐點完成單層圖像的導(dǎo)線提取,最后采用序列圖像完成PCB板中導(dǎo)線的三維體繪制。實驗結(jié)果表明:本文提出的錐束CT電路板序列分層圖像的導(dǎo)線三維自動檢測方法,檢測效果較好,效率較高,能夠滿足實際工程中的應(yīng)用要求。
參考文獻:
[1]Mar N S S,Yarlagadda P K D V,Fookes C.Design and development of automatic visual inspection system for PCB manufacturing[J].Robotics and Computer-Integrated Manufacturing,2011,27(5):949-962.
[2]Hairulliza M J,Kumaran K,Noraidah S.Visualising automatic product inspection of PCB units[C]//2009 International Conference on Electrical Engineering and Informatics.Selangor,Malaysia:[s.n.],2009:204-207.
[3]Roh Y J,Park W S,Cho H.Correcting image distortion in the X-ray digital tomosynthesis system for PCB solder joint inspection[J].Image & Vision Computing,2003,21(3):1063-1075.
[4]Wang Yu,Wang Mingquan,Zhang Zhijie.Microfocus x-ray printed circuit board inspection system[J].Optik,2014,125 :4929-4931.
[5]Liu T.Cone-beam CT reconstruction for planar object[J].Ndt & E International,2012,45(1):9-15.
[6]Mukhopadhyay P,Chaudhuri B B.A survey of Hough transform[J].Pattern Recognition,2015,48(3):993-1010.
[7]Fu Yili,Han Xianwei,Wang Shuguo.A fast connected components labeling algorithm for binary images[J].Journal of Harbin Institute of Technology(English edition),2012,19(3):81-87.
[8]王英惠,吳維勇,趙汝嘉.平面輪廓的分段與識別技術(shù)[J].計算機輔助設(shè)計與圖形學(xué)學(xué)報,2002,14(12):1142-1145.
[9]曾箏,董芳華,陳曉,等.利用MATLAB實現(xiàn)CT斷層圖像的三維重建[J].CT理論與應(yīng)用研究,2004,13(2):24-29.