華中師范大學(xué)第一附屬中學(xué) 夏宇梁
印制電路板(Printed Circuit Board,PCB)基準(zhǔn)定位孔的準(zhǔn)確性直接影響PCB產(chǎn)品質(zhì)量[1]。中小印刷電路板生產(chǎn)企業(yè)目前主要采用人工方法進(jìn)行PCB定位孔鉆孔,其精度越來越不能適應(yīng)高精度PCB生產(chǎn)需求。
筆者利用計算機(jī)視覺技術(shù)對印刷電路板定位孔進(jìn)行識別,精確地識別出孔心位置坐標(biāo)后,再利用伺服電機(jī)控制的可以X,Y二維平面移動的氣動鉆頭對PCB板進(jìn)行精準(zhǔn)鉆孔。實現(xiàn)這一過程的系統(tǒng)關(guān)鍵在定位孔識別算法上。本文對印刷電路板定位孔識別算法進(jìn)行研究,提出了一種快速可靠的識別算法,該算法經(jīng)過實際的打靶機(jī)實驗,其精度、穩(wěn)定性達(dá)到了PCB生產(chǎn)企業(yè)的要求。
目前定位孔識別算法多采用Hough變換算法[2,3],但是對于定位孔有鏡面反射情況、圖像邊緣不尖銳或者定位孔焊盤圓周有畸變等問題時,該算法計算量倍增,識別的準(zhǔn)確性和可靠性也大大降低。
由于采用工業(yè)相機(jī)對PCB板進(jìn)行定位孔識別,需要在連續(xù)的視頻圖像中先找出焊盤,然后再對焊盤進(jìn)行精確的孔心坐標(biāo)識別。因此,定位孔坐標(biāo)識別算法分兩步實施:
(1)提取連續(xù)視頻圖像中的每一幀,然后進(jìn)行圖像平滑、區(qū)域分割和連通區(qū)搜索,初步確定定位孔大小和位置[4]。
(2)利用二維小波變換對定位孔進(jìn)行精確識別,精確找出孔心坐標(biāo)[3]。
實際測試表明,該算法對圖像中出現(xiàn)的亮斑干擾不敏感,有效地解決了PCB板因蝕刻而引起的定位孔局部形狀變形導(dǎo)致的識別問題。
工業(yè)相機(jī)拍攝的視頻圖像中不總是存在定位孔,本階段算法是要在圖像中快速搜索定位孔,如果存在,確定初步位置坐標(biāo)和半徑。算法思路:設(shè)PCB灰度圖像為 f (x, y),為了削弱定位孔處金屬反光干擾,對 f (x, y)作9×9均值濾波,得到 g (x , y),如圖1(a)所示。
分析g (x, y)的直方圖,利用峰谷法得出分割閾值T。對g (x, y)進(jìn)行二值化,得到 B (x , y):
在 B(x, y)二值化的圖像如圖2(b)所示,白色部分為焊盤。利用連通區(qū)搜索算法,可得到包含焊盤的最小外接矩形S。S的角點坐標(biāo)分別是(x1, y1)和(x2, y2)。
圖1 視頻圖像二值化及外接矩形
接著進(jìn)行定位孔半徑及孔心坐標(biāo)的計算??紤]一般性,設(shè)定位孔外輪廓為橢圓,用向量描述,。其中a和b分別為橢圓長軸和短軸,(x0,y0)為孔心坐標(biāo)。
于是,圖像中定位孔及定位孔中心和半徑基本確定,接下來進(jìn)行定位孔精確定位。
圖像中定位孔搜索只能獲得一種初步結(jié)果,其精度比較低,達(dá)不到工程應(yīng)用要求。原因如下:(1)均值濾波算法使圖像輪廓模糊,導(dǎo)致很難找到合適的分割閾值。(2)二值化后的圖像與原圖像相比,邊緣處連續(xù)變化的信息失真,不能利用灰度的變化情況來確定邊緣。因此,定位孔的精確位置確定需要在原圖像 f (x, y)上進(jìn)行。
為了從原圖像上獲得定位孔邊緣的變化信息,首先對 f (x, y)作2D小波變換:
工業(yè)相機(jī)每秒25幀速度,意味著定位孔識別算法要在40ms內(nèi)完成,才能達(dá)到工業(yè)實時性。因此,2D小波算法需要進(jìn)行優(yōu)化,提高計算速度。
定位孔識別算法程序采用Visual Studio C++ 2008編寫。程序運行環(huán)境為:Windows 7操作系統(tǒng),CPU:I3-530。在優(yōu)化算法中,選小波變換的尺度因子的各增量值:
圖2 三種定位孔識別結(jié)果
[1]單越康,許昌,蔣慶.基于計算機(jī)視覺檢測技術(shù)的PCB數(shù)控定位鉆機(jī)[J].現(xiàn)代機(jī)械,2000,03:1-4。
[2]柏長冰,齊春,宋福民,等.Hough變換快速檢測圓形PCB Mark[J].光電工程,2005,32(9):75-78.
[3]張利,高永英,汪浩,等.PCB板檢測中的定位研究[J].中國圖象圖形學(xué)報,1999,4(8):659-668.
[4]商飛,王豐貴,田地,等.一種基于圓內(nèi)接直角三角形的圓檢測方法[J].光學(xué)學(xué)報,2008,28(4):739-743.