ORB-SLAM3

Campos 2020 · 論文

一行要約 — モノキュラー、ステレオ、RGB-Dカメラにわたり、ピンホールおよび魚眼モデルでビジュアル、ビジュアル慣性、マルチマップSLAMをサポートする最初のSLAMライブラリであり、従来システムに対して精度を大幅に改善した。

問題

ORB-SLAM2はIMU統合を欠いており、トラッキング失敗から復帰することができなかった: 一度トラッキングを失うと、マップは実質的に失われてしまう。ARヘッドセット、ドローン、長期のロボットミッションといった実世界での運用では、一時的な遮蔽、縮退した運動、視覚情報が乏しい長期間を乗り越える必要がある。ORB-SLAM3(IEEE TRO、サラゴサ大学)はこの両方のギャップに対応する: IMU初期化フェーズを含めて「最大事後確率(MAP)推定に完全に依拠する」密結合のビジュアル慣性システムと、トラッキング失敗を破局ではなく回復可能なイベントに変える、Atlasマルチマップ機構である。

手法とアーキテクチャ

システムはORB-SLAM2のスレッド構成を維持しつつ、マルチマップ動作のために拡張している: トラッキングスレッドは各フレームをアクティブマップに対して位置推定する(慣性モードでは物体速度とIMUバイアスを最適化状態に加える)。ローカルマッピングスレッドはキーフレームのスライディングウィンドウに対するビジュアルまたはビジュアル慣性BAによってアクティブマップを成長・精緻化し、IMU初期化を実行する。ループ&マップマージスレッドはAtlas全体をキーフレームレートで探索する — アクティブマップ内のマッチはループ閉じ込みを引き起こし、他のマップ内のマッチはシームレスなマージを引き起こす(ウェルディングウィンドウBA、続いてessentialグラフのポーズ最適化)。フルBAはその後別スレッドで実行される。カメラモデル(投影、逆投影、ヤコビアン)はモジュールとして抽象化されているため、ピンホールとKannala-Brandt魚眼モデルの両方がシステム全体で機能し、MLPnPベースのリローカリゼーションや、固定外部パラメータ SE(3)\mathrm{SE}(3) 制約を持つ2つのモノキュラーカメラとして扱う非整流ステレオも含まれる。

ビジュアル慣性モードでは、キーフレームごとの状態は Si{Ti,vi,big,bia}\mathcal{S}_{i}\doteq\{\mathbf{T}_{i},\mathbf{v}_{i},\mathbf{b}^{g}_{i},\mathbf{b}^{a}_{i}\}(姿勢、速度、ジャイロ/加速度計バイアス)である。キーフレーム間のIMUプリインテグレーションは ΔRi,i+1,Δvi,i+1,Δpi,i+1\Delta\mathbf{R}_{i,i+1},\Delta\mathbf{v}_{i,i+1},\Delta\mathbf{p}_{i,i+1} と慣性残差 rIi,i+1\mathbf{r}_{\mathcal{I}_{i,i+1}} を与える。例えば回転項は rΔRi,i+1=Log(ΔRi,i+1TRiTRi+1)\mathbf{r}_{\Delta\mathrm{R}_{i,i+1}}=\mathrm{Log}\left(\Delta\mathbf{R}_{i,i+1}^{\mathrm{T}}\mathbf{R}_{i}^{\mathrm{T}}\mathbf{R}_{i+1}\right) である。再投影残差 rij=uijΠ(TCBTi1xj)\mathbf{r}_{ij}=\mathbf{u}_{ij}-\Pi\left(\mathbf{T}_{\mathrm{CB}}\mathbf{T}_{i}^{-1}\oplus\mathbf{x}_{j}\right) を用いると、ビジュアル慣性SLAMはキーフレームベースのMAP問題となる:

minSˉk,X(i=1krIi1,iΣIi,i+112+j=0l1iKjρHub(rijΣij1))\min_{\bar{\mathcal{S}}_{k},\mathcal{X}}\left(\sum_{i=1}^{k}\left\lVert\mathbf{r}_{\mathcal{I}_{i-1,i}}\right\rVert_{\Sigma_{\mathcal{I}_{i,i+1}}^{-1}}^{2}+\sum_{j=0}^{l-1}\sum_{i\in\mathcal{K}^{j}}\rho_{\mathrm{Hub}}\left(\left\lVert\mathbf{r}_{ij}\right\rVert_{\Sigma_{ij}^{-1}}\right)\right)

