引言

从一组 2D 图像重建高质量的 3D 表面是计算机视觉领域的“终极难题”之一。这听起来很简单——人类用双眼就能轻松做到——但对于算法来说,将一系列照片转换成一个水密 (watertight) 、平滑的 3D 网格却异常困难。对于室内场景而言尤其如此,因为那里充满了无纹理的墙壁、复杂的遮挡和反射表面。

现代方法通常依赖先验 (priors) ——即关于世界应该是什么样子的预先学习到的知识——来指导重建过程。传统上,这些先验来自海量数据集。其逻辑是: “我以前见过一千把椅子,所以我知道这个形状可能是一把椅子。”然而,当算法遇到训练期间未曾见过的东西,或者数据集偏差与特定场景不匹配时,这种方法就会失效。

在这篇文章中,我们将深入探讨 NeRFPrior , 这是一篇颠覆了上述剧本的研究论文。NeRFPrior 并没有依赖庞大的外部数据集,而是提出了一个不同的问题: 如果我们能从场景本身学习先验会怎样?

通过在手头的特定场景上快速训练一个神经辐射场 (NeRF) 并将其作为向导,研究人员在无需外部数据的情况下实现了最先进的室内重建效果。让我们探索这种“过拟合”策略是如何创建准确、稳健的 3D 几何结构的。

背景: 为什么我们需要先验

要理解 NeRFPrior,我们首先需要了解当前方法的局限性。

神经隐式表面

最先进的重建技术使用神经隐式表面 (Neural Implicit Surfaces) 。神经网络不直接存储网格,而是学习一个有向距离函数 (Signed Distance Function, SDF) 。对于 3D 空间中的任何点,网络都会预测其到最近表面的距离。零水平集 (距离 = 0 的地方) 定义了物体的表面。

虽然这种方法很强大,但仅凭图像优化 SDF 具有歧义性。一面白墙从许多角度看都是一样的,这使得确定墙壁在 3D 空间中的确切位置变得很困难。这就是为什么我们需要指导,或者说“先验”。

数据驱动先验的问题

许多方法 (如 MonoSDF) 在大型数据集上预训练网络来估计深度和表面法线。这些充当了“数据驱动的先验”。如果你的测试场景看起来像你的训练数据,它们效果很好。但是如下所示,它们在泛化方面很吃力。

对比展示了数据驱动的先验如何在未见过的新物体上失效。 图 2: 当依赖预训练深度先验的方法 (MonoSDF) 遇到与其训练集不同的物体 (如这些工具或挖掘机) 时,重建会严重失败。NeRFPrior (本文方法) 则能稳健地处理。

另一种选择是使用“过拟合先验”,如传统的多视图立体视觉 (MVS) 点云。这些是特定于场景的,但往往很稀疏且缺乏颜色信息,而颜色信息对于验证表面是可见还是被遮挡至关重要。

核心方法: 以 NeRF 为师

NeRFPrior 的核心洞察在于, 神经辐射场 (NeRFs) 非常擅长捕捉场景的密度和颜色,即使它们的几何结构有点“模糊”或充满噪点。

作者提出了一个两阶段的流程:

  1. 训练 NeRF 先验: 在输入图像上快速训练一个基于网格的 NeRF。这需要几分钟时间,并对场景进行“过拟合”,捕捉特定的几何和颜色细节。
  2. 训练 SDF: 使用 NeRF 的密度和颜色作为向导 (监督) 来优化表面重建网络。

NeRFPrior 架构概览。 图 1: NeRFPrior 流程。(a) 训练一个快速的 Grid-NeRF 以提供密度和颜色先验。(b) 这些先验指导 SDF 学习,启用感知遮挡的多视图一致性。(c) 专门的深度一致性损失处理无纹理区域。

1. NeRF 先验的设置

团队使用了基于体素网格的 NeRF (类似于 TensoRF) 以提高速度。该网络提供两个空间变化的场:

  • 密度 (\(\sigma_{prior}\)): 空间中某一点的不透明程度。
  • 颜色 (\(c_{prior}\)): 某一点发出的颜色 (取决于观察方向) 。

为了将其用作先验,系统会查询这些场并使用它们来监督 SDF 网络。下面的公式展示了如何提取先验:

查询先验密度和颜色的公式。

这里,interp 指的是体素网格内的三线性插值。

在表面重建阶段,SDF 网络会预测其自己的密度和颜色。这些预测通过以下损失函数被强制与 NeRF 先验对齐:

密度和颜色监督的损失函数。

这种对齐确保了 SDF 网络在开始时就对几何结构的位置有一个非常强的“猜测”,从而有效地绕过了困扰其他方法的初始歧义性。

2. 感知遮挡的多视图一致性

NeRFPrior 最复杂的部分在于它如何处理可见性

在重建中,一个强大的约束是“光度一致性”: 表面上的一个点投影到不同的相机视图中时,看起来应该是一致的。然而,如果物体阻挡了视线 (遮挡) ,这一约束就会失效。如果你盲目地对被遮挡的点强制执行一致性,就会破坏几何结构。

NeRFPrior 使用 NeRF 先验来执行可见性检查

可见性检查机制示意图。 图 3: 为了检查交点是否从源视图可见,系统使用 NeRF 先验进行“局部”体渲染。如果渲染颜色与图像像素匹配,则该点可见。

