王幫元
(安徽經(jīng)濟(jì)管理學(xué)院 信息工程系,安徽 合肥230051)
隨著電子行業(yè)產(chǎn)業(yè)化的推進(jìn),機(jī)器視覺技術(shù)在該領(lǐng)域內(nèi)得到廣泛應(yīng)用,并且已在很大程度上推動了行業(yè)生產(chǎn)力發(fā)展[1-3].機(jī)器視覺的作用主要有:視覺引導(dǎo)、缺陷檢測等[4-6],其中的目標(biāo)定位是視覺引導(dǎo)的關(guān)鍵,也是前提,尤其是角點(diǎn)定位.在平板電腦自動組裝中,電腦零部件背光板的位置經(jīng)常需要傳遞給機(jī)器人的機(jī)械手臂,實(shí)現(xiàn)精準(zhǔn)抓?。虼?,對背光板頂點(diǎn)的準(zhǔn)確定位直接影響到產(chǎn)品的質(zhì)量和效率.對此,已有部分學(xué)者設(shè)計了相應(yīng)的角點(diǎn)目標(biāo)定位算法,并且達(dá)到了一定的效果.如利用梯度均方差進(jìn)行特征分析后提取角點(diǎn)的定位算法[7].還有利用局部圖像區(qū)域直方圖特性定位角點(diǎn)的定位算法. 這些算法的實(shí)驗(yàn)結(jié)果表明其具有良好的視覺定位效果[8].盡管上述這些角點(diǎn)定位機(jī)制能夠取得較好的效果;但是當(dāng)目標(biāo)存在干擾時,這些算法的定位精度較低,存在明顯的定位偏差.
對此,本文提出了一個基于Emgucv 與視覺引導(dǎo)的定位機(jī)制.首先打通相機(jī)SDK 與C#-Emgucv 平臺的數(shù)據(jù)通道,實(shí)現(xiàn)圖像采集;然后基于輪廓匹配得到背光板區(qū)域,再通過最小矩形框定背光板后查找背光板頂點(diǎn),實(shí)現(xiàn)定位.最后計算出水平、垂直方向偏移和旋轉(zhuǎn)角度,實(shí)現(xiàn)基于視覺引導(dǎo)的機(jī)構(gòu)補(bǔ)償.最后通過實(shí)驗(yàn),驗(yàn)證了本文算法與傳統(tǒng)定位算法的定位性能.
由于一塊反光板上有三個頂點(diǎn)需要定位,因此本文機(jī)制采用2 個攝像頭分2 次抓取三個頂點(diǎn)所在視野,然后分別定位.考慮到C#在界面、運(yùn)行效率、通信方面比較有優(yōu)勢,故選用C#語言開發(fā)軟件系統(tǒng),且在C#平臺上調(diào)用Emgucv 也很方便.首先研究相機(jī)C#版本的SDK 底層函數(shù),然后用C#進(jìn)行調(diào)取,并且轉(zhuǎn)換為bitmap、Emgucv 圖像格式,實(shí)現(xiàn)相機(jī)取像、實(shí)時動態(tài)顯示功能.
反光板上目標(biāo)是三個頂點(diǎn),如圖1 所示.通過定位反光板上三個頂點(diǎn)來確定位置信息.取像完成后,首先對采集的目標(biāo)區(qū)域進(jìn)行輪廓查找,得到目標(biāo)區(qū)域;再通過最小矩形框定得到目標(biāo)的精確坐標(biāo);然后查找目標(biāo)頂點(diǎn);最后引入補(bǔ)償計算模型,實(shí)現(xiàn)位移和角度補(bǔ)償.以上過程采用C#平臺與EmguCV 來實(shí)現(xiàn).本文機(jī)制整體框架如圖2 所示.
圖1 反光板Fig.1 Backlight board
圖2 本文定位與引導(dǎo)機(jī)制架構(gòu)Fig.2 Positioning and visual guiding system architecture in this paper
首先基于相機(jī)C#版本SDK 進(jìn)行二次開發(fā),用C#語言編程調(diào)用SDK 底層相機(jī)采集函數(shù),取出相機(jī)采集的圖像裸數(shù)據(jù),即二進(jìn)制數(shù)據(jù).然后,利用字節(jié)流轉(zhuǎn)換的方法,將圖像裸數(shù)據(jù)轉(zhuǎn)換至C#支持的Bitmap 格式數(shù)據(jù).最后利用索引調(diào)色板重構(gòu)方式,轉(zhuǎn)換到Emgucv 數(shù)據(jù)格式Image <>.由此得到PC-visual stadio 平臺可以處理的數(shù)據(jù)格式,從而通過C#編程實(shí)現(xiàn)兩個工業(yè)相機(jī)的數(shù)據(jù)采集,為圖像處理打下數(shù)據(jù)基礎(chǔ).實(shí)時顯示視頻如圖4 所示.
通過C#調(diào)用SDK,將相機(jī)采集的圖像裸數(shù)據(jù),轉(zhuǎn)換為C#可以識別的數(shù)據(jù)流,繼而轉(zhuǎn)換為Bitmap 格式.由于索引圖像格式存在偽彩,本研究采用索引表重構(gòu)[11],轉(zhuǎn)換Emgucv 平臺圖像數(shù)據(jù)格式Image,如圖3 所示,為后續(xù)圖像處理、定位打好數(shù)據(jù)基礎(chǔ).
圖3 數(shù)據(jù)采集與轉(zhuǎn)換流程Fig.3 Data acquisition and conversion process
相機(jī)初始化部分代碼:
相機(jī)SDK—C#-Emgucv 平臺數(shù)據(jù)轉(zhuǎn)換部分代碼:
圖4 本文雙目視覺效果圖Fig.4 Effect of double vision in this paper
基于閾值分割和輪廓查找得到可能包含目標(biāo)點(diǎn)區(qū)域,再利用Emgucv 的最小矩形框定函數(shù)cvMinAreaRect2,得到可能包含目標(biāo)點(diǎn)的最小外接矩形區(qū)域,再通過查找頂點(diǎn),得到頂點(diǎn)坐標(biāo);隨后,與標(biāo)準(zhǔn)坐標(biāo)相減后得到位置偏移和角度旋轉(zhuǎn).基于式(1)計算,得到X軸、Y軸補(bǔ)償和角度補(bǔ)償,即測量值與標(biāo)準(zhǔn)值得差值表示位移偏差和角度偏差.整體框架如圖5 所示.采用輪廓查找,定位出目標(biāo).
圖5 定位算法Fig.5 The positioning algorithm
式(1)中,x、y為實(shí)際坐標(biāo),Standard_x、Standard_y為標(biāo)準(zhǔn)坐標(biāo),Delt_X、Delt_Y為X、Y軸偏移.Juli為兩頂點(diǎn)距離,Jiaodu為旋轉(zhuǎn)角度;Real_distance為兩點(diǎn)實(shí)際距離,Pixel_distance為兩點(diǎn)像素距離,Bili為圖像距離到實(shí)際距離的轉(zhuǎn)換比例.
以圖6 為待定位圖像,經(jīng)本文定位機(jī)制處理后,結(jié)果見圖7.從圖7 中可知,本文定位機(jī)制精確識別出角點(diǎn).可見定位標(biāo)示綠點(diǎn)準(zhǔn)確的打在頂點(diǎn)上,代表定位成功.進(jìn)而計算出水平、垂直、角度補(bǔ)償,如圖8 所示.圖8 為軟件界面部分截圖,是補(bǔ)償計算顯示.
圖6 原圖Fig.6 The original image
圖7 處理效果圖Fig.7 Processing result image
圖8 補(bǔ)償計算顯示Fig.8 Display of compensation calculation
背光板頂點(diǎn)定位部分代碼:
計算出位移和角度的補(bǔ)償值后,本文利用PLC 實(shí)現(xiàn)位移、角度補(bǔ)償.視覺軟件完成對背光板X軸、Y軸位移偏移、旋轉(zhuǎn)角度,即X軸、Y軸、角度補(bǔ)償,軟件通過串口通信將這些值傳遞給PLC 機(jī)構(gòu),PLC 轉(zhuǎn)換為相應(yīng)的動作.比如X軸偏移-4 mm,PLC 步進(jìn)電機(jī)X軸方向多走4 mm,X軸偏移4 mm,PLC 步進(jìn)電機(jī)X軸方向少走4 mm,Y軸偏移-4 mm,PLC 步進(jìn)電機(jī)Y軸方向多走4 mm,Y軸偏移4 mm,PLC 步進(jìn)電機(jī)Y軸方向少走4 mm,角度偏移-4°,PLC 旋轉(zhuǎn)電機(jī)逆時針旋轉(zhuǎn)4°,角度偏移4°,PLC 旋轉(zhuǎn)電機(jī)順時針旋轉(zhuǎn)4°.
PLC 即可編程邏輯控制器,它采用一類可編程的存儲器,用于其內(nèi)部存儲程序,執(zhí)行邏輯運(yùn)算、順序控制、定時、計數(shù)與算術(shù)操作等面向用戶的指令,并通過數(shù)字或模擬式輸入/輸出控制各種類型的機(jī)械或生產(chǎn)過程.當(dāng)可編程邏輯控制器投入運(yùn)行后,其工作過程一般分為三個階段,即輸入采樣、用戶程序執(zhí)行和輸出刷新三個階段.完成上述三個階段稱作一個掃描周期.在整個運(yùn)行期間,可編程邏輯控制器的CPU 以一定的掃描速度重復(fù)執(zhí)行上述三個階段.
部分PLC 關(guān)鍵代碼:
本文定位與引導(dǎo)機(jī)制,基于C#、EmguCV 編程完成對目標(biāo)視野的取像,通過閾值分割、輪廓匹配、最小矩形框定、頂點(diǎn)查找得到目標(biāo)的精確坐標(biāo).經(jīng)過實(shí)驗(yàn)驗(yàn)證,在圖像目標(biāo)特征不明顯,準(zhǔn)確定位目標(biāo)位置,如圖9~10 所示.傳統(tǒng)定位方式是基于靜態(tài)大差異特征識別定位算法,在圖像目標(biāo)特征不明顯,且背景復(fù)雜時,往往存在定位不準(zhǔn)確,如圖11~12 所示.
圖11 傳統(tǒng)算法效果圖Fig.11 Effect of the traditional algorithm
隨后,對十枚背光板進(jìn)行檢測,先用精密光學(xué)距離測量工具測算出實(shí)際物理偏移;然后分別用傳統(tǒng)算法和本文算法測試,計算出偏移,然后綜合取平均值后,結(jié)果見表1.從表中可知,本文算法的定位精度比傳統(tǒng)技術(shù)要高,定位偏移非常小;而傳統(tǒng)的角點(diǎn)定位技術(shù)產(chǎn)生了較大的偏移.
圖12 傳統(tǒng)算法效果圖Fig.12 Effect of the traditional algorithm
表1 測試數(shù)據(jù)表Tab.1 Table of data testing
為了解決反光板頂點(diǎn)目標(biāo)的定位問題,本文提出了一個基于EmguCV 與雙目視覺的定位與引導(dǎo)機(jī)制.首先基于兩個Basler 工業(yè)相機(jī)實(shí)現(xiàn)圖像采集;然后基于輪廓查找與閾值分割處理得到目標(biāo)的大致區(qū)域,再通過最小矩形框定和頂點(diǎn)查找得到目標(biāo)的精確坐標(biāo).最后引入補(bǔ)償計算機(jī)制,實(shí)現(xiàn)機(jī)構(gòu)補(bǔ)償.最后測試了本文機(jī)制性能,結(jié)果表明:與普通的圖像目標(biāo)定位算法相比,在圖像目標(biāo)特征背景復(fù)雜時,本文機(jī)制具有更好的定位與引導(dǎo)效果,準(zhǔn)確定位出圖像目標(biāo)的坐標(biāo),并完成定位.
[1] 王忠勇.一種并聯(lián)機(jī)械手視覺引導(dǎo)算法[J].計算機(jī)測量與控制,2013,13(17):4983-4986.
[2] 李龍.結(jié)構(gòu)光視覺引導(dǎo)的軌跡跟蹤系統(tǒng)的標(biāo)定技術(shù)[J].計算機(jī)工程與應(yīng)用,2013,18(11):383-387.
[3] 趙丹陽.火災(zāi)視頻圖像定位中特征點(diǎn)提取和匹配[J].計算機(jī)工程與應(yīng)用,2013,36(4):181-185.
[4] 聶華.基于計算機(jī)圖像定位的伺服平臺研究[J].電子設(shè)計工程,2013,21(7):1906-1913.
[5] 李翀倫.復(fù)雜背景下紅外圖像目標(biāo)的快速定位[J].海軍工程大學(xué)學(xué)報,2013,33(10):2886-2890.
[6] 秦緒佳,桑賢生,程時偉.改進(jìn)的規(guī)范化卷積圖像修復(fù)算法[J].計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2011,23(2):371-376.
[7] Noori H,Saryazdi S.A bilateral image inpainting[J].IJST Trans Electr Eng,2011,25(E2):95-108.
[9] 李虹.基于符號理據(jù)性的視覺引導(dǎo)系統(tǒng)設(shè)計研究[J].統(tǒng)計與管理,2014,18(15):482-4387.
[10] hmann J E,Appas T P,Neuhoff D.Structure texture similarity metrics for image analysis and retrieval[J].IEEE Transactions,2013,22(7):2545-2258.
[11] 龍水軍.基于彩色軌跡引導(dǎo)的AGV 視覺導(dǎo)航方案研究[J].工具技術(shù),2014,18(15):42-47.
[12] 王秀平.基于激光視覺引導(dǎo)的焊接機(jī)器人系統(tǒng)設(shè)計[J].煤炭技術(shù),2013,21(7):906-913.