iMAP

Sucar 2021 · 論文

一行要約 — 最初のNeRF方式のSLAMシステム: 単一のMLPが、事前データなしでライブに学習され、リアルタイムRGB-Dトラッキングとマッピングの唯一のシーン表現として機能する。

問題

密なRGB-D SLAMは常に明示的なマップ構造 — TSDFボクセルグリッド(KinectFusion)やサーフェル(ElasticFusion) — に依存してきたが、これらは注意深いメモリ管理を必要とし、解像度を事前に固定し、カメラが一度も見ていない場所には穴を残す。NeRFは、MLPがシーンを連続的かつコンパクトに表現できることを示していたが、それはあくまで姿勢付き画像に対する数時間のオフライン学習によるものだった。iMAPは、MLPがライブSLAMシステムの「マップそのもの」になれるかを問う: ハンドヘルドRGB-Dカメラからのストリームに対して「事前データなしにライブ動作で学習」され、同時にトラッキングにも使用される、という具合である。

手法とアーキテクチャ

マップネットワーク。 幅256の隠れ層4層を持つ単一のMLPが、3D点を色と体積密度に写像する Fθ(p)=(c,ρ)F_{\theta}(\mathbf{p})=(\mathbf{c},\rho) — 視線方向は使わない(鏡面反射はモデル化されない)。入力は最適化可能なガウス位置埋め込み sin(Bp)\sin(\mathbf{B}\mathbf{p}) (B\mathbf{B}n×3n\times 3 行列、σ=25\sigma=25、埋め込みサイズ93)を通過し、これは2層目にも連結される。

微分可能レンダリング。 ポーズ TWCT_{WC} のピクセル [u,v][u,v] に対して、逆投影されたレイに沿ってNN個のサンプル pi=dir\mathbf{p}_i=d_i\mathbf{r} が取られる(粗いビン32個+細かいビン12個)。密度は占有率 oi=1exp(ρiδi)o_{i}=1-\exp(-\rho_{i}\delta_{i}) (δi=di+1di\delta_i=d_{i+1}-d_i)となり、レイ終端重みは wi=oij=1i1(1oj)w_{i}=o_{i}\prod_{j=1}^{i-1}(1-o_{j}) となり、深度・色・深度分散は次のようにレンダリングされる:

D^[u,v]=i=1Nwidi,I^[u,v]=i=1Nwici,D^var[u,v]=i=1Nwi(D^[u,v]di)2\hat{D}[u,v]=\sum_{i=1}^{N}w_{i}d_{i},\quad\hat{I}[u,v]=\sum_{i=1}^{N}w_{i}\mathbf{c}_{i},\quad\hat{D}_{var}[u,v]=\sum_{i=1}^{N}w_{i}(\hat{D}[u,v]-d_{i})^{2}

同時最適化(マッピング)。 ネットワーク重み θ\theta とキーフレーム姿勢 {Ti}\{T_i\} は、疎なピクセルサンプル sis_i に対してADAMで同時に最適化され、Lg+λpLpL_{g}+\lambda_{p}L_{p} (λp=5\lambda_p=5)を最小化する。ここで光度損失はL1誤差であり、幾何損失は物体境界のような不確かな領域の重みを下げるために分散で正規化される:

Lg=1Mi=1W(u,v)siDi[u,v]D^i[u,v]D^var[u,v]L_{g}=\frac{1}{M}\sum_{i=1}^{W}\sum_{(u,v)\in s_{i}}\frac{\left|D_{i}[u,v]-\hat{D}_{i}[u,v]\right|}{\sqrt{\hat{D}_{var}[u,v]}}

並行トラッキング。 PTAMの分割方式に従い、別プロセスが「ロックされた」ネットワークに対して同じ損失でライブカメラの姿勢のみを約10 Hzで最適化する一方、同時マッピングは約2 Hzで動作する。両者は1台のデスクトップGPU上の単純なPyTorchマルチプロセッシングで実現される。

忘却対策のキーフレーム選択。 正規化された深度誤差が tD=0.1t_D=0.1 未満であるピクセルの割合 PP が(ロックされたマップスナップショットに対して)tP=0.65t_P=0.65 を下回ったとき — つまり著しく新しい領域を見ているとき — フレームはキーフレームになる。キーフレーム集合はリプレイメモリバンクとして機能し、単一のMLPがシーンの以前の部分を破滅的に忘れてしまわないようにする。

能動的サンプリング。 1回のイテレーションで画像あたり200ピクセルのみがレンダリングされる。各画像は 8×88\times 8 グリッドに分割され、セルごとの平均損失が分布 fi[j]=Li[j]/mLi[m]f_{i}[j]=L_{i}[j]/\sum_{m}L_{i}[m] に正規化され、新しいサンプルはそれに比例して割り当てられる。これによって計算がマップの不確かな箇所に集中する。同じ損失比例スキームがキーフレームのサンプル割り当てにも使われ、各マッピングイテレーションは W=5W=5 フレーム(損失サンプリングされたキーフレーム3枚+直近のキーフレーム+ライブフレーム)からなる限定ウィンドウを最適化する。

実験結果

SLAMにおける意義

iMAPは、ニューラル暗黙表現SLAM研究の全系譜の出発点となった。ここで確立された、微分可能マップに対するトラッキング/マッピングの分離 — 固定されたマップに対する姿勢最適化、リプレイされるキーフレームに対するマップ最適化 — は、今日のNeRFベース・3DGSベースSLAMでも使われるテンプレートである。また「マップ」とは何かを再定義した: 点を挿入するデータ構造ではなく、連続性・コンパクト性・穴埋めが無償で得られる、フィッティングする関数なのだ、と。単一MLPの容量の限界(忘却、大きなシーンでの過平滑化)は、NICE-SLAMの階層グリッド、Co-SLAMのハッシュグリッド、そして最終的にはコミュニティが明示的な3Dガウシアンマップへ移行する動機に直結した。

関連ノート