摘要
近年來,基于視覺的傳感器在SLAM系統中顯示出顯著的性能、精度和效率提升。在這方面,視覺SLAM(VSLAM)方法是指使用相機進行姿態估計和地圖生成的SLAM方法。許多研究工作表明,VSLAM優于傳統方法,傳統方法僅依賴于特定傳感器,例如激光雷達,即使成本較低。VSLAM利用不同的攝像機類型(例如單目、雙目和RGB-D),在不同的數據集(例如KITTI、TUM RGB-D和EuRoC)和不同的環境(例如,室內和室外)中進行測試,并采用了多種算法和方法論,以更好地解析環境。上述變化使這一主題受到研究人員的廣泛關注,并產出了許多經典VSLAM算法。在這方面,論文調查的主要目的是介紹VSLAM系統的最新進展,并討論現有的挑戰和未來趨勢。論文對在VSLAM領域發表的45篇有影響力的論文進行了深入的調查,并根據不同的特點對這些方法進行了分類,包括novelty domain、目標、采用的算法和語義水平。最后論文討論了當前的趨勢和未來的方向,有助于研究人員進行研究。
總結來說,圖1顯示了標準VSLAM方法的整體架構。系統的輸入可以與其他傳感器數據集成以提供更多信息,例如慣性測量單元(IMU)和激光雷達,而不是只有視覺數據。此外,對于VSLAM 范式中使用的直接或間接方法,視覺特征處理模塊的功能可能會被更改或忽略。例如,“特征處理”階段僅用于間接方法。另一個因素是利用一些特定模塊,如回環檢測和光束法平差,以改進執行。
視覺SLAM算法的發展
VSLAM系統在過去的幾年中已經成熟,一些框架在這個開發過程中發揮了重要作用。圖2展示了視覺SLAM發展過程中的里程碑算法。
首篇實時單目VSLAM于2007年由Davison提出,名為Mono SLAM的框架[17]。他們的間接框架可以使用擴展卡爾曼濾波(EKF)算法估計現實世界中的相機運動和3D元素[18]。盡管缺乏全局優化和回環檢測模塊,Mono SLAM開始在VSLAM域中發揮主要作用。然而用這種方法重建的地圖只包括地標,沒有提供關于該區域的進一步詳細信息。Klein等人[14]在同一年提出了Parallel Tracking and Mapping(PTAM),他們將整個VSLAM系統分為兩個主要線程:tracking和mapping。PTAM為后續很多工作奠定了基石。PTAM方法的主要思想是降低計算成本,并使用并行處理來實現實時性能。當tracking實時估計攝像機運動時,mapping預測特征點的3D位置。PTAM也是第一個利用光束法平差(BA)聯合優化相機姿態和3D地圖創建的方法。其使用Features from Accelerated Segment Test(FAST)[19]的角點檢測器算法進行關鍵點匹配和跟蹤。盡管該算法的性能優于Mono SLAM,但其設計復雜,在第一階段需要用戶輸入。Newcombe等人于2011年提出了一種用于測量深度值和運動參數來構建地圖的直接方法,即密集跟蹤和映射(DTAM)。DTAM是一種密集建圖和密集跟蹤模塊的實時框架,可通過將整個幀與給定深度圖對齊來確定相機姿態。為了構建環境地圖,上述階段分別估計場景的深度和運動參數。雖然DTAM可以提供地圖的詳細信息,但實時執行需要較高的計算成本。作為3D 建圖和基于像素的優化領域中的另一種間接方法,Endres等人在2013年提出了一種可用于RGB-D相機的方法。他們的方法是實時的,專注于低成本嵌入式系統和小型機器人,但在無特征或具有挑戰性的場景中無法產生準確的結果。同年,Salas Moreno等人[22]提出了SLAM++,是實時SLAM框架中利用語義信息的開山之作。SLAM++采用RGB-D傳感器輸出,并進行3D相機姿態估計和跟蹤以形成姿態圖。然后通過合并從場景中的語義目標獲得的相對3D姿態來優化預測姿態。
隨著VSLAM基線的成熟,研究人員專注于提高這些系統的性能和精度。Forster等人在2014年提出了一種混合VO方法,稱為Semi-direct Visual Odometry(SVO)[24]。SVO可以結合基于特征的方法和直接方法來實現傳感器的運動估計和建圖任務。SVO可以與單目和雙目相機一起工作,并配備了一個姿態細化模塊,以最小化重投影誤差。然而,SVO的主要缺點是采用短期數據關聯,并且無法進行回環檢測和全局優化。LSD-SLAM[25]是Engel等人于2014年提出的另一種有影響力的VSLAM方法,包含跟蹤、深度估計和地圖優化。該方法可以使用其姿態圖估計模塊重建大規模地圖,并具有全局優化和回環檢測功能。LSD-SLAM的弱點在于其初始化階段,需要平面中的所有點,這使其成為一種計算密集型方法。Mur Artal等人介紹了兩種精確的間接VSLAM方法,迄今為止廣受關注:ORB-SLAM[26]和ORBSLAM 2.0[27]。這些方法可以在紋理良好的序列中完成定位和建圖,并使用Oriented FAST and Rotated BRIEF(ORB)特征實現高性能的位置識別。ORB-SLAM的第一個版本能夠使用從相機位置收集的關鍵幀來計算相機位置和環境結構。第二個版本是對ORB-SLAM的擴展,有三個并行線程,包括查找特征對應的跟蹤、地圖管理操作的局部建圖,以及用于檢測新環路和糾正漂移錯誤的回環。盡管ORB-SLAM 2.0可以與單目和立體相機一起使用,但由于重建具有未知比例的地圖,因此不能用于自主導航。這種方法的另一個缺點是其無法在沒有紋理的區域或具有重復模式的環境中工作。該框架的最新版本名為ORB-SLAM 3.0,于2021提出[28]。它適用于各種相機類型,如單目、RGB-D和雙目視覺,并提供改進的姿態估計輸出。
近年來,隨著深度學習的快速發展,基于CNN的方法可以通過提供更高的識別和匹配率來解決許多問題。類似地,用學習特征替換人工設計的特征是許多最近基于深度學習的方法提出的解決方案之一。在這方面,Tateno等人提出了一種基于CNN的方法,該方法處理相機姿態估計的輸入幀,并使用關鍵幀進行深度預測,命名為CNN-SLAM[29]。CNN-SLAM實現并行處理和實時性能的核心思想之一是,將相機幀分割成較小的部分以更好地理解環境。Engel等人還引入了Direct Sparse Odometry(DSO)[30],其將直接方法和稀疏重建相結合,以提取圖像塊中的最高強度點。
綜上所述,VSLAM系統演進過程中的里程碑表明,最近的方法側重于多個專用模塊的并行執行。這些模塊形成了與廣泛的傳感器和環境兼容的通用技術和框架。上述特性使它們能夠實時執行,并且在性能改進方面更加靈活。
相關綜述
VSLAM領域已有不少綜述,對不同的現有方法進行了全面調查。每一篇論文都回顧了使用VSLAM方法的主要優點和缺點。Macario Barros等人[31]將方法分為三個不同類別:僅視覺(單目)、視覺慣性(立體)和RGB-D。他們還提出了簡化分析VSLAM算法的各種標準。然而[31]并沒有包括其他視覺傳感器,比如基于事件的傳感器。Chen等人[32]調查了廣泛的傳統和語義VSLAM。他們將SLAM開發時代分為經典、算法分析和魯棒感知階段。并總結了采用直接/間接方法的經典框架,研究了深度學習算法在語義分割中的影響。盡管他們的工作提供了該領域高級解決方案的全面研究,但方法的分類僅限于基于特征的VSLAM中使用的特征類型。Jia等人[33]調查了大量文獻,并對基于圖優化的方法和配備深度學習的方法進行了簡要比較。在另一項工作中,Abaspur Kazerouni等人[34]涵蓋了各種VSLAM方法,利用了感官設備、數據集和模塊,并模擬了幾種間接方法進行比較和分析。它們只對基于特征的算法進行分析,例如HOG、尺度不變特征變換(SIFT)、加速魯棒特征(SURF)和基于深度學習的解決方案。Bavle等人[35]分析了各種SLAM和VSLAM應用中的態勢感知方面,并討論了它們的缺失點。還有一些其他綜述如[15]、[36]、[37]、[32]、[37]在此不再贅述。
與上述綜述不同,本文對不同場景的VSLAM系統進行全面調查,主要貢獻如下:
對各種最近的VSLAM方法進行分類,這些方法涉及研究人員在提出新解決方案方面的主要貢獻、標準和目標;
通過深入研究不同方法的不同方面,分析VSLAM系統的當前趨勢;
介紹VSLAM對研究人員的潛在貢獻。
VSLAM 設置標準
考慮到各種VSLAM方法,論文將可用的不同設置和配置分為以下類別:傳感器和數據采集、目標環境、視覺特征處理、系統評估和語義類別,下面逐一介紹。
傳感器和數據采集
Davison等人[17]引入的VSLAM算法的早期階段配備了用于軌跡恢復的單目攝像機。單目相機是最常見的視覺傳感器,用于各種任務,如物體檢測和跟蹤[39]。另一方面,立體相機包含兩個或更多圖像傳感器,使其能夠感知圖像中的深度,從而在VSLAM應用中實現更準確的性能。相機設置具有成本效益,并為更高的精度要求提供信息感知。RGB-D相機也是VSLAM中使用的視覺傳感器,其可以提供場景中的深度和顏色。上述視覺傳感器可以提供豐富的環境信息,例如,適當的照明和運動速度,但它們通常難以應對照明度低或場景動態范圍高的情況。
近年來,事件攝像機也被用于各種VSLAM應用中。當檢測到運動時,這些低延遲仿生視覺傳感器產生像素級亮度變化,而不是標準強度幀,從而實現高動態范圍輸出,而不會產生運動模糊影響[40]。與標準相機相比,事件傳感器在高速運動和大范圍動態場景中可以提供可靠的視覺信息,但在運動速度較低時無法提供足夠的信息。另一方面,事件相機主要輸出關于環境的不同步信息。這使得傳統的視覺算法無法處理這些傳感器的輸出[41]。此外,使用事件的時空窗口以及從其他傳感器獲得的數據可以提供豐富的姿態估計和跟蹤信息。
此外,一些方法使用多目相機設置來解決在真實環境中工作的常見問題,并提高定位精度。利用多目傳感器有助于解決復雜問題,例如遮擋、偽裝、傳感器故障或可跟蹤紋理稀疏等,為攝像機提供重疊視角。盡管多目相機可以解決一些數據采集問題,但純視覺的VSLAM可能會面臨各種挑戰,例如遇到快速移動目標時的運動模糊、低照度或高照度下的特征不匹配、高速變化場景下的動態目標忽略等。因此,一些VSLAM應用程序可能會在攝像機旁邊配備多個傳感器。融合事件和標準幀[42]或將其他傳感器(如激光雷達[43]和IMU)集成到VSLAM是一些現有的解決方案。
目標環境
作為許多傳統VSLAM實踐中的一個有力假設,機器人在靜態世界中工作,沒有突然或意外的變化。因此,盡管許多系統可以在特定環境中成功應用,但環境中的一些意外變化(例如,移動目標的存在)可能會導致系統復雜化,并在很大程度上降低狀態估計質量。在動態環境中工作的系統通常使用諸如光流或隨機采樣一致性(RANSAC)[44]之類的算法來檢測場景中的移動,將移動目標分類為異常值,并在重建地圖時跳過它們。這樣的系統利用幾何/語義信息或試圖通過組合這兩個結果來改進定位方案[45]。
此外作為一般分類法,論文將環境分為室內和室外兩類。室外環境可以是具有結構地標和大規模運動變化(如建筑物和道路紋理)的城市區域,或具有弱運動狀態(如移動的云和植被、沙子紋理等)的越野區域,這增加了定位和回環檢測失敗的風險。另一方面,室內環境包含具有完全不同的全局空間屬性的場景,例如走廊、墻和房間。論文認為,雖然VSLAM系統可能在上述區域中的一個工作良好,但在其他環境中可能表現不出相同的性能。
視覺特征處理
如前文所述,檢測視覺特征并利用特征描述子信息進行姿態估計是間接VSLAM方法的一個必要階段。這些方法使用各種特征提取算法來更好地理解環境并跟蹤連續幀中的特征點。特征提取算法有很多,包括SIFT[46]、SURF[47]、FAST[19]、BRIEF[48]、ORB[49]等。其中,與SIFT和SURF[50]相比,ORB特征具有快速提取和匹配而不大幅損失準確度的優點。
上述一些方法的問題是它們不能有效地適應各種復雜和不可預見的情況。因此,許多研究人員使用CNN來提取圖像特征,包括VO、姿態估計和回環檢測。根據方法的功能,這些技術可以表示有監督或無監督的框架。
系統評估
雖然一些VSLAM方法,特別是那些能夠在動態和挑戰性環境中工作的方法,在真實世界中進行測試。但許多研究工作都使用了公開的數據集來證明其適用性。在這方面,Bonarini等人[51]的RAWSEEDS數據集是一個著名的多傳感器基準測試工具,包含室內、室外和混合機器人軌跡與真值數據。它是用于機器人和SLAM目的的最古老的公開基準測試工具之一。McCormac等人[52]的Scenenet RGB-D是場景理解問題的另一個受歡迎的數據集,例如語義分割和目標檢測,包含500萬個大規模渲染的RGB-D圖像。最近在VSLAM和VO領域的許多工作已經在TUM RGB-D數據集上測試了它們的方法[53]。此外,Nguyen等人[54]的NTU VIRAL是由配備3D激光雷達、相機、IMU和多個超寬帶(UWB)的無人機收集的數據集。該數據集包含室內和室外實例,旨在評估自動駕駛和空中操作性能。其他數據集如EuRoC MAV[55]、OpenLORIS Scene[56]、KITTI[57]、TartanAir[58]、ICL-NUIM[59]和基于事件相機的數據集[60]可以參考相關論文。
根據傳感器設置、應用和目標環境,上述數據集用于多種VSLAM方法。這些數據集主要包含攝像機的內外參以及GT。表I和圖3分別顯示了數據集的總結特征和每個數據集的一些實例。
語義等級
機器人需要語義信息才能理解周圍的場景并做出更優決策。在許多最近的VSLAM工作中,將語義級信息添加到基于幾何的數據中優于純幾何的方法,使其能夠提供環境的概念知識[61]。在這方面,預先訓練的目標識別模塊可以將語義信息添加到VSLAM模型[62]。最新的方法之一是在VSLAM應用中使用CNN。一般來說,語義VSLAM方法包含以下四個主要組成部分[43]:
跟蹤模塊:它使用從連續視頻幀中提取的二維特征點來估計相機姿態并構建三維地圖點。相機姿態的計算和3D地圖點的構建分別建立了定位和建圖過程的基線;
局部建圖模塊:通過處理兩個連續視頻幀,創建了一個新的3D地圖點,該點與BA模塊一起用于改進相機姿態;
回環模塊:通過將關鍵幀與提取的視覺特征進行比較并評估它們之間的相似性,進一步調整相機姿態并優化構建的地圖;
非剛性上下文消隱 (Non-Rigid Context Culling,NRCC):使用NRCC的主要目標是從視頻幀中過濾時間目標,以減少它們對定位和建圖階段的不利影響。其主要包含一個分割過程,用于分離幀中的各種不穩定實例,例如人。由于NRCC可以減少待處理的特征點的數量,因此簡化了計算部分并獲得了更魯棒的性能。
因此,在VSLAM方法中利用語義信息可以改善姿態估計和地圖重建的不確定性。然而,當前的挑戰是如何正確使用提取的語義信息,而不影響計算成本。
基于主要目標的VSLAM方法
目標一:多傳感器處理
這一類別涵蓋了使用各種傳感器以更好地了解環境的VSLAM方法的范圍。雖然一些技術僅依賴攝像機作為所使用的視覺傳感器,但其他技術將各種傳感器結合起來以提高算法的準確性。
1)使用多相機
一個相機重建運動物體的3D軌跡可能很困難,一些研究人員建議使用多相機。例如,CoSLAM是Zou和Tan[63]推出的一個VSLAM系統,它使用部署在不同平臺上的單攝像機來重建魯棒地圖。CoSLAM結合了在動態環境中獨立移動的多個攝像機,并根據它們重疊的視場重建地圖。該過程通過混合相機內和相機間姿態估計和建圖,使得在3D中重建動態點更容易。CoSLAM使用Kanade-Lucas-Tomasi(KLT)算法跟蹤視覺特征,并在靜態和動態環境中運行,包括室內和室外,其中相對位置和方向可能會隨時間變化。這種方法的主要缺點是需要復雜的硬件來理解大量的攝像機輸出,并通過增加更多的攝像機來增加計算成本。
對于具有挑戰性的野外場景,Yang等人[64]開發了一種多攝像機協同全景視覺VSLAM方法。[64]賦予每個攝像機獨立性,以提高VSLAM系統在挑戰場景下的性能,例如遮擋和紋理稀疏。為了確定匹配范圍,他們從攝像機的重疊視場中提取ORB特征。此外,[64]還使用了基于CNN的深度學習技術來識別回環檢測的類似特征。在實驗中,作者使用了由全景相機和集成導航系統生成的數據集。相關工作還有MultiCol-SLAM[65]。
2)使用多傳感器
其他一些方法建議融合多傳感器,并使用基于視覺和慣性的傳感器輸出以獲得更好的性能。在這方面,Zhu等人[66]提出了一種稱為CamVox的低成本間接激光雷達輔助VSLAM,并證明了其可靠的性能和準確性。他們的方法使用ORB-SLAM 2.0,將Livox激光雷達作為高級深度傳感器提供的獨特功能與RGB-D相機的輸出相結合。作者使用IMU來同步和校正非重復掃描位置。CamVox貢獻是提出了一種在不受控制的環境中運行的自主激光雷達-相機校準方法。在機器人平臺上的實測表明,CamVox在能夠實時運行。
[67]提出了一種名為VIRAL(視覺-慣性-測距-激光雷達)SLAM的多模態系統,該系統將相機、激光雷達、IMU和UWB耦合起來。并提出了一種基于激光雷達點云構建的局部地圖的視覺特征地圖匹配邊緣化方案。使用BRIEF算法提取和跟蹤視覺分量。該框架還包含用于所使用的傳感器的同步方案和觸發器。VIRAL在NTU VIRAL[54]數據集上測試了他們的方法,該數據集包含相機、激光雷達、IMU和UWB傳感器捕獲的數據。然而,由于處理同步、多線程和傳感器沖突解決,他們的方法計算量很大。其他相關算法Ultimate SLAM[68]、[69]可以參考相關論文。
目標二:姿態估計
這類方法的重點是如何使用各種算法改進VSLAM方法的姿態估計。
1)使用線/點數據
在這方面,Zhou等人[70]建議使用建筑結構線段作為有用的特征來確定相機姿態。結構線與主導方向相關聯,并編碼全局方向信息,從而改善預測軌跡。方法名為StructSLAM,是一種6自由度(DoF)VSLAM技術,可在低特征和無特征條件下運行。
Point and Line SLAM(PL-SLAM)是一種基于ORB-SLAM的VSLAM系統,針對非動態低紋理場景進行了優化,由Pumarola等人提出[71]。該系統同時融合線和點特征以改進姿態估計,并幫助在特征點較少的情況下運行。作者在生成的數據集和TUM RGB-D上測試了PL-SLAM。其方法的缺點是計算成本和必須使用其他幾何圖元(例如平面),以獲得更穩健的精度。
Gomez-Ojeda等人[72]介紹了PL-SLAM(不同于Pumarola等人[71]中同名的框架),這是一種間接VSLAM技術,使用立體視覺相機中的點和線來重建看不見的地圖。他們將從所有VSLAM模塊中的點和線獲得的片段與從其方法中的連續幀獲取的視覺信息合并。使用ORB和線段檢測器(LSD)算法,在PL-SLAM中的后續立體幀中檢索和跟蹤點和線段。作者在EuRoC和KITTI數據集上測試了PL-SLAM,在性能方面可能優于ORB-SLAM 2.0的立體版本。PL-SLAM的主要缺點之一是特征跟蹤模塊所需的計算時間以及考慮所有結構線以提取關于環境的信息。其他相關算法[73]可以參考論文。
2)使用額外特征
[74]中提出了Dual Quaternion Visual SLAM(DQV-SLAM),一種用于立體視覺相機的框架,該框架使用廣泛的貝葉斯框架進行6-DoF姿態估計。為了防止非線性空間變換組的線性化,他們的方法使用漸進貝葉斯更新。對于地圖的點云和光流,DQV-SLAM使用ORB功能在動態環境中實現可靠的數據關聯。在KITTI和EuRoC數據集上,該方法可以可靠地得到預測結果。然而,它缺乏姿態隨機建模的概率解釋,并且對基于采樣近似的濾波的計算要求很高。其他相關算法SPM-SLAM[75]可以參考論文。
3)深度學習
Bruno和Colombini[76]提出了LIFT-SLAM,它將基于深度學習的特征描述子與傳統的基于幾何的系統相結合。并擴展了ORB-SLAM系統的流水線,使用CNN從圖像中提取特征,基于學習得到的特征提供更密集和精確的匹配。為了檢測、描述和方向估計,LIFT-SLAM微調學習不變特征變換(LIFT)深度神經網絡。使用KITTI和EuRoC MAV數據集的室內和室外實例進行的研究表明,LIFT-SLAM在精度方面優于傳統的基于特征和基于深度學習的VSLAM系統。然而,該方法的缺點是其計算密集的流水線和未優化的CNN設計。
Naveed等人[77]提出了一種基于深度學習的VSLAM解決方案,該解決方案具有可靠且一致的模塊,即使在極端轉彎的路線上也是如此。他們的方法優于幾種VSLAM,并使用了在真實模擬器上訓練的深度強化學習網絡。此外,它們還為主動VSLAM評估提供了基線,并可在實際室內和室外環境中適當推廣。網絡的路徑規劃器開發了理想的路徑數據,由其基礎系統ORB-SLAM接收。[77]制作了一個數據集,包含了挑戰性和無紋理環境中的實際導航事件,以供評估。其他方法RWT-SLAM[78]可參考相關論文。
目標三:現實世界可行性
這類方法的主要目標是在各種環境中使用,并在多種場景下工作。論文注意到,本節中的引用與從環境中提取的語義信息高度集成,并展示了端到端的VSLAM應用。
1)動態環境
在這方面,Yu等人[61]引入了一個名為DS-SLAM的VSLAM系統,該系統可用于動態上下文,并為地圖構建提供語義級信息。該系統基于ORB-SLAM 2.0,包含五個線程:跟蹤、語義分割、局部建圖、回環和密集語義圖構建。為了在姿態估計過程之前排除動態目標并提高定位精度,DS-SLAM使用了實時語義分割網絡SegNet的光流算法[80]。DS-SLAM已經在現實世界環境中、RGB-D相機以及TUM RGB-D數據集上進行了測試。然而,盡管它的定位精度很高,但它仍面臨語義分割限制和計算密集型特征的問題。
Semantic Optical Flow SLAM(SOF-SLAM)是基于ORB-SLAM 2.0的RGB-D模式構建的間接VSLAM系統[45]。他們的方法使用語義光流動態特征檢測模塊,該模塊提取并跳過ORB特征提取提供的語義和幾何信息中隱藏的變化特征。為了提供準確的相機姿態和環境信息,SOF-SLAM使用了SegNet的像素級語義分割模塊。在極端動態的情況下,TUM RGB-D數據集和現實環境中的實驗結果表明,SOF-SLAM的性能優于ORB-SLAM 2.0。然而,非靜態特征識別的無效方法和僅依賴于兩個連續幀是SOF-SLAM的缺點。其他相關算法[81]、[82]可以參考相關論文。
2)基于深度學習的解決方案
在Li等人[83]的另一個名為DXSLAM的工作中,深度學習用于找到類似于SuperPoints的關鍵點,并生成通用描述子和圖像的關鍵點。他們訓練先進的CNN HF-NET,通過從每個幀中提取局部和全局信息,生成基于幀和關鍵點的描述子。此外還使用離線Bag of Words(BoW)方法訓練局部特征的視覺詞匯表,以實現精確的回環識別。DXSLAM在不使用GPU的情況下實時運行,并且與當代CPU兼容。即使這些品質沒有得到特別的處理,它也有很強的抵抗動態環境中動態變化的能力。DXSLAM已經在TUM RGB-D和OpenLORIS場景數據集以及室內和室外圖像上進行了測試,可以獲得比ORB-SLAM 2.0和DS-SLAM更準確的結果。然而,這種方法的主要缺點是復雜的特征提取架構和將深層特征合并到舊的SLAM框架中。
在另一種方法中,Li等人[84]開發了一種實時VSLAM技術,用于在復雜情況下基于深度學習提取特征點。該方法可以在GPU上運行,支持創建3D密集地圖,是一個具有自監督功能的多任務特征提取CNN。CNN輸出是固定長度為256的二進制代碼串,這使得它可以被更傳統的特征點檢測器(如ORB)所取代。系統包括三個線程,用于在動態場景中實現可靠和及時的性能:跟蹤、局部建圖和回環。支持使用ORB-SLAM 2.0作為基線的單目和RGB-D相機的系統。其他相關算法[85]可以參考相關論文。
3)使用人工地標
Medina Carnicer等人提出的一種稱為UcoSLAM[86]的技術,通過結合自然和人造地標,并使用基準標記自動計算周圍環境的比例,從而優于傳統的VSLAM系統。UcoSLAM的主要驅動力是對抗自然地標的不穩定性、重復性和較差的跟蹤質量。它可以在沒有標簽或特征的環境中運行,因為它只能在關鍵點、地標和混合模式下運行。為了定位地圖對應關系,優化重投影誤差,并在跟蹤失敗時重新定位,UcoSLAM具有跟蹤模式。此外,它有一個基于地標的回環檢測系統,可以使用任何描述子描述特征,包括ORB和FAST。盡管UcoSLAM有很多優點,但系統在多線程中執行,這使得它成為一種耗時的方法。
4)廣泛的設置
用于動態室內和室外環境的另一種VSLAM策略是DMS-SLAM[87],它支持單目、立體和RGB-D視覺傳感器。該系統采用滑動窗口和基于網格的運動統計(GMS)[88]特征匹配方法來找到靜態特征位置。DMS-SLAM以ORB-SLAM 2.0系統為基礎,跟蹤ORB算法識別的靜態特征。作者在TUM RGB-D和KITTI數據集上測試了他們建議的方法,并優于先進的的VSLAM算法。此外,由于在跟蹤步驟中刪除了動態目標上的特征點,DMS-SLAM比原始的ORB-SLAM 2.0執行得更快。盡管有上述優點,但DMS-SLAM在紋理少、運動快和高度動態環境的情況下會遇到困難。
目標四:資源限制
在另一類中,與其他標準設備相比,一些VSLAM方法是為計算資源有限的設備構建的。例如,為移動設備和具有嵌入式系統的機器人設計的VSLAM系統就屬于這一類別。
1)處理能力有限的設備
在這方面,edgeSLAM是Xu等人提出的用于移動和資源受限設備的實時、邊緣輔助語義VSLAM系統[89]。它采用了一系列細粒度模塊,由邊緣服務器和相關移動設備使用,而不需要多線程。edgeSLAM中還包括基于Mask-RCNN技術的語義分割模塊,以改進分割和目標跟蹤。作者在一個邊緣服務器上安裝了一些商用移動設備,如手機和開發板。通過重用目標分割的結果,他們通過使系統參數適應不同的網絡帶寬和延遲情況來避免重復處理。EdgeSLAM已在TUM RGB-D、KITTI的單目視覺實例和為實驗設置創建的數據集上進行了評估。
對于立體相機設置,Grisetti等人[90]提出了一種輕量級的基于特征的VSLAM框架,名為ProSLAM,其結果與先進技術不相上下。四個模塊組成了他們的方法:triangulation模塊,它創建3D點和相關的特征描述子;增量運動估計模塊,其處理兩個幀以確定當前位置;創建局部地圖的地圖管理模塊;以及基于局部地圖的相似性更新世界地圖的重新定位模塊。ProSLAM使用單個線程檢索點的3D位置,并利用少量已知庫來創建簡單的系統。根據KITTI和EuRoC數據集的實驗,他們的方法可以獲得穩健的結果。然而,它在旋轉估計方面表現出不足,并且不包含任何光束法平差模塊。其他相關算法VPS-SLAM[91]、[94]可以參考相關論文。
2)計算遷移
Ben Ali等人[96]建議使用邊緣計算將資源密集型操作遷移到云上,并減少機器人的計算負擔。他們在其間接框架Edge-SLAM中修改了ORB-SLAM 2.0的架構,在機器人上維護了跟蹤模塊,并將剩余部分委派給邊緣。通過在機器人和邊緣設備之間拆分VSLAM流水線,系統可以維護局部和全局地圖。在可用資源較少的情況下,它們仍然可以在不犧牲準確性的情況下正確運行。[96]使用TUM RGB-D數據集和兩個不同的移動設備,基于RGB-D相機生成定制的室內環境數據集進行評估。然而,該方法的缺點之一是由于各種SLAM模塊的解耦而導致架構的復雜性。另一個問題是,系統僅在短期設置下工作,在長期場景(例如,多天)中使用Edge SLAM將面臨性能下降。
目標五:彈性化(Versatility)
VSLAM在這一類中的工作側重于直接的開發、利用、適應和擴展。
在這方面,Sumikura等人[95]引入了OpenVSLAM,這是一個高度適應性的開源VSLAM框架,旨在快速開發并被其他第三方程序調用。他們基于特征的方法與多種相機類型兼容,包括單目、立體和RGB-D,并且可以存儲或重用重建的地圖以供以后使用。由于其強大的ORB特征提取模塊,OpenVSLAM在跟蹤精度和效率方面優于ORB-SLAM和ORB-SLAM2.0。然而,由于擔心代碼相似性侵犯了ORB-SLAM 2.0的權利,該系統的開源代碼已經停止。
為了彌合實時能力、準確性和彈性之間的差距,Ferrera等人[97]開發了OV2SLAM,可用于單目和立體視覺相機。通過將特征提取限制在關鍵幀中,并通過消除測光誤差在后續幀中對其進行監控,他們的方法減少了計算量。從這個意義上講,OV2SLAM是一種混合策略,它結合了VSLAM直接和間接方法的優點。在室內和室外實驗中,使用包括EuRoC、KITTI和TartanAir在內的著名基準數據集,證明OV2SLAM在性能和準確性方面優于幾種流行技術。其他相關算法DROID-SLAM[98]、iRotate[99]可以參考相關論文。
目標六:視覺里程計(Visual Odometry)
此類方法旨在以盡可能高的精度確定機器人的位置和方向。
1)深度神經網絡
在這方面,[100]中提出了Dynamic-SLAM框架,該框架利用深度學習進行準確的姿態預測和適當的環境理解。作為優化VO的語義級模塊的一部分,作者使用CNN來識別環境中的運動目標,這有助于他們降低由不正確的特征匹配帶來的姿態估計誤差。此外,Dynamic-SLAM使用選擇性跟蹤模塊來忽略場景中的動態位置,并使用缺失特征校正算法來實現相鄰幀中的速度不變性。盡管結果很好,但由于定義的語義類數量有限,該系統需要巨大的計算成本,并面臨動態/靜態目標誤分類的風險。
Bloesch等人[101]提出了Code-SLAM,它提供了場景幾何體的濃縮和密集表示。他們的VSLAM系統是PTAM的增強版[14],該系統僅與單目攝像機一起工作。其將強度圖像劃分為卷積特征,并使用根據SceneNet RGB-D數據集的強度圖像訓練的CNN將其饋送到深度自編碼器。EuRoC數據集的實驗結果表明,其結果在準確性和性能方面很有希望。其他相關算法DeepVO[102]、[103]、DeepFactors[104]可以參考相關論文。
2)深度相鄰幀處理
在另一項工作中,[106]的作者通過減少用于攝像機運動檢測的兩幅圖像之間的光度和幾何誤差,為RGB-D攝像機開發了一種實時密集SLAM方法,改進了他們先前的方法[107]。他們基于關鍵幀的解決方案擴展了Pose SLAM[108],它只保留非冗余姿態,以生成緊湊的地圖,增加了密集的視覺里程計特征,并有效地利用來自相機幀的信息進行可靠的相機運動估計。作者還采用了一種基于熵的技術來度量關鍵幀的相似性,用于回環檢測和漂移避免。然而,他們的方法仍然需要在回環檢測和關鍵幀選擇質量方面進行工作。
在Li等人[109]介紹的另一項工作中,使用稱為DP-SLAM的基于特征的VSLAM方法實現實時動態目標移除。該方法使用基于從運動目標導出的關鍵點的似然性的貝葉斯概率傳播模型。使用移動概率傳播算法和迭代概率更新,DP-SLAM可以克服幾何約束和語義數據的變化。它與ORB-SLAM 2.0集成,并在TUM RGB-D數據集上進行了測試。盡管結果準確,但由于迭代概率更新模塊,該系統僅在稀疏VSLAM中工作,并且面臨較高的計算成本。其他相關算法[110]可以參考相關論文。
3)各種特征處理
此類別中的另一種方法是Li等人[111]提出的基于文本的VSLAM系統,稱為TextSLAM。它將使用FAST角點檢測技術從場景中檢索的文本項合并到SLAM管道中。文本包括各種紋理、圖案和語義,這使得使用它們創建高質量3D文本地圖的方法更加有效。TextSLAM使用文本作為可靠的視覺基準標記,在找到文本的第一幀之后對其進行參數化,然后將3D文本目標投影到目標圖像上以再次定位。他們還提出了一種新的三變量參數化技術,用于初始化瞬時文本特征。使用單目相機和作者創建的數據集,在室內和室外環境中進行了實驗,結果非常準確。在無文本環境中操作、解釋短字母以及需要存儲大量文本詞典是TextSLAM的三大基本挑戰。其他相關算法[43]、[112]可以參考相關論文。
確定當前趨勢
統計數字
關于上述各方面調查論文的分類,論文將圖4中的處理數據可視化,以找出VSLAM的當前趨勢。在子圖“a”中,可以看到,大多數擬議的VSLAM系統都是獨立的應用程序,它們使用視覺傳感器從頭開始執行定位和建圖的整個過程。雖然ORB-SLAM2.0和ORB-SLAM是用于構建新框架的其他基礎平臺,但只有很少的方法基于其他VSLAM系統,如PTAM和PoseSLAM。此外,就VSLAM應用程序的目標而言,子圖“b”中最重要的是改進視覺里程計模塊。因此,大多數最近的VSLAM都試圖解決當前算法在確定機器人位置和方向方面的問題。姿態估計和真實世界生存能力是提出新的VSLAM論文的進一步基本目標。關于調查論文中用于評估的數據集,子圖“c”說明了大多數工作都在TUM RGB-D數據集上進行了測試。此外,許多研究人員傾向于對他們生成的數據集進行實驗。我們可以假設生成數據集的主要動機是展示VSLAM方法在真實場景中的工作方式,以及它是否可以作為端到端應用程序使用。EuRoC MAV和KITTI分別是VSLAM工作中下一個流行的評估數據集。從子圖“d”中提取的另一個有趣信息涉及使用VSLAM系統時使用語義數據的影響。我們可以看到,大多數論文在處理環境時不包括語義數據。論文假設不使用語義數據的原因是:
在許多情況下,訓練識別目標并將其用于語義分割的模型的計算成本相當大,這可能會增加處理時間;
大多數基于幾何的VSLAM算法被設計在即插即用的設備上工作,因此它們可以用最少的努力使用相機數據進行定位和建圖;
從場景中提取的不正確信息也會導致過程中增加更多的噪聲。
當考慮環境時,我們可以在子圖“e”中看到,一半以上的方法也可以在具有挑戰性的動態環境中工作,而其余的系統只關注沒有動態變化的環境。此外,在子圖“f”中,大多數方法都適用于“室內環境”或“室內和室外環境”,而其余的論文僅在室外條件下進行了測試。應當指出的是,如果在其他情況下采用的方法只能在具有限制性假設的特定情況下工作,則可能不會產生相同的準確性。這是一些方法只集中于特定情況的主要原因之一。
分析當前趨勢
本文回顧了最先進的視覺SLAM方法,這些方法吸引了大量關注,并展示了它們在該領域的主要貢獻。盡管在過去幾年中,VSLAM系統的各個模塊都有了廣泛的可靠解決方案和改進,但仍有許多高潛力領域和未解決的問題需要在這些領域進行研究,從而在SLAM的未來發展中采用更穩健的方法。鑒于視覺SLAM方法的廣泛性,論文介紹以下開放的研究方向:
深度學習:深度神經網絡在各種應用中顯示出令人鼓舞的結果,包括VSLAM[15],使其成為多個研究領域的一個重要趨勢。由于其學習能力,這些體系結構已顯示出相當大的潛力,可以用作可靠的特征提取器,以解決VO和回環檢測中的不同問題。CNN可以幫助VSLAM進行精確的目標檢測和語義分割,并且在正確識別人工設計的特征方面可以優于傳統的特征提取和匹配算法。必須指出的是,由于基于深度學習的方法是在具有大量多樣數據和有限目標類的數據集上進行訓練的,因此總是存在對動態點進行錯誤分類并導致錯誤分割的風險。因此,它可能導致較低的分割精度和姿態估計誤差。
信息檢索和計算成本權衡:通常情況下,處理成本和場景中的信息量應始終保持平衡。從這個角度來看,密集地圖允許VSLAM應用程序記錄高維完整場景信息,但實時這樣做將需要計算量。另一方面,稀疏表示由于其較低的計算成本,將無法捕獲所有需要的信息。還應注意的是,實時性能與攝像機的幀速率直接相關,峰值處理時間的幀丟失會對VSLAM系統的性能產生負面影響,而與算法性能無關。此外,VSLAM通常利用緊耦合的模塊,修改一個模塊可能會對其他模塊產生不利影響,這使得平衡任務更具挑戰性。
語義分割:在創建環境地圖的同時提供語義信息可以為機器人帶來非常有用的信息。識別攝像機視場中的目標(例如門、窗、人等)是當前和未來VSLAM工作中的一個熱門話題,因為語義信息可用于姿態估計、軌跡規劃和回環檢測模塊。隨著目標檢測和跟蹤算法的廣泛使用,語義VSLAM無疑將成為該領域未來的解決方案之一?;丨h算法:任何SLAM系統中的關鍵問題之一是漂移問題,以及由于累積的定位誤差而導致的特征軌跡丟失。在VSLAM系統中,檢測漂移和回環以識別先前訪問過的位置會導致計算延遲和高成本[89]。主要原因是回環檢測的復雜度隨著重建地圖的大小而增加。此外,組合從不同地點收集的地圖數據并細化估計姿態是非常復雜的任務。因此,回環檢測模塊的優化和平衡具有巨大的改進空間。檢測回環的常見方法之一是通過基于局部特征訓練視覺詞匯表,然后將其聚合來改進圖像檢索。
在具有挑戰性的場景中工作:在沒有紋理的環境中工作,很少有顯著特征點,這通常會導致機器人的位置和方向出現漂移誤差。作為VSLAM的主要挑戰之一,此錯誤可能導致系統故障。因此,在基于特征的方法中考慮互補的場景理解方法,例如目標檢測或線條特征,將是一個熱門話題。
結論
本文介紹了一系列SLAM算法,其中從攝像機采集的視覺數據起著重要作用。論文根據VSLAM系統方法的各種特點,如實驗環境、新穎領域、目標檢測和跟蹤算法、語義級生存能力、性能等,對其最近的工作進行了分類。論文還根據作者的主張、未來版本的改進以及其他相關方法中解決的問題,回顧了相關算法的關鍵貢獻以及現有的缺陷和挑戰。本文的另一個貢獻是討論了VSLAM系統的當前趨勢以及研究人員將更多研究的現有開放問題。
-
神經網絡
+關注
關注
42文章
4771瀏覽量
100719 -
應用程序
+關注
關注
37文章
3266瀏覽量
57679 -
VSLAM
+關注
關注
0文章
23瀏覽量
4323
發布評論請先 登錄
相關推薦
評論