《基于LabVIEW 的機(jī)器視覺實現(xiàn)》由會員分享,可在線閱讀,更多相關(guān)《基于LabVIEW 的機(jī)器視覺實現(xiàn)(4頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、基于LabVIEW 的機(jī)器視覺實現(xiàn)
裴忠發(fā),趙敬斌,羅志增
(杭州電子工業(yè)學(xué)院 機(jī)器人研究所,浙江 杭州310037)
??? 摘? 要:介紹了從圖像獲取、圖像處理、圖像理解等幾個方面去實現(xiàn)具有視覺功能裝配機(jī)器人的方法。
??? 關(guān)鍵詞:機(jī)器視覺;圖像處理;圖像理解
1 引 言
??? 機(jī)器視覺是指用計算機(jī)來模擬人的視覺功能的一門科學(xué)技術(shù),它的目標(biāo)就是用圖像獲取來恢復(fù)現(xiàn)實世界的模型,然后認(rèn)知現(xiàn)實世界。機(jī)器視覺是一個相當(dāng)新穎而且發(fā)展十分迅速的研究領(lǐng)域。自從20世紀(jì)50年代就著眼于研究統(tǒng)計模式識別繼而開始機(jī)器視覺的探討建立了不少機(jī)器視覺理論,如馬爾(Marr)計算理論、正則化理論等,
2、大大地推動了機(jī)器視覺研究的發(fā)展。目前,機(jī)器視覺廣泛地應(yīng)用于工業(yè)檢測,醫(yī)學(xué)、遙感圖像處理,鑒別、監(jiān)視系統(tǒng)等方面。
??? 通過對機(jī)器視覺的研究,自行編寫識別軟件和引用美國NI公司的應(yīng)用軟件LabVIEW相結(jié)合的辦法進(jìn)行機(jī)器視覺的開發(fā),實現(xiàn)裝配機(jī)器人的視覺功能。
2LabVIEW簡介
??? LabVIEW是基于程序代碼的一種圖形化編程語言。其提供了大量的圖像預(yù)處理、圖像分割、圖像理解函數(shù)庫和開發(fā)工具,用戶只要在流程圖中用圖標(biāo)連接器將所需要的子VI(Virtual Instruments,LabVIEW開發(fā)程序)連接起來就可以完成目標(biāo)任務(wù)。任何1個VI都有3部分組成:可交互的用戶界面、流程
3、圖和圖標(biāo)連接器。LabVIEW編程簡單,而且對工件的正確識別率很高。
3圖像獲取
3.1硬件組成
??? (1) 彩色CCD攝像機(jī)。由光學(xué)鏡頭和圖像傳感器及相關(guān)電路組成,豎直安放在裝配機(jī)器人的正上方。
??? (2) 圖像采集卡。完成對攝像頭中的圖像信號的A/D轉(zhuǎn)換,插在PC機(jī)的插槽上,CCD器件和圖像采集卡通過視頻信號線連接起來。
??? (3) PC機(jī)。通過CCD攝像頭和圖像采集卡獲得的圖像在PC機(jī)上顯示,通過LabView編寫的程序?qū)崿F(xiàn)對不同工件的識別。其結(jié)構(gòu),如圖1所示。
3.2軟件實現(xiàn)
??? VFW(Video for Windows)是微軟公司推出的基于W
4、indows的視頻開發(fā)平臺,提出了AVI文件標(biāo)準(zhǔn),為用戶提供了一套應(yīng)用程序接口函數(shù)(API),通過VC++這個開發(fā)工具就可以開發(fā)視頻采集播放程序。
??? (1) 調(diào)用capCreateCaptureWindow函數(shù)創(chuàng)建一個采集窗口,所有的采集操作和設(shè)置都以該窗口為基礎(chǔ),其形式為:
其中,參數(shù)nID代表窗口號。
??? (2) 調(diào)用CapDriverConnect函數(shù)將視頻采集卡的驅(qū)動程序和采集窗口連接起來,其形式為:
??? capDriverConnect(hwndC,nIndex)
其中,參數(shù)hwndC為窗口句柄,nIndex為驅(qū)動程序的索引號。
??? (3) 調(diào)用Fr
5、ameCallbackProc函數(shù)在內(nèi)存進(jìn)行圖像數(shù)據(jù)的采集,其形式為:
??? FrameCallbackProc(HWND hwnd, LPVIDEOHDR lpVHdr)
??? (4) 調(diào)用capFileSaveDIB函數(shù)將采集到的圖像存到硬盤,其形式為:
??? capFileSaveDIB(hwndC,“C:\\xxxx.bmp ")
??? 至此,外界環(huán)境就被計算機(jī)所獲取存于硬盤的某一目錄下以供計算機(jī)做進(jìn)一步的處理分析。
4 圖像處理
??? 通過攝像頭獲取的圖像由于受到外界環(huán)境的影響,因此,對圖像進(jìn)行預(yù)處理非常重要,其目的就是要恢復(fù)周圍環(huán)境的真實圖像。其主要方法有平滑
6、、銳化、增強(qiáng)、邊緣檢測等。
??? (1) 平滑。主要是為了減少噪聲,在時域內(nèi)一般用鄰域平均的辦法,即對圖像中的每個像素點(diǎn)取鄰域S,計算所有S中的像素中顏色平均值作為處理后的圖像的該點(diǎn)的像素值。算式為:
式中M——像素點(diǎn)的數(shù)目
??? S——(x,y)點(diǎn)的頻域
??? 在頻域主要用低通濾波器處理。
??? (2) 銳化。其目的是為了使邊緣和輪廓模糊的圖像變得清晰,它是平均的逆處理,即微分處理,即:
?
??? 對于數(shù)字圖像,可改寫如下:
??? 在頻域主要用高通濾波器處理。
??? (3) 增強(qiáng)。是將圖像中感興趣的特征有選擇的突出,而不必逼近原圖像,在時域內(nèi)主要
7、方法為直方圖均衡。若一幅數(shù)字圖像灰度等級為M,各像素灰度值為rk(k=0,1,2,3,…,M-1),灰度值的概率估計Pr(k)為:
??? Pr(k)=nk/n (k=0,1,2,…,M-1) (4)
式中nk——灰度值為的像素點(diǎn)數(shù)
??? n——像素點(diǎn)總數(shù)
??? 直方圖均衡就要使它線性化,使含有像素多的幾個灰度級間隔被拉大,壓縮像素少的幾個灰度級,從而增大視覺接受的信息量。
??? (4) 邊緣檢測。邊緣是圖像灰度變化比較劇烈的地方,在灰度變化大的地方進(jìn)行微分將產(chǎn)生高值,此處便是邊緣,在數(shù)字圖像中用差分代替微分運(yùn)算。常見的有拉普拉斯運(yùn)算:
5 圖像理解與識別
??? 圖
8、像理解就是要對圖像特征作出描述或解釋,它包括兩個主要過程:圖像分割或圖像分類。利用閾值分割,實現(xiàn)從圖像中分割出各目標(biāo)物體,然后提取它們的特征參數(shù)進(jìn)行特征模板匹配。常見的特征參數(shù)有面積、形狀、矩不變量等。面積A的數(shù)學(xué)表達(dá)式為:
式中k——每個像素的面積
??? n——像素總數(shù)目
??? 形狀因子S的可表示為:
??? S=l2/A
式中l(wèi)——物體周長
??? 區(qū)域的(p+q)階中心矩定義為:
??? 工業(yè)機(jī)器人正確識別了工件之后,必須確定工件的實際的具體的位置從而進(jìn)行正確的抓取。為此,必須建立機(jī)器人本身各連桿之間的運(yùn)動學(xué)關(guān)系。以機(jī)器人的機(jī)座為參考坐標(biāo)系,建立機(jī)器人的運(yùn)動學(xué)
9、方程,其通式為然后對其求逆,解出機(jī)器人各關(guān)節(jié)相對與參考坐標(biāo)系的位置。以此參數(shù)控制各關(guān)節(jié)電機(jī)的運(yùn)行,實現(xiàn)對工件的準(zhǔn)確抓取。
6LabView程序?qū)崿F(xiàn)
??? 基于以上算法,LabView的庫函數(shù)相應(yīng)地提供了子VI,如:顏色匹配子VI、形狀匹配子VI、邊緣檢測子VI、圖像銳化子VI、圖像增強(qiáng)子VI、物體形心坐標(biāo)子VI等等,用戶只要用導(dǎo)線將必要的其他子VI連接起來,就可以完成對獲得圖像的預(yù)處理、理解,從而實現(xiàn)機(jī)器人的視覺。
7結(jié)束語
??? 通過將美國NI公司的圖像處理軟件LabVIEW進(jìn)行機(jī)器視覺的開發(fā),實現(xiàn)了裝配機(jī)器人準(zhǔn)確無誤地識別不同顏色、不同形狀的工件。
參考文獻(xiàn)
[1]夏良正.數(shù)字圖像處理[M].南京:東南大學(xué)出版社,1999.
[2] 何發(fā)昌,邵 遠(yuǎn).多功能機(jī)器人的原理及應(yīng)用[M].北京:高等教育出版社,1996.
[3] 賈云得.機(jī)器視覺[M].北京:科學(xué)出版社,2000.