DeepV2D

Teed 2018 · 論文

一行要約 — DeepV2Dは、古典的な幾何アルゴリズム(PnP風の姿勢更新、プレーンスイープステレオ)を微分可能なモジュールとして構成し、両方が収束するまでモーション推定と深度推定を交互に行うことで、映像から深度を予測する――ブロック座標降下法を学習したものである。

問題

映像からの深度推定は、2つの満足のいかない極端の間にある。古典的なSfMパイプラインは幾何学的に理論に基づいているが、テクスチャの少ない領域、オクルージョン、照明変化においてノイズの多い、あるいは欠損した再構成を生成する。一方、汎用の深度回帰ネットワークは、多視点幾何を実際に活用するように学習させることが難しい。DeepV2Dの目標は、「ニューラルネットワークの表現能力と画像形成を支配する幾何学的原理を組み合わせる」エンドツーエンドアーキテクチャであり、ステレオ視、密な2Dマッチング、PnPを交互に行う古典的SfMパイプラインを「微分可能化」する。

手法とアーキテクチャ

推論時には2つのモジュールが交互に動作する。ピンホールモデルにおける投影 π\pi と逆投影 π1\pi^{-1} を用いると、カメラ ii において深度 zz を持つピクセル x\mathbf{x} は、カメラ jjπ(Gijπ1(x,z))\pi(\mathbf{G}_{ij}\,\pi^{-1}(\mathbf{x},z)) として再投影される。ここで Gij=GjGi1\mathbf{G}_{ij}=\mathbf{G}_{j}\mathbf{G}_{i}^{-1}SE(3)SE(3) における相対姿勢である。

深度モジュール(姿勢が与えられたときにキーフレーム深度を予測):スタック型アワグラス2Dエンコーダが各画像を特徴 FiF_i にマッピングする。各非キーフレーム jj について、深度仮説 z1,,zDz_1,\dots,z_D(屋内で0.2–10 m)にわたって特徴を逆投影することでコストボリュームが構築される:

Cuvkj=Fj(π(GjG11π1(x,zk))),C_{uvk}^{j}=F_{j}\big(\pi(\mathbf{G}_{j}\mathbf{G}_{1}^{-1}\pi^{-1}(\mathbf{x},z_{k}))\big),

微分可能な双線形サンプリングを用いる――そのためこのボリュームはカメラ姿勢に対しても微分可能である。ボリュームはキーフレーム特徴と連結され、3D畳み込みによってマッチングされ、視点間で平均化(「ビュープーリング」)され、3Dアワグラスモジュールで精緻化され、深度次元にわたる微分可能なソフトargmaxで読み出される。

モーションモジュール(Flow-SE3)(深度が与えられたときに姿勢を更新):共有の特徴抽出器とアワグラスネットワークが、キーフレーム特徴と現在の深度・姿勢でワープされた特徴との間の密な残差フロー R\mathbf{R} と信頼度 W\mathbf{W} を予測する。各ピクセルは、姿勢の摂動 ξse(3)\xi\in se(3) に対する幾何再投影誤差を定義する:

ekij(ξi,ξj)=rk[π((eξjGj)(eξiGi)1Xki)π(GijXki)],Xki=π1(xk,zk),\mathbf{e}_{k}^{ij}(\xi_{i},\xi_{j})=\mathbf{r}_{k}-\big[\pi\big((e^{\xi_{j}}\mathbf{G}_{j})(e^{\xi_{i}}\mathbf{G}_{i})^{-1}\mathbf{X}_{k}^{i}\big)-\pi(\mathbf{G}_{ij}\mathbf{X}_{k}^{i})\big],\qquad \mathbf{X}_{k}^{i}=\pi^{-1}(\mathbf{x}_{k},z_{k}),

そして目的関数 E(ξ)=(i,j)CkekijTdiag(wk)ekijE(\boldsymbol{\xi})=\sum_{(i,j)\in\mathcal{C}}\sum_{k}\mathbf{e}_{k}^{ij\,T}\,diag(\mathbf{w}_{k})\,\mathbf{e}_{k}^{ij} は、1回の微分可能なガウス・ニュートン更新

ξ=(JTWJ)1JTWr,\xi^{*}=-(\mathbf{J}^{T}\mathbf{W}\mathbf{J})^{-1}\mathbf{J}^{T}\mathbf{W}\,\mathbf{r},

によって最小化される。これは1回のPnP反復を展開したものであり、勾配はこの解法を通ってフローネットワークと特徴ネットワークへ流れる。ペア集合 C\mathcal{C} には2つの変種がある:キーフレーム最適化(キーフレーム対各フレーム;各 ξj\xi_j を独立に解く)とグローバル最適化(すべての N×(N1)N\times(N-1) ペア;ポーズグラフのようにすべての姿勢を同時に更新)である。

学習と推論。 教師信号は、平滑化ペナルティを伴うL1深度損失と、予測姿勢と真値姿勢の間のHuberロバスト再投影損失を組み合わせたもので、L=Ldepth+λLmotion\mathcal{L}=\mathcal{L}_{depth}+\lambda\mathcal{L}_{motion}(λ=1\lambda=1)として結合される。推論は一定の深度マップ(self-init)または単一画像ネットワーク(fcrn-init)で初期化され、モジュールを交互に動作させる――8回の反復後に評価されるが、精度は数回以内に収束する。

実験結果

SLAMにおける意義

DeepV2Dは、DeMoNからDROID-SLAMへと至る系譜の重要な結節点である。学習されたモーションと学習された深度を交互に行うこと――幾何(SE(3)上の微分可能なガウス・ニュートン層)がその交換を媒介すること――が、どちらか一方の量を一度に回帰するよりも優れていることを示した。BA-Netの深度基底に対する結合最適化とは異なり、そのブロック座標降下法的な分解はピクセルごとの深度を直接最適化する。Teed & Dengによる後続のRAFTとDROID-SLAMは、この「交互に行い収束させる」設計から直接生まれ、現在では最も精度の高い学習型VO/SLAMシステムの基盤となっている。

関連ノート