NeRF

Mildenhall 2020 · 论文

一句话总结 — 将场景表示为一个 MLP 中的连续函数——将三维位置加观察方向映射为颜色和密度——并通过可微体渲染进行渲染,从有位姿信息的图像生成照片级真实感的新视角图像。

问题

新视角合成——从未曾拍摄过的视角渲染一个复杂场景——长期以来一直用显式表示(网格、体素网格、多平面图像)来解决,这些方法或是对场景进行离散化处理,或是由于时间/空间的糟糕缩放特性而限制了可达到的分辨率,或是在复杂几何和视角相关外观上表现不佳。NeRF 提出的问题是:能否将场景存储为一个连续的体积函数,仅通过一组稀疏的输入视角,并借助一个可微渲染器,仅凭光度监督直接进行优化。

方法与架构

表示方式。 一个单一的全连接(非卷积)MLP FΘ:(x,d)(c,σ)F_{\Theta}: (\mathbf{x}, \mathbf{d}) \to (\mathbf{c}, \sigma) 将一个 5 维坐标——位置 (x,y,z)(x,y,z) 加观察方向——映射为体密度 σ\sigma 和视角相关的 RGB 辐射亮度 c\mathbf{c}。在架构上,8 个全连接层(256 通道,ReLU)处理 γ(x)\gamma(\mathbf{x}) 并输出 σ\sigma 以及一个 256 维特征;该特征与 γ(d)\gamma(\mathbf{d}) 拼接后经过一个 128 通道的层得到 RGB。仅从位置预测 σ\sigma 保证了几何在多视角下的一致性。

可微体渲染。 相机光线 r(t)=o+td\mathbf{r}(t) = \mathbf{o} + t\mathbf{d} 的颜色由经典的体渲染积分给出,

C(r)=tntfT(t)σ(r(t))c(r(t),d)dt,T(t)=exp(tntσ(r(s))ds),C(\mathbf{r}) = \int_{t_n}^{t_f} T(t)\,\sigma(\mathbf{r}(t))\,\mathbf{c}(\mathbf{r}(t), \mathbf{d})\,dt, \qquad T(t) = \exp\Big(-\int_{t_n}^{t} \sigma(\mathbf{r}(s))\,ds\Big),

通过在分层采样点 tit_i 上求积估计(每个区间内均匀抽取一个样本,因此 MLP 是在连续位置上被查询的):

C^(r)=i=1NTi(1eσiδi)ci,Ti=exp(j=1i1σjδj),δi=ti+1ti.\hat{C}(\mathbf{r}) = \sum_{i=1}^{N} T_i\,\big(1 - e^{-\sigma_i \delta_i}\big)\,\mathbf{c}_i, \qquad T_i = \exp\Big(-\sum_{j=1}^{i-1} \sigma_j \delta_j\Big), \quad \delta_i = t_{i+1} - t_i .

位置编码。 原始的 xyzθϕxyz\theta\phi 输入会使 MLP 平滑掉高频信息,因此每个坐标通过 γ(p)=(sin(20πp),cos(20πp),,sin(2L1πp),cos(2L1πp))\gamma(p) = \big(\sin(2^0 \pi p), \cos(2^0 \pi p), \ldots, \sin(2^{L-1}\pi p), \cos(2^{L-1}\pi p)\big) 提升维度,其中 x\mathbf{x}L=10L{=}10d\mathbf{d}L=4L{=}4——这是一个看似微小却证明至关重要的技巧。

分层采样。 一个粗网络和一个细网络被联合优化:粗网络的合成权重 wi=Ti(1eσiδi)w_i = T_i(1 - e^{-\sigma_i\delta_i}) 被归一化为一个分段常数概率密度函数,用于通过逆变换采样在表面附近引导 NfN_f 个额外采样点(Nc=64N_c{=}64Nf=128N_f{=}128)。

训练。 损失是渲染像素颜色与真实像素颜色之间的总平方误差,同时对粗、细两个渲染结果计算,每批次 4096 条光线;使用 Adam,学习率从 5×1045\times 10^{-4} 衰减至 5×1055\times 10^{-5};每个场景训练 10 万至 30 万次迭代(在 V100 上约需 1-2 天)。真实场景的相机位姿来自 COLMAP。

实验结果

对SLAM的意义

NeRF 是整个神经隐式 SLAM 浪潮的奠基性工作:iMAP、NICE-SLAM、Co-SLAM 和 NeRF-SLAM 都使用在线优化的辐射场式地图表示,而可微渲染损失同时也可以充当跟踪目标函数(反转渲染器即可得到相机位姿)。即便在 3D 高斯溅射(3D Gaussian Splatting)取代 NeRF 成为实时渲染的主流方法之后,其核心思想——将场景视为可优化的场、通过可微渲染器进行光度监督、类似位置编码的输入提升方式——仍然是现代稠密神经建图的概念基础。

相关条目