NeRF 的效率改进与表示演化

A. 本篇主题

本篇围绕 NeRF 效率改进路线,系统梳理从原始 NeRF 到 Instant-NGP 之间的一系列关键改进。这些方法并非独立的技术点,而是一条连续的优化逻辑线:解决抗锯齿 → 解决无界场景 → 引入显式体素化 → 低秩分解 → 多分辨率哈希编码。每一步都为下一步铺垫,最终引出 3DGS 用显式高斯完全替代 MLP 的范式转变。

B. 本篇在整条路线中的位置

本篇承接笔记 01 的 NeRF 基础,直接受两个驱动问题的牵引:

  1. 训练速度:原始 NeRF 收敛需数十小时,无法实用。
  2. 隐式表示的固有问题:无法直接编辑场景组成部分,MLP 作为”黑盒”记忆难以解释。

本篇将按时间顺序和逻辑递进组织:

  • mip-NeRF / mip-NeRF 360:抗锯齿 + 无界场景
  • Plenoxels:显式体素化 + 稀疏性
  • DVGO:稠密体素网格 + 端到端可微
  • TensoRF:低秩张量分解
  • Instant-NGP:多分辨率哈希编码

本篇的结尾将说明:这条渐进式的”显式化”路线最终指向一个根本性范式转变——用离散的显式高斯分布替代连续 MLP,而非继续在 MLP 框架内打补丁。这正是 3DGS 的核心洞察,也是笔记 03 的主题。

C. 数学建模

C.1 共同问题陈述

原始 NeRF 的训练目标是像素级重建损失:

其中 是沿光线 的体渲染颜色(笔记 01 定义)。

核心瓶颈

  • 每次迭代需多次 MLP 前向(粗采样 + 细采样,每次查询需沿光线采样 ~128 个点)
  • MLP 隐式存储场景,无法利用稀疏性(大部分空间密度为零)
  • 像素被建模为无限细的光线,缺乏抗锯齿能力

C.2 mip-NeRF:锥体渲染与集成位置编码

问题:NeRF 将像素建模为无限细的光线,无法处理抗锯齿和远距离场景(光线面积不为零)。

解决方案:引入锥体渲染(Cone Rendering),每个像素对应一个视锥。

定义像素 对应的锥体:

  • 锥心光线:
  • 垂直于 的扩展向量控制锥体张角

集成位置编码(Integrated Positional Encoding, IPE)

对锥体内采样点呈高斯分布 ,定义 IPE:

这等价于对原始编码 在高斯分布下求期望。

IPE 的解析计算

设频率向量 (对应第 个傅里叶频率)。对于高斯分布

物理直觉

  • 指数因子 描述高斯分布的宽度对频率 的衰减
  • 大(近处物体,张角大)时,高频项快速衰减,只有低频项保留
  • 小(远处物体,或像素面积小)时,高频项得以保留

C.3 mip-NeRF 360:无界场景的扩展

问题:mip-NeRF 仍假设场景在有界区域内,无法处理无界(unbounded)场景(如大尺度户外环境)。

解决方案

  1. 场景参数化变换:对无界坐标 应用非线性映射:

这将无穷远点映射到单位球面附近,实现无界到有界的变换。

  1. ** proposer 网络 + 在线蒸馏**:引入额外的网络预测采样分布,避免在空旷区域浪费计算。

C.4 Plenoxels:显式体素化与稀疏性

核心思想:将连续的 MLP 表示替换为显式体素网格,每个体素存储球谐函数(Spherical Harmonics, SH)系数。

表示

场景用稀疏体素网格表示,仅在有内容的区域存储体素:

其中 是第 个体素存储的球谐函数系数(颜色参数化), 是非空体素数。

球谐函数颜色表示

颜色不是直接存储 RGB,而是用球谐函数系数表示视角相关外观:

  • 是球谐函数基
  • 低阶 足以表示漫反射材质

体渲染

与 NeRF 类似,但颜色和密度来自体素插值而非 MLP 查询:

其中 由体素 的球谐系数计算得到。

优化目标

其中 是稀疏性正则项(如 TV 正则),鼓励体素表示的稀疏性。

C.5 DVGO:稠密体素网格与端到端优化

核心思想:用稠密体素网格替代稀疏网格,配合端到端优化。

表示

三维网格 ,每个格子存储:

  • 密度 (可学习标量)
  • 特征向量 (用于颜色预测)

颜色预测

其中 是三线性插值(在 8 个顶点间插值)。

可微体渲染

密度通过 sigmoid 激活确保非负:

优化

直接对所有体素参数 梯度下降,无需预设稀疏结构。

