tensorflow 语义slam_【论文阅读28】DynaSLAM
主要內(nèi)容
面向動態(tài)環(huán)境基于點(diǎn)的語義SLAM系統(tǒng)。ORB-SLAM2的動態(tài)環(huán)境擴(kuò)展版本,面向單目,雙目和RGB-D相機(jī)。具體內(nèi)容如下:動態(tài)物體檢測方法。使用深學(xué)習(xí)方法(Mask R-CNN檢測可能運(yùn)動的物體:車,人等)和幾何方法(將深度或者角度差距較大的數(shù)據(jù)關(guān)聯(lián)點(diǎn)當(dāng)做動態(tài)點(diǎn))分別檢測可能運(yùn)動和正在運(yùn)動的物體。
只使用靜態(tài)區(qū)域且非動態(tài)物體掩膜邊緣的ORB特征點(diǎn)進(jìn)行相機(jī)位姿估計。
使用歷史觀測進(jìn)行背景填充。
缺點(diǎn)該方法選擇去除所有有潛在運(yùn)動可能的物體,如停在路邊的汽車等。這可能會導(dǎo)致剩余的靜止特征點(diǎn)過少而影響相機(jī)位姿估計。如KITTI的00序列效果變差。
B. Bescos, J. M. Facil, J. Civera, J. Neira. DynaSLAM: Tracking, Mapping and Inpainting in Dynamic Scenes. IEEE Robotics and Automation Letters, 3(4), 4076-4083, 2018.
摘要
假設(shè)環(huán)境剛體性在SLAM算法中是典型的。這種強(qiáng)假設(shè)限制了大多數(shù)SLAM在真實(shí)環(huán)境中的使用,這是一些相關(guān)應(yīng)用的目標(biāo),如服務(wù)機(jī)器人或自動駕駛。Bescos等人展示了DynaSLAM,一種視覺SLAM系統(tǒng),建立在ORB-SLAM2上,增加了動態(tài)物體檢測和背景修補(bǔ)。DynaSLAM在動態(tài)場景中是魯棒的。作者能夠通過多視圖幾何,深度學(xué)習(xí)或者兩者同時來檢測動態(tài)物體。得到的靜態(tài)場景地圖允許修補(bǔ)被動態(tài)物體遮擋的幀背景。DynaSLAM 超過了標(biāo)準(zhǔn)SLAM的表現(xiàn)在高動態(tài)環(huán)境中。同時,它也估計了環(huán)境靜態(tài)部分的地圖,對于真實(shí)環(huán)境的長期應(yīng)用是必要的。
1. 介紹
SLAM是許多機(jī)器人應(yīng)用的前提,例如無碰導(dǎo)航,SLAM技術(shù)聯(lián)合估計未知環(huán)境的地圖和機(jī)器人在該地圖中的位姿。該地圖允許機(jī)器人在相同場景中連續(xù)定位且沒有累積誤差。這和里程計方法相反,其整合窗口內(nèi)的增量運(yùn)動,并且在重新訪問地點(diǎn)時不能修正漂移。
視覺SLAM,其中主要的傳感器是相機(jī),已經(jīng)受到了很大程度的關(guān)注和過去幾年研究人員的努力。單目相機(jī)的最小解決方案具有實(shí)際優(yōu)勢在大小,功率和代價上,還具有一些挑戰(zhàn)例如尺度的不可觀或者狀態(tài)初始化。通過使用更復(fù)雜的設(shè)置,例如雙目或者RGB-D相機(jī),這些問題將會被解決并且視覺SLAM系統(tǒng)的魯棒性能夠被很大程度地提高。
研究社區(qū)已經(jīng)從很多角度解決了SLAM。但是,大多數(shù)方法和數(shù)據(jù)集假設(shè)靜態(tài)環(huán)境。因此,它們只能管理很少的動態(tài)內(nèi)容通過分類它們?yōu)殪o態(tài)模型的外點(diǎn)。即使靜態(tài)假設(shè)對于這些機(jī)器人應(yīng)用成立,它限制了視覺SLAM在許多相關(guān)情形中的應(yīng)用,例如在現(xiàn)實(shí)世界中長期操作的智能自主系統(tǒng)。
視覺SLAM能夠被分類為基于特征的[2][3]方法,其依賴顯著的點(diǎn)匹配并且只能估計一個稀疏的重建;和直接法[4]-[6],其能夠估計完全稠密的重建通過光度誤差的直接最小化和TV正則化。一些直接法專注于高梯度區(qū)域估計半稠密地圖[7][8]。
上述方法沒有解決場景中動態(tài)物體的常見問題,例如人的行走,自行車或者汽車。檢測和處理動態(tài)物體在視覺SLAM中揭示了一些挑戰(zhàn)對于建圖和跟蹤,包括:
1)如何在圖片中檢測這種動態(tài)物體:
a)避免跟蹤算法使用屬于動態(tài)物體的匹配。
b)避免建圖算法包含運(yùn)動物體作為3D地圖的一部分。
2)如何完整化3D地圖中暫時被運(yùn)動物體遮擋的部分。
沿著這些方向,許多應(yīng)用將會受益。除了這些,AR,自動駕駛和醫(yī)療影像。所有這些將會從成功復(fù)用之前得到的地圖。檢測和處理動態(tài)物體是必須的來估計靜態(tài)地圖,對于長期應(yīng)用非常有用。如果動態(tài)成分沒有被檢測到,它將變成3D地圖的一部分,復(fù)雜化它的跟蹤和重定位的應(yīng)用。
在我們的工作中,我們提出一種在線算法來解決RGB-D,雙目和單目SLAM中的動態(tài)物體。這被解決通過增加一個前端到SOTA ORB-SLAM2系統(tǒng)中,為了具有更準(zhǔn)確的跟蹤和復(fù)用場景地圖的作用。在單目和雙目例子中,我們的目的是使用CNN到逐像素的分割幀中的先驗(yàn)動態(tài)物體,從而SLAM算法不會提取它們上的特征。在RGB-D的例子中,我們提出組合多視角幾何模型和基于深度學(xué)習(xí)的算法用于檢測動態(tài)物體并且之后從圖片中移除它們,去除遮擋背景的瑕疵通過場景的修正信息(圖1)。圖1. DynaSLAM結(jié)果的綜述在RBG-D情形下。
本文的剩余部分如下:第二節(jié)討論相關(guān)工作。第3節(jié)給出我們方法的細(xì)節(jié),第4節(jié)詳細(xì)討論實(shí)驗(yàn)結(jié)果,第5節(jié)展示結(jié)論和未來工作。
2. 相關(guān)工作
動態(tài)物體,在大多數(shù)SLAM系統(tǒng)中,被分類為虛假數(shù)據(jù),并因此既不被包含在地圖中也不被用于相機(jī)跟蹤。最經(jīng)典的外點(diǎn)拒絕算法是RANSAC(例如,在ROB-SLAM中[3][1])和魯棒代價函數(shù)(如,在PTAM中[2])。
有一些SLAM系統(tǒng)解決了更具體的動態(tài)場景內(nèi)容,在基于特征的SLAM中,最相關(guān)的為:Tan等人[9]檢測發(fā)生在場景中的變化通過投影地圖特征到當(dāng)前幀中用于外觀和結(jié)構(gòu)驗(yàn)證。
Wangsiripitak和Murray[10]跟蹤場景中已知的3D動態(tài)物體。類似地,Riazuelo等人[11]解決人類行為通過檢測和跟蹤行人。
最近地,Li和Lee的工作[12]使用深度邊緣點(diǎn),其被加權(quán)關(guān)聯(lián)以表示屬于動態(tài)物體的概率。
直接法,一般來說,對于場景中的動態(tài)物體更敏感。為了動態(tài)場景設(shè)計的最相關(guān)的工作為:Alcantarilla等人[13]檢測運(yùn)動物體通過雙目相機(jī)的場景流表示。
Wang和Huang[14]分割場景中的動態(tài)物體使用RGB光流。
Kim等人[15]提出獲得場景的靜態(tài)部分通過計算投影到相同平面中的連續(xù)深度圖片的差異。
Sun等人[16]計算連續(xù)RGB圖片之間的密度差異。像素分類在深度圖片的分割上被執(zhí)行。
所有這些方法(包括基于特征的和直接法)——建圖靜態(tài)場景部分只從序列信息中[1][3][9][12]-[17],沒有估計長期模型當(dāng)一個先驗(yàn)運(yùn)動物體保持靜止時,例如停下來的車或者坐下來的行人。另一方面,Wangsiripitak和Murray[10]以及Riazuelo等人[11]想要檢測先驗(yàn)動態(tài)物體,但是沒有檢測由靜態(tài)物體引起的變化。前者成功檢測運(yùn)動物體,后者成功檢測一些可能運(yùn)動的物體。我們的方法DynaSLAM,組合了多視角幾何和深度學(xué)習(xí)以解決上述兩種情形。類似地,Anrus等人[18]分割動態(tài)物體通過組合一個動態(tài)分類器和多視角幾何。
3. 系統(tǒng)描述
圖2展示了我們系統(tǒng)的綜述。首先,RGB通道通過一個CNN傳遞先驗(yàn)動態(tài)成分的逐像素分割,例如行人或者汽車。
圖2. 我們提出方法的框圖。在雙目和單目流程中(黑色連續(xù)線)圖片通過CNN(Mask R-CNN)用于計算先驗(yàn)動態(tài)物體的逐像素語義在用于建圖和跟蹤之前。在RGB-D情形中(黑色虛線),基于多視角幾何的第二種方法被添加用于更準(zhǔn)確的運(yùn)動分割,其中我們需要一個低成本跟蹤算法。一旦相機(jī)位置已知,我們可以去除被動態(tài)物體遮擋的背景瑕疵。紅色虛線表示存儲的稀疏地圖的數(shù)據(jù)流。
在RGB-D情形中,我們使用多視角幾何來提高動態(tài)成分分割以兩種方式。首先,我們精修之前從CNN得到的動態(tài)物體的分割。其次,我們標(biāo)號動態(tài)新物體實(shí)例,其在大多數(shù)時候都是靜止的(即,檢測沒有在CNN階段中設(shè)置為可移動物體的運(yùn)動物體)。
為此,需要知道相機(jī)位姿,其中低代價跟蹤模塊已經(jīng)被應(yīng)用以定位已創(chuàng)建場景地圖中的相機(jī)。
這些被分割的幀是那些被用于獲得相機(jī)軌跡和場景地圖的幀。注意到如果場景中的運(yùn)動物體不在CNN類別內(nèi),多視角階段將會檢測動態(tài)成分,但是準(zhǔn)確可能會降低。
一旦這個全動態(tài)物體檢測和相機(jī)定位已經(jīng)被完成,我們致力于重建當(dāng)前幀的被遮擋背景具有之前視角中的靜態(tài)信息。這些合成的幀與類似AR和VR以及長期建圖中的場景識別等應(yīng)用是相關(guān)的。
在單目和雙目情形中,圖片被分割通過CNN以致于屬于先驗(yàn)動態(tài)物體的關(guān)鍵點(diǎn)沒有被跟蹤和建圖。
所有不同的階段在如下章節(jié)中被詳細(xì)描述(III-A和III-E)。
A. 使用一個CNN分割潛在動態(tài)成分
為了檢測動態(tài)物體,我們提出使用一個CNN,獲得逐像素的圖片語義分割。在我們的實(shí)驗(yàn)中,我們使用Mask R-CNN[19],其是SOTA對于物體實(shí)例分割。Mask R-CNN可以同時獲得逐像素語義分割和實(shí)例標(biāo)號。對于該工作我們使用逐像素語義分割信息,但是實(shí)例標(biāo)號能夠在未來工作中被使用為了跟蹤不同的運(yùn)動物體,
Mask R-CNN的輸入是RGB原始圖片。該想法是分割那些潛在動態(tài)或者可能運(yùn)動的物體(人,自行車,汽車,摩托車,飛機(jī),公交車,火車,貨車,船,鳥,貓,狗,馬,船,奶牛,大象,熊,斑馬和長頸鹿)。我們考慮,對于大多數(shù)環(huán)境,動態(tài)物體很有可能被包含在這個列表中。如果其它類需要,在MS COCO中[20]訓(xùn)練的網(wǎng)絡(luò),可能使用新訓(xùn)練數(shù)據(jù)精修。
網(wǎng)絡(luò)的輸出,假設(shè)輸入是大小為
的RGB圖片,
是圖片中物體的數(shù)量。對于每個輸出通道
,一個二值掩膜被獲得。通過組合所有通道到一個,我們可以獲得出現(xiàn)在場景的一張圖片中的所有動態(tài)物體的分割。
B. 低成本跟蹤
去除通過Mask R-CNN實(shí)力分割得到的潛在運(yùn)動物體的內(nèi)部和周圍像素。基于落在其他區(qū)域(靜態(tài)區(qū)域)的特征點(diǎn),使用輕量級的ORB-SLAM2[1]進(jìn)行低成本相機(jī)跟蹤。它投影地圖特征到圖片幀中,搜索圖片靜態(tài)區(qū)域的對應(yīng),并最小化重投影誤差來優(yōu)化相機(jī)位姿。
C. 分割動態(tài)成分使用Mask-RCNN和多視角幾何
通過使用Mask R-CNN,大多數(shù)動態(tài)物體可以被分割并且不被用于跟蹤和建圖。但是,有一些物體不能被該方法檢測到,因?yàn)樗鼈儾皇窍闰?yàn)動態(tài)的,但是可移動。最新的例子是某人拿著一本書,一個人坐在椅子上移動,或者甚至是家具在長期建圖中的變化。用于解決這些情形的方法在本節(jié)中被詳細(xì)描述。
對于每個輸入幀,我們選擇之前具有最大重疊的關(guān)鍵幀。這個被完成通過同時考慮新幀與每個關(guān)鍵幀之間的距離和旋轉(zhuǎn),類似Tan等人[9]。重疊關(guān)鍵幀的數(shù)量已經(jīng)在我們的實(shí)驗(yàn)中被設(shè)置為5,作為計算代價和動態(tài)物體檢測準(zhǔn)確性的折中。
我們?nèi)缓笥嬎忝總€關(guān)鍵點(diǎn)
從之前關(guān)鍵幀到當(dāng)前幀的投影,獲得關(guān)鍵點(diǎn)
和投影深度
,由相機(jī)運(yùn)動計算得到。注意到關(guān)鍵點(diǎn)
來自O(shè)RB-SLAM2中的特征提取器算法。對于每個關(guān)鍵點(diǎn),其對應(yīng)的3D點(diǎn)是
,我們計算
的反投影和
之間的角度,即,它們的平行角度
。如果角度大于
,點(diǎn)可能被遮擋,并且將會被忽略。我們觀察到,在TUM數(shù)據(jù)集中,對于夾角大于
的靜態(tài)物體被考慮為動態(tài)物體,由于它們的視角差。我們獲得留下在當(dāng)前幀
中關(guān)鍵點(diǎn)的深度(直接從深度測量),考慮重投影誤差,并且我們比較他們和
。如果差值
超過一個閾值
,關(guān)鍵點(diǎn)
被考慮為屬于動態(tài)物體。該想法被展示在圖3中。為了設(shè)置閾值
,我們手工標(biāo)號TUM數(shù)據(jù)集中30張圖片中的動態(tài)物體,并且同時評估我們方法對于不同閾值
的準(zhǔn)確率和召回率。通過最大化表達(dá)式
,我們總結(jié)
是一個合理的選擇。圖3. 來自關(guān)鍵幀KF的關(guān)鍵點(diǎn)x被投影到當(dāng)前幀CF使用它的深度和相機(jī)位姿。投影深度被計算。像素被標(biāo)號為動態(tài)如果深度差大于某閾值。
一些關(guān)鍵點(diǎn)被標(biāo)號動態(tài)的當(dāng)它們?yōu)槲挥谶\(yùn)動物體邊界上時(如圖4中坐著的人后面的桌板)。為了避免這些動態(tài)點(diǎn)導(dǎo)致問題,我們使用深度圖片給定的信息。如果關(guān)鍵點(diǎn)被設(shè)置為動態(tài),但是它周圍深度地圖具有較大方差,我們改變編號為靜態(tài)。
到目前為止,我們知道哪個關(guān)鍵點(diǎn)屬于動態(tài)物體,哪個不是。為了分類所有屬于動態(tài)物體的像素,我們擴(kuò)展動態(tài)像素附近的深度圖片中的區(qū)域[21]。一個RGB幀的例子和它對應(yīng)的動態(tài)掩膜可以被看到在圖4(a)中。圖4. 使用多視角幾何(左),深度學(xué)習(xí)(中)和組合的動態(tài)物體檢測和分割。
CNN的結(jié)果(圖4b)可以被組合和幾何方法用于全物體檢測(圖4c)。我們可以發(fā)現(xiàn)在兩種方法中的好處和限制,因此它們組合使用的動機(jī)。對于幾何方法,主要問題是初始化很麻煩由于多視角性質(zhì)。學(xué)習(xí)方法和它們令人印象深刻的單視角的表現(xiàn),沒有初始化問題。它們的主要限制是被應(yīng)該是靜態(tài)的物體可能會被移除,并且該方法不能識別它們。上個例子可以使用多視角一致性測量被解決。
面對動態(tài)物體檢測問題的兩種方法被可視化在圖4中。在圖4(a)中我們看到后面那個人,其是潛在的動態(tài)物體,沒有被檢測到。有兩個原因。首先,RBG-D相機(jī)面臨的困難是當(dāng)測量較遠(yuǎn)物體的深度時。第二,可靠特征位于定義的,圖片邊界。雖然,這個人被深度學(xué)習(xí)方法檢測到(圖4b)。除了這個,一方面我們看到在圖4(a)中,不僅圖片中前方被檢測到的人。而且它手中的書也被檢測為動態(tài)的。并且它們的分割是不準(zhǔn)確的。如果只有深度學(xué)習(xí)方法被使用,一個漂浮的書將會被留在圖片中并允許不準(zhǔn)確的3D地圖的部分。
由于兩種方法的優(yōu)劣勢,我們考慮它們是互補(bǔ)的,并且因此它們的組合使用是一個有效的方法來達(dá)到準(zhǔn)確的跟蹤和建圖。為了達(dá)到該目標(biāo),如果一個物體同時被該方法檢測到,分割掩膜將會是幾何方法。如果植被學(xué)習(xí)方法檢測到,分割掩膜將也會包含該信息。該例子最終的分割圖片可以在圖4(c)中看到。分割的動態(tài)部分被移除從當(dāng)前幀和地圖中。
D. 跟蹤和建圖
系統(tǒng)該階段的輸入包含RGB和深度圖片,以及分割掩膜。我們提取ORB特征在圖片分割中分類為靜態(tài)。因?yàn)榉指钸吘壥歉叨忍荻鹊膮^(qū)域,落在分割邊緣的關(guān)鍵點(diǎn)不得不被移除。
E. 背景填充
對于每個移除的動態(tài)物體,我們致力于填充遮擋的背景使用之前視角中的靜態(tài)信息,從而我們可以合成一張沒有運(yùn)動物體的真實(shí)圖片。我們相信這個合成圖片,包含環(huán)境的靜態(tài)結(jié)構(gòu),對許多應(yīng)用是有用的,例如VR,AR,重定位和地圖創(chuàng)建后的相機(jī)跟蹤。
因?yàn)槲覀円阎昂彤?dāng)前幀的位置,我們投影到當(dāng)前幀RGB和深度通道的動態(tài)分割從一組之前的關(guān)鍵幀中(前20在我們的實(shí)驗(yàn)中)。一些縫隙沒有對應(yīng)并設(shè)置為空白:一些區(qū)域不能被填充,因?yàn)樵陉P(guān)鍵幀中沒有出現(xiàn)過,或者出現(xiàn)過但沒有合法的深度信息。這些縫隙不能被重建使用幾何方法,將需要一種更精致的填充技術(shù)。圖5展示了結(jié)果的合成圖片對于三張輸入幀從TUM的不同序列中。注意大動態(tài)成分如何被成功地分割和移除。同時,大多數(shù)被分割的部分已經(jīng)被填充使用靜態(tài)背景的信息。
這些合成幀的另一個應(yīng)用如下:如果該幀中動態(tài)區(qū)域被靜態(tài)內(nèi)容填充,系統(tǒng)將會在靜態(tài)假設(shè)下使用填充后的圖片進(jìn)行SLAM。
4 實(shí)驗(yàn)結(jié)果
在TUM RGB-D和KITTI數(shù)據(jù)集上與SOTA動態(tài)環(huán)境SLAM方法進(jìn)行了對比。和ORB-SLAM2進(jìn)行了對比,驗(yàn)證在動態(tài)環(huán)境中的優(yōu)勢。如Mur和Tardos[1]提出的那樣,每個序列需要運(yùn)行5次取中值結(jié)果以彌補(bǔ)系統(tǒng)的不確定性質(zhì)。我們對每個序列運(yùn)行10次。
A TUM數(shù)據(jù)集
兩個序列:sitting和walking。前者環(huán)境中的運(yùn)動成分較少,后者較多。相機(jī)進(jìn)行四種不同運(yùn)動。使用Sturm等人提出的絕對軌跡的RMSE作為評測標(biāo)準(zhǔn)[22]。
消融實(shí)驗(yàn)。由表1可知,結(jié)合語義分割和多視角幾何信息分割結(jié)合的方法效果最好;先背景填充再跟蹤(圖6)不如先跟蹤再背景填充(圖2)的位姿估計精度高。表1. 消融實(shí)驗(yàn)。DynaSLAM的幾個版本的絕對軌跡RMSE[m]。DynaSLAM(N):使用Mask-RCNN分割出先驗(yàn)動態(tài)物體。(G)使用基于深度變化的多視角幾何信息檢測動態(tài)物體。(N+G)組合兩種方法檢測動態(tài)物體。(N+G+BI)如圖6所示檢測動態(tài)物體并背景填充后再跟蹤。圖6. DynaSLAM(N+G+BI)的流程圖。先填充背景,再跟蹤。
與ORB-SLAM2的RGB-D版本比較。表2. DynaSLAM與ORB-SLAM2的RGB-D版本比較。度量標(biāo)準(zhǔn):ATE的RMSE。為了補(bǔ)償程序的不確定性,各運(yùn)行10次程序,比較這10次的RMSE的中值。
與ORB-SLAM2的單目版本的比較。表4. ATE的RMSE和成功跟蹤率。
面向動態(tài)環(huán)境的SOTA算法比較。表3. ATEde RMSE [m],和SOTA 面向動態(tài)環(huán)境的RGB-D SLAM系統(tǒng)的比較。每種方法額外提供相對不考慮運(yùn)動檢測的原始方法的提高程度。
B KITTI數(shù)據(jù)集表5. ATE的RMSE,RPE和RRE的平均值。DynaSLAM和ORB-SLAM2的雙目系統(tǒng)比較。表6. ATE的RMSE。DynaSLAM和ORB-SLAM2的單目系統(tǒng)比較。
C 時間分析表7. DynaSLAM平均每幀運(yùn)行時間
此外,Mask R-CNN處理每張圖片在Nvidia Tesla M40 GPU上需要195ms。
總結(jié)
以上是生活随笔為你收集整理的tensorflow 语义slam_【论文阅读28】DynaSLAM的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: qml中loader加载页面会闪屏_Qm
 - 下一篇: 华为融合电信云解决方案包括_运营商这“一