艾青林,劉 賽,沈智慧
(浙江工業(yè)大學 機械工程學院,浙江 杭州 310014)
機器人視覺導航是移動機器人研究的重要方向。由于視覺傳感器相互間不易產(chǎn)生干擾,獲取圖像信息的速度非???,而且它是被動接受信號,不易被發(fā)現(xiàn)[1],因而業(yè)界對基于立體視覺的障礙物研究越來越廣泛。近年來,對立體視覺的研究主要從4個方面進行[2]:圖像的邊緣信息、顏色信息、光流場的變化和立體視覺。
(1)圖像邊緣背景復雜、信息量大,但容易受到噪聲影響[3];(2)基于顏色信息的障礙物檢測適用于結(jié)構(gòu)化道路,但機器人的工作環(huán)境復雜,一些水漬、物體的陰影可能被理解成障礙物,造成誤檢[4-5];(3)基于光流的障礙物檢測在檢測動態(tài)障礙物上有優(yōu)勢,但是其計算量大、耗時長[6];(4)立體視覺從多個圖像中提取出目標物體的三維信息,相互匹配獲取圖像和深度信息,但計算量大,無法滿足檢測的實時性要求[7]。
近年來,隨著芯片性能的提高,基于三維拼接的方法獲取更大視角圖像方法受到普遍關(guān)注[8]。
機器人在外部復雜環(huán)境中,受攝像頭視角限制,很難獲取障礙物的完整信息,針對這個問題,本文將輪廓識別和立體視覺方法相結(jié)合,基于雙重配準算法對雙目立體視角下兩幅重建的三維點云進行拼接,以消除噪聲等環(huán)境因素影響,快速準確得到障礙物信息;同時,根據(jù)具體要求改變視角范圍,實現(xiàn)大視角障礙物檢測。
作為雙目視覺的重點[9],立體匹配的好壞直接影響三維重建的結(jié)果[10]。然而,通常情況下,提高立體匹配精度會增加算法的計算量,從而影響機器人障礙物檢測的實時性。針對這些問題,本文提出了基于輪廓識別的立體匹配方法,并在此基礎(chǔ)上進行快速三維重建。
灰度匹配原則假設(shè)圖像中的物體都是純漫反射的[11],而且不考慮物體間的相互反射造成的光影變化,這樣的假設(shè)在短基線的圖像對中可以成立?;叶绕ヅ湓瓌t降低了問題的復雜性,減少了匹配計算量。
若要計算兩個圖像點p1=(x1y11)T和p2=(x2y21)T的匹配度,為了提高匹配的準確率,以這兩個圖像點為中心的n×n窗口匹配。
3×3灰度窗口的向量表示如圖1所示。
圖1 3×3灰度窗口的向量表示
以圖1所示的中點p1為例,將點p1所在3×3窗口中所有像素點的灰度值按順序構(gòu)成向量v1。同理,對點p2也做相應處理,得到向量v2。若向量v1和v2的夾角越小,則認為兩個點的匹配度越高;反之,匹配度越低。
兩個向量之間的余弦值為:
(1)
式中:θ—兩向量之間的夾角。
當cosθ=0時,兩向量具有最佳匹配;若cosθ=0,則兩向量的匹配度最低,通過多次試驗得出,取閾值cosθ≥0.9時,兩幅圖像具有較高的匹配效果。
基于輪廓識別的立體匹配算法:首先對圖像中障礙物的輪廓進行檢測和匹配,然后采用基于窗口的灰度匹配原則,對匹配輪廓上的每個像素點進行匹配,從而減小搜索范圍,提高效率和準確率。
基于輪廓識別的三維重建流程圖如圖2所示。
圖2 基于輪廓識別的三維重建流程圖
由圖2可知,基于輪廓識別的立體匹配及三維重建算法分為8個步驟:
(1)攝像機標定?;趶堈褬硕ǚɡ肕atlab對雙目視覺系統(tǒng)進行標定,獲取攝像機的內(nèi)外參數(shù),得到更加準確的成像模型;
(2)原始圖像獲取。原始圖像的獲取是三維重建的前提,系統(tǒng)通過2臺保持一定基距的攝像機獲取目標物體的原始圖像;
(3)邊緣檢測。為了在精確定位和抑制噪聲之間保持一定的平衡,采用Canny算子對平滑濾波后的左右兩幅圖像邊緣點進行檢測;
(4)邊界跟蹤。通過閉運算連接輪廓上的細小的缺口、裂縫,得到物體完整的邊緣。本文中采用5×5的方形核進行閉運算;
(5)輪廓查找。通過查找目標物體輪廓并計算輪廓長度,舍去小于閾值的輪廓,降低立體匹配的計算量;
(6)輪廓匹配。對左右兩幅圖像中物體的輪廓進行匹配,尋找對應的物體輪廓;
(7)立體匹配。對匹配輪廓上的每個像素點進行立體匹配,匹配值大于閾值的一對像素點視為匹配點;
(8)三維重建。根據(jù)攝像機標定的內(nèi)外參數(shù)并結(jié)合匹配點計算目標障礙物輪廓的三維信息。
一般情況下,雙目立體視覺得到三維信息的范圍是固定的,因此無法得到大視角范圍內(nèi)障礙物的整體三維信息。本文提出了一種基于雙重配準的可變視角三維拼接方法,通過4個步驟實現(xiàn)。
尋找重疊區(qū)域是圖像拼接的前提,準確而快速地找到重疊區(qū)域則是其重點[12-13]。根據(jù)輪廓Hu的不變性,本文提出對用于三維重建的兩組圖像中左圖像Pl1,Pl2進行輪廓匹配,然后尋找匹配輪廓對應的三維輪廓點云,即兩點云的初始重疊區(qū)域。
為了預先去除因噪聲和誤匹配造成的異常點,本文通過計算每個目標物體的輪廓對應的三維點云中相鄰兩點之間的平均距離L,以平均距離的兩倍為閾值,若存在三維點到任意相鄰三維點的距離大于2L,則將其視為噪聲點舍去,從而得到優(yōu)化后的重疊區(qū)域。
本研究計算對應的三維輪廓點云的重心,分別以兩點云中距離重心最遠的點pf,中間的點Pm和最近的點pn為特征點,通過這3個對應的三維點求解出兩坐標系之間旋轉(zhuǎn)矩陣、平移矩陣和尺度因子,以雙目視覺系統(tǒng)的全局坐標系O1為基準,將兩點云轉(zhuǎn)換到同一坐標系下,完成初始配準。
為了能得到更高的配準精度,筆者基于ICP算法對經(jīng)過初始配準后的輪廓點云數(shù)據(jù)進行精確配準。本研究用點集{pi}和{xi}來表示點云數(shù)據(jù)P和X,利用ICP算法[14],為點集中每一個點匹配到到另一點集中距離最近點并使其距離的平方和最小,從而計算出點云間的轉(zhuǎn)換矩陣。以矢量q=[qR|qT]表示兩點之間的轉(zhuǎn)換矩陣,應用到點云P中,計算所有點對的距離平方和:
(2)
為了準確計算f(q)的最小值,先計算點云P和X的重心:
(3)
(4)
兩片點云的互協(xié)方差矩陣為:
(5)
(6)
式中:I3—3×3的恒等矩陣。
由式(6)和qR得到旋轉(zhuǎn)矩陣:
R=
(7)
通過迭代計算得到第一個距離平方和小于給定閾值的點對:
qT=μx-R(qR)μp
(8)
本文通過給點云中不同點賦予不同的權(quán)重,剔除其中權(quán)重大于給定閾值的點來減少計算量,提高其運行的效率:
(9)
式中:D(p1,p2)—對應點(p1,p2)之間的歐氏距離;Dmax—距離的最大值。
經(jīng)過處理后,迭代運算中數(shù)據(jù)量明顯減少,極大地提高了ICP算法的效率。
由式(9)可以看出:兩點的距離越近,賦給這一對點的權(quán)值就越大。
使用改進后的ICP算法對兩點集及進行計算。其中:X與P元素數(shù)目不一定相同,假設(shè)k≥n,根據(jù)公式(8)給點云數(shù)據(jù)點賦予權(quán)值,并剔除權(quán)值小于閾值的數(shù)據(jù)點;然后尋找最近點,即為集合X中的每一個數(shù)據(jù)點,尋找在集合P中距該數(shù)據(jù)點空間距離最近的數(shù)據(jù)點,將這些對應點組成的新點集命名為;對點集U與Q配準計算,得到兩點集之間的變換矩陣R、T,其中:R—3×3的旋轉(zhuǎn)矩陣,T—3×1的平移矩陣。用配準變換矩陣R、T對集合X進行坐標變換,得到新的點集X1,為X1=RX+T。如果目標函數(shù)誤差小于閾值,則結(jié)束,否則,以U1替換U,重復上述步驟。
為了得到更好的拼接效果,消除配準后三維點云存在的裂縫等,本文選用加權(quán)平均融合算法對拼接后的三維點云進行融合處理[15]。
取加權(quán)系數(shù)α=0.5,β=0.5,得到加權(quán)平均融合算法:
(10)
六足機器人雙目視覺實驗平臺圖3所示。
圖3 機器人雙目視覺實驗平臺
本文在該平臺對三維拼接方法進行驗證。其中,六足機器人樣機采用CM-700作為下位機主控板驅(qū)動關(guān)節(jié)舵機和外部傳感器。機器人每條腿各有3個關(guān)節(jié),共18個,全部采用RX-24F舵機驅(qū)動,板載傳感器包括測距傳感器DMS-80以及陀螺儀傳感器,機身和腿部采用硬質(zhì)鋁合金構(gòu)造。所用攝像機為兩臺U-500C工業(yè)相機,YX0612攝像頭,其分辨率為2 560×1 920,焦距為6 mm~12 mm。
三維重建在32位Window XP操作系統(tǒng)上以VS2010、VC6和Matlab平臺進行編程實現(xiàn)。利用Directshow技術(shù),在VS2010平臺上開發(fā)雙目立體視覺系統(tǒng)的圖像采集程序。通過Matlab工具箱對攝像機進行標定,并在VC6平臺利用OpenCV和OpenGL開發(fā)包完成圖像的三維重建和三維拼接。
雙目視覺系統(tǒng)拍攝的環(huán)境障礙物如圖4所示。
經(jīng)過邊緣檢測并優(yōu)化后得到的目標障礙物完整輪廓信息如圖5所示。
圖4 雙目立體視覺系統(tǒng)原始圖像
圖5 目標物體邊緣檢測及優(yōu)化后邊緣圖像
經(jīng)過邊緣檢測以后,圖像的像素點減少70%以上,使得后續(xù)圖像處理的運算速度得到極大提高。從圖5中可知:邊緣的缺口、裂縫等已經(jīng)通過邊界跟蹤被消除了,背景環(huán)境中的污漬、陰影等已經(jīng)通過輪廓查找被舍棄。取閾值cosθ=0.9對圖5進行輪廓匹配,生成的三維輪廓點云如圖6所示。
圖6 三維重建后生成的輪廓點云
由圖6可見:生成的三維重建圖像輪廓非常接近實際障礙物模型。
為了定量計算該重建算法的精度,筆者選取重建模型輪廓上的6個角點計算沿不同坐標軸方向的平均重建誤差和相對重建誤差,各角點實際坐標值與重建坐標值如表1所示。
表1 各角點重建坐標值與實際坐標值
本研究通過對實驗結(jié)果進行測量對比可知:X方向的平均重建誤差為0.098 cm,相對重建誤差為0.205%;Y方向平均重建誤差為0.081 cm,相對重建誤差為0.285%;Z方向的平均重建誤差為0.369 cm,相對重建誤差為0.181%。可知基于輪廓識別的快速三維重建精度較高,能夠達到機器人目標障礙物檢測的要求。
通過雙目立體視覺系統(tǒng)對障礙物不同視角進行拍攝得到的4幅原始圖像如圖7所示。
圖7 雙目立體視覺系統(tǒng)兩次拍攝的原始圖像
經(jīng)過邊緣檢測及邊緣跟蹤后得到完整的目標障礙物輪廓信息如圖8所示。
圖8 目標物體邊緣檢測及優(yōu)化的邊緣圖像
本研究分別對圖8中兩次拍攝圖像的輪廓信息進行輪廓匹配和三維重建,得到的兩組三維重建圖像輪廓點云如圖9所示。
圖9 重建兩次拍攝圖像的三維點云
本研究通過上述拼接方法對圖9的兩組三維點云進行拼接和融合,得到三維圖像如圖10所示。
圖10 基于雙重配準算法拼接大視野三維點云
由圖10可知:通過將兩組三維點云在同一坐標系下進行拼接融合以后,機器人進行障礙物檢測的視角大大提高。
為了定量計算三維拼接以后生成的圖像精度,本研究選取目標物體輪廓上的角點計算拼接誤差,各角點實際坐標值與拼接后的坐標值如表2所示。
表2 各角點的拼接坐標值與實際坐標值
由對比實驗結(jié)果可知:X方向的平均重建誤差為0.098 cm,相對重建誤差為0.189%;Y方向平均重建誤差為0.048 cm,相對重建誤差為0.210%;Z方向的平均重建誤差為0.413 cm,相對重建誤差為0.184%。由此可見:基于雙重配準算法對兩幅三維重建圖像進行拼接以后,機器人進行障礙物檢測的視角大大提高,且重建誤差較低。
針對機器人在外部環(huán)境中因視野范圍受限,無法準確獲取障礙物完整信息這一問題,本文通過可變視角三維拼接方法重建了障礙物三維模型,獲取了障礙物更大的視野圖像,具體如下:
(1)將基于輪廓識別的邊緣檢測法與三維重建方法相結(jié)合,準確獲取了目標障礙物的輪廓信息,消除了多余輪廓,減少了大部分圖像像素點,極大地提高了算法的運算速度;
(2)提出了基于雙重配準算法的可變視角三維拼接方法,建立了數(shù)學模型,通過改變雙目立體視角范圍獲取障礙物的更大視野圖像,并根據(jù)點云融合算法提高了配準精度;
(3)進行了可變視角三維拼接實驗,結(jié)果表明:通過可變視角三維拼接方法重建的三維模型具有較高的空間坐標精度,且圖像誤差較小。