驯服幻觉: 视频扩散模型如何提升稀疏 3D 高斯泼溅的效果

引言

想象一下,你试图仅凭从中心拍摄的六张照片来重建一个房间的详细 3D 模型。这就是稀疏输入 3D 重建所面临的挑战。虽然像 3D 高斯泼溅 (3D Gaussian Splatting, 3DGS) 这样的技术已经彻底改变了我们渲染场景的方式,但它们通常需要密集的图像云才能发挥魔力。当你只给它们投喂少量视角时,结果往往充满了“黑洞”、悬浮的伪影和模糊的几何形状。

问题的核心在于两个方面: 外推 (extrapolation) (摄像机当前视野之外的房间是什么样子的?) 和遮挡 (occlusion) (沙发后面藏着什么?) 。

一篇新的研究论文 “Taming Video Diffusion Prior with Scene-Grounding Guidance for 3D Gaussian Splatting from Sparse Inputs” (通过场景锚定引导驯服视频扩散先验以实现稀疏输入下的 3D 高斯泼溅) 提出了一个迷人的解决方案: 生成式重建 (Reconstruction by Generation) 。 研究人员建议,如果我们没有足够的图像,我们就应该利用生成式 AI 来“想象”出它们。

然而,简单地要求 AI “想象房间的其余部分”会产生一个新的问题: 不一致性。如下图所示,标准的视频生成可能会产生闪烁的纹理和并不存在的“幻觉”物体,导致最终的 3D 模型中出现黑色阴影。

图 1: 方法对比。(a) 和 (b) 展示了外推和遮挡问题。普通生成会导致不一致性 (黄色箭头) 和黑色阴影。本文提出的场景锚定生成 (c) 能产生一致的序列。

这篇文章将详细拆解研究人员如何通过使用一种新颖的引导系统来“驯服”视频扩散模型,从而解决这个问题,并实现最先进的稀疏输入 3D 重建效果。

背景: 稀疏输入的挑战

要理解解决方案,我们必须先了解问题所在。

3D 高斯泼溅 (3DGS) 并不像网格或神经网络那样表示场景,而是将其表示为数百万个 3D 团块 (高斯球) 。每个团块都有位置、旋转、缩放、颜色和不透明度。当正确优化后,这些团块会混合在一起,创造出照片级逼真的图像。然而,3DGS 的优化依赖于多视图一致性 。 它需要从多个角度观察空间中的同一点,以确定高斯球应该放置的确切位置。

当你只有稀疏输入 (例如 3 到 6 张图像) 时,系统会遭遇形状-辐射模糊性 (shape-radiance ambiguity) 。 它无法分辨颜色的变化是由光照、纹理还是几何形状引起的。此外,如果你将摄像机稍微向左移动,你可能会看到一堵从未在输入照片中捕捉到的墙。在标准的 3DGS 中,这会导致空白空间或“漂浮物”。

生成式机遇

扩散模型 (如 Stable Diffusion 或 Sora背后的模型) 已经从海量数据集中学习到了关于视觉世界的先验知识。它们知道椅子从后面看通常是什么样子的,或者地板图案通常是如何延伸的。研究人员利用视频扩散模型来生成短视频片段,从已知的摄像机位置移动到这些未知区域。

核心方法: 驯服扩散模型

研究人员提出的管道包含三个主要阶段:

  1. 轨迹初始化: 弄清楚应该把摄像机移到哪里才能看到“空洞”。
  2. 场景锚定引导: 生成填补这些空洞的视频序列,且不产生无意义的幻觉。
  3. 优化: 使用真实图像和合成视频共同训练最终的 3DGS 模型。

图 2: 框架概览。系统初始化一个基线 3DGS,计算覆盖未观测区域 (黄色) 的轨迹,使用引导扩散模型生成视频序列,最后优化 3DGS。

1. 寻找不可见区域: 轨迹初始化

