如果你最近关注过 3D 计算机视觉领域的爆发式发展,那你很可能对 3D 高斯泼溅 (3D Gaussian Splatting, 3D-GS) 不会感到陌生。它通过将场景表示为 3D 高斯体 (椭球体) 云,彻底改变了该领域,实现了实时渲染和高质量重建。

然而,这些模型的使用方式存在分歧。一方面,我们有 单场景优化 (per-scene optimization) , 即模型花费数分钟或数小时来学习单个特定房间或物体。这种方式能产生令人难以置信的细节,因为模型可以在需要的地方迭代地添加更多高斯体 (即致密化) 。

另一方面,我们有 泛化前馈模型 (generalized feed-forward models) 。 这些是经过海量数据集训练的神经网络,只需看几张图片,就能瞬间预测出 3D 表示。它们速度很快,并且可以泛化到新物体上,但它们通常缺乏高频细节。为什么?因为它们通常预测固定数量的高斯体。它们无法像单场景优化那样,针对复杂的纹理进行“放大”并添加更多几何细节。

今天,我们将深入探讨一篇弥合这一差距的论文: “Generative Densification: Learning to Densify Gaussians for High-Fidelity Generalizable 3D Reconstruction” (生成式致密化: 学习致密化高斯体以实现高保真泛化 3D 重建) 。 作者提出了一种方法,教导前馈模型如何在单次前向传递中自适应地添加细节 (致密化) ,从而让我们在享受泛化模型速度的同时,获得优化方法的高保真度。

问题: 细节瓶颈

前馈高斯模型 (如 LaRa 或 MVSplat) 本质上是回归机器。你输入图像,网络输出高斯参数 (位置、颜色、不透明度等) 。

其局限性是显而易见的: 网络通常输出固定预算数量的高斯体。如果你要重建一面光滑的墙,高斯体就太多了。如果你要重建一把藤椅或一个文本标签,高斯体又太少了。

在标准的单场景 3D-GS 中,算法通过监控梯度来解决这个问题。如果某个区域的误差梯度很高,系统就会将一个大高斯体分裂成两个较小的高斯体 (致密化) 。但我们很难将其直接应用于前馈模型,因为:

  1. 速度: 迭代分裂和优化耗时太长,违背了“快速”前馈模型的初衷。
  2. 过拟合: 仅基于少数几个输入视角进行优化,通常会导致从新角度观察时出现伪影。

这篇论文的研究人员提出了一个问题: 与其通过优化来致密化,我们能不能学会如何致密化?

解决方案: 生成式致密化

所提出的方法,即 生成式致密化 (Generative Densification, GD) , 是一个位于现有前馈模型之上的模块。它获取初始的“粗糙”高斯体,并在缺失细节的地方智能地生成“精细”高斯体。

图 1. 我们的方法选择性地致密化 (a) 来自泛化前馈模型的粗糙高斯体。(c) 选择具有大视图空间位置梯度的前 K 个高斯体,并在每个致密化层中生成 (d-e) 它们的精细高斯体。(g) 最终的高斯体是通过结合 (b) 剩余 (未选中) 的高斯体与 (f) 每层输出高斯体的并集获得的。

如图 1 所示,该过程是有选择性的。它不仅仅是在所有地方将分辨率翻倍 (那样太浪费了) 。它识别高复杂度的区域——比如“Fruit Snacks”盒子上的文字——并将计算能力集中在那里。

第 1 步: 通过梯度掩码识别候选者

第一步是决定在哪里添加细节。作者借用了标准 3D-GS 中的一个启发式方法: 视图空间位置梯度 (View-Space Positional Gradients)

系统渲染当前的“粗糙”高斯体,并将其与输入图像进行比较。它计算损失相对于高斯体位置的梯度。

\[ m _ { i } ^ { ( 0 ) } = \frac { 1 } { V } \sum _ { v = 1 } ^ { V } \lVert \nabla _ { p ( x _ { i } ^ { ( 0 ) } , v ) } \mathcal { L } _ { \mathrm { M S E } } ( I _ { v } , \hat { I } _ { v } ) \rVert _ { 2 } , \]

显示在视图间平均梯度范数计算的方程。

简单来说,如果一个高斯体在反向传播过程中移动很大 (梯度高) ,说明模型难以在该区域进行准确表示。作者选择梯度最高的前 \(K\) 个高斯体作为致密化的候选者。

图 2. 生成式致密化概览。我们选择性地致密化具有大视图空间位置梯度的前 K 个高斯体。

第 2 步: 生成式致密化模块

一旦候选者被选中,它们就会被传递给 生成式致密化模块 (Generative Densification Module) 。 这不仅仅是一个简单的“分裂”操作;这是一个学习到的神经网络过程。

该模块包含三个主要阶段,分层重复进行:

  1. 上采样 (Up-sampling, UP)
  2. 通过可学习掩码进行分裂 (Splitting via Learnable Masking, SPLIT)
  3. 高斯头 (Gaussian Head, HEAD)

让我们看看架构:

图 3. 生成式致密化模块的关键组件。

序列化注意力 (Serialized Attention)

该模块的输入是高斯点云。标准的 Transformer “自注意力”极其消耗内存 (\(O(N^2)\)) ,这在处理数十万个高斯体时是不可能实现的。

为了解决这个问题,作者使用了 序列化注意力 。 他们将 3D 高斯位置映射到 空间填充曲线 (具体来说是希尔伯特曲线) 上。这将随机的 3D 点排序为一个 1D 列表,列表中相邻的点在 3D 空间中也可能是邻居。然后他们可以将这些点分组,高效地进行局部注意力计算。这使得模型能够理解场景几何的上下文

