BA-Net

Tang 2019 · 論文

一行要約 — BA-Net(ICLR 2019)はバンドル調整を微分可能なネットワーク層とし、学習された特徴ピラミッドとコンパクトな基底深度マップパラメータ化を用いた feature-metric BA によって密な SfM をエンドツーエンドで学習して解いた。

問題

従来の SfM パイプラインはモジュール化されている——特徴抽出、マッチング、バンドル調整はそれぞれ独立に設計・最適化される——ため、特徴が本来担うべき幾何推定に最適化されることは決してない。幾何的 BA はコーナーやブロブのみを用い、マッチングの外れ値に苦しむ。フォトメトリック(直接)BA はすべてのピクセルを用いるが、その目的関数は強く非凸であり、初期化・露出変化・移動物体に敏感である。学習と BA を統合する障害は、BA が2つの微分不可能な if-else 判断を含む反復的な Levenberg–Marquardt(LM)手続きであることにある: 収束閾値による終了判定と、減衰係数 λ\lambda の増減更新である。BA-Net は問う: 微分可能な BA 層を通して密な SfM を解くことで、再構成損失からの勾配で特徴自体を学習できるだろうか?

手法とアーキテクチャ

ネットワークは複数の画像を入力とし、カメラ姿勢 T\mathbb{T} と密な深度マップ D\mathbb{D} を出力する。共有の DRN-54 バックボーンが2つのヘッドに特徴を供給し、それらの出力が BA-Layer で合流する。

ei,jf(X)=Fi(π(Ti,djqj))F1(qj),e^{f}_{i,j}(\mathcal{X}) = F_i\big(\pi(\mathbf{T}_i,\, d_j \cdot \mathbf{q}_j)\big) - F_1(\mathbf{q}_j),

ここで π\pi は3D点を画像に投影し、qj\mathbf{q}_j は画像 I1I_1 内の深度 djd_j を持つ正規化されたピクセルであり、Ti\mathbf{T}_i は画像 IiI_i の姿勢である。BA を通して学習されることで、学習済み特徴は(RGB 距離や事前学習済み分類特徴と異なり)滑らかな盆地を持つ明確な大域的最小値を発達させ、収束半径を拡大する。

D=ReLU(wB),\mathbb{D} = \mathrm{ReLU}(\mathbf{w}^{\top}\mathbf{B}),

したがって BA は結合重み w\mathbf{w}(学習済みの初期値 w0\mathbf{w}_0 を持つ)のみを最適化し、ReLU が深度を非負に保ちつつ、密なピクセルごとの深度が復元される。

ΔX=(J(X)J(X)+λD(X))1J(X)E(X).\Delta\mathcal{X} = \big(J(\mathcal{X})^{\top}J(\mathcal{X}) + \lambda D(\mathcal{X})\big)^{-1} J(\mathcal{X})^{\top} E(\mathcal{X}).

2つの微分不可能な判断は、(i) イテレーション数を固定すること(「不完全な最適化」: ピラミッドレベルごとに5回の LM イテレーション、3レベルの coarse-to-fine で合計15回、各イテレーションで特徴をワーピング)、(ii) λ\lambda を MLP で予測すること(ピクセルにわたる E(X)|E(\mathcal{X})| のグローバル平均プーリングで128次元ベクトルを得て、ReLU 付きの4層の全結合層に入力する)によって取り除かれる。各ステップはこうして微分可能な関数 ΔX=g(X;F)\Delta\mathcal{X} = g(\mathcal{X}; \mathbb{F}) となり、解の更新 Xk=g(Xk1;F)Xk1\mathcal{X}_k = g(\mathcal{X}_{k-1};\mathbb{F}) \circ \mathcal{X}_{k-1}(深度重みは加算、姿勢は SE(3) 指数写像)は姿勢・深度から特徴ピラミッドへ逆伝播する。姿勢は単位回転とゼロ並進で初期化される。

実験結果

SLAMにおける意義

BA-Net は「微分可能バンドル調整」の創始論文である: SfM/SLAM の中核をなす古典的な幾何最適化がネットワークの内部に存在し学習を通して伝播できることを示し、マルチビュー幾何を構造として固定コーディングしつつ、幾何が提供できないもの(特徴と深度基底)のみを学習させた。このレシピは DROID-SLAM や DPVO(微分可能な密な BA 層)、Theseus のような汎用微分可能最適化ライブラリの基盤となり、低次元の最適化可能な深度というアイデアは CodeSLAM 方式の潜在深度コードと密接に関連している。現代の学習ベース SLAM バックエンドを理解したいなら、ここから始めるべきである。

関連ノート