iMAP: 實(shí)時(shí)的隱式建圖和定位
標(biāo)題:iMAP: Implicit Mapping and Positioning in Real-Time
作者:Edgar Sucar, Andrew I.Davison
編譯:方川
審核:zhuhu
來(lái)源:ICCV 2021
這是泡泡圖靈智庫(kù)推送的第735篇文章,歡迎個(gè)人轉(zhuǎn)發(fā)朋友圈;其他機(jī)構(gòu)或自媒體如需轉(zhuǎn)載,請(qǐng)后臺(tái)留言申請(qǐng)授權(quán)
今天我們要精讀的文章是來(lái)自Andrew Davison實(shí)驗(yàn)室的iMAP。這篇工作首創(chuàng)性的提出了在SLAM過(guò)程中使用MLP來(lái)表征場(chǎng)景地圖. 這種隱式的地圖表示方法不僅可以解決地圖存儲(chǔ)問(wèn)題, 還可以很好的控制場(chǎng)景重建細(xì)節(jié), 比如相機(jī)無(wú)法觀測(cè)到的物體的重建.
摘要:
本文介紹了一種使用MLP隱式表征場(chǎng)景地圖的方法, 適用于RGB-D相機(jī)的SLAM系統(tǒng), 我們稱(chēng)之為iMAP. iMAP的系統(tǒng)結(jié)構(gòu)參考PTAM的多線程設(shè)計(jì). 跟蹤線程以10HZ頻率運(yùn)行跟蹤算法, 輸入當(dāng)前幀(rgb+depth)與場(chǎng)景渲染結(jié)果(rgb+depth)對(duì)齊來(lái)完成相機(jī)位姿估計(jì). 建圖線程以滑窗方式維護(hù)關(guān)鍵幀, 以2HZ頻率運(yùn)行地圖優(yōu)化和關(guān)鍵幀位姿優(yōu)化.
主要貢獻(xiàn):
首次提出在SLAM系統(tǒng)中使用MLP隱式表征地圖, 并且優(yōu)化地圖和相機(jī)位姿;
本文可以實(shí)時(shí)的完成場(chǎng)景建圖任務(wù);
一種多線程并行的RGB-D SLAM系統(tǒng);
算法流程:
3.1 系統(tǒng)框架
如Fig.2所示, 場(chǎng)景的3D體素地圖被全連接網(wǎng)絡(luò)
表示, 給定相機(jī)位姿, 我們可以使用NeRF類(lèi)似的手段來(lái)渲染得到該位姿在場(chǎng)景中對(duì)應(yīng)的rgb和depth圖像. 借鑒PTAM的設(shè)計(jì), 我們的系統(tǒng)也有兩個(gè)線程. 跟蹤線程優(yōu)化當(dāng)前幀相對(duì)于場(chǎng)景地圖的位姿, 建圖線程同步優(yōu)化網(wǎng)絡(luò)參數(shù)(代表地圖)和關(guān)鍵幀位姿.
3.2 神經(jīng)網(wǎng)絡(luò)是如何表征隱式場(chǎng)景地圖
借鑒NeRF的思想, 本文采用4層全連接網(wǎng)絡(luò)來(lái)表征場(chǎng)景地圖, 每層網(wǎng)絡(luò)包含256特征通道. 全連接網(wǎng)絡(luò)將空間三維點(diǎn)
映射為體素地圖的顏色和體素密度
. 但是與NeRF不同的是, 我們不需要三維點(diǎn)
的方向信息, 因?yàn)榉较蛐畔⑿枰搸鄼C(jī)位姿, 而本系統(tǒng)的目的就是求解相機(jī)位姿.
同時(shí), 我們采用了FourierFeatureNetworks中的位置嵌入方法來(lái)把
映射到n維空間:
, 來(lái)增強(qiáng)模型對(duì)細(xì)節(jié)的重建能力.
3.3 如何渲染深度圖和RGB圖像
渲染模塊借鑒了NeRF和NodeSLAM的工作, 給定相機(jī)位姿, 在隱式地圖中渲染出這個(gè)視角對(duì)應(yīng)的rgb和depth圖像.
與NeRF中的離散近似volume rendering方法類(lèi)似,給定相機(jī)位姿
和一個(gè)像素坐標(biāo)
, 首先把它反投影為相機(jī)坐標(biāo)系中的一條射線
, 然后在這條射線上均勻采樣
個(gè)點(diǎn), 采樣點(diǎn)的深度值
, 用這種離散渲染的方式來(lái)求該像素位置的顏色和體素密度
.
具體的, 記兩個(gè)采樣點(diǎn)之間的深度距離
, 激活函數(shù)
模擬射線的透明度, 則累計(jì)透明度可以表示為概率密度函數(shù)
, 最終渲染得到的深度值和顏色:
這條射線的深度值方差為:
3.4 如何跟蹤相機(jī)軌跡、聯(lián)合優(yōu)化相機(jī)和地圖?
在SLAM系統(tǒng)的優(yōu)化環(huán)節(jié), 我們要同步優(yōu)化地圖(網(wǎng)絡(luò)參數(shù)
)和
個(gè)關(guān)鍵幀
的相機(jī)位姿.
因?yàn)閞endering過(guò)程(生成每個(gè)像素的顏色和深度值的過(guò)程)對(duì)待優(yōu)化變量都是可微的, 我們可以根據(jù)顏色的光度誤差和深度的幾何誤差來(lái)執(zhí)行迭代優(yōu)化.
記渲染得到的像素點(diǎn)集合為
, 顏色光度誤差記為:
其中
. 深度幾何誤差記為:
其中
. 整個(gè)網(wǎng)絡(luò)的損失函數(shù)為:
3.5 如何選取關(guān)鍵幀
SLAM系統(tǒng)的常見(jiàn)策略是采用關(guān)鍵幀來(lái)表示場(chǎng)景. 與傳統(tǒng)的基于特征點(diǎn)SLAM的關(guān)鍵幀選取策略類(lèi)似, 我們這里的關(guān)鍵幀選取策略是: 在當(dāng)前幀上均勻采樣一群像素點(diǎn)
, 網(wǎng)絡(luò)渲染得到這些像素點(diǎn)的顏色和深度值, 當(dāng)深度值誤差小于
的像素點(diǎn)比例
時(shí), 就把當(dāng)前幀選為關(guān)鍵幀.
3.6 特征點(diǎn)采樣策略
用圖像所有像素來(lái)做跟蹤、渲染、優(yōu)化流程是不現(xiàn)實(shí)的, 因此我們每次迭代時(shí)在每幀圖像上采樣200個(gè)分布均勻的像素點(diǎn). 為了得到一個(gè)合理的采樣點(diǎn)概率分布, 包括以下兩個(gè)步驟:
a. 把當(dāng)前幀分割為8x8網(wǎng)格, 在這
64網(wǎng)格上均勻采樣
個(gè)特征點(diǎn), 并計(jì)算光度誤差個(gè)幾何誤差:
其中
. 然后再將這64個(gè)網(wǎng)格里計(jì)算得到的誤差歸一化:
b. 我們用誤差分布
來(lái)重新采樣
個(gè)特征點(diǎn), 這樣就能保證在誤差比較大的區(qū)域可以采集比較多的特征點(diǎn),從而加速整個(gè)神經(jīng)網(wǎng)絡(luò)收斂.如Fig.3所示:
關(guān)鍵幀上的特征點(diǎn)采樣與普通幀一致, 為了更好的迭代收斂神經(jīng)網(wǎng)絡(luò), 我們將在關(guān)鍵幀上采樣更多的特征點(diǎn).
為了保證系統(tǒng)的實(shí)時(shí)性, 優(yōu)化步驟只保留3個(gè)關(guān)鍵幀和一個(gè)當(dāng)前(普通)幀, 雖然Fig.4使用了5個(gè)關(guān)鍵幀+1個(gè)當(dāng)前幀, 但是在實(shí)時(shí)運(yùn)行版本我們只使用紅色虛線框出來(lái)的4幀來(lái)做聯(lián)合優(yōu)化;
實(shí)驗(yàn)結(jié)果
評(píng)估重建精度
我們?cè)诤铣蓴?shù)據(jù)集Replica和真實(shí)采集的AzureKinect數(shù)據(jù)集上測(cè)試了我們的iMAP, 來(lái)評(píng)估重建結(jié)果的質(zhì)量.
本文在重建得到的mesh和groundtruth mesh上各采樣200000個(gè)點(diǎn), 用這些點(diǎn)的Accuracy(cm)、Completion(cm)、Completion Ratio(
這里主要把iMAP的重建結(jié)果與TSDFFusion做對(duì)比:
在Replica和AzureKinect數(shù)據(jù)上的重建結(jié)果可視化對(duì)比, 這里強(qiáng)調(diào)了iMAP能夠完整重建出相機(jī)未觀測(cè)到的部分:
評(píng)估相機(jī)位姿精度
我們又在TUM RGB-D數(shù)據(jù)集的幾個(gè)比較簡(jiǎn)單的場(chǎng)景上評(píng)估了iMAP的相機(jī)軌跡的精度, 可以看到iMAP比其他一些sota的SLAM系統(tǒng)精度還是有點(diǎn)差距的:
之后就是一些消融實(shí)驗(yàn)了.
結(jié)論
本文提出的iMAP方法貌似一直在說(shuō)室內(nèi)小場(chǎng)景的SLAM, 而且軌跡精度與比較老的視覺(jué)SLAM方法相比確實(shí)不高, 個(gè)人認(rèn)為還是VO/SLAM的一些顯示約束沒(méi)有加到網(wǎng)絡(luò)里來(lái), 不過(guò)這確實(shí)是第一篇用NeRF來(lái)做SLAM的文章了,可以算是經(jīng)典的開(kāi)山之作.
關(guān)鍵詞: 泡泡圖靈智庫(kù)iMAP實(shí)時(shí)的隱式建圖和定位 imap