上采样 (Up-sampling)

上采样块获取选中高斯体的特征,并预测“偏移量”以创建新的位置和特征。

\[ \begin{array} { r l } & { \Delta x _ { i } ^ { ( l ) } = \mathtt { M L P } ( f _ { i } ^ { ( l - 1 ) } ; \theta _ { x } ^ { ( l ) } ) , } \\ & { \Delta f _ { i , j } ^ { ( l ) } = \mathtt { M L P } ( \gamma ( \Delta x _ { i , j } ^ { ( l ) } ) \oplus f _ { i } ^ { ( l - 1 ) } ; \theta _ { f } ^ { ( l ) } ) , } \end{array} \]

描述用于预测位置和特征偏移的 MLP 的方程。

本质上,一个多层感知机 (MLP) 观察一个高斯体并说: “我看你是锐利边缘的一部分。我要在你周围生成 \(R\) 个新的小高斯体来更好地定义那个边缘。”

可学习掩码 (Learnable Masking)

这是巧妙的部分。即使在根据梯度选择了候选者之后,我们也不需要对所有候选者重复进行致密化。模型会为每个高斯体预测一个“置信度掩码” (0 到 1 之间的分数) 。

\[ m _ { i } ^ { ( l ) } = \sigma \big ( \mathrm { M L P } ( f _ { i } ^ { ( l ) } ; \theta _ { m } ^ { ( l ) } ) \big ) , \]

使用 Sigmoid 激活函数进行可学习掩码预测的方程。

使用“直通估计器 (Straight-Through Estimator)”技巧 (允许梯度流过硬选择过程) ,模型学会过滤掉那些“足够好”的高斯体,只将困难的高斯体发送到下一层进行致密化。这使得高斯体总数保持可控,渲染速度保持在较高水平。

集成: 对象级与场景级

这篇论文的优势之一是作者将该模块集成到了两个不同的最先进骨干网络中:

  1. LaRa: 专为对象级重建设计的模型 (如单个鞋子或玩具) 。
  2. MVSplat: 专为场景级重建设计的模型 (如整个房间) 。

图 4. 用于对象级 (顶部) 和场景级 (底部) 重建任务的生成式致密化流程概览

如图 4 所示,生成式致密化模块 (GDM) 充当一个附加组件。无论输入是体素 (LaRa) 还是像素对齐的高斯体 (MVSplat) ,GDM 都会接收粗糙输出,对其进行细化,并将结果合并回最终渲染中。

实验与结果

它真的看起来更好吗?简短的回答是肯定的。

对象级结果

在 Google 扫描对象 (GSO) 数据集的对比中,该方法在纹理清晰度上显示出明显的改进。

图 10. 我们的对象级模型与原始 LaRa [5] 的定性比较,在 GSO [10] 和 Gobjaverse [33] 数据集上评估。粗糙和精细高斯体分别是生成式致密化模块的输入和输出。

看看图 10 中的 Brisk 柠檬水盒子 。 原始的 LaRa 模型 (第 2 列) 模糊了文字。生成式致密化模型 (第 3 列) 使文字清晰可读。右侧的线框可视化显示,“精细高斯体”主要集中在盒子复杂的边缘和文字周围,这正是预期的效果。

图 5. 训练了 50 个 epoch 的我们的对象级模型与原始 LaRa 的定性比较。红框内的放大放大部分显示在第二列和第三列的右侧,重点对比精细细节的重建。最右列的两张图像分别展示了输入到我们生成式致密化模块的高斯体和从该模块输出的高斯体。

图 5 进一步证实了这一点。 圣诞袜 (第二行) 上的细节在 LaRa 中是模糊的,但在细化版本中清晰可见。

场景级结果

对于完整场景 (使用 RE10K 数据集) ,在细微结构和反射方面的改进更为显著。

图 6. 我们的场景级模型与原始 MVSplat 在 RE10K [46] 数据集上的定性比较。

在图 6 中,注意 楼梯上的栏杆 (第一行) 和 水龙头手柄 (第二行) 。MVSplat 难以处理这些细薄的高频几何结构,通常会导致出现“漂浮物”或模糊的团块。所提出的方法显著地收紧了这些结构。

高斯体表现如何?

为了理解为什么视觉质量提高了,作者分析了生成的高斯体的物理属性。

图 8. 高斯属性的 2D 直方图。每个像素代表一个直方图箱,颜色越亮表示计数越高。

图 8 展示了高斯体的 2D 直方图。

  • 粗糙高斯体 (顶部) : 倾向于更大 (缩放热图右侧颜色较亮) 且更不透明。
  • 精细高斯体 (底部) : 明显更小且更透明 (不透明度更低) 。

这证实了假设: 模型使用粗糙高斯体来定义整体形状和体积,并利用许多小的、半透明的泼溅点来描绘精细的细节和边缘。

结论

论文 “Generative Densification” 为 3D 重建中的一个主要瓶颈提供了一个令人信服的解决方案。通过教导神经网络模仿优化算法的致密化过程,我们在不牺牲前馈模型速度和泛化能力的前提下,实现了高保真的结果。

主要收获:

  1. 自适应细节: 我们不需要在任何地方都保持高密度。使用梯度掩码允许模型将资源集中在难以建模的区域。
  2. 可学习的分裂: 神经网络可以学习分解高斯体的最佳方式以拟合目标图像,而不是使用启发式分裂。
  3. 效率: 序列化注意力等技术使这些操作能够在复杂的 3D 点云上高效运行。

这项工作为从单张图像生成实时、高质量的 3D 内容铺平了道路,推动我们向着人人可用的照片级真实感 3D 生成迈进了一步。