CodeMapping

Matsuki 2021 · 論文

一行要約 — CodeMapping(RA-L 2021)は、CodeSLAM 方式の学習された密なマッパーを信頼性の高いスパース SLAM システムに接続する: 輝度画像、スパース深度、再投影誤差画像を条件とする VAE が各キーフレームに対して不確実性を考慮した密な深度マップを予測し、それを並列スレッドでのマルチビューコード最適化によって精緻化する。

問題

最先端のスパース視覚 SLAM システムは正確で信頼性の高いカメラ軌跡とランドマーク位置を提供するが、そのスパースマップは「障害物回避やシーン理解といった他のタスクには使用できない」。完全に密な SLAM は(フォトメトリックノイズにより)脆弱であり、膨大なパラメータ数をリアルタイムで同時に最適化できない。一方 CodeSLAM/DeepFactors はグレースケール画像のみから深度を予測するが、これは実際には不正確である。CodeMapping は、実戦で鍛えられたトラッキングコアに触れることなく——また遅延させることなく——任意の計量的なスパース SLAM システムに密で不確実性を考慮したマッピングを追加する方法を問う。

手法とアーキテクチャ

2つの緩く結合したプロセス。 ORB-SLAM3 は無改造で実行される(トラッキング、ローカルおよびグローバルマッピング)。各ローカルバンドル調整の後、SLAM スレッドは密なマッピングスレッドに4個のキーフレーム(最新のものとその共視性上位3個)からなるウィンドウを、カメラ姿勢、スパース深度画像(キーフレームに投影されたランドマーク)、再投影誤差画像(ランドマークごとの平均再投影距離; 未マッチの新点は10に設定)とともに渡す。

スパース・トゥ・デンス VAE。 U-Net はグレースケール画像とスパース深度・再投影誤差マップ([0,1][0,1] に近接パラメータ化)を連結して入力し、VAE を条件付けて潜在コード cR32\mathbf{c} \in \mathbb{R}^{32}、密な深度マップ DD、不確実性マップ bb を出力する。学習は KL 損失と不確実性重み付き再構成損失

xΩD[x]Dgt[x]b[x]+log(b[x]).\sum_{\mathbf{x}\in\Omega} \frac{\| D[\mathbf{x}] - D_{gt}[\mathbf{x}] \|}{b[\mathbf{x}]} + \log(b[\mathbf{x}]) .

を用いる。再投影誤差入力によりネットワークは外れ値のランドマーク(より高い平均再投影誤差を示す)の重みを下げることができる。学習には各画像に1000個の ORB 選択されたスパース点を持つ約40万枚の ScanNet 画像を使用し、再投影誤差は点をレイに沿って摂動させることでシミュレートされ、実際の ORB-SLAM3 実行で観測される指数-ガウス分布に従う(10エポック、学習率0.0001、256×192)。

マルチビューコード最適化。 深度はコンパクトなコードのままであるため、マッパーは GTSAM 内で DeepFactors 方式の因子を用いて整合性を精緻化する——コードのみを最適化し(スパース SLAM からの姿勢は信頼され固定される)、すべての因子に Huber コストを用いる。ワープ ωji(x,ci,Ii)=π(Tjiπ1(x,Di[x]))\omega_{ji}(\mathbf{x}, \mathbf{c}_i, I_i) = \pi(\mathbf{T}_{ji}\,\pi^{-1}(\mathbf{x}, D_i[\mathbf{x}])) を用いて:

Ephotoij(ci)=xΩIi[x]Ij[ωji(x,ci,Ii)]2Erepij(ci)=x,yMijωji(x,ci,Ii)y2E_{photo}^{ij}(\mathbf{c}_i) = \sum_{\mathbf{x}\in\Omega} \| I_i[\mathbf{x}] - I_j[\omega_{ji}(\mathbf{x}, \mathbf{c}_i, I_i)] \|^2 \qquad E_{rep}^{ij}(\mathbf{c}_i) = \sum_{\mathbf{x},\mathbf{y}\in M_{ij}} \| \omega_{ji}(\mathbf{x}, \mathbf{c}_i, I_i) - \mathbf{y} \|^2

Edptij(ci)=xΩTjiπ1(x,Di[x])zDj[x^]2,E_{dpt}^{ij}(\mathbf{c}_i) = \sum_{\mathbf{x}\in\Omega'} \| \,|\mathbf{T}_{ji}\,\pi^{-1}(\mathbf{x}, D_i[\mathbf{x}])|_z - D_j[\hat{\mathbf{x}}] \,\|^2 ,

幾何項には BRISK マッチ MijM_{ij} とスパースにサンプリングされたピクセル Ω\Omega' を用いる。精緻化されたキーフレーム深度は、スパース SLAM の軌跡がグローバルに整合しているため、最終的にグローバルに整合した TSDF モデルへ融合できる。

実験結果

SLAMにおける意義

CodeMapping は、デプロイ可能なシステムを支配する実用的な「ハイブリッド」設計の明確な例である: 実戦で鍛えられたスパースフロントエンドを維持し、古典的な手法が弱い部分(密な幾何)にのみ学習を追加し、ネットワークの失敗がトラッキングを決して殺せないように緩く結合する。これは CodeSLAM/DeepFactors の潜在コードの系譜を実運用向けのアーキテクチャへと引き継ぎ、その著者(Matsuki)は後に、トラッキングと並行した密なマッピングという哲学を Gaussian-splatting SLAM(MonoGS)へと引き継いだ。

関連ノート