ORB-SLAM3雖是當前最先進的SLAM之一,但由于使用傳統的ORB(定向FAST和旋轉BRIEF)特征,在尺度、旋轉和光照發生顯著變化時可能會表現出局限性。為此,我們將基于深度學習的興趣點檢測和描述符SuperPoint集成到ORB-SLAM3框架中,以取代傳統的ORB特征。同時,我們采用自適應非極大值抑制(ANMS)來確保關鍵點在空間上的均勻分布。最后實驗結果表明,在KITTI數據集上,定位精度有了顯著提高,六自由度姿態估計中的平均平移誤差從4.15%降低到0.34%,平均旋轉誤差從0.0027度/米降低到0.001度/米。與原始的ORB-SLAM3相比,在更具挑戰性的EuRoC數據集上,我們的系統在所有序列中都取得了顯著的改進,平移誤差從1.2%-1.6%降低到0.5%-0.9%,旋轉誤差從0.0035-0.0045度/米降低到0.0018-0.0028度/米。
? 文章:
SuperPoint-SLAM3: Augmenting ORB-SLAM3 with Deep Features, Adaptive NMS, and Learning-Based Loop Closure
? 作者:
Shahram Najam Syed, Ishir Roongta, Kavin Ravie, Gangadhar Nageswar*
? 論文鏈接:
https://arxiv.org/pdf/2506.13089
? 編譯:
INDEMIND
? 代碼:
https://github.com/shahram95/SuperPointSLAM3
01本文核心內容
深度學習的不斷發展催生了更魯棒的特征檢測器和描述符。SuperPoint是一種自監督卷積神經網絡,它能同時學習興趣點檢測和描述。它在重復性和匹配精度方面表現出了卓越的性能,尤其是在存在顯著幾何和光度變換的場景中。此外,在SLAM系統中關鍵點的空間分布至關重要。均勻分布可以增強特征跟蹤和姿態估計的穩定性。自適應非極大值抑制(ANMS)是一種通過根據局部特征強度自適應調整抑制半徑來強制關鍵點選擇具有空間均勻性的有效方法。
在本工作中,我們提出將SuperPoint特征集成到ORB-SLAM3中,取代傳統的ORB特征,并引入ANMS來改善關鍵點的空間分布。我們在KITTI數據集上評估了修改后的系統,該數據集提供了具有真實姿態的具有挑戰性的戶外序列。實驗表明,所提出的修改顯著提高了定位精度和魯棒性,驗證了將基于深度學習的特征和空間關鍵點分布策略整合到SLAM流程中的實效性。
02方法
在本節中,我們將詳細介紹對ORB-SLAM3框架所做的修改,以集成SuperPoint特征和自適應非極大值抑制(ANMS)。我們將討論算法上的變更、數據處理方面的結構調整以及遇到的實現挑戰。我們的目標是通過利用SuperPoint出色的特征檢測和描述能力來增強SLAM系統的穩健性和準確性,同時通過ANMS確保關鍵點的均勻空間分布。系統架構的詳細實現情況可見圖1。
A.ORB-SLAM3概述
ORB-SLAM3是一種基于特征的實時視覺SLAM系統,通過利用ORB(定向FAST和旋轉BRIEF)特征進行關鍵點檢測和描述來運行。該系統由三個主要線程構成:
? 跟蹤線程:處理輸入幀,通過將當前特征與局部地圖進行匹配來估計相機位姿。
? 局部建圖線程:管理局部地圖的創建和優化,包括關鍵幀插入和局部光束平差。
? 回環檢測線程:使用詞袋(BoW)地方識別系統檢測回環,并執行位姿圖優化以糾正累積漂移。
盡管ORB特征計算效率高,但在具有挑戰性的視覺條件下,由于其對尺度、旋轉和光照變化的敏感性,可能會限制性能。
B.超點特征的集成
為增強特征的魯棒性,我們用SuperPoint替換了ORB特征提取和描述模塊,這是一種基于深度學習的方法,能提供更具判別力和不變性的關鍵點和描述符。
1)SuperPoint網絡集成:
? 模型選擇:我們使用了作者提供的預訓練SuperPoint網絡,該網絡在PyTorch中實現,以利用GPU加速和熟悉度。
? 輸入處理:輸入圖像根據SuperPoint網絡的要求進行調整和歸一化。圖像被轉換為灰度,因為SuperPoint處理單通道輸入。
? 特征提取:SuperPoint網絡輸出一組關鍵點位置及其對應的256維描述符。關鍵點通過檢測網絡生成的概率熱圖中的峰值來提取。
? 非極大值抑制:SuperPoint包含一個內部非極大值抑制機制,用于優化關鍵點檢測。
2)對ORB-SLAM3的修改:
? 跟蹤模塊調整:跟蹤線程的特征提取組件被修改為使用SuperPoint。關鍵點和描述符的數據結構進行了調整以適應SuperPoint的輸出。更新以處理浮點描述符,而非二進制ORB描述符。
? 描述符匹配:由于SuperPoint描述符是高維浮點向量,我們將用于ORB描述符的漢明距離替換為歐幾里得距離(L2范數)來進行匹配。
? 數據結構:特征存儲和地圖點表示形式進行了更新,以適應更大的描述符大小。這包括更改序列化和內存管理例程,以處理增加的數據量。
C.自適應非極大值抑制(ANMS)的實現
為了確保關鍵點在空間上分布均勻,我們在SuperPoint初始關鍵點檢測之后實現了ANMS。
1)算法描述:
ANMS通過選擇不僅響應強度高而且空間分布良好的關鍵點來工作。對于每個關鍵點,根據其相對于相鄰關鍵點的響應強度來計算抑制半徑。
設S={ki}為檢測到的關鍵點集,其中每個關鍵點ki具有位置(xi,yi)和響應強度si。
? 抑制半徑計算:對于每個關鍵點ki,計算最小半徑ri,使得在半徑為ri的圓內不存在其他響應強度sj>si的關鍵點kj。數學表達式為:
? 關鍵點選擇:按照抑制半徑ri的降序對關鍵點進行排序。選擇前N個關鍵點以兼顧強度和空間分布。
2)與SuperPoint的集成:
? 非極大值抑制的修改:我們調整了SuperPoint內部的非極大值抑制,使其輸出一個更大的初始關鍵點集,以便ANMS進行最終選擇。
? 參數調整:關鍵點數量N是基于經驗評估來設定的,以平衡特征豐富度和計算負載。我們發現對于KITTI數據集,N=1000是有效的。
? 實現細節:ANMS通過使用kd樹等數據結構高效實現,用于最近鄰搜索以計算抑制半徑。
D.描述符匹配與數據關聯
1)描述符匹配算法:
? 匹配策略:我們采用了基于L2距離的暴力匹配器,并通過GPU加速進行了優化。
? 比率檢驗:應用了Lowe的比率檢驗來過濾模糊匹配。如果最近鄰與次近鄰的距離之比低于閾值(通常為0.7),則接受該匹配。
? 交叉驗證:為了提高魯棒性,通過確保幀之間的相互最佳匹配來進行交叉驗證。
2)對系統組件的影響:
? 跟蹤線程:姿態估計依賴于當前幀特征與地圖點之間的準確匹配。改進的描述符提高了匹配精度,從而獲得了更好的姿態估計。
? 局部建圖線程:創建新的地圖點和關鍵幀時,對特征數量的增加及其分布進行了調整。
E.兼容性問題處理
1)描述符維度:
? 描述符大小增加:SuperPoint描述符為256維,而ORB描述符為32字節。這增加了內存使用量,并需要對數據存儲和傳輸進行調整。
? 序列化:更新了地圖序列化例程以處理浮點描述符,確保地圖數據能夠正確保存和加載。
2)回環模塊:
? 與BoW詞匯表不兼容:ORB-SLAM3中的BoW地點識別系統是為二進制描述符設計的,無法直接使用SuperPoint描述符。
? 臨時解決方案:在初始測試中禁用了回環功能。這使我們能夠專注于評估SuperPoint特征對跟蹤和建圖的影響。
? 未來工作:我們計劃集成基于學習的地點識別系統,例如NetVLAD,它可以處理高維描述符。
3)深度過濾:
? 實現細節:丟棄了對應于估計深度大于20米的地圖點的特征,以減少不可靠遠距離特征的影響。
? 原因:由于立體相機的基線有限,遠處的特征往往深度估計不夠準確,對精確姿態估計的用處不大。
? 對地圖構建的影響:這種過濾通過專注于具有更好幾何約束的較近特征,提高了系統的魯棒性。
F.計算方面的考慮
1)性能優化:
? GPU加速:SuperPoint推理在GPU上執行,與CPU執行相比顯著減少了計算時間。
? 批量處理:我們通過在可能的情況下處理圖像批次來優化數據處理,減少了每幀的開銷。
? 并行化:匹配和ANMS計算使用多線程進行并行化,以利用多核CPU架構。
2)實時操作:
? 性能分析:我們對系統進行了性能分析以識別瓶頸。特征提取和匹配階段是計算最密集的。
? 優化技術:我們采用了高效的算法和數據結構,例如近似最近鄰搜索,以減少計算時間。
? 權衡:在計算負載和系統性能之間取得了平衡,調整了諸如關鍵點數量和匹配閾值等參數。
G.實現挑戰
1)內存管理:
? 內存使用增加:更大的描述符增加了地圖的內存占用。我們優化了內存分配和釋放,以防止內存泄漏并減少開銷。
? 垃圾回收:更積極地修剪未使用的地圖點和關鍵幀,以管理內存消耗。
2)算法穩定性:
? 收斂問題:初步實驗表明,由于SuperPoint特征的不同特性,優化例程存在不穩定性。我們在束調整中調整了收斂標準和異常值拒絕閾值。
3)系統集成:
? 代碼庫復雜性:ORB-SLAM3是一個具有相互依賴模塊的復雜系統。確保一個組件的更改不會對其他組件產生不利影響需要仔細的測試和驗證。
? 文檔和可維護性:我們詳細記錄了代碼修改,以方便未來的開發和調試。
03實驗
實驗設置
1)數據集準備:
? KITTI里程計數據集:我們使用了00到10序列,這些序列包含用于評估的真實位姿。
? EuRoC微型飛行器數據集:我們在所有序列(從MH01easy到V203difficult)上進行了評估,涵蓋了包括快速運動和光照不良在內的各種具有挑戰性的場景。
? 數據轉換:圖像對被轉換為所需的格式,確保同步和正確的校準參數。
2)評估指標:
? 絕對軌跡誤差(ATE):衡量估計軌跡與真實軌跡之間的差異。
? 相對位姿誤差(RPE):評估短段軌跡的局部精度。
? 誤差計算:使用KITTI基準套件和EuRoC評估工具計算指標。
實驗流程:
? 基線比較:我們在兩個數據集上運行原始的ORB-SLAM3以建立基線性能指標。
? 改進系統測試:在相同條件下測試帶和不帶ANMS的SuperPointSLAM。
? 重復實驗:每個實驗均重復多次,以確保結果的一致性并考慮隨機變化。
定量結果
視覺軌跡對比
我們繪制了所有序列(00至10)的二維投影(XZ平面)和六維姿態軌跡。這些圖表展示了估計的軌跡與KITTI數據集提供的真實軌跡的重疊情況。
觀察結果
1)ORB-SLAM3:
? 在沒有回環的序列中表現出明顯的漂移。
? 隨著時間的推移,漂移逐漸累積,導致與真實軌跡出現顯著偏差。
2)SuperPointSLAM:
? 與ORB-SLAM3相比,漂移有所減少。
? 由于更穩健的SuperPoint描述符,特征匹配效果更好。
3)SuperPointSLAM+ANMS:
? 進一步減少了漂移,提高了軌跡估計的準確性。
? 關鍵點的均勻分布增強了姿態估計的穩定性。
D.有趣觀察及問題
1)無回環序列中的漂移:
? ORB-SLAM3在沒有回環機會的序列中存在明顯的漂移。
? 使用ANMS的SuperPointSLAM表現更佳,與真實軌跡的對齊度更高。
2)垂直軸和俯仰角抖動:
? 當車輛經過不平整路面時,沿Y軸(垂直方向)和俯仰角會出現明顯的抖動。地形因素,例如減速帶。
? 這種影響在ORB-SLAM3中更為明顯,而在SuperPointSLAM中使用ANMS則有所緩解。
3)錯誤的回環閉合嘗試:
? 在使用ANMS的SuperPointSLAM中,我們觀察到系統會嘗試在距離初始位置約350米的地方閉合回環,即使在沒有實際回環閉合的序列中也是如此。
? 這個問題的出現是因為BoW回環閉合檢測機制與SuperPoint描述符不兼容,導致出現誤報。
? 回環閉合模塊需要進行調整或替換,以與SuperPoint特征有效配合。
04總結
通過整合Super-Point特征和ANMS,已顯示出在定位精度和魯棒性方面的顯著提升。初步結果表明,基于深度學習的特征能夠增強傳統的SLAM系統。
-
SLAM
+關注
關注
24文章
441瀏覽量
32493 -
數據集
+關注
關注
4文章
1224瀏覽量
25439 -
深度學習
+關注
關注
73文章
5561瀏覽量
122783
原文標題:增強版ORB-SLAM3!利用深度特征、自適應非極大值抑制和學習回環檢測,顯著提升精度和魯棒性!
文章出處:【微信號:gh_c87a2bc99401,微信公眾號:INDEMIND】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
請問用樹莓派運行ORB-SLAM2算法可行嗎?
機器人SLAM實現
機器和深度學習增強SLAM技術,有助于感知時代的到來
ORB SLAM中涉及的一些基礎概念
基于視覺傳感器的ORB-SLAM系統的學習
基于深度學習的視覺SLAM綜述
ORB-SLAM3與ORB-SLAM2相比有哪些優勢呢?
基于英特爾開發套件使用ORB-SLAM3實現無人機實時定位

視覺SLAM開源算法ORB-SLAM3原理與代碼解析

工程實踐中VINS與ORB-SLAM的優劣分析

深度解析深度學習下的語義SLAM

評論