XYZNOT

论文 · arXiv 2003.08934

NeRF: 将场景表示为用于视图合成的神经辐射场

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

发表于 cs.CVcs.GR arXivPDF

用 XYZNOT 阅读(全文翻译与 AI 讲解)

三句话总结

  1. 🎯 无需离散体素网格或代理网格几何体,即可合成复杂 3D 场景的高分辨率照片级新视图。
  2. 🔧 将静态场景表示为由 MLP 映射的连续 5D 函数,并结合位置编码、可微体渲染与分层采样。
  3. 📈 实现了最先进的视图合成效果,在真实感合成场景上达到 31.01 dB PSNR,并将场景表示压缩至约 5 MB。

摘要

我们提出了一种通过使用稀疏输入视图集优化底层连续体积场景函数,从而在复杂场景的新视图合成中实现最先进效果的方法。我们的算法使用全连接(非卷积)深度网络来表示场景,其输入为单个连续的 5D 坐标(空间位置 与观察方向 ),输出为该空间位置处的体密度以及与视角相关的辐射度。我们通过沿相机光线查询 5D 坐标来合成视图,并使用经典体渲染技术将输出的颜色和密度投影到图像中。由于体渲染本质上是可微的,优化该表示所需的唯一输入是一组已知相机位姿的图像。我们介绍了如何有效优化神经辐射场,以渲染具有复杂几何形状和外观的场景的照片级逼真新视图,并展示了优于先前神经渲染和视图合成工作的结果。视图合成结果最适合以视频形式观看,因此我们强烈建议读者观看我们的补充视频以获得直观的对比。

英文原文摘要

We present a method that achieves state-of-the-art results for synthesizing novel views of complex scenes by optimizing an underlying continuous volumetric scene function using a sparse set of input views. Our algorithm represents a scene using a fully-connected (non-convolutional) deep network, whose input is a single continuous 5D coordinate (spatial location and viewing direction ) and whose output is the volume density and view-dependent emitted radiance at that spatial location. We synthesize views by querying 5D coordinates along camera rays and use classic volume rendering techniques to project the output colors and densities into an image. Because volume rendering is naturally differentiable, the only input required to optimize our representation is a set of images with known camera poses. We describe how to effectively optimize neural radiance fields to render photorealistic novel views of scenes with complicated geometry and appearance, and demonstrate results that outperform prior work on neural rendering and view synthesis. View synthesis results are best viewed as videos, so we urge readers to view our supplementary video for convincing comparisons.

论文解读

问题与动机

从采集图像中合成新视图传统上依赖于离散体表示(如体素网格或多平面图像)或表面网格。然而,离散化体素网格会导致内存与计算开销随分辨率呈三次方增长,难以承受;而基于网格的可微优化则面临较差的优化曲面并需要良好的初始拓扑。早期的隐式神经场景表示将坐标直接映射到符号距离函数或单表面点,难以处理复杂几何体、依赖视角的效应(如高光反射)以及高频细节,导致结果过于平滑。

核心思想

  • 连续 5D 场景函数:将静态场景表示为隐式连续函数 ,把 3D 位置 和 2D 观察方向 映射到发射的 RGB 辐射度 和体密度 。
  • 通过非对称预测实现多视图一致性:体密度 仅从位置 预测(几何与视角无关),而发射颜色 则同时取决于位置 和观察方向 (从而能够呈现镜面反射与非朗伯高光)。
  • 高频位置编码:通过利用正弦基函数将低维输入坐标映射到高维空间,克服 MLP 偏向低频的学习谱偏差(spectral bias)。
  • 可微体渲染与分层采样:采用数值积分将沿光线的连续采样点累积为 2D 像素颜色,并针对输入照片进行端到端优化,同时由粗到细的分层采样实现加速。

方法(及核心公式)

对于由近平面 和远平面 限定的相机光线 ,连续预期颜色 为: 其中 为累积透射率。

为了进行数值计算,将连续区间划分为 个区间并使用分层采样进行评估,得到等效于 Alpha 混合的离散求积: 其中 。

为了捕捉高频几何与纹理细节,输入通过位置编码 进行映射: 其中对 取 ,对 取 。

