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