【论文精读】AligNeRF

项目地址:https://yifanjiang.net/alignerf

Abstract

现有的基于 NeRF 的方法在重建高分辨率真实场景时面临一些限制,包括大量的参数、未对齐的输入数据和过度平滑的细节。 在这项工作中,我们对使用高分辨率数据训练 NeRF 进行了首次试点研究,并提出了相应的解决方案:1)将MLP与卷积层结合,可以编码更多的邻域信息,同时减少参数总数; 2) 一种新的训练策略来解决由移动物体或小相机校准误差引起的未对准问题; 3)高频感知损失。 我们的方法几乎是无需付出代价的,没有引入明显的训练、测试成本,而在不同数据集上的实验表明,与当前最先进的 NeRF 模型相比,它可以恢复更多的高频细节。

1. Introduction

介绍了NeRF相关的内容。

使用更高分辨率的图像作为输入,对在高保真环境中训练神经辐射场进行了首次试点研究。 这引入了几个障碍。 首先,使用高分辨率训练图像的主要挑战是对所有高频细节进行编码需要更多的参数,这会导致更长的训练时间和更高的内存成本,有时甚至会使问题变得棘手。 其次,为了学习高频细节,NeRF 在捕获过程中需要准确的相机姿势和静止场景。 然而,在实践中,由运动结构 (SfM) 算法恢复的相机姿势不可避免地包含像素级的不准确性。 在对下采样的低分辨率图像进行训练时,这些不准确性并不明显,但在使用高分辨率输入训练 NeRF 时会导致结果模糊。 此外,捕获的场景还可能包含不可避免的运动,如移动的云彩和植物。 这不仅打破了静态场景假设,而且降低了估计相机姿势的准确性。 由于不准确的相机姿势和场景运动,NeRF 的渲染输出通常与地面实况图像略有偏差,如图 2 所示。 4.3表明通过迭代训练 NeRF 并将输入图像与 NeRF 的估计几何形状重新对齐,可以显着提高图像质量。 分析表明,错位导致 NeRF 学习扭曲的纹理,因为它被训练为最小化渲染帧和地面真实图像之间的差异。 以前的工作通过联合优化 NeRF 和相机姿势来缓解这个问题,但是这些方法不能处理细微的物体运动并且经常引入巨大的训练开销,如第 4.6 节所示。为了解决这些问题, 我们提出了 AligNeRF,这是一种对齐感知训练策略,可以更好地保留高频细节。 我们的解决方案有两个方面:一种有效提高 NeRF 表征能力的方法,以及一种纠正错位的有效方法。 为了使用高分辨率输入有效地训练 NeRF,我们将卷积与 NeRF 的 MLP 相结合,通过在局部补丁中采样一大块光线并应用 ConvNets 进行后处理。 尽管在 NeRF-SR中讨论了一个相关的想法,但他们的设置是基于以比训练集更高的分辨率渲染测试图像。 另一方面工作将体积渲染与生成建模相结合,其中 ConvNets 主要用于高效的上采样和生成纹理合成,而不是解决许多输入图像的逆问题。 相比之下,我们的方法表明,来自小型 ConvNet 的归纳先验提高了 NeRF 在高分辨率训练数据上的性能,而不会引入显著的计算成本。 在这个新pipeline中,我们在训练期间渲染图像patches。 这使我们能够进一步解决可能由轻微姿势错误或移动物体引起的渲染补丁和地面实况之间的错位。 首先,我们通过利用渲染帧及其对应的地面实况图像之间的估计光流来分析错位如何影响图像质量。 我们讨论了以前的错位感知损失的局限,并提出了一种为我们的任务量身定制的新型对齐策略。 此外,我们基于补丁的渲染策略还支持补丁式损失函数,而不仅仅是简单的均方误差。 这促使我们设计一种新的频率感知损失,从而在没有开销的情况下进一步提高渲染质量。 因此,AligNeRF 在很大程度上优于当前用于高分辨率 3D 重建任务的最佳方法,而且几乎没有额外成本。

总而言之,贡献如下:

  • 分析表明高分辨率训练数据中的未对齐导致的性能下降。
  • 一种新颖的卷积辅助架构,可以以较少的额外成本提高渲染图像的质量。
  • 一种新颖的补丁对齐损失,使 NeRF 对相机姿势错误和细微的物体运动更加稳健,连同基于补丁的损失以改善高频细节。

【论文精读】AligNeRF_第1张图片

2. Preliminaries

介绍了NeRF的公式和mip-NeRF 360。

3. Method

AligNeRF 是一个易于插入的组件,适用于任何类似 NeRF 的模型,包括点采样方法和基于截锥体的方法。 AligNeRF 使用分阶段训练:从初始的”正常“预训练阶段开始,然后是对齐感知微调阶段。 我们选择 mip-NeRF 360 作为我们的基线,因为它是用于复杂无界现实世界场景的最先进的 NeRF 方法。 接下来,我们介绍我们的卷积增强架构,然后介绍我们的错位感知训练过程和高频损失。

3.1 Marrying Coordinate-Based Representations with Convolutions

