論文名稱:ORB-SLAM3:An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM
開源專案地址:https://github.com/UZ-SLAMLab/ORB_SLAM3
期刊:IEEE transactions on robotics
時間:2021
論文主要做的是多傳感器融合/視覺-慣性 SLAM 系統,並不是基於深度學習的預測模型
EuRoC MAV Dataset,室內無人機資料集,含IMU,不含GNSS
鏈接:projects.asl.ethz.ch/datasets/do…
TUM VI Benchmark,手持魚眼相機資料集,含IMU,不含GNSS
鏈接:cvg.cit.tum.de/data/datase…
提出了 ORB-SLAM3,一個支持以下配置的開源 SLAM 系統:
關鍵創新:
ORB-SLAM3 是一個傳統基於特徵點(ORB 特徵)+ 圖優化(Bundle Adjustment)+ IMU 預積分的系統,完全基於幾何視覺與濾波/優化方法,不涉及神經網路、Transformer、RNN、CNN 等深度學習技術
先在影像裡找到“角點”(像牆角、紋理突變的點),再給每個角點配一把”小指紋“ (256 個 0/1 組成的二進制串)
指紋對旋轉、亮度變化不敏感,兩幅圖只要比一下指紋的“差異位數”就能快速配對
ORB(Oriented FAST and Rotated BRIEF)是一種兼顧計算效率與魯棒性的局部特徵描述子
其構造過程可分解為“關鍵點提取”與“描述子編碼”兩個階段
由於 ORB 兼具旋轉、尺度與亮度不變性,且僅需整數運算與比特比較,已成為即時 SLAM 系統首選的前端特徵
把”相機在哪兒“和”路標在哪兒“想像成一張網
如果所有連線都”拉得緊“,網就穩,如果有根線”鬆了“,系統就整體微調所有節點,讓整網最平整
即時裡分三層:
圖優化(Graph-based Optimization)將同時定位與建圖問題抽象為概率圖模型,其中節點表示待估計的機器人位姿與環境路標,邊表示傳感器觀測或運動學約束對應的殘差項
通過最小化所有邊的加權平方誤差,獲得最大後驗估計(MAP)
實際系統通常採用分層策略:
在回環檢測或地圖合併階段,若直接對所有路標與幀位姿執行全局 Bundle Adjustment,變數維度將隨軌跡長度線性增長。稀疏位姿圖通過“僅保留關鍵幀位姿節點 + 幀-幀相對約束邊”的方式降維
優化目標為最小化所有相對位姿誤差,全球漂移通過“回環邊”強制閉合,從而以線性-對數時間複雜度獲得一致軌跡估計。
協方差矩陣的基本原理
圖優化最終歸結為大型線性系統 HΔx=-b,其中Hessian H 維數高但非零塊比例極低。稀疏矩陣分解利用“填充-減少”重排序(如 AMD、COLAMD)將 H 分解為稀疏三角因子,常用算法包括:
IMU 一秒量兩百次角速度、加速度,直接塞進優化器就爆炸
於是把“两幀照片之間”的所有 IMU 讀數先”打包“成一條“運動摘要”,記錄這段時間內轉了多少、跑了多少、速度變了多少,再給這條摘要配一個”可信區間“
後續優化器只面對這一條摘要,而不是上千條原始讀數
IMU 預積分(Pre-integration)旨在將高頻慣性測量在兩個相鄰視覺關鍵幀間隔內的動態信息壓縮為相對運動約束,從而避免在優化框架中引入大量中間狀態
其核心思想是,在假設 biases 保持恆定的局部時間窗內,對陀螺儀與加速度計讀數進行積分,得到旋轉、速度與位移的相對增量,并同步傳播協方差矩陣以量化不確定性
當關鍵幀的 biases 估計更新時,可利用預先存儲的雅可比矩陣對預積分結果進行線性修正,而無需重新遍歷原始測量序列
該機制顯著降低了圖優化的維度與計算負載,同時保留了完整的概率特性,為緊耦合視覺-慣性 SLAM 系統提供了高效且一致的運動先驗
IMU 積分過程中,隨機噪聲與 bias 漂移會隨時間累積。協方差傳播指在數值積分的同時,按線性擾動模型遞推狀態誤差協方差:
[
\mathbf{\Sigma}_{k+1}=\mathbf{F}_k\mathbf{\Sigma}_k\mathbf{F}_k^\top+\mathbf{G}_k\mathbf{\Sigma}\eta\mathbf{G}_k^\top
]
其中(\mathbf{F}_k)為狀態轉移矩陣,(\mathbf{G}_k)為噪聲雅可比,(\mathbf{\Sigma}\eta)為測量噪聲
所得協方差矩陣定量描述了當前積分值的”置信椭球“,在優化中用於加權殘差,實現最大後驗估計而非最小二乘
預積分將相鄰關鍵幀間的 IMU 觀測壓縮為相對運動 (\Delta\xi_{ij})
當後端更新bias估計後,需重新評估積分值,但重跑完整積分會喪失即時性
解決途徑:
[
\Delta\boldsymbol{\xi\mathrm{new}}\approx\Delta\boldsymbol{\xi\mathrm{old}}+\frac{\partial\Delta\boldsymbol{\xi}}{\partial\mathbf{b}}\delta\mathbf{b}
]
維度 | 鬆耦合 (Loosely-Coupled) | 緊耦合 (Tightly-Coupled) |
---|---|---|
融合層級 | 前端獨立,IMU 僅提供運動先驗或尺度恢復 | 視覺與慣性殘差在同一優化目標中聯合最小化 |
狀態向量 | 僅含位姿/速度,視覺部分可獨立運行 | 位姿、速度、bias、路標統一建模 |
信息損失 | 視覺-慣性互約束未充分利用,回環漂移大 | 充分利用交叉協方差,實現零漂移回環 |
計算複雜度 | 低,可跑在 MCU | 高,需稀疏線性求解器與邊緣化 |
代表系統 | MSCKF 早期版本、VINS-Mono(濾波版) | ORB-SLAM3、VINS-Fusion(優化版)、OKVIS、BASALT |
緊耦合將視覺重投影與 IMU 預積分置於同一目標函數,通過聯合優化實現精度上限;鬆耦合則保持模組獨立,側重即時性與部署簡易性。
對比系統 | 類型 | 是否開源 | 結果(在EuRoC資料集上) |
---|---|---|---|
ORB-SLAM2 | 純視覺SLAM | ✅ | ORB-SLAM3精度更高 |
VINS-Mono | 視覺-慣性里程計 | ✅ | ORB-SLAM3精度提升2.6倍 |
OKVIS | 視覺-慣性里程計 | ✅ | ORB-SLAM3更魯棒 |
ROVIO | 視覺-慣性濾波法 | ✅ | ORB-SLAM3精度更高 |
DSO / VI-DSO | 直接法SLAM | ✅ | ORB-SLAM3在回環/多地圖場景下更優 |
BASALT | 視覺-慣性BA系統 | ✅ | ORB-SLAM3在大多數序列更優 |
ORB-SLAM3 是一個不依賴深度學習的、基於幾何優化的視覺-慣性SLAM系統,支持單目/雙目/魚眼/RGB-D、支持IMU融合與多地圖合併,使用公開開源資料集(EuRoC、TUM-VI),並在多個SLAM系統中取得SOTA性能