优势

  • 显式表示,可直接查询任意位置
  • 端到端优化,无需手动设计稀疏先验

劣势

  • 内存: 网格需数十 GB
  • 精度受限于网格分辨率

C.6 TensoRF:低秩张量分解

核心思想:对体素网格做低秩(low-rank)分解,减少参数量。

张量表示

将场景表示为四维张量 是特征维度):

CP 分解(Canonical Polyadic)

将张量分解为多组一维因子的外积:

其中 是分解秩(rank), 是向量。

向量矩阵分解(VM)

更高效的形式,将空间维度和特征维度分开:

其中 是低秩因子矩阵, 是投影矩阵。

内存复杂度

  • 原始稠密张量:
  • CP 分解:
  • VM 分解:

时,内存大幅降低。

渲染

张量分解后,可通过插值快速查询任意位置的特征,然后送入小型 MLP 预测密度和颜色。

C.7 Instant-NGP:多分辨率哈希编码

核心思想:用多分辨率哈希表替代 MLP 直接处理坐标,配合小型 MLP,大幅加速训练。

哈希编码

输入坐标 映射到 个分辨率层级:

对第 层(分辨率 是基础分辨率):

  1. 找到 周围的 8 个网格顶点
  2. 用顶点坐标作为键查哈希表 ,得到特征向量
  3. 用三线性插值合并 8 个顶点的特征

其中 是可学习的哈希表。

多分辨率聚合

其中 是拼接操作。

关键优势

  • 网格分辨率与参数量解耦:第 层有 个顶点,但只需 哈希表容量(实际用固定大小 的哈希表)
  • 哈希冲突提供正则:不同顶点映射到同一哈希槽提供了隐式正则化
  • 网格插值天然提供高频建模:绕过 MLP 的高频学习困难

性能提升

从数小时缩短到秒级(>1000× 加速)。

D. 详细推导

D.1 IPE 的详细推导

目标:计算

对正弦项:

推导利用了:高斯分布的傅里叶变换仍是高斯,以及 的期望公式。

验证:当 (方差趋近于零),,IPE 退化为原始位置编码。当 增大,高频项( 大)快速衰减,只保留低频项。

D.2 TensoRF 的低秩近似推导

目标:用低秩分解近似高维张量

,秩为 的 CP 分解:

其中因子向量满足 等归一化条件。

为什么低秩有效

真实场景的特征张量通常是低秩的——空间变化是平滑的,相邻体素高度相关。低秩分解通过捕捉空间相关性来压缩表示。

优化

因子矩阵通过交替方向乘子法(ADMM)或随机梯度下降优化。每次更新一个因子矩阵时,固定其他因子,这一步是凸的。

D.3 哈希编码的插值推导

三线性插值

给定 3D 点 和周围 8 个顶点 ),插值权重:

插值结果:

这确保了 是连续可微的,梯度可通过哈希表反向传播。

E. 算法与训练流程

E.1 Instant-NGP 训练流程

输入:多视角图像,相机参数
输出:哈希表 {V^l} 和 MLP 参数 θ

1.  for iteration = 1 to N do
2.      for each image do
3.          for each pixel (u,v) do
4.              r ← Ray(π, (u,v))
5.              {t_i} ← SampleUniform(r, N_c)
6.              for each t_i do
7.                  // 哈希编码
8.                  for l = 1 to L do
9.                      h_l ← trilerp(V^l, t_i)    // 多分辨率插值
10.                 end for
11.                 h ← Concat(h_1, ..., h_L)       // 拼接
12.                 (c_i, σ_i) ← MLP_θ(h)           // 小型 MLP
13.             end for
14.             Ĉ ← VolumeRender({c_i, σ_i, t_i})
15.             L ← ‖Ĉ - C_gt‖²
16.             Update(V^l, θ) via backprop          // 端到端梯度更新
17.         end for
18.     end for
19. end for

E.2 Plenoxels 优化流程

输入:SfM 点云初始化体素网格
输出:优化后的体素参数

1.  InitializeVoxels(SfM_points)              // 从运动恢复结构点云初始化
2.  for iteration = 1 to N do
3.      for each ray do
4.          Sample voxels along ray           // 三线性插值密度/颜色
5.          Ĉ ← VolumeRender(volumetric)
6.          L ← ‖Ĉ - C_gt‖² + λ·TV(V)       // 加 TV 正则
7.          Update voxel parameters           // 梯度更新
8.      end for
9.      if density too low then Prune()       // 稀疏性维护
10. end for

E.3 mip-NeRF 360 的 Proposal 网络