为了提高采样效率,NeRF 同时优化两个网络(粗网络采样 个点,细网络额外采样 个点)。粗采样权重 沿光线定义了分段常数概率密度函数,细采样点通过逆变换采样从中抽取。

整个模型通过最小化光线批次 上的总平方误差进行训练:

实验结果(核心数据)

  • 真实感合成 场景:NeRF 达到 31.01 dB PSNR、0.947 SSIM 和 0.081 LPIPS,大幅超越 NV (26.05 dB)、LLFF (24.88 dB) 和 SRN (22.26 dB) 等基线模型。
  • 漫反射合成 场景:NeRF 获得 40.15 dB PSNR 和 0.991 SSIM,相比之下 DeepVoxels 为 30.55 dB(由单场景得分计算的均值),LLFF 为 34.38 dB。
  • 真实前向场景:达到 26.50 dB PSNR,优于 LLFF (24.13 dB) 和 SRN (22.84 dB)。
  • 存储效率:一个完全训练好的 NeRF 模型仅需约 5 MB 的 MLP 权重——与 LLFF 体素表示(每个场景 >15 GB)相比,存储量减少了约 3000 倍。

局限性与开放问题

  • 训练与渲染耗时:优化单个场景需要 10 万至 30 万次迭代(在单块 NVIDIA V100 GPU 上约需 1–2 天)。渲染单个画幅需要 1.5 亿至 2 亿次 MLP 查询,耗时约 30 秒。
  • 模型可解释性:与体素网格或多边形网格不同,场景被封装在 MLP 的权重内部,难以直接进行编辑、检查和错误调试。
  • 受控采集环境要求:该方法假设已知相机位姿(例如通过 COLMAP 获取)、静态场景、一致的光照条件以及干净的场景包围体。

关键术语

Neural Radiance Field (NeRF) (神经辐射场)
一种连续 5D 体积场景表示,通过深度全连接神经网络进行参数化,将空间坐标和观察方向映射为体密度和发射辐射度。
Positional Encoding (位置编码)
一种确定性正弦映射 ,将连续输入坐标投影到更高维度的频率空间中,使网络能够学习高频细节。
Volume Density (体密度)
一种与视角无关的微分不透明度 ,用于建模相机光线在 3D 空间微元点处终止的概率。
Transmittance (透射率)
相机光线从近剪裁平面传播到光线上特定距离而未与任何场景粒子碰撞终止的概率 。
Hierarchical Volume Sampling (分层体采样)
一种由粗到细的采样方法,利用粗网络估计的光线密度构建非均匀概率分布,从而为细网络沿光线抽取更多样本点。
Stratified Sampling (分层采样)
一种采样过程,将光线的深度范围划分为等间距的区间,并在每个区间内均匀抽取一个随机连续样本,从而在优化期间实现连续评估。
Normalized Device Coordinates (NDC) (归一化设备坐标)
一种将前向采集的透视视锥体映射到 的坐标空间,使相机光轴在视差上呈线性。

常见问题

为什么体密度仅受位置调节,而颜色受位置和观察方向共同调节?

限制体密度 仅取决于空间位置 可在不同视角间强制实现多视图几何一致性;而允许颜色 将观察方向 作为输入,则能使 MLP 表达与视角相关的非朗伯现象(例如镜面反射)。

NeRF 中的位置编码与 Transformer 中的位置编码有何不同?

Transformer 使用位置编码将离散的标记顺序注入到具有排列不变性的注意力模块中;而 NeRF 使用正弦编码将连续的低维坐标映射到高维空间,以克服 MLP 偏向低频的谱偏差。

从零开始优化 NeRF 需要哪些输入?

NeRF 仅需要静态场景的一组标定 2D RGB 图像,并具备已知相机内参、相机位姿以及场景近/远平面边界(真实数据使用 COLMAP 估计,合成数据使用真实位姿真值)。

NeRF 的训练和渲染需要多长时间?

在单块 NVIDIA V100 GPU 上,训练单个场景需要 10 万至 30 万次迭代(约 1 到 2 天)。渲染新视图时,每张图像需要评估 1.5 亿至 2 亿次坐标查询,每帧大约需要 30 秒。

本页解读由 AI 根据论文生成,可能有错误;细节请以原文为准。

用 XYZNOT 阅读(全文翻译与 AI 讲解)