艾青林,劉 賽,沈智慧
(浙江工業(yè)大學(xué) 機(jī)械工程學(xué)院,浙江 杭州 310014)
機(jī)器人視覺導(dǎo)航是移動(dòng)機(jī)器人研究的重要方向。由于視覺傳感器相互間不易產(chǎn)生干擾,獲取圖像信息的速度非常快,而且它是被動(dòng)接受信號(hào),不易被發(fā)現(xiàn)[1],因而業(yè)界對(duì)基于立體視覺的障礙物研究越來(lái)越廣泛。近年來(lái),對(duì)立體視覺的研究主要從4個(gè)方面進(jìn)行[2]:圖像的邊緣信息、顏色信息、光流場(chǎng)的變化和立體視覺。
(1)圖像邊緣背景復(fù)雜、信息量大,但容易受到噪聲影響[3];(2)基于顏色信息的障礙物檢測(cè)適用于結(jié)構(gòu)化道路,但機(jī)器人的工作環(huán)境復(fù)雜,一些水漬、物體的陰影可能被理解成障礙物,造成誤檢[4-5];(3)基于光流的障礙物檢測(cè)在檢測(cè)動(dòng)態(tài)障礙物上有優(yōu)勢(shì),但是其計(jì)算量大、耗時(shí)長(zhǎng)[6];(4)立體視覺從多個(gè)圖像中提取出目標(biāo)物體的三維信息,相互匹配獲取圖像和深度信息,但計(jì)算量大,無(wú)法滿足檢測(cè)的實(shí)時(shí)性要求[7]。
近年來(lái),隨著芯片性能的提高,基于三維拼接的方法獲取更大視角圖像方法受到普遍關(guān)注[8]。
機(jī)器人在外部復(fù)雜環(huán)境中,受攝像頭視角限制,很難獲取障礙物的完整信息,針對(duì)這個(gè)問(wèn)題,本文將輪廓識(shí)別和立體視覺方法相結(jié)合,基于雙重配準(zhǔn)算法對(duì)雙目立體視角下兩幅重建的三維點(diǎn)云進(jìn)行拼接,以消除噪聲等環(huán)境因素影響,快速準(zhǔn)確得到障礙物信息;同時(shí),根據(jù)具體要求改變視角范圍,實(shí)現(xiàn)大視角障礙物檢測(cè)。
作為雙目視覺的重點(diǎn)[9],立體匹配的好壞直接影響三維重建的結(jié)果[10]。然而,通常情況下,提高立體匹配精度會(huì)增加算法的計(jì)算量,從而影響機(jī)器人障礙物檢測(cè)的實(shí)時(shí)性。針對(duì)這些問(wèn)題,本文提出了基于輪廓識(shí)別的立體匹配方法,并在此基礎(chǔ)上進(jìn)行快速三維重建。
灰度匹配原則假設(shè)圖像中的物體都是純漫反射的[11],而且不考慮物體間的相互反射造成的光影變化,這樣的假設(shè)在短基線的圖像對(duì)中可以成立。灰度匹配原則降低了問(wèn)題的復(fù)雜性,減少了匹配計(jì)算量。
若要計(jì)算兩個(gè)圖像點(diǎn)p1=(x1y11)T和p2=(x2y21)T的匹配度,為了提高匹配的準(zhǔn)確率,以這兩個(gè)圖像點(diǎn)為中心的n×n窗口匹配。
3×3灰度窗口的向量表示如圖1所示。

