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