BARF

Lin 2021 · 論文

一行要約 — Bundle-Adjusting NeRF: 不完全または未知の初期化から、NeRFのシーン表現カメラ姿勢を粗から密への位置エンコーディングスケジュールを用いて同時最適化する — NeRFベースSLAMを実現するための鍵となる洞察。

問題

NeRFはフォトリアリスティックな新規視点合成を行うが、厳しい前提条件がある。学習用の各画像に対して正確なカメラ姿勢が必要で、通常はSfMパッケージで事前計算される。姿勢がノイジーまたは未知の場合、NeRFに対する素朴な姿勢最適化は「初期化に敏感」であり「3Dシーン表現の準最適解につながる可能性がある」。再構成とレジストレーションは鶏と卵の問題を形成する。3D構造の復元には既知の姿勢が必要であり、位置推定には再構成からの信頼できる対応関係が必要である。BARFは、不完全な(あるいは未知の)カメラ姿勢からNeRFを学習すること — ニューラル3D表現の学習とカメラフレームのレジストレーションの結合問題 — を、視点合成をプロキシ目的関数とするフォトメトリックバンドル調整の一形態として扱う。

手法とアーキテクチャ

BARFはまず2D画像アライメントを分析する。minpxI1(W(x;p))I2(x)22\min_{\mathbf{p}}\sum_{\mathbf{x}}\|\mathcal{I}_1(\mathcal{W}(\mathbf{x};\mathbf{p}))-\mathcal{I}_2(\mathbf{x})\|_2^2 の勾配降下による画像レジストレーションは、「最急降下画像」(ワープを通じて画像勾配を連鎖させたヤコビアン)が一貫した画素単位の更新を与える場合にのみ機能する — これが古典的なLucas-Kanadeアライメントが引き込み領域を広げるために画像を粗から密にブラーする理由である。同じ構造がNeRFを用いた3Dでも現れる。画素の色はMLP ff を通じてボリュームレンダリングされる。

I^(u)=znearzfarT(u,z)σ(zuˉ)c(zuˉ)dz  ,T(u,z)=exp(znearzσ(zuˉ)dz)\hat{\mathcal{I}}(\mathbf{u})=\int_{z_{\text{near}}}^{z_{\text{far}}}T(\mathbf{u},z)\,\sigma(z\bar{\mathbf{u}})\,\mathbf{c}(z\bar{\mathbf{u}})\,\mathrm{d}z\;,\qquad T(\mathbf{u},z)=\exp\Big(-\int_{z_{\text{near}}}^{z}\sigma(z'\bar{\mathbf{u}})\,\mathrm{d}z'\Big)

BARFは、MM個のカメラ姿勢 piR6\mathbf{p}_i\in\mathbb{R}^6(リー代数 se(3)\mathfrak{se}(3) でパラメータ化)とNeRFの重み Θ\boldsymbol{\Theta} を、合成ベースの目的関数

minp1,,pM,Θ  i=1MuI^(u;pi,Θ)Ii(u)22  .\min_{\mathbf{p}_1,\dots,\mathbf{p}_M,\boldsymbol{\Theta}}\;\sum_{i=1}^{M}\sum_{\mathbf{u}}\big\|\hat{\mathcal{I}}(\mathbf{u};\mathbf{p}_i,\boldsymbol{\Theta})-\mathcal{I}_i(\mathbf{u})\big\|_2^2\;.

に対して同時に最適化する。

障害は位置エンコーディングである。NeRFは入力を γk(x)=[cos(2kπx),sin(2kπx)]\gamma_k(\mathbf{x})=\big[\cos(2^k\pi\mathbf{x}),\sin(2^k\pi\mathbf{x})\big] で持ち上げるが、そのヤコビアン

γk(x)x=2kπ[sin(2kπx),cos(2kπx)]\frac{\partial\gamma_k(\mathbf{x})}{\partial\mathbf{x}}=2^k\pi\cdot\big[-\sin(2^k\pi\mathbf{x}),\cos(2^k\pi\mathbf{x})\big]

2kπ2^k\pi で勾配を増幅しつつ同じ周波数で方向を反転させるため、サンプリングされた3D点からの姿勢勾配は「非一貫であり…互いに簡単に打ち消し合う」。BARFの修正は動的ローパスフィルタである。第kk帯域を γk(x;α)=wk(α)[cos(2kπx),sin(2kπx)]\gamma_k(\mathbf{x};\alpha)=w_k(\alpha)\cdot\big[\cos(2^k\pi\mathbf{x}),\sin(2^k\pi\mathbf{x})\big] として重み付けし、

wk(α)={0if α<k1cos((αk)π)2if 0αk<11if αk1w_k(\alpha)=\begin{cases}0 & \text{if } \alpha<k\\[2pt] \dfrac{1-\cos((\alpha-k)\pi)}{2} & \text{if } 0\leq\alpha-k<1\\[2pt] 1 & \text{if } \alpha-k\geq 1\end{cases}

とする。ここで α[0,L]\alpha\in[0,L] は最適化の進行とともに増加する。生の3D入力(α=0\alpha=0、滑らかな損失地形で姿勢が自由に動く)から完全なエンコーディング(α=L\alpha=L、シーンが完全な詳細まで鮮明化する)へ。NeRF実験では α\alpha は200Kのうち20Kから100Kのイテレーションまで線形に増加し、L=10L=10の周波数帯域、姿勢とネットワークの両方にAdamを使用する。BARFはバッチでの同時最適化であり — リアルタイムやインクリメンタルではなく、内部パラメータは既知と仮定されているが — NeRFベースのSLAMシステムが必要とするトラッキング機構そのものである。

実験結果

結論はその帰結を明示的に述べている。BARFは「SfM/SLAMシステムの視覚的位置推定と、視点合成をプロキシ目的関数とする自己教師あり密な3D再構成フレームワークを再考する上で、興味深い道を開く」。

SLAMにおける意義

NeRFは元々カメラ姿勢を(COLMAPから)消費するものだったが、BARFは姿勢がラディアンスフィールド自体から推定できることを示し、ニューラルシーン表現による位置推定への道を開いた — 著者らがSLAMに向けて明示的に示す方向性である。レンダリング損失の最小化によってトラッキングを行うすべてのニューラルインプリシットSLAMシステムは、BARFの洞察をオンラインループで実行している。生の位置エンコーディングがなぜ姿勢レジストレーションを破綻させるか(そして粗密の工夫がなぜそれを修正するか)を理解することは、この分野の多くの設計上の選択を説明する。

関連ノート