引言

我们正见证着神经渲染的黄金时代。神经辐射场 (NeRF) 和 3D 高斯泼溅 (3DGS) 等技术让我们能够将少量 2D 照片转化为身临其境、可漫游的 3D 场景。其结果往往令人叹为观止——直到你偏离原始相机路径太远。

一旦你将虚拟相机移动到一个“新视角” (Novel View) ——即训练时未曾见过的角度——幻觉往往就会破灭。你会遇到“漂浮物” (悬浮在空中的虚假几何体) 、模糊的纹理和鬼影般的伪影。发生这种情况是因为这些区域是欠约束 (underconstrained) 的;3D 模型根本没有足够的数据来确知那里应该有什么,所以它只能猜测,而结果往往很差。

标准的优化方法假设输入数据是完美的,但现实世界的捕捉往往包含运动模糊、光照变化和不完美的校准。以前尝试使用生成式 AI (如扩散模型) 来修复这一问题的做法通常很慢,往往需要在每一步训练中进行计算昂贵的查询。

DIFIX3D+ 应运而生。在 NVIDIA 最新的一篇论文中,研究人员提出了一种管道,利用极速的单步扩散模型来“修复”这些伪影。它不仅仅是掩盖错误;它是在教导 3D 模型进行自我修正。

DIFIX3D+ 与 Nerfacto 和 3DGS 在室内和室外场景上的比较。第一行显示老爷车,中间显示建筑,底部显示城市街道。DIFIX3D+ 提供了明显更清晰的结果。

如上图 Figure 1 所示,差异是巨大的。当标准方法 (Nerfacto, 3DGS) 产生模糊或扭曲的渲染时,DIFIX3D+ 在室内和室外环境中都能生成清晰、照片级的细节。

在这篇文章中,我们将拆解 DIFIX3D+ 的架构,解释它如何将 2D 生成先验适应到 3D 空间,并分析为什么“单步”扩散是使其具有实用价值的关键。

背景: 伪影问题

要理解解决方案,我们必须首先简要回顾一下问题。

神经渲染基础

无论是谈论 NeRF 还是高斯泼溅,目标都是通过向场景中发射光线来合成像素的颜色 \(C\)。

NeRF 中,我们沿着光线采样点并累积颜色和密度。渲染方程如下所示:

NeRF 中的体积渲染方程。

3D 高斯泼溅中,我们将 3D 高斯椭球体投影到 2D 屏幕上。Alpha 混合公式略有不同,但遵循相同的累积逻辑:

3D 高斯泼溅中的 Alpha 合成方程。

根本问题在于形状-辐射歧义性 (Shape-Radiance Ambiguity) 。 如果你只有几张汽车正面的图像,3D 模型可能会“作弊”,将汽车的纹理贴在后面的一面平墙上,或者创建一团半透明的粒子云。从训练角度看,这看起来很完美。但如果将相机旋转 15 度,几何结构就会分崩离析。

扩散困境

生成式扩散模型 (如 Stable Diffusion) 非常擅长臆造 (hallucinating) 看似合理的细节。它们知道汽车从侧面看是什么样子的,即使你的特定数据集并没有完美地展示它。

然而,将它们用于 3D 棘手。标准的扩散模型是迭代式的。要生成或清理图像,它们需要运行去噪循环 50 到 100 次。如果你尝试在一个运行数千次迭代的 3D 训练循环中使用它,你的训练时间将从几分钟爆炸式增长到几天。

DIFIX3D+ 的作者通过利用单步扩散模型 (具体来说是 SD-Turbo) 解决了这个问题。这些模型可以通过单次前向传递将噪声映射到清晰图像,使其速度提高了几个数量级。

核心方法: DIFIX

这篇论文的核心是 DIFIX , 这是一个专门设计用于消除渲染伪影的图像到图像转换模型。

1. 洞察: 伪影只是“噪声”

研究人员做出了一个聪明的观察: NeRF 和 3DGS 产生的视觉伪影 (模糊、噪声、漂浮物) 在数学上类似于扩散模型的中间噪声状态。

