李郁峰,韓肖清,李 琴,魏 斌,韓慧妍
(1. 太原理工大學 電氣與動力工程學院,山西 太原 030024;2. 中北大學 軍民融合協(xié)同創(chuàng)新研究院,山西 太原 030051;3. 北方自動控制技術(shù)研究所 軍貿(mào)工程部,山西 太原 030006;4. 中北大學 大數(shù)據(jù)學院,山西 太原 030051)
障礙物檢測技術(shù)是地面軍用機器人應用的關(guān)鍵技術(shù)之一,可分為基于非視覺類傳感器和基于視覺類傳感器的障礙物檢測技術(shù)[1]. 基于視覺傳感器的非結(jié)構(gòu)道路環(huán)境下的障礙物檢測主要從障礙物圖像的顏色信息、邊緣信息、光流變化以及立體視覺四個方向進行研究[2]. 顏色信息檢測方法對顏色差異較小的障礙物很難進行區(qū)分[3];邊緣信息檢測方法提取的結(jié)果不僅僅包含障礙物信息,還包含地面的干擾信息[4];光流變化檢測方法要求被觀測物必須是運動的,且其檢測距離很近[5];雙目立體視覺障礙物檢測[6]系統(tǒng)根據(jù)三維空間中同一物體在左右相機上的成像視差快速獲取該物體的三維信息,從而實現(xiàn)對障礙物的檢測.
基于雙目立體視覺的障礙物檢測方法對于光照、天氣等比較敏感,其難點體現(xiàn)在障礙物檢測過程中雙目圖像匹配算法的實現(xiàn),以及在不同光照情況下匹配算法的魯棒性和實時性等方面[7-8]. 針對局部的立體匹配算法[9]在弱紋理、視差不連續(xù)區(qū)域匹配效果差,以及對光照、噪聲等外界環(huán)境比較敏感的問題,本文對局部的立體匹配算法進行了改進,利用了對光照灰度不敏感的區(qū)域的代價函數(shù)快速算法,計算量小,匹配速度快,同時,在立體匹配獲得視差圖的基礎(chǔ)上對實際障礙物場景進行了三維重建,并獲得了障礙物的空間位置信息,具有一定的魯棒性和實時性.
實驗采用改進的張正友攝像機標定算法[10],制作的平面棋盤格模板為10×10的黑白棋盤,每方格的邊長為20 mm,以日光燈為光源,在兩攝像機前方放置標定棋盤格的標靶. 旋轉(zhuǎn)模板使得任意兩幅圖像所在的光軸都不會處于平行狀態(tài),同時保證攝像機外參數(shù)中的旋轉(zhuǎn)矩陣為正交單位矩陣[11]. 每轉(zhuǎn)動一次模板,雙目攝像機同時拍攝標靶. 標定實驗中為了減小標定誤差,采用Matlab攝像機標定工具箱,從不同角度拍攝了12幅標定標靶的圖像對進行標定. 圖1 為左攝像機所采集的棋盤標靶圖像.
圖1 左攝像機采集的標靶圖像Fig.1 Target image of the left camera
指定左上、左下、右上、右下四個點作為每幅圖像角點提取的范圍,如圖2 所示.
圖2 角點的提取范圍
由四個點的坐標值求得圖像的主點(u0,v0),根據(jù)圖像中每個方格的邊長為20 mm來提取每幅圖像的角點,如圖3 所示.按照輸入圖像的像素將每幅圖像進行排列,將第一個被檢測出的角點設(shè)定為右手世界坐標系的原點,標靶棋盤格平面即為世界坐標系的XwYw平面,Z軸垂直于標靶并指向攝像機. 根據(jù)標靶棋盤方格的尺寸,可以計算出每個角點的世界坐標值[12].
圖3 提取的標靶上的角點
根據(jù)提取的所有角點之間的位置關(guān)系,采用改進的張正友標定算法對攝像機內(nèi)參數(shù)進行標定[13]. 經(jīng)過多次迭代,便可得到單目攝像機的內(nèi)參數(shù). 角點檢測誤差如圖4 所示,每幅圖像角點的提取結(jié)果由不同深度的顏色表示,由圖4 可以看出角點提取的誤差都小于0.5像素. 左右攝像機均按上述方法標定出內(nèi)參數(shù),結(jié)果如表1 所示.
圖4 角點提取的誤差分析Fig.4 Error analysis of corner extraction
表1 標定出的左、右攝像機的內(nèi)參數(shù)Tab.1 Calibrated internal parameters of left and right cameras
由表1 可以看出:當分辨率為640×480,像素尺寸為7.5 μm×7.5 μm時,在左攝像機中,flx=492.832 59×7.5 μm=3.696 24 mm,fly=492.998 73×7.5 μm=3.697 49 mm;在右攝像機中,frx=492.613 57×7.5 μm=3.694 60 mm,fry=492.687 52×7.5 μm=3.695 16 mm.與實際焦距(f=3.8 mm)的差滿足條件. 左右攝像機主點坐標與攝像機拍攝圖像的中心(320,240)相差不大. 因此,標定結(jié)果的誤差較小,滿足系統(tǒng)要求.
根據(jù)單目攝像機的標定內(nèi)參結(jié)果,通過雙目攝像機標定獲得其相對位置的外參. 左、右攝像機的旋轉(zhuǎn)矩陣和平移向量分別為Rl,Tl和Rr,Tr,三維場景中任意一點P對應的世界坐標為(Xw,Yw,Zw),P點在左、右攝像機坐標系下的坐標分別為(Xl,Yl,Zl)和(Xr,Yr,Zr),由攝像機坐標系和世界坐標系之間的關(guān)系可得
(1)
式中:R,T分別為右攝像機相對于左攝像機的旋轉(zhuǎn)矩陣和平移矩陣. 根據(jù)單目攝像機標定的內(nèi)參結(jié)果,通過計算即可得到雙目相機之間的相對位置關(guān)系,從而完成了雙目立體視覺系統(tǒng)的標定. 利用Matlab工具箱,加載左右相機的標定結(jié)果,以左像機坐標系為世界坐標系,計算得到雙目立體視覺系統(tǒng)的外部參數(shù),即左、右像機的相對位置關(guān)系.
由雙目攝像機標定的結(jié)果可知,旋轉(zhuǎn)矩陣R近似為單位矩陣,不存在旋轉(zhuǎn);平移矩陣向量T沿Y軸、Z軸的平移基本為0,只存在沿X軸方向的移動(基線長度). 左右攝像機的平移距離為119.933 67 mm,而且與基線設(shè)定值120 mm非常接近,此標定結(jié)果可以接受. 雙目立體視覺標定結(jié)果如圖5 所示,可以看出標定結(jié)果誤差較小,因此,兩攝像機軸線基本是向前平行的.
圖5 雙目攝像機坐標系中的靶標位置Fig.5 Target position in binocular camera coordinate
基于區(qū)域的立體匹配示意圖如圖6 所示,在第j條掃描線上,左圖像對中的某一特征點pl(i,j),需在右圖像對中尋找對應的特征點pr.
圖6 基于區(qū)域的立體匹配Fig.6 Stereo matching based on region
搜索窗口W為面積s=(2k+1)×(2l+1)的矩形,窗口中心位于圖6 左圖中的特征點pl(i,j)處.左、右圖像對中特征點(i,j)處的灰度值分別為Il(i,j)和Ir(i,j),視差用d表示.引入視差范圍約束,只需在視差范圍(-d,+d)內(nèi)搜索即可.采用零均值歸一化互相關(guān)(ZNCC)作為特征點pl(i,j)和pr的鄰域像素相似性測度函數(shù)[14],相似性測度函數(shù)為
(2)
地面軍用機器人在未知環(huán)境感知中,圖像受噪聲干擾比較嚴重,為了有效抑制這些噪聲干擾和提高可靠性,往往取足夠大的匹配窗口. 但是,匹配窗口過大就會因為視差圖過度平滑而導致無法分辨障礙物與背景;同時,匹配窗口過大也會導致計算量過大. 本文采用盒濾波加速方法[15]來消除計算量隨匹配窗口增大而增加的問題,該方法是一種遞歸的二維均值濾波快速計算算法,能夠有效抑制重復計算. 經(jīng)過盒濾波加速后,可以降低匹配算法的計算復雜度,大大縮短計算時間,提高計算效率.
為了驗證本文基于雙目立體視覺的障礙物檢測算法的有效性,在光照環(huán)境中采用雙目攝像機拍攝同一個時刻不同視角的兩幅實驗室障礙物場景圖像(如圖7 所示),對場景中的障礙物進行了檢測.
圖7 實際拍攝的障礙物場景Fig.7 Actual shot obstacle scene
對圖7 場景進行立體匹配得到視差圖,如圖8 所示. 匹配模板窗口W=15×15,視差d與兩個攝像機基線的長度有關(guān),通過實驗獲得視差d為10像素,相關(guān)閾值τ=0.9.
由圖8 可以看出,應用本文立體匹配算法,在光照的情況下可以獲得障礙物及場景滿意的視差圖,也可以滿足實時性要求,對于光照畸變有較好的魯棒性,其運行時間如表2 所示.
表2 匹配算法的運算時間Tab.2 Consuming time of matching algorithms ms
圖8 匹配結(jié)果視差圖Fig.8 Disparity map of matching results
獲得點三維坐標是三維重建最基本的前提. 兩攝像機投影矩陣分別為Ml和Mr,且兩攝像機的內(nèi)部參數(shù)一致,場景中任意空間點P(X,Y,Z,1)在兩攝像機Cl、Cr的圖像平面上的投影點分別為Pl(ul,vl)和Pr(ur,vr),則依據(jù)成像平面坐標系與攝像機世界坐標系之間的轉(zhuǎn)換對應關(guān)系可得
(3)
(4)
(5)
由式(4)和(5)聯(lián)立求解,可得空間點P的世界坐標.對于空間某一點,只要其中三個方程便可求解出該點的世界坐標(X,Y,Z).在實際障礙物檢測過程中,會引入噪聲,因此,采用最小二乘法求出點的世界坐標值. 將式(4)和式(5)寫為如下形式
Aq=B,
(6)
其中,
則Aq=B的最小二乘法為
q=(ATA)-1ATB.
(7)
由式(7)可知,由兩攝像機的投影矩陣和空間點的像素坐標,就可以確定該點的實際空間坐標值. 若空間某點在左攝像機坐標系下的坐標為(xl,yl,zl),則在右攝像機坐標系下的坐標為(xl-b,yl,zl),根據(jù)成像的比例關(guān)系可以得到式(8).設(shè)(ul,vl)和(ur,vr)為該點在左右攝像機中對應的圖像點像素坐標,那么對應點所在的縱坐標相同,即vl=vr,而橫坐標之間有差距.
(8)
由式(8)可得
(9)
式中:ul-ur為視差值;b為兩攝像機基線的距離;fx和fy分別為攝像機在u軸和v軸上的有效焦距;(u0,v0)為攝像機的主點.由式(9)可知,只要獲得空間某點對應的左右攝像機圖像的坐標值,就可以求出該點在攝像機坐標系下的三維坐標值.
在獲得的障礙物及場景的立體匹配視差圖的基礎(chǔ)上,利用式(9)便可以求出場景在世界坐標系下的三維點云數(shù)據(jù),對場景中的障礙物進行檢測,獲得的點云數(shù)據(jù)及重建效果如圖9 所示. 由此可知,針對機器人周圍三維場景及障礙物分布圖,利用本文三維重建方法可以在標定攝像機參數(shù)并完成立體匹配的基礎(chǔ)上順利檢測出未知環(huán)境中的障礙物,該方法檢測效果良好,總運行時間為226 ms,滿足系統(tǒng)的要求.
圖9 障礙物檢測效果Fig.9 Effect of obstacles detection
為了驗證障礙物檢測的精度,以右邊障礙物為目標進行實驗. 實驗測量范圍為1 000 mm~4 000 mm,每隔300 mm采集1組圖像對,共采集10組圖像對,將這些圖像對作為采樣點,并取其平均值作為實際測量距離,然后求得實際誤差和相對誤差,具體檢測結(jié)果如表3 所示. 由表中數(shù)據(jù)可知,改進算法的平均相對誤差為2.34%,該誤差滿足系統(tǒng)精度要求.
表3 障礙物檢測結(jié)果Tab.3 Obstacle detection results
本文應用改進的張氏標定算法對地面軍用機器人雙目立體視覺系統(tǒng)進行了標定,標定結(jié)果誤差小于0.5像素,滿足系統(tǒng)要求. 采用改進的區(qū)域局部立體匹配算法進行了雙目立體視覺系統(tǒng)光照場景下的立體匹配實驗,獲得了障礙物及場景立體匹配的視差圖,運行時間為226 ms,滿足系統(tǒng)實時性要求,對于光照畸變有較好的魯棒性. 最后根據(jù)雙目攝像機標定獲得的內(nèi)外參數(shù),在立體匹配獲得視差圖的基礎(chǔ)上,對障礙物場景進行了三維重建,并獲得了障礙物空間位置信息,檢測誤差為2.34%. 這些結(jié)果表明本文方法的檢測精度和運行時間滿足系統(tǒng)的要求,可用于該地面軍用機器人的路徑規(guī)劃及避障控制.