面向動態環境基於點的語義SLAM系統

點擊上方“3D視覺工坊”,選擇“星標”

乾貨第一時間送達

作者:robot L | 來源:知乎

https://zhuanlan.zhihu.com/p/133212711

本文僅做學術分享,如有侵權,請聯繫刪除。

主要內容

面向動態環境基於點的語義SLAM系統。ORB-SLAM2的動態環境擴展版本,面向單目,雙目和RGB-D相機。具體內容如下:

  • 動態物體檢測方法。使用深學習方法(Mask R-CNN檢測可能運動的物體:車,人等)和幾何方法(將深度或者角度差距較大的數據關聯點當做動態點)分別檢測可能運動正在運動的物體。

  • 只使用靜態區域且非動態物體掩膜邊緣的ORB特徵點進行相機位姿估計。

  • 使用歷史觀測進行背景填充。

  • 代碼地址:https://github.com/BertaBescos/DynaSLAM

缺點

  • 該方法選擇去除所有有潛在運動可能的物體,如停在路邊的汽車等。這可能會導致剩餘的靜止特徵點過少而影響相機位姿估計。如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可以同時獲得逐像素語義分割和實例標號。對於該工作我們使用逐像素語義分割信息,但是實例標號能夠在未來工作中被使用爲了跟蹤不同的運動物體,我們使用Matterport的TensorFlow應用:https://github.com/matterport/Mask_RCNN

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。

推薦閱讀

重磅!3DCVer-學術論文寫作投稿 交流羣已成立

掃碼添加小助手微信,可申請加入3D視覺工坊-學術論文寫作與投稿 微信交流羣,旨在交流頂會、頂刊、SCI、EI等寫作與投稿事宜。

同時也可申請加入我們的細分方向交流羣,目前主要有3D視覺CV&深度學習SLAM三維重建點雲後處理自動駕駛、CV入門、三維測量、VR/AR、3D人臉識別、醫療影像、缺陷檢測、行人重識別、目標跟蹤、視覺產品落地、視覺競賽、車牌識別、硬件選型、學術交流、求職交流等微信羣,請掃描下面微信號加羣,備註:”研究方向+學校/公司+暱稱“,例如:”3D視覺 + 上海交大 + 靜靜“。請按照格式備註,否則不予通過。添加成功後會根據研究方向邀請進去相關微信羣。原創投稿也請聯繫。

▲長按加微信羣或投稿

▲長按關注公衆號

3D視覺從入門到精通知識星球:針對3D視覺領域的知識點彙總、入門進階學習路線、最新paper分享、疑問解答四個方面進行深耕,更有各類大廠的算法工程人員進行技術指導。與此同時,星球將聯合知名企業發佈3D視覺相關算法開發崗位以及項目對接信息,打造成集技術與就業爲一體的鐵桿粉絲聚集區,近1000+星球成員爲創造更好的AI世界共同進步,知識星球入口:

學習3D視覺核心技術,掃描查看介紹,3天內無條件退款

 圈裏有高質量教程資料、可答疑解惑、助你高效解決問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章