BARF

Lin 2021 · 论文

一句话总结 — Bundle-Adjusting NeRF(光束法平差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 上配准图像,只有当”最速下降图像”(即通过变形(warp)将图像梯度链式传导的雅可比矩阵)给出一致的逐像素更新时才能成功——这正是经典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 从第20K次迭代线性递增至第100K次(总共200K次迭代),使用 L=10L=10 个频带,对位姿和网络都用Adam优化。BARF是批量联合优化——并非实时或增量式,且假设内参已知——但它正是基于NeRF的SLAM系统所需要的跟踪机制。

实验结果

结论部分明确指出了这一成果的意义:BARF”为重新思考SfM/SLAM系统的视觉定位,以及使用视图合成作为代理目标的自监督稠密3D重建框架,开辟了令人兴奋的方向。“

对SLAM的意义

NeRF最初只是消费相机位姿(来自COLMAP);BARF展示了位姿也可以通过辐射场本身来估计,为利用神经场景表示进行定位打开了大门——作者明确将这一方向指向SLAM。每一个通过最小化渲染损失来跟踪的神经隐式SLAM系统,实质上都是在线循环中运行BARF的核心洞见;理解原始位置编码为何会破坏位姿配准(以及从粗到细方案如何修复它),可以解释这类文献中的许多设计选择。

相关条目