PTAM

Klein & Murray 2007 · 論文

一行要約 — SLAMを並列なトラッキングとマッピングのスレッドに分割するパラダイムを導入し、リアルタイムなキーフレームベースのバンドル調整を初めて可能にした。

問題

MonoSLAMのEKFアプローチは小規模マップを超えて拡張できなかった: 毎フレーム、すべてのランドマークに対する密な共分散を更新する必要があるため、コストはマップサイズとともに急速に増大し、繰り返される線形化によって精度が損なわれる。バンドル調整(BA)はフィルタリングよりはるかに精度の高い結果を生み出すが、2007年当時はリアルタイム動作には遅すぎると考えられていた。Klein & Murray(ISMAR 2007、オックスフォード大学)は、ハンドヘルドカメラのトラッキングとマップの構築は分離可能な問題であると論じた: これらを2つのスレッドに分離すれば、トラッキングがフレームレートで動作している間にBAをバックグラウンドで実行できる。

手法とアーキテクチャ

トラッキングスレッド(毎フレーム)。 4レベルの画像ピラミッドが構築され、各レベルでFASTコーナーが検出される。カメラ姿勢は 4×44\times 4 行列 ECWE_{CW} として SE(3)\mathrm{SE}(3) 上に存在し、六次元ベクトル μ\mu による指数写像を介した左乗算で更新される:

ECW=MECW=exp(μ)ECW.E_{CW}' = M\,E_{CW} = \exp(\mu)\,E_{CW}.

マップ点は、キャリブレーションされたFOV歪みカメラモデルを通じて投影される。可視な各点の 8×88\times 8 元パッチは、行列 AA(ソースキーフレームの単位画素変位をパッチ平面へ逆投影して求める)によってアフィンワープされ、det(A)/4l\det(A)/4^l が1に最も近くなるピラミッドレベル ll が探索対象として選ばれる。マッチングは、円形ゲート内のFASTコーナー位置における零平均SSDであり、記述子は一切使用しない。見つかったパッチ (u^j v^j)(\hat{u}_j\ \hat{v}_j)^\top の集合 SS とノイズ σj2=22l\sigma_j^2 = 2^{2l} が与えられたとき、姿勢更新は再重み付き最小二乗を10回反復することでロバストな再投影目的関数を最小化する:

μ=argminμjSObj(ejσj, σT),ej=(u^jv^j)CamProj(exp(μ)ECWpj),\mu' = \underset{\mu}{\operatorname{argmin}} \sum_{j \in S} \mathrm{Obj}\left( \frac{|\mathbf{e}_j|}{\sigma_j},\ \sigma_T \right), \qquad \mathbf{e}_j = \begin{pmatrix} \hat{u}_j \\ \hat{v}_j \end{pmatrix} - \mathrm{CamProj}\big(\exp(\mu)\,E_{CW}\,\mathbf{p}_j\big),

ここで Obj(,σT)\mathrm{Obj}(\cdot, \sigma_T) は、中央値ベースのスケール推定 σT\sigma_T を伴うTukeyのバイウェイト関数である。トラッキングは2段階の粗から密への処理である: まず大きな探索半径で50個の粗いレベルの点、続いて狭い探索半径で最大1000個の点を処理する。減衰する速度モデルが事前姿勢を予測し、トラッキング品質は監視され、品質の悪いフレームがマップに反映されないようにする(完全な失敗に対してはリローカライザを用いる)。

マッピングスレッド(非同期)。 マップは、ユーザー操作による2視点ステレオによって立ち上げられる: キー押下による2つの視点間で1000パッチを追跡し、五点法+RANSACによって基礎行列を求め、三角測量を行い、10 cmのベースラインを仮定してスケールを固定し、RANSACで見つけた優勢な平面を z=0z=0 に整列させる。キーフレームは、トラッキングが良好であり、少なくとも20フレームが経過しており、カメラが既存のキーフレームから(深度スケールされた)最小距離を超えている場合にのみ追加される。新しい点は、最も近いキーフレームに対するエピポーラ探索から得られる。このスレッドは、その後キーフレーム姿勢と点に対してBAを実行する:

{μ2..μN},{p1..pM}=argmin{μ},{p}i=1NjSiObj(ejiσji, σT)\{\mu_2 .. \mu_N\}, \{\mathbf{p}'_1 .. \mathbf{p}'_M\} = \underset{\{\mu\},\{\mathbf{p}\}}{\operatorname{argmin}} \sum_{i=1}^{N} \sum_{j \in S_i} \mathrm{Obj}\left( \frac{|\mathbf{e}_{ji}|}{\sigma_{ji}},\ \sigma_T \right)

— Levenberg–Marquardtに標準的なスパースStructure from Motionの手法を組み合わせ、キーフレーム数に対して O(N3)O(N^3) でスケールする。フルBAは探索中に処理を停滞させてしまうため、ローカルBAは XX = 最新のキーフレームとその最も近い4つの近傍のみを、ZZ = それらが見るすべての点にわたって調整し、これらの点を観測するすべてのキーフレーム YY によって制約される(おおよそ O(NM)O(NM))。アイドル時には、このスレッドはデータアソシエーションを改善する: 古いキーフレームで新しい特徴を計測し、Tukeyフラグの立った外れ値計測を削除前に「もう一度チャンス」を与える。

実験結果

すべてデスクトップIntel Core 2 Duo 2.66 GHz上(ライブのハンドヘルド動作):

SLAMにおける意義

PTAMは、今日でも事実上すべての現代的SLAMシステムが従うフロントエンド/バックエンド分離を確立し、キーフレームバンドル調整がフィルタリングを上回ることを実証的に示した — この主張は後にStrasdatらの「Visual SLAM: Why Filter?」によって形式化された。キーフレーム、近傍に対するローカルBA、バックグラウンドでのグローバルな精緻化、トラッキング品質のゲーティング: ORB-SLAMは本質的に、自動初期化、ループ閉じ込み、大規模マップ管理を加えて完成させた、このアーキテクチャそのものである。

関連ノート