圖1 3×3灰度窗口的向量表示
以圖1所示的中點(diǎn)p1為例,將點(diǎn)p1所在3×3窗口中所有像素點(diǎn)的灰度值按順序構(gòu)成向量v1。同理,對(duì)點(diǎn)p2也做相應(yīng)處理,得到向量v2。若向量v1和v2的夾角越小,則認(rèn)為兩個(gè)點(diǎn)的匹配度越高;反之,匹配度越低。
兩個(gè)向量之間的余弦值為:
(1)
式中:θ—兩向量之間的夾角。
當(dāng)cosθ=0時(shí),兩向量具有最佳匹配;若cosθ=0,則兩向量的匹配度最低,通過(guò)多次試驗(yàn)得出,取閾值cosθ≥0.9時(shí),兩幅圖像具有較高的匹配效果。
基于輪廓識(shí)別的立體匹配算法:首先對(duì)圖像中障礙物的輪廓進(jìn)行檢測(cè)和匹配,然后采用基于窗口的灰度匹配原則,對(duì)匹配輪廓上的每個(gè)像素點(diǎn)進(jìn)行匹配,從而減小搜索范圍,提高效率和準(zhǔn)確率。
基于輪廓識(shí)別的三維重建流程圖如圖2所示。

圖2 基于輪廓識(shí)別的三維重建流程圖
由圖2可知,基于輪廓識(shí)別的立體匹配及三維重建算法分為8個(gè)步驟:
(1)攝像機(jī)標(biāo)定。基于張正友標(biāo)定法利用Matlab對(duì)雙目視覺系統(tǒng)進(jìn)行標(biāo)定,獲取攝像機(jī)的內(nèi)外參數(shù),得到更加準(zhǔn)確的成像模型;
(2)原始圖像獲取。原始圖像的獲取是三維重建的前提,系統(tǒng)通過(guò)2臺(tái)保持一定基距的攝像機(jī)獲取目標(biāo)物體的原始圖像;
(3)邊緣檢測(cè)。為了在精確定位和抑制噪聲之間保持一定的平衡,采用Canny算子對(duì)平滑濾波后的左右兩幅圖像邊緣點(diǎn)進(jìn)行檢測(cè);
(4)邊界跟蹤。通過(guò)閉運(yùn)算連接輪廓上的細(xì)小的缺口、裂縫,得到物體完整的邊緣。本文中采用5×5的方形核進(jìn)行閉運(yùn)算;
(5)輪廓查找。通過(guò)查找目標(biāo)物體輪廓并計(jì)算輪廓長(zhǎng)度,舍去小于閾值的輪廓,降低立體匹配的計(jì)算量;
(6)輪廓匹配。對(duì)左右兩幅圖像中物體的輪廓進(jìn)行匹配,尋找對(duì)應(yīng)的物體輪廓;
(7)立體匹配。對(duì)匹配輪廓上的每個(gè)像素點(diǎn)進(jìn)行立體匹配,匹配值大于閾值的一對(duì)像素點(diǎn)視為匹配點(diǎn);
(8)三維重建。根據(jù)攝像機(jī)標(biāo)定的內(nèi)外參數(shù)并結(jié)合匹配點(diǎn)計(jì)算目標(biāo)障礙物輪廓的三維信息。
一般情況下,雙目立體視覺得到三維信息的范圍是固定的,因此無(wú)法得到大視角范圍內(nèi)障礙物的整體三維信息。本文提出了一種基于雙重配準(zhǔn)的可變視角三維拼接方法,通過(guò)4個(gè)步驟實(shí)現(xiàn)。
尋找重疊區(qū)域是圖像拼接的前提,準(zhǔn)確而快速地找到重疊區(qū)域則是其重點(diǎn)[12-13]。根據(jù)輪廓Hu的不變性,本文提出對(duì)用于三維重建的兩組圖像中左圖像Pl1,Pl2進(jìn)行輪廓匹配,然后尋找匹配輪廓對(duì)應(yīng)的三維輪廓點(diǎn)云,即兩點(diǎn)云的初始重疊區(qū)域。
為了預(yù)先去除因噪聲和誤匹配造成的異常點(diǎn),本文通過(guò)計(jì)算每個(gè)目標(biāo)物體的輪廓對(duì)應(yīng)的三維點(diǎn)云中相鄰兩點(diǎn)之間的平均距離L,以平均距離的兩倍為閾值,若存在三維點(diǎn)到任意相鄰三維點(diǎn)的距離大于2L,則將其視為噪聲點(diǎn)舍去,從而得到優(yōu)化后的重疊區(qū)域。
本研究計(jì)算對(duì)應(yīng)的三維輪廓點(diǎn)云的重心,分別以兩點(diǎn)云中距離重心最遠(yuǎn)的點(diǎn)pf,中間的點(diǎn)Pm和最近的點(diǎn)pn為特征點(diǎn),通過(guò)這3個(gè)對(duì)應(yīng)的三維點(diǎn)求解出兩坐標(biāo)系之間旋轉(zhuǎn)矩陣、平移矩陣和尺度因子,以雙目視覺系統(tǒng)的全局坐標(biāo)系O1為基準(zhǔn),將兩點(diǎn)云轉(zhuǎn)換到同一坐標(biāo)系下,完成初始配準(zhǔn)。
為了能得到更高的配準(zhǔn)精度,筆者基于ICP算法對(duì)經(jīng)過(guò)初始配準(zhǔn)后的輪廓點(diǎn)云數(shù)據(jù)進(jìn)行精確配準(zhǔn)。本研究用點(diǎn)集{pi}和{xi}來(lái)表示點(diǎn)云數(shù)據(jù)P和X,利用ICP算法[14],為點(diǎn)集中每一個(gè)點(diǎn)匹配到到另一點(diǎn)集中距離最近點(diǎn)并使其距離的平方和最小,從而計(jì)算出點(diǎn)云間的轉(zhuǎn)換矩陣。以矢量q=[qR|qT]表示兩點(diǎn)之間的轉(zhuǎn)換矩陣,應(yīng)用到點(diǎn)云P中,計(jì)算所有點(diǎn)對(duì)的距離平方和:
(2)
為了準(zhǔn)確計(jì)算f(q)的最小值,先計(jì)算點(diǎn)云P和X的重心:
(3)
(4)
兩片點(diǎn)云的互協(xié)方差矩陣為:

