王紀程,郁漢琪,房家軍
(南京工程學(xué)院,江蘇 南京 211100)
近年來,計算機視覺技術(shù)迅猛發(fā)展,機器視覺也越來越廣泛地應(yīng)用到各個領(lǐng)域,尤其是結(jié)合工業(yè)機器人的視覺系統(tǒng)在自動化生產(chǎn)中占據(jù)著重要的地位。工業(yè)機器人是機械、自動控制、傳感器等先進技術(shù)融合的產(chǎn)物,是實現(xiàn)智能制造的關(guān)鍵[1]。機器視覺作為一門新興的學(xué)科,近年來在交通、醫(yī)療[2-3]等眾多領(lǐng)域都有著重要的作用。
機器視覺主要分為單目視覺和雙目視覺兩種。近幾年,國內(nèi)外專家學(xué)者對機器視覺技術(shù)進行了大量的研究,提出了許多視覺理論與算法并結(jié)合工業(yè)機器人用于工件識別定位與抓取。在識別與抓取過程中往往需要獲取目標的三維信息,單目視覺采集到的只是二維圖像,無法恢復(fù)場景的深度信息[4],而基于激光[5]、結(jié)構(gòu)光[6]、物理傳感器的主動測距方法雖能實現(xiàn)快速、準確、無干預(yù)地進行三維測量,但是設(shè)備成本較高,無法達到普遍應(yīng)用。相較之下,雙目立體視覺技術(shù),具有結(jié)構(gòu)簡單、自動化程度高、算法時空復(fù)雜度較低等優(yōu)勢,受到了國內(nèi)外各界學(xué)者的關(guān)注與研究。
雙目成像模型主要有一般雙目成像模型以及標準雙目成像模型。一般雙目成像模型重建場景的深度信息過程較為復(fù)雜,因此在實際中常常采用簡化的標準雙目視覺系統(tǒng),即以光軸相互平行的方式布置兩個相機。標準的雙目視覺系統(tǒng)如圖1所示。
圖1 雙目視覺系統(tǒng)原理圖
圖1中,Ol與Or分別是左、右兩個相機的光心;pl與pr為目標P分別在左、右相機成像平面上的像點;f為相機焦距;Z為場景的深度信息;d為左右兩幅圖像的視差值;b為兩個相機放置的水平距離,稱作基線。假設(shè)目標點P(xW,yW,zW)在左圖像平面所成的像點pl的坐標為(xl,yl),在右圖像平面所成pr的坐標為(xr,yr),則視差d=xl-xr。根據(jù)相似三角形原理得:
(1)
空間三維坐標與圖像坐標系之間的投影關(guān)系如圖2所示。
圖2 相機投影模型
攝像機的成像過程實際上也就是世界坐標系、相機坐標系到圖像坐標系及像素坐標系之間的相互轉(zhuǎn)換的過程,根據(jù)相機的透視模型可得到相機的線性模型:
(2)
式中:M1為相機的內(nèi)部參數(shù)矩陣;M2為相機的外部參數(shù)矩陣。
由于相機鏡頭在制造與安裝過程中受到諸多因素的影響,因此在實際中不存在理想的攝像機線性模型,都會產(chǎn)生一些畸變,而求解相機的內(nèi)外參數(shù)、消除畸變的過程就是相機標定的過程。本文采用張正友標定法對搭建的視覺系統(tǒng)進行標定。
實驗采取15組不同姿態(tài)下的棋盤標定板圖像,提取角點進行標定實驗,實驗過程如圖3所示。
圖3 提取角點的標定
先完成單目相機的標定,再進行雙目相機的標定,從而獲得左、右相機的相對位姿。雙目相機標定結(jié)果如表1所示,左、右相機的相對位姿如表2所示。
表1 左、右相機的內(nèi)部參數(shù)
表2 左、右相機的相對位姿
通過對左、右相機的實際測量,左、右相機布置的實際水平距離為6.2 cm,標定結(jié)果為6.12 cm。通過對比表1、表2實際參數(shù)值與標定參數(shù)值,發(fā)現(xiàn)標定誤差很小,可以滿足后期三維重建的精度要求。
圖像處理是機器視覺中的基礎(chǔ)部分,常用的模板匹配方法主要有基于灰度、相關(guān)性、形狀的模板匹配。但這些方法往往易受到光照的影響,對于灰度變化、圖像形變以及遮擋等問題無法進行準確的目標識別,因此本文采用基于特征描述子的模板匹配方法,提高匹配的準確性。
本文采用在ICCV2011上由RUBLEE E等人提出的ORB算法[7]。由于ORB算法的特征描述子并不具備尺度不變性特征,而且尺度突變會影響特征匹配的精度,因此對ORB算法需進行改進,研究出一種將具有尺度不變性的BRIEF特征描述子與ORB特征檢測子結(jié)合的特征匹配方法[8],再用RANSAC算法迭代剔除誤匹配。
本文采用Oriented FAST關(guān)鍵點檢測對目標工件進行特征提取。Oriented FAST對原FAST算法進行了改進,以解決原FAST關(guān)鍵點數(shù)量大、不確定的問題。其次,運用Oriented FAST算法,通過圖像金字塔和圖像質(zhì)心法解決了旋轉(zhuǎn)和尺度不變性的問題,計算過程如下。
1)計算圖像的矩:
(3)
2)確定圖像塊質(zhì)心:
(4)
3)定義特征點方向:
(5)
通過采用上述方法,解決了Oriented FAST關(guān)鍵點缺乏旋轉(zhuǎn)和尺度不變性的問題,有效地提高了關(guān)鍵點的魯棒性。
BRIEF描述子的描述向量是由1和0組成的,是一種最簡單的二進制描述子,可以將其描述向量定義為:
(6)
其中:p(x)、p(y)分別為圖像塊p在像素點x、y處的灰度值。隨機選擇n對點(xi,yi)就能夠產(chǎn)生1個二進制字符串,其中n可取128、256、512。特征相關(guān)性越低則越優(yōu)秀,經(jīng)過實驗最終選取特征相關(guān)性較低的256對優(yōu)秀特征對。
本文實驗選定的不規(guī)則目標工件的模板如圖4所示。
圖4 實驗選定模板
對工件進行旋轉(zhuǎn)、傾斜、遮擋、過暗或過亮以及雜亂背景的情況下的模板匹配實驗,記錄匹配完成的時間、匹配的關(guān)鍵點數(shù)目。目標實驗設(shè)置的6副樣本如圖5所示。
圖5 算法識別效果圖
從圖5中可以看出,采用本文的目標識別算法在不同姿態(tài)、不同環(huán)境下的目標物體均可被準確識別。
各個樣本實驗完成匹配的時間、匹配點數(shù)如表3所示。
表3 各個樣本實驗完成匹配時間、匹配點數(shù)
由實驗結(jié)果可知,采用本文的目標識別算法,能夠快速地將不同姿態(tài)、不同環(huán)境下的目標物體識別出來,采用RANSAC算法剔除誤匹配后,大大縮短了匹配時間,降低了匹配錯誤率。
對物體進行三維重建,關(guān)鍵是求解其深度信息。在雙目立體視覺中,通常采用立體匹配的方法對采集到的左、右兩幅圖像進行匹配,獲得對應(yīng)的視差圖,從而恢復(fù)圖像的深度信息。立體匹配可分為區(qū)域匹配、特征匹配和相位匹配。其中特征匹配具有速度快、精度高、受光照影響小的優(yōu)點,因此本文選擇特征匹配算法。通過該算法得到可能的特征匹配點后,采用相似性測度,找出最優(yōu)匹配。常用的相似性判斷標準有SAD、SSD和NCC。從算法的復(fù)雜度和硬件實現(xiàn)的難易程度上來看,SSD和NCC算法耗時量大,不符合實際作業(yè)要求,因此本文選擇SAD算法[9]。SAD算法表達式為:
PR(i+h,j+k+disp)|
(7)
其中:disp為左相機拍攝的圖像上窗口在外極線上移動的距離,即視差;PL(i,j)、PR(i,j)表示輸入的兩幅圖像的灰度值。
為提高立體匹配的準確性及效率,本文采取了以下措施:1)將模板匹配識別出的目標物所在的區(qū)域設(shè)置為ROI區(qū)域,僅將該區(qū)域與另一幅圖像進行立體匹配;2)采用Grab Cut交互式前景背景分割算法,獲得需要研究的前景目標,消除背景干擾因素;3)在進行搜索時,給定一個合理的視差搜索范圍,約束搜索空間,如式(8)-式(9)所示。
(8)
(9)
本文選用圖4為實驗?zāi)0?,進行立體匹配,獲得視差圖恢復(fù)其深度信息。實驗結(jié)果如圖6所示。
圖6 不同場景下的識別效果圖
通過上述對兩幅圖像進行立體匹配并結(jié)合雙目視覺系統(tǒng)的標定結(jié)果,可重建出圖像上一點p(u,v)對應(yīng)的世界坐標PW=(xW,yW,zW)。本文將世界坐標系設(shè)立在左攝像機的相機坐標系下,則有x1=xW,y1=yW,z1=zr=zW。
為驗證重建算法的精確性,從實驗?zāi)0鍒D中選取10個特征點進行三維重建,將其重建結(jié)果記錄下來并進行誤差分析,如表4所示。
表4 目標物體三維信息 單位:mm
由實驗結(jié)果得知,本文所采用的算法精度較高,深度信息誤差在0 mm~4 mm之間,滿足精度要求。其中,在物體傾斜、遮擋的情況下誤差較大。
本文搭建了標準的雙目視覺系統(tǒng),采用張正友標定法對視覺系統(tǒng)進行標定,消除鏡頭畸變,獲得相機的內(nèi)部參數(shù)以及左、右相機的相對位姿。
采用改進后的ORB+RANSAN特征點匹配算法對工件進行識別。實驗結(jié)果表明,該算法對旋轉(zhuǎn)、遮擋、傾斜以及復(fù)雜背景等各種條件下的物體均能快速、準確地進行識別。
本文采用特征匹配算法,對同一場景對應(yīng)的兩幅圖像進行了立體匹配,獲得視差值,結(jié)合標定結(jié)果對特征點進行了三維重建。