我们的第一步是探索如何有效地编码局部归纳先验以用于基于坐标的表示,例如 NeRF。 类似 NeRF 的模型通常会构建一个坐标到值的映射函数,并随机采样一批光线以优化其参数,这会阻止我们执行任何基于补丁的处理。 因此,我们的第一个修改是从随机采样切换到基于补丁的采样,关于相机光线(我们在实验中使用 32 × \times × 32 补丁)。 这种基于块的采样策略允许我们在每次迭代期间收集一个小的局部图像区域,从而在渲染每个像素时利用 2D 局部邻域信息。 首先,我们将 MLP 中最后一层的输出通道数从 3 更改为更大的 N,并在此特征空间而不是 RGB 空间中沿射线应用数值积分。 这有助于在每个相机光线中收集更丰富的表示。 接下来,我们添加一个简单的 3 层卷积网络,具有 ReLU 激活和 3 × \times × 3 个内核,在体积渲染后。 我们对每个卷积的输入采用“反射”填充,并删除输出中的填充值,以防止棋盘伪影。 在该网络的末端,我们使用前馈感知器层将表示从特征空间转换为 RGB 空间。 因此,每个像素的渲染过程不仅依赖于沿该方向的单个射线/圆锥体,还依赖于其相邻区域,这有助于产生更好的纹理细节。 因为我们的 CNN 非常浅并且不执行任何上采样,所以我们没有观察到图像输出中产生的任何多视图不一致。
【论文精读】AligNeRF_第2张图片

3.2 Alignment Aware Loss

NeRF通过渲染函数映射3D点到场景属性的关系来建模。在此框架下,相机位姿的准确性对于 NeRF 训练至关重要,否则,从不同视点观察同一 3D 点的光线可能不会汇聚到空间中的同一位置。 vanilla NeRF 通过在非常短的时间跨度内捕获图像(以防止场景运动和光照变化)并采用 COLMAP来计算相机参数来解决这个问题。 除了 1) 地面实况相机姿势与来自 COLMAP 的相机姿势之间存在差距,该数据准备管道大部分是可靠的,正如之前的工作所指出的那样; 2)在不受控制的室外场景中,通常很难避免带有摇曳植物和其他非刚性物体的图像,这进一步损害了 COLMAP 的性能。 在高分辨率重建设置中,由相机姿势和移动物体引起的错位问题可能会进一步放大,因为像素空间错位与分辨率呈线性关系。我们在第 4.3 节探讨了这种未对齐对渲染图像质量的影响。为了解决这个问题,我们提出了一种对齐感知训练策略,可以用来改进渲染图像的质量。

尽管纹理扭曲,我们观察到 NeRF 仍然从未对齐的图像中学习粗糙结构,如图 3 的第二列所示。利用这一点,我们提出了对齐的地面实况和渲染块之间的Loss。 设 G G G 表示地面实况补丁, R R R 表示渲染补丁。 我们在每次迭代期间对更大尺寸的地面实况补丁 G G G 进行采样,并搜索每个可能的子补丁 G i G_{i} Gi 以与较小的渲染补丁 R R R 进行最佳匹配。由于 NeRF 可能会渲染一个非常模糊的补丁 R R R,而该补丁 R R R 似乎与许多可能的补丁同样对齐 G i G_{i} Gi 来自地面实况集,我们另外设置了一个基于欧氏距离的正则化项作为对该搜索空间的惩罚。 最终的损失函数为:

在这里插入图片描述
D ( G i ; R ) = ∣ ∣ G i − R ∣ ∣ 2 2 D(G_{i};R) = ||G_{i}-R||^{2}_{2} D(Gi;R)=∣∣GiR22 D c o o r d ( G i ; R ) = Δ x 2 + Δ y 2 D_{coord}(G_{i};R) =\sqrt{\Delta{x^{2}} + \Delta{y^{2}}} Dcoord(Gi;R)=Δx2+Δy2 ,而和 Δ x / Δ y \Delta{x} / \Delta{y} Δxy G i G_{i} Gi R R R 之间的水平/垂直偏移。

我们采用 λ \lambda λ控制正则化项,根据经验将其设置为 0.01。 在我们所有的实验中,我们在每次迭代中为 G G G 采样 48 × \times × 48 个补丁并为 R R R 渲染 32 × \times × 32 个补丁。 类似的损失也用于图像超分辨或风格转移。 然而,这些损失是在单个像素上定义的,而我们的对齐感知损失是在补丁上定义的,其中可以更稳健地估计对齐向量 ( Δ x 、 Δ y \Delta{x}、\Delta{y} ΔxΔy)。

3.3 High-frequency aware Loss

均方误差 (MSE) 损失通常用于监督 NeRF 训练,但MSE 经常导致输出图像模糊。 鉴于我们的补丁采样策略,我们可以采用感知损失,更好地保留高频细节。 我们首先尝试使用预训练 VGG 特征的 L2 损失。 然而,与其他图像恢复任务类似,我们发现感知损失会产生更多的高频细节,但有时会扭曲物体的实际纹理。 相反,我们修改了 Johnson 等人提出的原始感知损失,仅使用最大池化之前第一个块的输出:
在这里插入图片描述
其中 G i G_{i} Gi 表示对齐后的地面真值补丁, R R R 表示渲染补丁, F F F 表示预训练 VGG-19 模型的第一个块, C C C W W W H H H 是提取的特征图的维度。 通过此更改,Loss改进了高频细节,同时仍保留真实纹理。

总之,AligNeRF 与之前工作的主要区别是从每像素 MSE 损失切换到基于块的 MSE 损失(考虑未对齐)和浅 VGG 特征空间损失的组合,以改善高频细节:
在这里插入图片描述
其中 w 根据经验设置为 0.05。 为了便于比较和演示使用 AligNeRF 作为简单的即插即用修改,默认情况下 mip-NeRF 360 的其他正则化损失保持不变。

4. Experiment

做了一些对比实验与消融实验。

5. Conclusion

总结。

你可能感兴趣的:(NeRF,计算机视觉,人工智能,深度学习)