在生成视频之前,我们需要知道往哪里看。我们不能只是生成随机的摄像机运动;我们需要针对那些被遮挡或在视野之外的区域。

团队首先在稀疏输入上训练一个“粗糙”的基线 3DGS 模型。虽然它并不美观,但它提供了场景的粗略几何形状。然后,他们从各种候选位姿渲染视图并检查透射率图 (transmittance map)

透射率图本质上告诉我们一个视图有多透明。如果一个区域具有高透射率 (在渲染中表现为黑洞) ,这意味着那里没有高斯球——这是一个未观测区域。

图 3: 轨迹初始化。系统识别渲染中存在显著空洞 (红框) 的候选位姿,并创建一条从已知输入视图向该未观测区域移动的摄像机轨迹。

通过基于这种透射率计算掩码,他们选择了能够从已知输入视图平滑过渡到这些未知“空洞”区域的轨迹。这创建了一个特定的路径:

\[ \Phi = \{ \{ \phi _ { j } ^ { ( i , c ) } \} _ { j = 1 } ^ { L } | i , c \} , \]

其中 \(\phi\) 代表摄像机位姿序列。

2. 场景锚定引导 (Scene-Grounding Guidance)

这是论文中最关键的技术贡献。

如果你将起始图像和计算出的轨迹输入到标准的视频扩散模型 (如 ViewCrafter) 中,它会生成一个视频。然而,扩散模型具有随机性——它们会编造内容。第 5 帧可能显示一扇窗户,而第 10 帧可能把它变成一幅画。这种时间不一致性对 3D 重建来说是灾难性的。

为了解决这个问题,作者引入了场景锚定引导 。 他们使用来自基线 3DGS 的不完美渲染图来引导扩散过程。

为什么要用糟糕的渲染图? 尽管基线 3DGS 的渲染图有空洞和模糊,但它们在定义上是3D 一致的 (因为它们来自同一个静态 3D 模型) 。它们充当了几何锚点。扩散模型提供纹理和真实感,而 3DGS 渲染图确保结构不会随着时间发生形变。

数学机制

标准的扩散采样使用预测的噪声 \(\epsilon_\theta\) 迭代地从潜变量 \(\mathbf{x}_t\) 中去除噪声:

方程 2: 标准扩散采样更新规则。

研究人员通过添加基于基线 3DGS 渲染图的引导项来修改此过程。他们定义了一个一致性目标 \(\mathcal{Q}\) (源自渲染序列) 。新的采样更新包括该目标概率的梯度:

方程 3: 使用贝叶斯规则展开的条件分数函数。 方程 4: 引导项与损失函数的负梯度成正比。

简单来说,在视频生成的每一步,模型不仅被“推动”去看起来更真实 (扩散先验) ,而且还要匹配基线 3DGS 渲染图的结构。

用于这种“推动”的损失函数 \(\mathcal{L}\) 将生成的帧 \(\mathbf{X}_{0|t}\) 与渲染帧 \(\mathbf{S}\) 进行比较,具体关注那些确实可见的区域 (使用掩码 \(\mathbf{M}\)) :

方程 6: 结合 L1 损失和感知损失的引导损失函数。

这种结合迫使生成的视频尊重场景的已知几何结构,同时利用扩散模型的创造力合理地填补缺失的纹理和细节。

引导的影响: 没有这种引导,视频扩散模型会产生幻觉。请注意下方的图 4,由于生成的视图相互矛盾,“普通生成 (Vanilla Generation) ”导致 3D 模型出现黑色阴影 (红框) 。

图 4: 普通生成与引导生成的效果对比。普通生成由于不一致导致黑色阴影。引导生成解决了这个问题。

3. 使用生成序列进行优化

一旦生成了一致的视频序列,它们就被视为伪真值 (pseudo-ground-truth) 数据来训练最终的 3DGS 模型。