他们没有从头开始训练扩散模型,而是微调了 SD-Turbo 。 他们训练它接收“噪声”渲染图像 (包含伪影) 并输出“干净”的真值图像。

然而,仅仅对图像进行去噪是不够的。如果你让标准扩散模型修复一张模糊的建筑物照片,它可能会发明出一座完全不同的建筑物。为了防止这种情况,DIFIX 以参考视图 (Reference View) 为条件——即数据集中距离当前视点最近的真实图像。

2. 架构

该架构是一个修改后的 U-Net。正如下面的 Figure 3 可视化所示,模型接收两个输入:

  1. 输入 (Input) (充满伪影的渲染图) 。
  2. 参考视图 (Reference View) (真值上下文) 。

DIFIX 架构图。左侧显示输入馈送到 VAE 编码器。中心显示带有参考混合层的 U-Net。右侧显示增强后的输出。

为了让模型感知参考图像,作者将标准的自注意力层替换为参考混合层 (Reference Mixing Layer) 。 该层将输入和参考视图的特征连接起来,允许模型从参考视图中“借用”正确的纹理和颜色来修复输入。

在潜空间 (latent space) 中混合视图的数学运算如下所示:

描述使用重排和注意力的参考混合层的方程。

3. 恰到好处的噪声水平

在这个过程中,一个关键的超参数是 \(\tau\),即训练期间使用的噪声水平。

  • 如果 \(\tau\) 太高 (例如 1000) ,模型会破坏输入图像并臆造出一个与场景几何不匹配的新图像。
  • 如果 \(\tau\) 太低 (例如 10) ,模型几乎不做任何改变,保留了伪影。

作者发现 \(\tau = 200\) 是“金发姑娘”区 (Goldilocks zone,意为恰到好处) 。在这个水平上,模型足够激进,可以去除漂浮物并锐化边缘,但也足够保守,能够尊重底层的场景结构。

不同噪声水平 (tau) 的比较。Tau=600 改变上下文过多。Tau=10 改变太少。Tau=200 是理想的平衡点。

Figure 4 所示,\(\tau=200\) 实现了最高的峰值信噪比 (PSNR) 和结构相似性 (SSIM) 。

4. 数据策展: 教导修复器

为了训练 DIFIX,作者需要海量的“糟糕渲染”与“优质图像”对。由于不存在这样的数据集,他们使用三种策略制造了数据集:

  1. 循环重建 (Cycle Reconstruction) : 在轨迹上训练一个 NeRF,渲染一个偏移的视图,在该视图上训练另一个 NeRF,然后渲染回原始视图。这会自然地累积误差。
  2. 模型欠拟合 (Model Underfitting) : 故意提前停止训练 (在 25-75% 的 epoch 处) ,以生成模糊、未完成的结果。
  3. 交叉参考 (Cross Reference) : 在多相机阵列中的一个相机上进行训练,并尝试预测被留出的相机的视图。

数据策展策略的可视化: 循环重建、稀疏重建、交叉参考和模型欠拟合。

Figure S2 展示了这些退化策略。这个精心策划的数据集使 DIFIX 能够准确地学习 NeRF/3DGS 伪影的样子以及如何去除它们。

DIFIX3D+ 管道

拥有一个“修复器”模型固然很好,但盲目地将其应用于每一帧可能会导致时间不一致性 (闪烁) 。为了解决这个问题,作者提出了一个将修复后的图像蒸馏回 3D 表示的管道。

该管道由三个不同的步骤组成,在 Figure 2 中可视化:

DIFIX3D+ 管道图解。左侧显示渲染、修复和更新的迭代循环。右侧显示最终的实时后处理步骤。

步骤 1: 渐进式 3D 更新 (蒸馏循环)

这是训练阶段。目标是改进底层的 NeRF 或 3DGS 模型。

  1. 渲染: 系统渲染一个稍微偏离训练相机的新视图。
  2. 修复: DIFIX 处理这个渲染,使用 2D 先验去除伪影。
  3. 更新: 这个“修复”后的图像被视为伪真值 (pseudo-ground-truth) 。 3D 模型在这个新图像上进行训练。