输入:光线 r,当前 MLP 参数
输出:细采样点分布 p(t)

1.  coarse_samples ← UniformSample(r, N_coarse)
2.  density ← F_coarse(coarse_samples)        // proposer 网络
3.  weights ← density · transmittance         // 计算权重
4.  p(t) ← Resample(weights)                 // 基于权重的采样分布
5.  fine_samples ← SampleFromProposer(p(t))

proposer 网络(与主网络结构不同,仅预测密度)负责指导细采样分布,避免无效采样。

F. 关键直觉

  1. 从光线到锥体,本质是将像素面积纳入建模:mip-NeRF 通过 IPE 认识到像素不是点而是有面积的光锥,高频项的衰减提供了自然的抗锯齿机制。

  2. 显式体素化是通往实时渲染的必经之路:MLP 逐点查询无法利用并行,Plenoxels/DVGO 的体素网格可直接批量查询密度/颜色。

  3. 低秩分解利用了空间相关性:真实场景的空间变化是平滑的,TensoRF 通过捕捉这种低秩结构实现 10-100× 压缩率。

  4. 哈希编码绕过了 MLP 的高频学习困难:网格插值天然提供高频建模能力,哈希冲突提供隐式正则,这比让 MLP 从数据中学习高频模式更高效。

  5. 每一步改进都在”显式化”的方向上:从 MLP(最隐式)→ 体素(显式稠密)→ 低秩体素(显式稀疏)→ 哈希(显式+可学习),最终引出 3DGS 的完全显式高斯表示。

G. 局限性

  1. 体素方法受分辨率限制:DVGO 等方法在超出网格分辨率时产生模糊,无法达到 NeRF 的连续精度。

  2. 哈希编码有哈希冲突:当 很大时冲突增多,需要权衡分辨率和哈希表大小。

  3. 无界场景仍需特殊处理:mip-NeRF 360 的参数化变换是工程技巧,并非根本解决。

  4. 训练速度虽快但推理仍需采样:Instant-NGP 的加速主要来自训练,渲染仍需沿光线积分(只是 MLP 变小)。

  5. 体素/哈希表示难以编辑:与 MLP 类似,显式体素化后仍缺乏可解释的语义部件分割。

H. 与前后篇的衔接

本篇承接:笔记 01 的 NeRF 基础,继承了体渲染方程和层级采样的框架。

本篇引出:本篇的核心结论是:NeRF 的所有改进(抗锯齿、无界处理、体素化、低秩分解、哈希加速)仍然局限在”在 MLP 或类似连续框架内优化”的范式内。每一步改进都在加速或压缩表示,但没有一个方法从根本上改变”场景由连续函数定义”的设定。

3DGS(笔记 03)的核心洞察是:完全放弃 MLP,用离散的显式高斯分布替代连续场。这彻底改变了渲染范式——不再需要沿光线积分,而是用基于高斯投影的 splatting。

本篇中的 Plenoxels(显式体素化)和 TensoRF(低秩分解)已经暗示了”离散化”的方向,但高斯分布相比体素有更好的数学性质(可微投影、协方差参数化、anisotropic anisotropy),这正是 3DGS 能成功的关键。


本篇必须记住的结论

  1. mip-NeRF 通过 IPE 实现抗锯齿,高频项在 大时衰减,提供自然的抗锯齿。

  2. 显式体素化(Plenoxels/DVGO)将场景存储在网格中,可批量查询,但受分辨率限制且内存开销大。

  3. TensoRF 通过低秩张量分解实现高压缩率,利用空间相关性压缩。

  4. Instant-NGP 的多分辨率哈希编码是训练加速的关键:网格插值+哈希表使 MLP 小型化,训练加速 >1000×。

  5. 本篇的所有方法仍在”连续函数”范式内,为笔记 03 的”完全显式化”——3DGS——做了铺垫。


参考文献

  1. Barron et al. “Mip-NeRF: A Multiscale Representation for Anti-Aliasing Neural Radiance Fields” ICCV 2021
  2. Barron et al. “Mip-NeRF 360: Unbounded Anti-Aliasing Neural Radiance Fields” CVPR 2022
  3. Yu et al. “Plenoxels: Radiance Fields without Neural Networks” CVPR 2022
  4. Sun et al. “Direct Voxel Grid Optimization: Super-Convergent Scene Representation Networks” CVPR 2022
  5. Chen et al. “TensoRF: Tensorial Radiance Fields” ECCV 2022
  6. Müller et al. “Instant Neural Graphics Primitives with a Multiresolution Hash Encoding” ACM TOG 2022