(5)

(6)
式中:I3—3×3的恒等矩陣。
由式(6)和qR得到旋轉(zhuǎn)矩陣:
R=
(7)
通過(guò)迭代計(jì)算得到第一個(gè)距離平方和小于給定閾值的點(diǎn)對(duì):
qT=μx-R(qR)μp
(8)
本文通過(guò)給點(diǎn)云中不同點(diǎn)賦予不同的權(quán)重,剔除其中權(quán)重大于給定閾值的點(diǎn)來(lái)減少計(jì)算量,提高其運(yùn)行的效率:
(9)
式中:D(p1,p2)—對(duì)應(yīng)點(diǎn)(p1,p2)之間的歐氏距離;Dmax—距離的最大值。
經(jīng)過(guò)處理后,迭代運(yùn)算中數(shù)據(jù)量明顯減少,極大地提高了ICP算法的效率。
由式(9)可以看出:兩點(diǎn)的距離越近,賦給這一對(duì)點(diǎn)的權(quán)值就越大。
使用改進(jìn)后的ICP算法對(duì)兩點(diǎn)集及進(jìn)行計(jì)算。其中:X與P元素?cái)?shù)目不一定相同,假設(shè)k≥n,根據(jù)公式(8)給點(diǎn)云數(shù)據(jù)點(diǎn)賦予權(quán)值,并剔除權(quán)值小于閾值的數(shù)據(jù)點(diǎn);然后尋找最近點(diǎn),即為集合X中的每一個(gè)數(shù)據(jù)點(diǎn),尋找在集合P中距該數(shù)據(jù)點(diǎn)空間距離最近的數(shù)據(jù)點(diǎn),將這些對(duì)應(yīng)點(diǎn)組成的新點(diǎn)集命名為;對(duì)點(diǎn)集U與Q配準(zhǔn)計(jì)算,得到兩點(diǎn)集之間的變換矩陣R、T,其中:R—3×3的旋轉(zhuǎn)矩陣,T—3×1的平移矩陣。用配準(zhǔn)變換矩陣R、T對(duì)集合X進(jìn)行坐標(biāo)變換,得到新的點(diǎn)集X1,為X1=RX+T。如果目標(biāo)函數(shù)誤差小于閾值,則結(jié)束,否則,以U1替換U,重復(fù)上述步驟。
為了得到更好的拼接效果,消除配準(zhǔn)后三維點(diǎn)云存在的裂縫等,本文選用加權(quán)平均融合算法對(duì)拼接后的三維點(diǎn)云進(jìn)行融合處理[15]。
取加權(quán)系數(shù)α=0.5,β=0.5,得到加權(quán)平均融合算法:
(10)
六足機(jī)器人雙目視覺實(shí)驗(yàn)平臺(tái)圖3所示。