工作原理:

  1. 从相机向表面交点 \(\mathbf{p}^*\) 投射一条光线。
  2. 为了检查 \(\mathbf{p}^*\) 是否从另一个源视图可见,从该源视图向 \(\mathbf{p}^*\) 投射一条光线。
  3. 局部体渲染: 不渲染整条光线,而是利用 NeRF 先验的密度和颜色在 \(\mathbf{p}^*\) 周围的一小块区域进行采样。
  4. 将此局部渲染的颜色 (\(\mathbf{c}_s^*\)) 与源图像中的实际像素颜色 (\(\mathbf{c}_s^{proj}\)) 进行比较。

局部渲染公式允许进行快速检查:

局部体渲染公式。

如果渲染颜色与像素颜色之间的差异低于阈值 \(t_0\),则认为该点可见。

可见性阈值公式。

这种方法比传统的投影方法要稳健得多,因为 NeRF 先验捕捉了视点相关的效果 (如镜面高光) ,而简单的像素匹配在光照变化下会失效。

可见性掩膜对比。 图 4: 第二行显示了可见性掩膜。注意 NeRFPrior (“Ours”) 生成了干净、准确的掩膜 (白色区域) ,而 MVS 和 Geo-NeuS 的结果则充满噪点或稀疏。

3. 处理无纹理区域 (深度损失)

室内场景充满了白墙和地板。这些是“无纹理区域”。多视图一致性在这里会失效,因为墙上的一个白色像素看起来与稍微偏左或偏右的白色像素完全相同。

为了解决这个问题,NeRFPrior 引入了带有置信度权重的深度一致性损失 (Depth Consistency Loss)

平面检测和深度一致性示意图。 图 5: 系统分析密度和颜色的方差。(a) 如果方差很小,意味着是平坦的无纹理平面。(c) 系统随之强制相邻光线沿表面法线方向具有一致的深度。

其逻辑非常优雅:

  1. 检查颜色方差: 该区域颜色均匀吗? (可能是无纹理的) 。
  2. 检查密度方差: NeRF 先验密度均匀吗? (可能是一个平面) 。
  3. 如果两者皆是,则强制执行一个约束,即当前光线的深度应与相邻光线投影到表面法线上的深度相匹配。

这在数学上强制了平滑性,且仅在需要的地方 (墙壁) 进行,而不会过度平滑细节物体。

深度一致性损失公式。

术语 \(\text{sgn}_c\) 和 \(\text{sgn}_\sigma\) 充当开关,仅当满足置信条件 (低方差) 时才开启损失。

置信度权重公式。

一项消融实验直观地展示了为什么这是必要的。如果没有这种损失,墙壁会变得波浪起伏且扭曲。

展示深度一致性损失影响的消融实验。 图 10: 顶行 (无深度损失) 显示墙壁上有严重的伪影和扭曲。中行 (有深度损失) 恢复了平滑的平面表面。

实验与结果

研究人员在标准基准上评估了 NeRFPrior: ScanNet (真实世界室内) 、BlendSwap 和 Replica (合成) 。

视觉质量

结果显示,与 NeuS、MonoSDF 和 Geo-NeuS 等基线相比,该方法在恢复细节和细微结构方面有显著改进。

ScanNet 上的视觉对比。 图 6: 在 ScanNet 上,NeRFPrior (Ours) 重建了其他方法遗漏或模糊掉的椅子和灯具的细腿。

在合成的 BlendSwap 数据集中,差异更加明显。请看下图中楼梯和灯具的干净几何结构。

BlendSwap 上的视觉对比。 图 7: 注意“N-RGBD w/o depth”中的伪影,相比之下“Ours”的解决方案非常干净。

定量性能

下表证实了视觉结果。在 ScanNet 上,NeRFPrior 在准确性 (Acc) 和完整性 (Comp) 误差方面取得了最低分——越低越好。

表 1: ScanNet 评估结果。

值得注意的是,NeRFPrior 甚至优于 MonoSDF,尽管 MonoSDF 使用了在海量数据集上预训练的先验。这验证了特定场景的先验往往优于通用先验的假设。

速度

人们可能会认为在实际重建之前训练一个 NeRF 会很慢。然而,由于现代基于网格的 NeRF 速度极快,“获取先验”阶段仅需约 37 分钟。该先验提供的指导实际上加速了后续的训练,导致总训练时间仅为 MonoSDF 或 Neural RGB-D 等竞争方法的一半

表 4: 训练时间对比。

结论

NeRFPrior 为将“过拟合”作为先验策略提供了令人信服的论据。该方法不再依赖可能无法泛化的海量外部数据集,而是利用场景自身的内部一致性来进行自我教学。

通过首先训练一个快速 NeRF,系统获得了一个粗略但完整的密度和颜色图。这张图允许严格的 SDF 重建过程智能地验证可见性,并有效地平滑无纹理的墙壁。

主要结论如下:

  1. 自监督行之有效: 从测试场景本身学习到的先验可以胜过从数千个其他场景学到的先验。
  2. 颜色对几何至关重要: 利用 NeRF 的颜色能力可以进行稳健的遮挡检查,这是纯几何先验 (如稀疏点云) 无法提供的。
  3. 针对性正则化: 深度一致性损失表明,我们可以智能地应用平滑处理——仅在数据表明表面平坦且无特征的地方。

这种方法为更自主的 3D 扫描系统铺平了道路,使其能够在无需对外部数据进行广泛预训练的情况下,生成高保真的室内空间模型。