房曉偉 ,段 潔,安志勇,李華杰
FANG Xiao-wei1 , DUAN Jie1 , AN Zhi-yong1, LI Hua-jie2
(1.長(zhǎng)春理工大學(xué) 光電工程學(xué)院,長(zhǎng)春 130000;2.長(zhǎng)春工業(yè)大學(xué),長(zhǎng)春 130012)
機(jī)器視覺(jué)技術(shù)應(yīng)用于貼片機(jī)中幾乎成為高性能貼片機(jī)的一個(gè)標(biāo)志,并已廣泛應(yīng)用于表面組裝自動(dòng)化生產(chǎn)線上,現(xiàn)代先進(jìn)的組裝設(shè)備大多裝載相應(yīng)級(jí)別的機(jī)器視覺(jué)系統(tǒng)[1]。機(jī)器視覺(jué)對(duì)元件吸取的角度偏差檢測(cè)具有高精度、無(wú)損傷、無(wú)接觸等優(yōu)勢(shì)。其中偏差角度定義為圖像坐標(biāo)系橫軸與元件單側(cè)邊界直線的夾角。該偏差來(lái)自抓取元件的機(jī)械誤差以及元件運(yùn)輸過(guò)程中產(chǎn)生的誤差。元件角度糾偏的作用是對(duì)有偏差的元件進(jìn)行修正,使其能夠正確貼片。
目前常用糾偏方法有模式匹配法和形狀匹配法。模式匹配法由于計(jì)算量較大,多數(shù)由上位機(jī)控制,計(jì)算速度較慢,所以不能滿足現(xiàn)代生產(chǎn)需求。本文的形狀匹配法是采用FPGA做圖像處理,完全嵌入式,使用單指令數(shù)據(jù)流算法以及最小二乘擬合算法,速度快、精度高。經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,此算法穩(wěn)定可靠,速度和精確度有明顯提高。
在視覺(jué)領(lǐng)域里,形狀與圖像是緊密聯(lián)系的,形狀所包含的信息量遠(yuǎn)遠(yuǎn)多于紋理和顏色所含有的信息量,是一種相對(duì)更高一層的圖像特征。形狀匹配的準(zhǔn)確性由形狀提取的好壞所影響。好的形狀描述可以將復(fù)雜的形狀匹配問(wèn)題變得簡(jiǎn)單化,更有效率,而差的形狀描述則往往得不到滿意的結(jié)果。所以形狀描述的提取在形狀匹配的過(guò)程中具有極其關(guān)鍵的作用。
形狀描述一般分為基于輪廓的形狀描述方法和基于區(qū)域的形狀描述方法[2]?;谳喞男螤蠲枋龇椒ㄐ枰崛〉木褪切螤畹妮喞畔?。基于區(qū)域的形狀描述方法就是通過(guò)對(duì)閉合的曲線內(nèi)部的像素點(diǎn)提取形狀的某些特征進(jìn)行描述。由于片狀元件特征的提取是基于輪廓的描述,所以后面的研究也主要是基于輪廓上的信息進(jìn)行形狀匹配。
在形狀匹配領(lǐng)域,將物體看作是一系列離散點(diǎn)的集合,物體的形狀信息就可以通過(guò)表示物體的離散點(diǎn)集合或其子集來(lái)獲得[3]?;谳喞男螤钇ヅ浞椒ㄈ鐖D1所示。
圖1 形狀匹配流程圖
1)圖像采集
對(duì)于要進(jìn)行形狀匹配的圖像進(jìn)行采集信息。實(shí)驗(yàn)中用VITA1300 CMOS做圖像采集。
2)邊緣檢測(cè)
邊緣指的是圖像中像素的值有突變的地方,對(duì)于元件則指引腳與背景之間像素的差異。邊緣檢測(cè)主要有Sobel、Prewitt、Roberts等。由于Sobel算子相對(duì)于其他算子具有邊緣定位準(zhǔn)確、靈活性強(qiáng)、對(duì)噪聲有抑制作用,則采用Sobel算子對(duì)圖像進(jìn)行邊緣檢測(cè),從而識(shí)別出片狀元件的每個(gè)引腳邊緣[4],Sobel算子如圖2(a)、(b)所示。
圖2 Sobel算子及3×3像素區(qū)域
利用FPGA中shiftram例化截取出3×3像素點(diǎn),假設(shè)圖2(c)中符號(hào)代表3×3像素區(qū)域的圖像點(diǎn),則有公式(1):
其中,Gx為圖像在x方向梯度算子,Gy為圖像在y方向梯度算子,Δf為梯度的模值。
3)二值形狀
圖像二值化是將圖像上的0~255級(jí)灰度像素值通過(guò)設(shè)定的閾值T映射為0或255,利用FPGA中的比較器,像素點(diǎn)(x,y)處的梯度模值Δf大于或等于T,認(rèn)為該點(diǎn)是目標(biāo)的邊緣點(diǎn),否則為背景值零。二值化之后的圖像凸顯出感興趣的目標(biāo)輪廓。圖3(a)是灰度圖像。圖3(b)是經(jīng)過(guò)Sobel邊緣檢測(cè)且二值化處理之后的圖像,從而得到清晰的元件引腳輪廓,以便于后面的引腳檢測(cè)。
圖3 邊緣檢測(cè)前后處理效果圖
4)形狀描述
如圖3(b)所示,每個(gè)元件引腳輪廓類似圓形,由于元件引腳輪廓區(qū)域在10×10大小的像素區(qū)域內(nèi),而二值化之后的圖像只有0和1,所以用1bit表示像素值。所以利用FPGA中shiftram做矩陣[7],例化10個(gè)位寬為10bit為的D觸發(fā)器,可以有效地代表了10×10bit圖像矩陣區(qū)域,從而可離散地?cái)M合出圓形的形狀。
5)形狀匹配
FPGA內(nèi)部進(jìn)行形狀匹配,對(duì)圖像從第一行開(kāi)始從左至右,從上至下遍歷整幅圖像尋找形狀相匹配的引腳,并記錄相應(yīng)的元器件引腳坐標(biāo),將檢測(cè)的坐標(biāo)值鎖存在lcd_xpos_r,lcd_ypos_r,同樣方法就可檢測(cè)出多個(gè)引腳的坐標(biāo)值。用(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)分別代表元件引腳坐標(biāo)的值。
整個(gè)過(guò)程沖分發(fā)揮FPGA計(jì)算速度的優(yōu)勢(shì),即外部單指令觸發(fā),F(xiàn)PGA收到觸發(fā)信號(hào)之后內(nèi)部采集一整幀圖像,采集的過(guò)程中對(duì)圖像數(shù)據(jù)流進(jìn)行形狀匹配,利用上述方法計(jì)算出每個(gè)引腳的坐標(biāo)值。從而大大提高計(jì)算速度及精度。
貼片頭吸取元器件,移動(dòng)至上視攝像機(jī)的位置上方,由于吸取元件、運(yùn)輸?shù)纫幌盗袆?dòng)作,元件不可避免地會(huì)出現(xiàn)偏差,也就是說(shuō),有些元件擺放角度會(huì)有偏差,如圖4所示,那么僅僅依靠貼片頭的X,Y軸電機(jī)運(yùn)動(dòng)無(wú)法滿足現(xiàn)代貼片機(jī)精確要求[5]。所以有必要精確計(jì)算元件角度。
圖4 片狀元件在供料盤中角度偏移示意圖
想要得到元器件的角度偏差,就要擬合元件邊界直線,則可以利用最小二乘法擬合出元件邊界直線,利用最小二乘法對(duì)于直線的擬合是一種有效的工具[6]。對(duì)圖像中離散的目標(biāo)進(jìn)行擬合,可得到連續(xù)的函數(shù),從而確定目標(biāo)的各個(gè)參數(shù)。
已知一系列點(diǎn)坐標(biāo)(x1,y1)、(x2,y2)…(xn,yn),擬合出直線方程為y=kx+b,則有式(2)和式(3):
為了方便程序?qū)崿F(xiàn),設(shè)計(jì)中最小二乘法所采用的是式(2)和式(3)的結(jié)合,如式(4)所示:
將1.2節(jié)(5)形狀匹配中得到的坐標(biāo)點(diǎn)(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)帶入式(4),得出直線方程y=kx+b之后,則利用反三角函數(shù),如式(5)所示:
其中θ為圖4中的偏差角。如圖3(c)為直線擬合示意圖。
如圖5(a)所示是原件未經(jīng)過(guò)糾偏的貼片圖,偏差比較明顯,無(wú)法使用。如圖5(b)所示是原件糾偏之后的貼片圖,已經(jīng)能達(dá)到現(xiàn)代貼片的需求。所以該文方法是可行有效的。
圖5 元件糾偏前和元件糾偏后貼片圖
為了提高片狀元件角度糾偏的速度及精確度,利用FPGA并行執(zhí)行的優(yōu)勢(shì),結(jié)合最小二乘法,并根據(jù)設(shè)計(jì)資源的要求,所以本設(shè)計(jì)采用Altera Cyclone IV EP4CE115F23I7為圖像處理芯片進(jìn)行數(shù)據(jù)運(yùn)算,此型號(hào)為Altera Cyclone IV系列容量最大的一款處理芯片,具有10W LEs。圖6為實(shí)驗(yàn)系統(tǒng)工作框圖,F(xiàn)PGA內(nèi)部工作流程如下:
1)FPGA對(duì)獲取的圖像進(jìn)行Sobel邊緣檢測(cè)并且進(jìn)行二值化處理得到元件引腳輪廓。
2)針對(duì)元件引腳輪廓,F(xiàn)PGA內(nèi)部做圓形的形狀匹配,獲取每個(gè)引腳的中心坐標(biāo)。
3)對(duì)獲取元件引腳坐標(biāo)進(jìn)行最小二乘法擬合直線,利用三角函數(shù)得到元件角度偏差。
圖6 系統(tǒng)工作框圖
圖像傳感器接口為parallel CMOS,它有1個(gè)幀同步、1個(gè)行同步、1個(gè)時(shí)鐘和8位數(shù)據(jù)信號(hào)。FPGA接收?qǐng)D像數(shù)據(jù)流,F(xiàn)PGA內(nèi)部進(jìn)行元件引腳坐標(biāo)檢測(cè)。如圖7是FPGA SignalTap時(shí)序示意圖,data[2:9]為圖像數(shù)據(jù)流,cmos_vsync、cmos_href分別為行、場(chǎng)信號(hào),cmos_pclk為圖像時(shí)鐘信號(hào),lcd_xpos、lcd_ypos為元件引腳坐標(biāo)輸出信號(hào)。
圖7 SignalTap時(shí)序圖(截圖)
采用嵌入式FPGA圖像處理系統(tǒng),主要解決上位機(jī)耗時(shí)長(zhǎng)的問(wèn)題。FPGA在圖像處理及坐標(biāo)計(jì)算速度方面比上位機(jī)有明顯的優(yōu)勢(shì),并結(jié)合最小二乘法進(jìn)一步提高了計(jì)算精確度。
對(duì)于圖3(a)所示元件,在圖像坐標(biāo)系中的引腳測(cè)試坐標(biāo)值如表1所示,圖像的左上角表示原點(diǎn),從左向右、從上到下分別為X,Y的正方向。由于擬合出元件單側(cè)直線就可以得到元件偏差角度,所以表1為元件單側(cè)引腳坐標(biāo)值。其中引腳標(biāo)號(hào)順序左上角為1腳,自左至右共4腳。
表1 FPGA實(shí)測(cè)數(shù)據(jù)
利用前面介紹的式(4)和式(5)則可以計(jì)算出k=0.0413。則偏差角度θ=arctan(k)≈2.37℃。
表2 FPGA和Labview對(duì)比實(shí)測(cè)數(shù)據(jù)
由于貼片頭的機(jī)械誤差范圍在-10℃和10℃之間,所以本測(cè)試范圍為-10℃和10℃之間。表2是FPGA形狀匹配和Labview模式匹配兩者計(jì)算時(shí)間以及精確度對(duì)比。
從表2中可以看出,相對(duì)于上位機(jī)Labview模式匹配,利用FPGA做形狀匹配的快速糾偏算法進(jìn)一步提高了計(jì)算精度,并且計(jì)算時(shí)間上明顯減少。實(shí)驗(yàn)結(jié)果表明該文算法是可行有效的。
根據(jù)現(xiàn)代貼片機(jī)要求速度快,精度高的特點(diǎn),對(duì)片狀元件角度糾偏算法進(jìn)行了深入的研究,提出了基于FPGA形狀匹配快速糾偏算法,結(jié)合最小二乘法來(lái)完成片狀元件的角度糾偏算法,有效地提高了系統(tǒng)計(jì)算速度及精確度,經(jīng)過(guò)大量實(shí)驗(yàn)測(cè)試,該算法可以良好應(yīng)用于元件的角度糾偏,并對(duì)元件角度的變化具有良好的適應(yīng)能力。
[1]許海麗.基于OpenCV的SMT糾偏貼片視覺(jué)系統(tǒng)的研究[D].江蘇:蘇州大學(xué),2013.
[2]余江.基于輪廓的形狀匹配方法研究[D].安徽:安徽大學(xué),2013.
[3]周瑜,劉俊濤,白翔.形狀匹配方法研究與展望[J].自動(dòng)化學(xué)報(bào),2012,38(6):889-910
[4]白穎杰.基于機(jī)器視覺(jué)的圖像處理與特征識(shí)別方法的研究[D].重慶:重慶大學(xué).2010.
[5]余大偉.視覺(jué)系統(tǒng)在貼片機(jī)貼片頭定位與片狀元件檢測(cè)糾偏中的應(yīng)用研究[D].江蘇:蘇州大學(xué),2010.
[6]王力.基于機(jī)器視覺(jué)的貼片元件定位系統(tǒng)的研究與開(kāi)發(fā)[D].江蘇:蘇州大學(xué),2010.