圖3 機(jī)器人雙目視覺實(shí)驗(yàn)平臺(tái)
本文在該平臺(tái)對(duì)三維拼接方法進(jìn)行驗(yàn)證。其中,六足機(jī)器人樣機(jī)采用CM-700作為下位機(jī)主控板驅(qū)動(dòng)關(guān)節(jié)舵機(jī)和外部傳感器。機(jī)器人每條腿各有3個(gè)關(guān)節(jié),共18個(gè),全部采用RX-24F舵機(jī)驅(qū)動(dòng),板載傳感器包括測(cè)距傳感器DMS-80以及陀螺儀傳感器,機(jī)身和腿部采用硬質(zhì)鋁合金構(gòu)造。所用攝像機(jī)為兩臺(tái)U-500C工業(yè)相機(jī),YX0612攝像頭,其分辨率為2 560×1 920,焦距為6 mm~12 mm。
三維重建在32位Window XP操作系統(tǒng)上以VS2010、VC6和Matlab平臺(tái)進(jìn)行編程實(shí)現(xiàn)。利用Directshow技術(shù),在VS2010平臺(tái)上開發(fā)雙目立體視覺系統(tǒng)的圖像采集程序。通過(guò)Matlab工具箱對(duì)攝像機(jī)進(jìn)行標(biāo)定,并在VC6平臺(tái)利用OpenCV和OpenGL開發(fā)包完成圖像的三維重建和三維拼接。
雙目視覺系統(tǒng)拍攝的環(huán)境障礙物如圖4所示。
經(jīng)過(guò)邊緣檢測(cè)并優(yōu)化后得到的目標(biāo)障礙物完整輪廓信息如圖5所示。

圖4 雙目立體視覺系統(tǒng)原始圖像

圖5 目標(biāo)物體邊緣檢測(cè)及優(yōu)化后邊緣圖像
經(jīng)過(guò)邊緣檢測(cè)以后,圖像的像素點(diǎn)減少70%以上,使得后續(xù)圖像處理的運(yùn)算速度得到極大提高。從圖5中可知:邊緣的缺口、裂縫等已經(jīng)通過(guò)邊界跟蹤被消除了,背景環(huán)境中的污漬、陰影等已經(jīng)通過(guò)輪廓查找被舍棄。取閾值cosθ=0.9對(duì)圖5進(jìn)行輪廓匹配,生成的三維輪廓點(diǎn)云如圖6所示。

圖6 三維重建后生成的輪廓點(diǎn)云
由圖6可見:生成的三維重建圖像輪廓非常接近實(shí)際障礙物模型。
為了定量計(jì)算該重建算法的精度,筆者選取重建模型輪廓上的6個(gè)角點(diǎn)計(jì)算沿不同坐標(biāo)軸方向的平均重建誤差和相對(duì)重建誤差,各角點(diǎn)實(shí)際坐標(biāo)值與重建坐標(biāo)值如表1所示。

