仲崇權(quán) 趙亮
摘 要:針對(duì)插件機(jī)器人的視覺(jué)定位系統(tǒng),提出了一種基于圖像金字塔的霍夫變換算法,目標(biāo)在于準(zhǔn)確識(shí)別工位點(diǎn)坐標(biāo)。改進(jìn)的霍夫變換算法與傳統(tǒng)的霍夫變換算法相比減少了非零像素點(diǎn)的計(jì)算,并且通過(guò)限定霍夫變換算法所使用的參數(shù),減少了內(nèi)存的使用以及計(jì)算量;沿著邊緣點(diǎn)的梯度方向進(jìn)行像素點(diǎn)的累加,通過(guò)先確定圓心再確定圓心所對(duì)應(yīng)的半徑的方法,用二維累加器替代復(fù)雜的三維累加器,從而降低了時(shí)間復(fù)雜度和空間復(fù)雜度,提高了算法的效率。實(shí)驗(yàn)結(jié)果表明,本算法能夠準(zhǔn)確的定位PCB板的工位點(diǎn),可以較好的運(yùn)用在插件機(jī)器人的插件過(guò)程中。
關(guān)鍵詞:視覺(jué)定位;累加器;霍夫變換;圖像金字塔
中圖分類號(hào):TP391.41 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2016)08-00-04
0 引 言
插件機(jī)利用機(jī)器視覺(jué)技術(shù)將一些有規(guī)則的電子元器件自動(dòng)標(biāo)準(zhǔn)地插裝在印制電路板導(dǎo)電通孔內(nèi)的機(jī)械設(shè)備中[1]。工位點(diǎn)識(shí)別算法對(duì)工位點(diǎn)的獲取起著至關(guān)重要的作用,直接影響到插件的準(zhǔn)確度及效率。傳統(tǒng)的霍夫變換方法是一種窮盡式搜索,其時(shí)間復(fù)雜度和空間復(fù)雜度都比較高。為了克服傳統(tǒng)霍夫變換的缺陷,文獻(xiàn)[2]提出了一種廣義霍夫變換方法,理論上可以檢測(cè)到任意指定曲線,但在實(shí)際應(yīng)用中,當(dāng)需要檢測(cè)的目標(biāo)物體發(fā)生旋轉(zhuǎn)或者縮放時(shí),廣義霍夫變換的時(shí)間復(fù)雜度和空間復(fù)雜度的增長(zhǎng)都很快;文獻(xiàn)[3]提出的改進(jìn)后的霍夫變換算法同時(shí)利用邊緣像素的梯度和曲率來(lái)加速目標(biāo)的檢測(cè),該改進(jìn)算法能夠成功的用二維累加器替代三維累加器,有效降低時(shí)間復(fù)雜度和空間復(fù)雜度,但由于直線的曲率是無(wú)窮大,當(dāng)圖像中存在由許多直線組成的物體時(shí)效果很不理想;文獻(xiàn)[4]利用一對(duì)邊緣點(diǎn)來(lái)建立查找表,這種改進(jìn)方法也能夠利用二維累加器代替三維累加器,但對(duì)于有部分目標(biāo)物體被遮擋的圖像,檢測(cè)結(jié)果可能不太理想。
本文提出了一種基于霍夫變換的改進(jìn)方法,該方法在不影響目標(biāo)檢測(cè)準(zhǔn)確度的情況下,利用圖像金字塔在低分辨率的圖像上進(jìn)行目標(biāo)檢測(cè),減少了非零像素點(diǎn),同時(shí)利用像素梯度以及對(duì)圓的半徑加以限定的方法,先獲取圓心再確定半徑,用二維累加器替代復(fù)雜的三維累加器,降低了霍夫變換算法的復(fù)雜度,提高了該算法的效率,保證了工位點(diǎn)識(shí)別算法的準(zhǔn)確性。
1 霍夫變換與圖像金字塔
1.1 霍夫變換
霍夫圓變換是通過(guò)三維累加器獲取圓心以及半徑的一種方法[5],具體如圖1所示,圖像上的點(diǎn)映射為一個(gè)三維空間中的圓錐面:(a-x0)2+(b-y0)2=r2,在xy平面,若三個(gè)點(diǎn)在同一個(gè)圓上,則它們對(duì)應(yīng)的空間曲面相交于一點(diǎn),這些點(diǎn)構(gòu)成的邊界接近一個(gè)圓形。假設(shè)一幅大小為M×N (其中M>N)的圖像,其中非零像素點(diǎn)個(gè)數(shù)為Z,圖像上的每一個(gè)非零像素點(diǎn)所對(duì)應(yīng)的圓錐面可表示為三維累加矩陣G=[ga,b,r]M×N×N/2,將Z個(gè)矩陣進(jìn)行累加則得到三維累加器,0≤j≤Z-1。此累加器空間的最大值對(duì)應(yīng)原始圖像的圓的參數(shù)ac,bc,rc:
1.2 圖像金字塔
圖像金字塔是一系列以金字塔形狀排列的分辨率逐漸降低的圖像集合,如圖2所示。最初用于機(jī)器視覺(jué)和圖像壓縮。金字塔最底部是待處理的原始圖像(高分辨率),頂部則是該原始圖像的低分辨率近似。當(dāng)金字塔向上移動(dòng)時(shí),尺寸和分辨率降低。
圖3顯示了一個(gè)構(gòu)建兩個(gè)密切聯(lián)系的圖像金字塔的簡(jiǎn)單系統(tǒng),第j-1級(jí)近似輸出提供建立一個(gè)近似值金字塔所需的圖像,第j級(jí)預(yù)測(cè)殘差輸出用于構(gòu)建一個(gè)補(bǔ)充的預(yù)測(cè)殘差金字塔。在圖3中,近似和預(yù)測(cè)殘差金字塔都以一種迭代方式進(jìn)行計(jì)算。在第一次迭代前,以金字塔形式描繪的圖像放在這個(gè)近似金字塔的第j級(jí)中。
(3)將輸入的第j級(jí)圖像與(2)得到的預(yù)測(cè)圖像做差,得到的結(jié)果即為第j級(jí)預(yù)測(cè)殘差。由于插件機(jī)視覺(jué)處理部分的主要目標(biāo)是獲取mark點(diǎn)及工位點(diǎn)的坐標(biāo)和半徑,因此在霍夫圓變換算法中,獲取圓的中心及半徑即可,之后通過(guò)高層圖像計(jì)算原始圖像中的圓心坐標(biāo)以及半徑值。所以本文提出的霍夫圓獲取方法不需要預(yù)測(cè)第j級(jí)殘差,只需要第j-1級(jí)近似。
為了確定在實(shí)現(xiàn)過(guò)程中所用到的圖像金字塔的層數(shù),獲取原始圖像的第二層以及第三層金字塔的圖像。通過(guò)圖4的比較可以看出第三層金字塔圖像的工位點(diǎn)細(xì)節(jié)丟失較嚴(yán)重,且由于分辨率較低,通過(guò)該圖像所確定的工位點(diǎn)坐標(biāo)會(huì)對(duì)誤差較為敏感,導(dǎo)致工位點(diǎn)坐標(biāo)誤差較大,插件失敗。因此選擇原始圖像的第二層金字塔圖像。假設(shè)原始圖像中非零像素點(diǎn)的個(gè)數(shù)為M,則二層金字塔圖像中的非零像素點(diǎn)的個(gè)數(shù)為M/4。圖4所示是該圖像的金字塔結(jié)果。
2 基于圖像金字塔的改進(jìn)霍夫變換
霍夫變換算法是在金字塔高層的低分辨率圖像上完成的,通過(guò)確定梯度方向沿著梯度方向?qū)奂悠鬟M(jìn)行累加,提高了獲取霍夫圓的效率[7,8];環(huán)境允許的范圍內(nèi)限制半徑參數(shù)可以減少內(nèi)存的使用及計(jì)算量,提高算法的運(yùn)行效率。然而由于三維累加平面復(fù)雜度較高,本文提出的霍夫變換方法通過(guò)先確定圓心再確定半徑的方法,將三維累加平面變?yōu)槎S累加平面,降低了復(fù)雜度。
首先利用圖像金字塔算法得到邊緣二值圖像的二層金字塔圖像,假設(shè)圖像大小為M×N(非零像素點(diǎn)個(gè)數(shù)為Z),此時(shí)圖像分辨率降低,邊緣點(diǎn)減少。對(duì)邊緣圖像f(x,y)中的非零像素點(diǎn)計(jì)算其局部梯度;根據(jù)已經(jīng)限定的圓的半徑范圍,將半徑在限定范圍內(nèi)的像素點(diǎn)在二維累加器A中進(jìn)行累加,此累加器用來(lái)求圓心。累加的具體方法為:對(duì)于圖像的一個(gè)非零像素點(diǎn)(a,b),利用Sobel算子,通過(guò)掩模來(lái)近似一階導(dǎo)數(shù)ga和gb,具體如圖5所示。
2.1 獲取圓心
遍歷獲得的A二維累加器對(duì)于欲獲取的圓心有三個(gè)限定條件:
(1)圓心不能處于圖像的邊緣;
(2)圓心在A二維累加器中的累加值必須大于設(shè)定的閾值param;
(3)圓心在A二維累加器中的累加值必須大于其四鄰域的累加值。然后將其按照累加值進(jìn)行降序排列,則累加值較高的點(diǎn)即為欲獲取的圓心。獲取圓心的流程圖如圖7所示。
2.2 獲取對(duì)應(yīng)圓心的半徑
獲取圓心對(duì)應(yīng)半徑的流程圖如圖8所示,若在獲取候選圓心的過(guò)程中,centers中的候選圓心的個(gè)數(shù)是D,則對(duì)于每一個(gè)候選圓心(x0,y0),0≤o≤D-1。首先遍歷存儲(chǔ)圓參數(shù)的堆棧circle是否有已經(jīng)確定了的圓的參數(shù),若此時(shí)已經(jīng)有檢測(cè)到的圓的參數(shù),則必須當(dāng)其與已檢測(cè)到的圓心點(diǎn)之間的距離大于設(shè)定的閾值min_dist(此閾值為欲獲取的兩個(gè)圓心之間的最小距離)時(shí)方可將該點(diǎn)視為欲獲取圓心,同時(shí)遍歷centers中的下一點(diǎn);對(duì)R中的數(shù)據(jù)進(jìn)行降序排列,即可得到該候選中心的最大支持半徑。當(dāng)遍歷了centers中的每一個(gè)候選圓心點(diǎn)之后,circle中的值即為原始圖像中通過(guò)本論文的改進(jìn)的霍夫圓獲取方法所得到的所有圓。
3 實(shí)驗(yàn)結(jié)果與分析
為了檢驗(yàn)插件機(jī)器人工位點(diǎn)識(shí)別算法的準(zhǔn)確性,對(duì)一個(gè)需要插入六個(gè)端子的PCB板進(jìn)行插件測(cè)試,本實(shí)驗(yàn)通過(guò)Visual C++編程實(shí)現(xiàn)了基于霍夫變換的工位點(diǎn)識(shí)別軟件。在實(shí)際的圖像處理過(guò)程中,獲取圖像的視野大小可以設(shè)定為40 mm×30 mm,工位點(diǎn)的識(shí)別精度為0.01 mm,相機(jī)分辨率為40/0.01=4 000 pixcel(像素),另一方向是30/0.01=3 000 pixcel,即相機(jī)的分辨率至少需要4 000×3 000 pixcel,通過(guò)調(diào)研選擇了一款有效像素為4 384×3 288的相機(jī)。
圖9所示為實(shí)際插件過(guò)程中對(duì)工位點(diǎn)識(shí)別過(guò)程的截圖,在實(shí)際測(cè)試過(guò)程中,該算法能夠?qū)の稽c(diǎn)進(jìn)行準(zhǔn)確快速的定位,以完成插件功能,且實(shí)時(shí)性較好,插件的效率較高。
分析實(shí)驗(yàn)結(jié)果可知本算法在圖像處理過(guò)程中對(duì)非零像素點(diǎn)的計(jì)算減少,降低了時(shí)間復(fù)雜度,提高了該算法的效率;同時(shí)利用二維累加器替代復(fù)雜的三維累加器,減少了處理內(nèi)存空間的使用、降低了算法的計(jì)算量。因此本論文提出的基于霍夫變換的工位點(diǎn)識(shí)別算法準(zhǔn)確度高,魯棒性好,可以較好地用于插件機(jī)器人的插件過(guò)程中。
4 結(jié) 語(yǔ)
本文提出的基于霍夫變換的工位點(diǎn)識(shí)別算法能夠準(zhǔn)確高效的識(shí)別工位點(diǎn),確定工位點(diǎn)的坐標(biāo)。提出的基于圖像金字塔的霍夫變換算法檢測(cè)圓,在處理過(guò)程中減少了非零像素點(diǎn)的計(jì)算,提高了該算法的效率,保證了插件的實(shí)時(shí)性,避免了復(fù)雜的三維累加器的使用,利用二維累加器降低了時(shí)間復(fù)雜度和空間復(fù)雜度。實(shí)驗(yàn)結(jié)果表明,本算法能夠準(zhǔn)確識(shí)別PCB板的工位點(diǎn),實(shí)現(xiàn)插件機(jī)器人的插件功能。研究成果已應(yīng)用于某公司的插件機(jī)器人設(shè)備,滿足了實(shí)際對(duì)PCB板進(jìn)行插件的需求。本文提出的基于霍夫變換的工位點(diǎn)識(shí)別算法使得插件機(jī)器人的插件過(guò)程變得更加準(zhǔn)確、穩(wěn)定、高效。
參考文獻(xiàn)
[1]黃震,顧啟民.高精度機(jī)器視覺(jué)插件系統(tǒng)的研究與應(yīng)用[J].組合機(jī)床與自動(dòng)化加工技術(shù), 2014(10):105-108.
[2]張小軍, 胡福喬.基于廣義霍夫變換的芯片檢測(cè)[J].計(jì)算機(jī)工程, 2009,35(23):252-254.
[3] Yin Yaping, Wang Yanlin, Liu Guili, et al. The Detection of Quartz that Based on the Improved Hough Transform[J].Information Technology Journal, 2012,11(4):560-562.
[4] Chen A J, Dong G H. Efficient Method for Rapidly Detecting Circles Based on Edge-Tracking[C]. Second International Symposium on Computational Intelligence and Design. Changsha, China. 2009:402-405.
[5]秦開(kāi)懷, 王海潁, 鄭輯濤.一種基于霍夫變換的圓和矩形的快速檢測(cè)方法[J].中國(guó)圖像圖形學(xué)報(bào), 2010,15(1):109-115.
[6]許景波, 袁怡寶.圓度測(cè)量中的高斯濾波快速算法[J].南京理工大學(xué)學(xué)報(bào), 2007,31(3):342-345.
[7]魏鋒, 王小林, 婁元靜.基于圖像處理技術(shù)的印刷電路板圓孔檢測(cè)方法[J].河南理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2013,32(1):69-72.
[8]肖敏.基于機(jī)器視覺(jué)的晶圓定位系統(tǒng)研究[D].上海:上海交通大學(xué),2013.