2020 年,加州大学伯克利分校、谷歌的研究者开源了一项 2D 图像转 3D 模型的重要研究 ——NeRF。它可以利用几张静态图像生成多视角的逼真 3D 图像,生成效果非常惊艳:NeRF原班人马
打造
三年之后,这支团队做出了更惊艳的效果:在一项名为「Zip-NeRF」的研究中,他们完整还原了一个家庭的所有场景,就像无人机航拍的效果一样。
作者介绍说,Zip-NeRF 模型结合了 scale-aware 的抗混叠 NeRF 和快速基于网格的 NeRF 训练,以解决神经辐射场训练中的混叠问题。与以前的技术相比,Zip-NeRF 的错误率降低 8%-76%,训练速度提高 22 倍。
这项技术有望在 VR 领域得到应用,比如参观线上博物馆、线上看房。
- 论文地址:https://arxiv.org/pdf/2304.06706.pdf
- 项目地址:https://jonbarron.info/zipnerf/
论文概览
在神经辐射场(NeRF)中,一个神经网络被训练来模拟一个三维场景的体积表示,这样通过光线跟踪就可以呈现该场景的新视图。NeRF 已被证明是一种有效的任务工具,如视图合成,生成媒体,机器人,和计算摄影。
Mip-NeRF 360 和 instant-NGP(iNGP)都是基于 NeRF 的形式:通过投射 3D 射线和沿光线距离 t 的位置来渲染像素,这些特征被输入给神经网络,输出渲染后呈现颜色。反复投射与训练图像中的像素对应的光线,并最小化(通过梯度下降)每个像素的渲染颜色和观察颜色之间的误差来完成训练。
Mip-NeRF 360 和 instant-NGP 在沿射线的坐标参数化方式上有显著差异。在 mip-NeRF 360 中,一条射线被细分为一组区间 [t_i,t_i+1],每一个代表一个锥形锥,其形状近似于多元高斯值,该高斯值的期望位置编码被用于一个大型 MLP [3] 的输入。相比之下,instant-NGP 是将位置的特征值插值到一个不同大小的三维网格层次中,之后使用一个小的 MLP 生成特征向量。作者们提出的模型结合了 mip-NeRF360 的整体框架和 instant-NGP 的特征化方法,但盲目地直接结合这两种方法,会引入了两种混叠形式:
1、instant-NGP 的特征网格方法与 mip-nerf360 的尺度感知集成位置编码技术互相不兼容,因此 instant-NGP 产生的特征相对于空间坐标进行别名,从而产生别名的渲染图。在后面的介绍中,研究者通过引入一种用于计算预过滤的 instant-NGP 特性的类似多采样的解决方案来解决这个问题。
2、使用 instant-NGP 后显著加速了训练,但这暴露了 mip-nerf360 在线蒸馏方法的一个问题,该方法导致高度可见的 “z - 混叠”(沿着射线混叠),其中场景内容随着摄像机的移动而不稳定地消失。在后面的介绍中,研究人员用一个新的损失函数来解决这个问题,它在在线蒸馏过程中沿着每条射线进行预过滤。
方法概览
1.Spatial Anti-Aliasing:
Mip-NeRF 使用的特征近似于子体素内坐标的位置编码的积分,在 NeRF 中是沿圆锥形的圆锥体。这导致了当每个正弦曲线的周期大于高斯曲线的标准差时,傅里叶特征的振幅很小 —— 这些特征只在大于子体素大小的波长上表示子体积的空间位置。因为这个特性同时编码位置和尺度,所以使用它的 MLP 能够学习出呈现抗锯齿的图像的 3D 场景的多尺度表示。像 iNGP 这样的基于网格的表示不去查询子体素,而是在单个点上使用三线性插值来构造用于 MLP 的特性,这将导致训练后的模型不能推理不同尺度或混叠。
研究人员为了解决这个问题将每个圆锥变成一组各向同性高斯,使用多采样和特征加权:各向异性子体素首先转换为一组点近似其形状,然后每个点被认为是一个各向同性高斯尺度。这个各向同性的假设,可以利用网格中的值是零均值这一事实来近似特征网格在子体素上的真实积分。通过平均这些降加权特征,从 iNGP 网格中获得了具有尺度感知的预过滤特征。有关可视化信息见下图。
抗锯齿的问题在一些图形文献中有深入的探讨。Mip-map(Mip-nerf 的同名名称)预先计算了一个能够快速反锯齿的结构,但尚不清楚如何将这种方法应用于 iNGP 底层的散列数据结构。超采样技术采用了一种直接增加采样数量的方法来抗锯齿,产生了大量的不必要采样,这种方法与 mip-map 效果类似,但花费更高。Multi-sampling 技术构建一小组样本,然后将这些多样本的信息汇集到聚合表示中,该聚合表示提供给复杂的渲染过程 —— 一种类似于作者方法的策略。另一种相关的方法是椭圆加权平均,它近似于一个沿椭圆长轴排列的各向同性样本的椭圆核。
给定沿射线的间隔 [t_i,t_(i+1)),研究者想构建一组近似圆锥形的多样本形状。正如在样本预算有限的图形应用多采样的程序中一样,他们为他们的用例手工设计了一个多采样模式,沿着一个螺旋分配了 n 个点,它使 m 个点绕着射线的轴循环,并沿着 t 呈线性间隔:
这些三维坐标被旋转成世界坐标,通过乘以一个标准正交基,这个标准正交基的第三个向量是射线的方向,其前两个向量是垂直于视图方向的任意帧,然后由射线的原点移动。当 n≥3 和 n 和 m 是共素数时,保证每一组多样本的样本均值和协方差与每个样本的均值和协方差完全匹配,类似于 mip-NeRF 中的高斯采样。
研究者使用这 n 个多样本 {x_j} 作为各向同性高斯分布的均值,每个样本的标准差为 σ_j。他们将 σ_j 设置为 rt,通过一个超参数(在实验中为 0.35)。因为 iNGP 网格需要输入坐标位于一个有界域内,研究人员应用了 mip-NeRF 360 的收缩函数。因为这些高斯分布是各向同性的,所以可以使用 mip-NeRF 360 使用的卡尔曼滤波方法的简化和优化版本来执行这种收缩,详情请后面补充内容。
为了对每个单独的多样本进行反别名插值,研究者以一种新的方式重新加权每个尺度上的特征,其与每个网格单元内各样本的各向同性高斯拟合程度成反比例:如果高斯值远远大于被插值的单元,插值的特征可能是不可靠的就应该降低加权。Mip-NeRF 的 IPE 特性也有类似的解释。
在 iNGP 中,对坐标 x 处的每个 {V_l} 进行插值是通过用网格的线性大小 n 缩放,并对 V_l 进行三线性插值,得到一个 c 长度向量。相反,研究者插值一组具有均值和标准差为 σ_j 的多采样各向同性高斯分布。通过对高斯 CDFs 的推理,可以计算出在 V 中 [−1/2n,1/2n]^3 内的每个高斯 PDF 的分数,它被插值为一个与尺度相关的下降权重因子 ω_j,l, 研究者在 {V} 上施加权重衰减使得鼓励 V 中的值是符合正态分布和零均值。这个零均值假设让他们将每个多样本的高斯分布的期望网格特征近似为 ω_j・f_j,l+(1−ω_j)・0=ω_j・f_j,l。这样,可以通过取每个多样本插值特征的加权平均值来近似与圆锥锥对应的期望特征:
2. Z-Aliasing and Proposal Supervision:
虽然之前提到的精细的多采样和减加权方法是减少空间混叠的有效方法,但大家必须考虑在光线沿线还有一个额外的混叠来源 --z - 混叠。它是由于在 mip-NeRF360 的使用下 MLP 学习产生上限场景几何:在训练和渲染期间,沿着射线反复评估这个 MLP 生成直方图的下一轮采样,只有最后一组样本是由 NeRF 的 MLP 网络呈现。Mip-NeRF 360 表明,与之前学习一个的 mi-nerf 或多个的 nerf 的策略相比,该方法显著提高了速度和渲染质量,这些策略都使用图像重建损失进行监督。研究者发现 mip-NeRF 360 中的 MLP 方案倾向于学习从输入坐标到输出体积密度的非光滑映射。这将导致一个射线跳跃场景内容的伪影,如上图所示。虽然这个假象在 mip-NeRF 360 中很微小,但如果作者在他们提出的网络中使用 iNGP 后端而不是 MLP(可以增加新模型的快速优化能力),就变得常见和视觉突出,尤其是当相机沿其 z 轴转换时。
下图里,研究人员可视化了一个训练实例的 proposal 监督,其中一个狭窄的 NeRF 直方图(蓝色)沿着一个相对于一个粗糙的 proposal 直方图(橙色)的射线翻译。(a) mip-NeRF360 使用的损失是分段常数的,但 (b) 新模型的损失是平滑的,因为研究人员将 NeRF 直方图模糊为分段线性样条(绿色)。新模型中的预过滤损失可以学习反锯齿的 proposal 分布。Anti-Aliased Interlevel Loss:
研究者继承的 mip-NeRF 360 中的提案监督方法需要一个损失函数,该函数以由 NeRF(s,w)产生的阶跃函数和由 proposal 模型(^s,^w)产生的类似阶跃函数作为输入。这两个阶跃函数都是直方图,其中 s 和ˆs 是端点位置的向量,而 w 和ˆw 是和等于≤1 的权重向量,其中 w_i 表示可见场景内容是阶跃函数的间隔 i。每个 s_i 都是真度量距离 ti 的标准化函数,根据一些标准化函数 g (・),研究者稍后将讨论。请注意,s 和ˆs 是不相同的 —— 每个直方图的端点都是不同的。
Normalizing Metric Distance:
许多 NeRF 方法都需要一个函数来将度量距离 t∈[0,∞) 转换为标准化距离 s∈[0,1] 的方法。左图:功率变换 P(x,λ)允许通过修改 λ 在公共曲线之间进行插值,如线性、对数和逆,同时在原点附近保持线性形状。右图:构建一条从线性过渡到逆 / 反转查询的曲线,并支持靠近摄像机的场景内容。
实验效果
研究者们的模型是在 JAX 中实现的,并基于 mip-NeRF 360 的 baseline,重新设计实现了 iNGP 的体素网格和哈希表结构,取代 mip-NeRF 360 使用的大 MLP 网络,除了在其中引入的抗混叠调整,以及一些附加修改外整体模型架构与 mip-NeRF 360 相同。
在 360 Datase 的多尺度版本上的性能,训练和评估多尺度图像。红色、橙色和黄色的高光表示每个指标的第一、第二和第三个最佳表现技术。所提出的模型显著优于两个基线 —— 特别是基于 iNGP 的基线,特别是在粗糙尺度上,新模型误差减少了 54%-76%。A-M 行是模型的消融实验,详情请论文最后面参阅扩展文本。
虽然 360dataset 中包含很多具有挑战性的场景内容,它不能衡量以渲染质量作为规模的函数,因为这个数据集是由相机环绕在一个中心对象以大致恒定的距离拍摄得到的,学习模型不需要处理训练在不同的图像分辨率或不同的距离中心对象。因此研究者使用一个更具挑战性的评估过程,类似于使用 mip-NeRF 的多尺度的 blender 数据集:研究人员把每个图像变成一组四个图像被用 [1,2,4,8] 尺度分别降采样的图像额外的训练 / 测试视图的相机已经从场景的中心放大出来了。在训练过程中,研究者将数据项乘以每条射线的尺度因子,在测试时他们分别评估每个尺度。这大大增加了模型跨尺度泛化的重建难度,并导致混叠伪影效果显著出现,特别是在粗尺度上。
在表 1 中,研究者根据 iNGP、mipNeRF 360、mip-NeRF 360 + iNGP 基线和许多消融方法来评估了新提出的模型。尽管 mip-NeRF 360 表现合理(因为它可以训练多尺度),新模型在最精细的尺度上降低了 8.5%,在最粗糙的尺度上降低了 17%,同时快了 22 倍。mip-NeRF 360 + iNGP 基线因为其没有抗锯齿或推理规模的机制,表现很差:新模型的均方根误差在最精细的尺度下低 18%,在最粗糙的尺度上低 54%,最粗尺度下的 DSSIM 和 LPIPS 都低了 76%。这种改进可以从下图中看出。研究者的 mip-NeRF 360 + iNGP 基线通常优于 iNGP(除了最粗的尺度),正如他们在第二张表中所预期的那样。
总结
研究者提出了 Zip-NeRF 模型,该模型整合了在尺度感知抗锯齿 NeRF 和基于快速网格的 NeRF 训练这两种方式的优点。通过利用关于多采样和预过滤的方法,该模型能够实现比之前技术低 8%-76% 的错误率,同时也比 mip-NeRF360(目前相关问题的最先进技术)快 22 倍。研究者希望这里提出的工具和分析关于混叠(网的空间混叠从空间坐标颜色和密度的映射,以及 z - 混叠的损失函数在在线蒸馏沿每个射线)可以进一步提高 nerf 逆渲染技术的质量,速度和成品效率。