至关重要的是,这是渐进式完成的。系统从接近训练数据的视图开始,慢慢将相机推得更远。这允许 3D 模型向外“生长”其可靠区域,而 DIFIX 充当护栏,防止伪影被固化进去。

步骤 2: 实时后处理

即使经过渐进式更新,由于 3D 表示的容量有限 (它们无法存储无限的细节) ,一些细微的伪影可能仍然存在。

因为 DIFIX 是一个单步模型,它非常快 (每帧约 76 毫秒) 。这允许作者在推理期间运行 DIFIX 最后一次。这充当了最后的润色,锐化纹理并去除 3D 模型无法平滑掉的任何残留高频噪声。

损失函数

为了监督训练,作者结合了标准的重建损失和感知损失。他们特别采用了格拉姆矩阵损失 (Gram Matrix Loss) 来鼓励锐利的纹理。格拉姆矩阵计算特征相关性,这能有效地捕捉“风格”和纹理信息。

格拉姆矩阵损失的方程。

实验结果

作者在 DL3DV (野外场景) 和 Nerfbusters 等具有挑战性的数据集上评估了 DIFIX3D+。

定量分析

结果如 Table 2 所示,令人印象深刻。

表格比较了 DIFIX3D+ 与 Nerfbusters、GANeRF 和 NeRFLiX。DIFIX3D+ 在 PSNR、SSIM、LPIPS 和 FID 方面得分最高。

  • FID (Fréchet Inception 距离) : 越低越好。DIFIX3D+ 在 Nerfacto 上实现了 41.77 的 FID,而基线为 112.30 。 这在感知质量上几乎提高了 \(3\times\)。
  • PSNR: 越高越好。该方法始终将 PSNR 提高超过 1dB,表明更好的像素级准确性。

定性分析

视觉比较证实了这些指标。在 Figure 5 中,我们看到 DIFIX3D+ 能够处理像栅栏和树叶这样复杂的几何结构,而这些结构在其他方法中通常会变成一团模糊。

野外场景比较,显示 DIFIX3D+ 比 Nerfbusters 和 GANeRF 更好地修正了伪影。

消融实验: 我们真的需要参考视图吗?

作者进行了消融研究,以证明其架构选择的必要性。 Figure S1 展示了如果移除参考条件会发生什么。

DIFIX 组件的视觉消融实验。移除参考视图或格拉姆损失会导致幻觉或模糊结果。

没有参考视图 (面板 b) ,模型虽然清除了噪声,但臆造了错误的细节 (注意扭曲的植物叶子) 。有了参考视图 (面板 a) ,几何结构被忠实地保留了下来。

后处理的影响

最后的实时后处理步骤 (管道的第 2 步) 真的很重要吗? Figure 7 表明是的。

渲染后处理步骤的定性消融实验。放大的裁剪图显示最终步骤增强了清晰度。

DIFIX3D (仅 3D 更新) 和 DIFIX3D+ (带后处理) 之间的差异在花瓣的精细纹理中清晰可见。后处理充当了最后的超分辨率和去噪通道。

结论

DIFIX3D+ 代表了让神经渲染在现实应用中变得鲁棒的重要一步。通过将 3D 重建伪影视为一种特定类型的“噪声”,作者成功地将强大的 2D 扩散先验适应到了 3D 领域。

这项工作的主要收获是:

  1. 速度至关重要: 从迭代扩散转向单步模型 (SD-Turbo) 使得生成反馈循环在 3D 训练中变得切实可行。
  2. 参考是关键: 以参考视图为条件对生成模型进行约束,对于防止幻觉和保持几何一致性至关重要。
  3. 混合方法: 最好的结果来自于结合优化 (将知识固化到 3D 模型中) 和推理时增强 (清理最终渲染) 。

随着生成模型变得更快、更一致,像 DIFIX3D+ 这样的管道很可能会成为创建逼真数字孪生和沉浸式虚拟环境的标准。