表1 各角點(diǎn)重建坐標(biāo)值與實(shí)際坐標(biāo)值
本研究通過(guò)對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行測(cè)量對(duì)比可知:X方向的平均重建誤差為0.098 cm,相對(duì)重建誤差為0.205%;Y方向平均重建誤差為0.081 cm,相對(duì)重建誤差為0.285%;Z方向的平均重建誤差為0.369 cm,相對(duì)重建誤差為0.181%。可知基于輪廓識(shí)別的快速三維重建精度較高,能夠達(dá)到機(jī)器人目標(biāo)障礙物檢測(cè)的要求。
通過(guò)雙目立體視覺系統(tǒng)對(duì)障礙物不同視角進(jìn)行拍攝得到的4幅原始圖像如圖7所示。

圖7 雙目立體視覺系統(tǒng)兩次拍攝的原始圖像
經(jīng)過(guò)邊緣檢測(cè)及邊緣跟蹤后得到完整的目標(biāo)障礙物輪廓信息如圖8所示。

圖8 目標(biāo)物體邊緣檢測(cè)及優(yōu)化的邊緣圖像
本研究分別對(duì)圖8中兩次拍攝圖像的輪廓信息進(jìn)行輪廓匹配和三維重建,得到的兩組三維重建圖像輪廓點(diǎn)云如圖9所示。

圖9 重建兩次拍攝圖像的三維點(diǎn)云
本研究通過(guò)上述拼接方法對(duì)圖9的兩組三維點(diǎn)云進(jìn)行拼接和融合,得到三維圖像如圖10所示。

圖10 基于雙重配準(zhǔn)算法拼接大視野三維點(diǎn)云
由圖10可知:通過(guò)將兩組三維點(diǎn)云在同一坐標(biāo)系下進(jìn)行拼接融合以后,機(jī)器人進(jìn)行障礙物檢測(cè)的視角大大提高。
為了定量計(jì)算三維拼接以后生成的圖像精度,本研究選取目標(biāo)物體輪廓上的角點(diǎn)計(jì)算拼接誤差,各角點(diǎn)實(shí)際坐標(biāo)值與拼接后的坐標(biāo)值如表2所示。

表2 各角點(diǎn)的拼接坐標(biāo)值與實(shí)際坐標(biāo)值
由對(duì)比實(shí)驗(yàn)結(jié)果可知:X方向的平均重建誤差為0.098 cm,相對(duì)重建誤差為0.189%;Y方向平均重建誤差為0.048 cm,相對(duì)重建誤差為0.210%;Z方向的平均重建誤差為0.413 cm,相對(duì)重建誤差為0.184%。由此可見:基于雙重配準(zhǔn)算法對(duì)兩幅三維重建圖像進(jìn)行拼接以后,機(jī)器人進(jìn)行障礙物檢測(cè)的視角大大提高,且重建誤差較低。
針對(duì)機(jī)器人在外部環(huán)境中因視野范圍受限,無(wú)法準(zhǔn)確獲取障礙物完整信息這一問(wèn)題,本文通過(guò)可變視角三維拼接方法重建了障礙物三維模型,獲取了障礙物更大的視野圖像,具體如下:
(1)將基于輪廓識(shí)別的邊緣檢測(cè)法與三維重建方法相結(jié)合,準(zhǔn)確獲取了目標(biāo)障礙物的輪廓信息,消除了多余輪廓,減少了大部分圖像像素點(diǎn),極大地提高了算法的運(yùn)算速度;
(2)提出了基于雙重配準(zhǔn)算法的可變視角三維拼接方法,建立了數(shù)學(xué)模型,通過(guò)改變雙目立體視角范圍獲取障礙物的更大視野圖像,并根據(jù)點(diǎn)云融合算法提高了配準(zhǔn)精度;
(3)進(jìn)行了可變視角三維拼接實(shí)驗(yàn),結(jié)果表明:通過(guò)可變視角三維拼接方法重建的三維模型具有較高的空間坐標(biāo)精度,且圖像誤差較小。