慣性計測にはミスアソシエーションが存在しないため、Huberカーネルはビジュアル項にのみ適用される。

MAPベースのIMU初期化は3ステップで進む: (1) ビジョンのみ — 2秒間の純粋なモノキュラーSLAMによりスケール不定の正確な軌跡が得られる。(2) 慣性のみ — 状態 Yk={s,Rwg,b,vˉ0:k}\mathcal{Y}_{k}=\{s,\mathbf{R}_{\mathrm{wg}},\mathbf{b},\bar{\mathbf{v}}_{0:k}\}(スケール、重力方向、バイアス、速度)を以下によって解く:

Yk=argminYk(bΣb12+i=1krIi1,iΣIi1,i12)\mathcal{Y}_{k}^{*}=\arg\min_{\mathcal{Y}_{k}}\left(\|\mathbf{b}\|_{\Sigma_{b}^{-1}}^{2}+\sum_{i=1}^{k}\|\mathbf{r}_{\mathcal{I}_{i-1,i}}\|_{\Sigma_{\mathcal{I}_{i-1,i}}^{-1}}^{2}\right)

ビジュアル軌跡を固定した上で解く。(3) ビジュアル慣性の結合BA。トラッキング失敗は2段階で処理される: 短期(IMUからの姿勢、広ウィンドウでのマップ点再マッチ)と長期(Atlas内に新しいアクティブマップを開始)。改善された場所認識は、3回連続のキーフレーム検出を待つのではなく、マップ内の既存の共視性キーフレームに対して候補を幾何学的に検証すること、およびマッチしたキーフレーム周辺のローカルウィンドウで中期マッチを集中的に探索することによって、DBoW2の再現率を高める。

実験結果

すべての実験はIntel Core i7-7700 CPUで実行された。EuRoC(10回実行の中央値、RMS ATE)では、ORB-SLAM3は4つの構成すべてで従来システムを上回る: ステレオ慣性は11シーケンス全体で平均0.035 m(スケール誤差0.6%)、モノキュラー慣性は0.043 m、ステレオは0.084 m、モノキュラーは完了したシーケンスで0.041 mである。モノキュラー慣性は「MCSKF、OKVIS、ROVIOより5〜10倍精度が高く、VI-DSOおよびVINS-Monoの2倍以上の精度」であり、ステレオ慣性はKimeraおよびVINS-Fusionより3〜4倍精度が高い。IMU初期化は2秒以内にスケール誤差5%に達し、精緻化後は約1%になる。魚眼のTUM-VIベンチマークでは全体的にVINS-MonoおよびBasaltを上回る。AR/VR的な部屋のシーケンスでは平均ATEはステレオ慣性で0.009 m、モノキュラー慣性で0.011 mである。EuRoCのマルチセッション実験では、AtlasのマージによりCCM-SLAMおよびVINS-Monoの精度が2倍以上になる(VINS-Monoに対する優位性は単一セッションの2.6倍からマルチセッションの3.2倍に増加する)。全体として、アブストラクトは「従来のアプローチより2〜10倍精度が高い」と主張しており、そのオープンソース版はその後の数百の論文で標準ベースラインとなった。

SLAMにおける意義

ORB-SLAM3は、PTAMとORB-SLAMに始まる特徴点ベースSLAM系列の集大成であり、リリース時点で入手可能な最も完全かつ精度の高いオープンソースSLAMライブラリであった — アルゴリズムのすべての段階で短期、中期、長期、かつマルチマップのデータアソシエーションを活用した最初のシステムである。マルチマップAtlasは、生涯にわたる、失敗に耐性のある運用を実用化し、そのMAPベースのビジュアル慣性初期化はVIOシステムの新たな標準を確立した。今日でも本分野で最も一般的なベースラインおよび実運用の出発点の一つである。

関連ノート