训练过程在采样真实输入图像和合成生成视图之间交替进行。 对于真实图像,他们使用标准的重建损失:

方程 8: 真实输入图像的损失。

对于生成视图,他们发现标准的像素级完美损失 (L1) 是不够的,因为生成的图像可能仍有轻微的缺陷。为了鼓励模型填补空洞而不纠结于生成区域的像素级对齐,他们主要依赖感知损失 (LPIPS) :

方程 9: 生成视图的损失,强调感知相似性。

在生成视图上使用这种感知损失的视觉影响是深远的,因为它帮助模型专注于结构的完整性,而不是高频噪声。

图 7: 消融实验显示感知损失如何帮助模型比基线更好地建模空洞区域 (红框) 。

实验与结果

研究人员在两个具有挑战性的室内数据集上评估了他们的方法: Replica (合成数据) 和 ScanNet++ (真实世界,高保真) 。他们将自己的方法与 FreeNeRF、DNGaussian 和 FSGS 等领先的稀疏输入方法进行了比较。

定量成功

该方法取得了最先进的结果。在 Replica 数据集上,它将 PSNR (衡量图像质量的指标) 比基线提高了超过 3.5 dB 。 在信号处理术语中,这是一个巨大的飞跃,表明图像更加清晰和准确。

表 1 对比逻辑: 该方法在 PSNR 和 SSIM 指标上显著优于 FreeNeRF 和 DNGaussian 等基线。

定性分析

从视觉上看,差异是明显的。在下面的比较中,请观察房间的边缘和物体后面的区域。

  • 第 1 行 (Replica): 注意椅子后面的墙。其他方法让它变得模糊或留空。本文提出的方法 (Ours) 清晰地重建了它。
  • 第 3 行 (ScanNet++): 天花板区域通常被标准方法完全遗漏 (外推问题) ,但这种方法合理地填补了它。

图 5 和 6: 定性比较。本文提出的方法在处理外推 (天花板/墙壁) 和遮挡 (物体后面) 方面比竞争对手好得多,预测出了合理的几何结构。

该方法在不同场景中也表现出良好的扩展性,始终保持结构完整性,而其他方法则会分解成伪影。

图 A3: 在 ScanNet++ 和 Replica 数据集上的进一步定性比较,显示出更少的运动伪影和更好的结构定义。

比 2D 修复 (Inpainting) 更好?

你可能会问: 为什么要生成视频?为什么不直接在空白处使用 2D 修复 (比如 Photoshop 的生成式填充) ?

研究人员将他们的方法与 2D 修复方法 (LaMa 和 Stable Diffusion Inpainting) 进行了比较。结果 (图 8) 表明,虽然 2D 修复填补了空洞,但它忽略了 3D 几何结构。它绘制的“扁平”纹理从某个角度看是不对的。而在基线 3DGS 引导下的视频扩散方法则尊重了场景的 3D 本质。

图 8: 与修复方法的比较。本文提出的方法生成了一致的 3D 几何结构,而修复方法通常会产生扁平或不匹配的纹理。

结论

这就论文解决了 3D 计算机视觉中最棘手的障碍之一: 如何 (几乎) 无中生有地创造事物。通过巧妙地结合视频扩散模型的“创造性”力量与 3D 高斯泼溅的“结构性”约束,作者展示了一种填补稀疏场景空白的方法。

给学生和研究人员的关键要点:

  1. 生成式先验很强大: 我们可以使用预训练的视频模型作为 3D 重建的“想象力”。
  2. 约束是关键: 生成式模型需要被驯服。使用粗略的代理 (如基线 3DGS) 来引导生成是一种非常有效的技术。
  3. 整体建模: 解决稀疏重建需要明确地寻找“空洞” (轨迹初始化) ,而不是仅仅寄希望于优化过程能填补它们。

这项工作为仅需几张快照就能扫描房间并在虚拟现实中漫游的系统铺平了道路,AI 将无缝填补所有的盲点。