王鶴群,彭曉東,周武根
(1.中國(guó)科學(xué)院國(guó)家空間科學(xué)中心,北京 100190;2.中國(guó)科學(xué)院大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,北京 100049)
在計(jì)算機(jī)視覺(jué)領(lǐng)域中,無(wú)人駕駛、無(wú)人機(jī)自主導(dǎo)航及增強(qiáng)現(xiàn)實(shí)等應(yīng)用的興起使得即時(shí)定位與地圖構(gòu)建(simulta-neous localization and mapping,SLAM)技術(shù)[1]備受關(guān)注。視覺(jué)里程計(jì)(visual odometry,VO)對(duì)相機(jī)位姿進(jìn)行估計(jì),是視覺(jué)SLAM的重要組成部分。深度相機(jī)能夠解決單目視覺(jué)的尺度不確定性問(wèn)題,故基于深度相機(jī)的位姿估計(jì)逐漸成為研究熱點(diǎn)。
相比于ORB-SLAM[2,3]等采用的特征點(diǎn)法,DVO[4],DVO-SLAM[5],LSD-SLAM[6]等采用的直接法通過(guò)最小化灰度殘差從而解得最優(yōu)位姿,避免特征點(diǎn)匹配數(shù)量不足而無(wú)法估計(jì)位姿等問(wèn)題。但光照變化、相機(jī)曝光變化以及噪聲降低了位姿估計(jì)的準(zhǔn)確性。近幾年出現(xiàn)了一些基于邊緣的位姿估計(jì)方法,如D-EA[7],EdgeDirectVO,REVO[8]等。其中使用的Canny[9]等傳統(tǒng)方法只能提取灰度梯度大的像素作為邊緣像素而忽略了其他的圖像信息。而REVO中使用基于深度學(xué)習(xí)的方法進(jìn)行邊緣檢測(cè),使得其對(duì)于光度變化、不同類型的場(chǎng)景更具穩(wěn)定性,能在一定程度上提高位姿估計(jì)的準(zhǔn)確性和魯棒性。
為了解決現(xiàn)有基于邊緣的方法對(duì)光度變化敏感、提取邊緣不穩(wěn)定的問(wèn)題,本文提出了基于深度相機(jī)的邊緣融合直接位姿估計(jì)方法并通過(guò)實(shí)驗(yàn)證明了方法的優(yōu)越性和魯棒性。
本文提出的方法框架如圖1所示,主要分為邊緣提取與位姿估計(jì)兩大模塊:1)邊緣提取過(guò)程中使用雙閾值法融合Canny邊緣檢測(cè)方法與深度學(xué)習(xí)方法提取到的邊緣結(jié)果;2)位姿估計(jì)中使用非參數(shù)統(tǒng)計(jì)方法擬合邊緣像素殘差形成誤差函數(shù),優(yōu)化計(jì)算估計(jì)相機(jī)位姿。
圖1 方法整體框架
其中,Canny邊緣檢測(cè)使用灰度圖像,基于深度學(xué)習(xí)的邊緣檢測(cè)方法使用RGB圖像,深度圖則用于獲得圖像中邊緣像素對(duì)應(yīng)的三維空間中的深度。
Canny邊緣檢測(cè)方法多關(guān)注于梯度較高的區(qū)域,容易產(chǎn)生較多的噪聲;而基于深度學(xué)習(xí)的邊緣檢測(cè)方法則比較關(guān)注場(chǎng)景邊緣的整體性,容易漏掉一些梯度較高的細(xì)小邊緣。針對(duì)這兩種邊緣檢測(cè)方法的局限性,本文采用基于深度學(xué)習(xí)的邊緣檢測(cè)方法HED[10]與Canny邊緣檢測(cè)方法相結(jié)合的方式,可實(shí)現(xiàn)魯棒的邊緣檢測(cè)效果。圖2(a)表示HED的邊緣檢測(cè)結(jié)果,做非極大值抑制(non-maximum suppression,NMS)處理得到本文所使用的邊緣信息,如圖2(b)所示;Canny效果如圖2(c)所示。
圖2 Canny與HED邊緣檢測(cè)效果對(duì)比
對(duì)于圖像I的邊緣像素集合ECanny(I)和EHED(I),采用雙閾值法進(jìn)行連接和融合。設(shè)高閾值為T(mén)Hhign,低閾值為T(mén)Hlow,則該方法可分為以下步驟:1)將ECanny(I)的像素作為強(qiáng)邊緣,并將EHED(I)中灰度值大于THhign的像素加入強(qiáng)邊緣集合;2)EHED(I)中灰度值小于THlow的像素認(rèn)為不是邊緣;3)對(duì)于EHED(I)中灰度值介于THlow和THhign之間的像素加入弱邊緣集合;4)對(duì)于弱邊緣集合中的像素,若周?chē)?個(gè)像素存在強(qiáng)邊緣,則該弱邊緣像素轉(zhuǎn)換為強(qiáng)邊緣;否則作為非邊緣處理。
將最終強(qiáng)邊緣集合中的像素作為本文方法的邊緣,用E(I)表示,如圖2(d)所示。可以看出相比于Canny方法和HED方法的邊緣提取結(jié)果,本文提出的邊緣檢測(cè)方法有更好的信噪比和更多清晰的邊緣像素。
1.3.1 相機(jī)模型
為了實(shí)現(xiàn)空間中3D點(diǎn)與圖像上2D點(diǎn)的相互轉(zhuǎn)換,本文采用針孔相機(jī)模型成像原理。根據(jù)模型,空間中的點(diǎn)P=(X,Y,Z,1)T映射到圖像上的像素位置表示如下
(1)
式中fx,fy為相機(jī)的焦距,ox,oy為相機(jī)的光心位置,Z=Z(x)為像素點(diǎn)在空間中的測(cè)量深度,由深度相機(jī)直接獲得,π為三維空間到圖像的映射。同理,圖像中某位置為x=(x,y)T的像素點(diǎn),在空間中的位置用齊次坐標(biāo)可表示為
(2)
式中π-1為三維空間到圖像的映射關(guān)系。
1.3.2 相機(jī)運(yùn)動(dòng)模型及變換函數(shù)
相機(jī)運(yùn)動(dòng)在三維空間中遵循剛體運(yùn)動(dòng)規(guī)則,分為平移和旋轉(zhuǎn)兩部分,共6個(gè)自由度。其中,平移運(yùn)動(dòng)用三維向量t表示,旋轉(zhuǎn)運(yùn)動(dòng)用3×3的正交矩陣R表示,則相機(jī)運(yùn)動(dòng)形成的位姿變換矩陣T如下式表示
(3)
空間中點(diǎn)坐標(biāo)P在相機(jī)運(yùn)動(dòng)后至坐標(biāo)P′的位置變換表示為
P′=TP
(4)
經(jīng)過(guò)相機(jī)運(yùn)動(dòng),圖像中像素x對(duì)應(yīng)的空間點(diǎn)在后一幀圖像中的位置變換至x′,根據(jù)式(2)可整理得
x′=π(Tπ-1(x,Z(x)))
(5)
1.3.3 邊緣殘差非參數(shù)統(tǒng)計(jì)與目標(biāo)函數(shù)
(6)
在TUM數(shù)據(jù)集[11]上對(duì)邊緣像素的灰度殘差進(jìn)行統(tǒng)計(jì)。受文獻(xiàn)[12]啟發(fā),本文采用基于t分布(t-distribution)的非參數(shù)統(tǒng)計(jì)模型來(lái)擬合像素殘差分布,如圖3所示。
圖3 邊緣像素殘差統(tǒng)計(jì)與t分布
灰度殘差的t分布非參數(shù)統(tǒng)計(jì)模型表示為
(7)
式中v為t分布的自由度,實(shí)驗(yàn)中,v取為9可以獲得較好的位姿估計(jì)效果;μe為所有邊緣的灰度殘差均值,表示為
(8)
σe為邊緣殘差的估計(jì)標(biāo)準(zhǔn)差,使用絕對(duì)中位差(median absolute deviation,MAD)來(lái)估計(jì)
(9)
此時(shí),對(duì)于所有N個(gè)邊緣像素,可以根據(jù)非參數(shù)統(tǒng)計(jì)模型給出合理的權(quán)重,加權(quán)后的灰度殘差對(duì)應(yīng)誤差函數(shù)為
(10)
為了便于優(yōu)化,式中使用的ζ∈SE(3)為相機(jī)變換矩陣在李代數(shù)下的表示形式。迭代更新ζ使得誤差最小,ζ*即為估計(jì)的相機(jī)位姿
(11)
為了使得式(11)的求解尋優(yōu)過(guò)程不陷入局部極小值,相機(jī)位姿估計(jì)模型需要放在金字塔模型框架中優(yōu)化求解。
為了驗(yàn)證本文基于邊緣融合的位姿估計(jì)方法的性能,實(shí)驗(yàn)在TUM RGB-D數(shù)據(jù)集[12]上選取了7個(gè)代表性的序列進(jìn)行算法評(píng)估。該數(shù)據(jù)集中包含RGB圖、深度圖,以及真實(shí)的相機(jī)位置信息、相機(jī)內(nèi)參,是用于視覺(jué)SLAM方法性能對(duì)比的標(biāo)準(zhǔn)數(shù)據(jù)集。
實(shí)驗(yàn)硬件平臺(tái)為臺(tái)式計(jì)算機(jī),配有頻率為4.00 GHz的8核Intel Core i7—6700K型號(hào)CPU、NVIDIA Quadro M4000顯卡。操作系統(tǒng)為64位的Ubuntu 16.04。
為了與其他VO和SLAM方法進(jìn)行對(duì)比,實(shí)驗(yàn)采用相對(duì)位姿誤差(relative pose error,RPE)的均方根誤差(root mean squared error,RMSE)對(duì)本文方法及對(duì)照方法進(jìn)行評(píng)價(jià)。RPE越小表示位姿估計(jì)效果越好,包括平移和旋轉(zhuǎn)兩方面。表1為本文方法與REVO[9],D-EA[7],DVO[4],VO模式的ORB-SLAM2[3]方法在7個(gè)序列上的平移RPE對(duì)比。
表1 多種方法的平移RPE對(duì)比 (m/s)
表1中的加粗?jǐn)?shù)據(jù)表示同一個(gè)序列下的最優(yōu)結(jié)果。從表1中可以看出,雖然ORB-SLAM2在其中2個(gè)序列上表現(xiàn)最佳,但本文方法在大多數(shù)序列上取得了更好的結(jié)果。而相比之下,表中其他位姿估計(jì)方法只在少部分序列上取得了與本文方法相近的效果。這些結(jié)果表明,本文提出的方法整體上要優(yōu)于對(duì)比方法。
表2對(duì)比了本文方法與ORB-SLAM2的VO模式下的旋轉(zhuǎn)RPE結(jié)果,本文方法在其中5個(gè)序列上的旋轉(zhuǎn)誤差均較小,表明本文方法的性能整體上要優(yōu)于ORB-SLAM2。
表2 本文方法與ORB-SLAM2的旋轉(zhuǎn)RPE對(duì)比 ((°)·s-1)
圖4(a)和(c)對(duì)比了ORB-SLAM2的VO模式與本文方法在fr1/desk序列上隨時(shí)間變化的平移誤差,可以直觀地看出,本方法相比于ORB-SLAM2,平移誤差明顯減小。該結(jié)論也可以反映在圖4(b),(d)中的軌跡估計(jì)誤差中,本方法相比于ORB-SLAM2方法而言,軌跡估計(jì)結(jié)果更接近于相機(jī)真實(shí)軌跡。因此,以上實(shí)驗(yàn)都說(shuō)明,本文所提的相機(jī)位姿估計(jì)方法具有更高的精度和更好的魯棒性。
圖4 fr1/desk序列上ORB-SLAM2與本文方法的平移誤差及軌跡對(duì)比
本文針對(duì)基于邊緣的方法對(duì)光度變化敏感、提取邊緣不穩(wěn)定而影響位姿估計(jì)準(zhǔn)確性的問(wèn)題,提出了Canny邊緣檢測(cè)與基于深度學(xué)習(xí)的邊緣檢測(cè)進(jìn)行融合的魯棒邊緣檢測(cè)方法。引入了非參數(shù)統(tǒng)計(jì)模型來(lái)擬合邊緣像素的殘差分布,然后通過(guò)基于直接法的邊緣位姿估計(jì)方法估計(jì)相機(jī)位姿。最后,通過(guò)實(shí)驗(yàn)證明了本文方法的優(yōu)越性。