vMAP

Kong 2023 · 論文

一行要約 — 検出された各オブジェクトに専用の小さなMLPを持たせ、それらすべてをベクトル化された演算により同時に学習するオブジェクトレベルのニューラルフィールドSLAM――モデル不要のオブジェクト単位再構成を、シーンあたり最大50個のオブジェクトに対して5Hzの地図更新で実現する、水密な再構成。

問題

iMAPやNICE-SLAMのようなニューラルフィールドSLAMシステムは、シーン全体を1つの単一なフィールドとして表現し、オブジェクトレベルの構造を持たない。そのため個々のオブジェクトを抽出することは難しい。「ネットワークパラメータと特定のシーン領域との対応関係が複雑である」ためだ。一方、オブジェクトレベルSLAMは、未観測な表面を補完するためにCADモデルやカテゴリレベルの形状事前分布を必要としていた――事前分布がなければ直接観測された部分しか再構成されず、穴が残る。vMAPは事前分布なしのケースを対象とする。すなわち、稼働中のRGB-D SLAMシステム内での、効率的かつ水密なオブジェクト単位再構成である。

手法とアーキテクチャ

オブジェクトの初期化と関連付け。 各フレームには密なインスタンスマスクが付随する(グラウンドトゥルース、またはLVISで事前学習されたDetic)。検出結果はフレーム間で2つの基準によって関連付けられる――意味的一致性(同じ予測クラス)と空間的一致性(3Dオブジェクト境界の平均IoU)。マッチしなかった検出結果はモデルスタックに新たなオブジェクトMLPを生成・追加する。オブジェクトごとの3D境界は深度から逆投影した点群から得られ、観測が蓄積されるにつれて精緻化される。カメラ姿勢はORB-SLAM3から外部的に提供される。これは「姿勢とジオメトリを同時最適化するよりも正確かつロバストである」ことが判明したためである。

ベクトル化学習(主要な貢献点)。すべてのオブジェクトMLPは同一のアーキテクチャを共有する(4層、隠れ層サイズ32; 背景モデルは128)。そのため、Pythonループの代わりにPyTorchのベクトル化演算を用いて、単一のバッチ処理として積み重ね・最適化できる。各オブジェクトは自身の独立したキーフレームバッファからピクセルをサンプリングするため、あるオブジェクトの学習は他のオブジェクトと干渉することなく停止・再開できる。

深度ガイドサンプリング。 各レイに沿って、NcN_c個の点が近傍境界 tnt_nと深度マップ表面 tst_sの間で層化均一サンプリングされ、NsN_s個の点は表面付近に集中する:

tiU(tn+i1Nc(tstn),  tn+iNc(tstn)),tiN(ts,dσ2),t_i \sim \mathcal{U}\Bigl(t_n + \tfrac{i-1}{N_c}(t_s - t_n),\; t_n + \tfrac{i}{N_c}(t_s - t_n)\Bigr), \qquad t_i \sim \mathcal{N}(t_s, d_{\sigma}^{2}),

ここで dσ=3d_\sigma = 3 cmであり、無効な深度は遠方境界にフォールバックする。

占有率レンダリング。 視線方向は省略され(視点依存の見た目より表面を重視)、各点は占有確率 oθ(xi)[0,1]o_\theta(\mathbf{x}_i) \in [0,1]を持ち、終端確率 Ti=o(xi)j<i(1o(xj))T_i = o(\mathbf{x}_i)\prod_{j<i}\bigl(1-o(\mathbf{x}_j)\bigr)を与えてレンダリングする:

O^(r)=i=1NTi,D^(r)=i=1NTidi,C^(r)=i=1NTici.\hat{O}(\mathbf{r}) = \sum_{i=1}^{N} T_i, \qquad \hat{D}(\mathbf{r}) = \sum_{i=1}^{N} T_i d_i, \qquad \hat{C}(\mathbf{r}) = \sum_{i=1}^{N} T_i c_i.

損失。 オブジェクト kkに対して、ピクセルはその2Dバウンディングボックス RkR^k内のみでサンプリングされる。深度と色はマスク MkM^k内で(L1で)教師付けされる一方、レンダリングされた占有率は RkR^k全体でマスクに一致するように押し付けられる――これによりフィールドはオブジェクト外部では空になるよう学習する:

L=k=1KLdepthk+λ1Lcolourk+λ2Loccupancyk,λ1=5, λ2=10.L = \sum_{k=1}^{K} L^{k}_{\text{depth}} + \lambda_{1} L^{k}_{\text{colour}} + \lambda_{2} L^{k}_{\text{occupancy}}, \qquad \lambda_1 = 5,\ \lambda_2 = 10.

合成レンダリング。 任意のオブジェクトはその3D境界内でクエリ、固定、除去、再合成できる。シーンレベルの新規視点合成では、オブジェクトごとにRay-Box交差を使用し、レンダリングされた深度をレイごとにランク付けしてオクルージョンを考慮した合成を行う。

実験結果

SLAMにおける意義

vMAPはオブジェクトレベルの分解をニューラルフィールドSLAMにもたらし、オブジェクトSLAMの系譜(SLAM++、Fusion++、NodeSLAM)と暗黙的マッピングの系譜(iMAP、NICE-SLAM)を橋渡しした。得られる地図は単なるジオメトリではなく、独立に学習・操作可能なオブジェクトエンティティの集合である――これはロボット操作やシーン編集が正に必要とするものだ。そしてベクトル化学習のトリックは、「多数のネットワーク」が単一GPU上でスケールすることを示した。この手法はオブジェクト中心のニューラルフィールドマッピングの参照設計となり、その後のオブジェクト認識密なSLAM研究に影響を与えた。

関連ノート