3D高斯溅射技术因其仅需少量图像即可实现照片级场景重建和实时渲染,在计算机图形学界引起了广泛关注。该技术通过数百万个微小、半透明、带颜色的斑点——即3D高斯——来建模场景,每个高斯都对最终图像做出贡献。

问题在于,这些重建场景的体积非常庞大,通常达到数GB。这使得它们难以进行流式传输,不适合在移动设备上运行,更难集成到对每一兆字节和每一毫秒都至关重要的VR/AR或游戏中。

来自慕尼黑工业大学的一个团队在他们的论文 《压缩3D高斯溅射以加速新视角合成》 中解决了这一挑战。他们设计的多阶段压缩流程使文件大小最多减少 31倍,渲染速度提升至 4倍,同时几乎不影响视觉质量。

图1. 该方法将一个1.5GB的场景压缩至47MB,帧率从54 FPS提升至93 FPS,而PSNR仅有可忽略不计的下降。

图1. 未压缩与压缩后渲染效果的并排比较。压缩显著减小了文件大小并提高了帧率,而对质量的影响微乎其微。

在本文中,我们将深入解析他们成果背后的技术——敏感度感知压缩的工作原理、量化感知训练如何在低比特率下保持质量,以及他们重新设计的渲染器如何利用紧凑格式实现最大速度。


快速回顾: 3D高斯溅射的背景

在深入探讨压缩之前,让我们先回顾一下其底层技术。多年来,神经辐射场 (NeRFs)新视角合成领域占据主导地位——即从输入图像生成新的视角——它通过训练神经网络来表示连续的体积场景。

虽然NeRFs可以实现很高的保真度,但其训练和渲染速度较慢,因为每个像素都需要进行昂贵的网络查询。

2023年,Kerbl等人提出了3D高斯溅射 (3DGS) ,用一种显式的基于点的方法替代了隐式的神经表示:

每个高斯由以下参数定义:

  • 位置 (\(x\)): 3D坐标。
  • 协方差 (\(\Sigma\)): 形状与方向,通过旋转四元数 (\(q\)) 和缩放向量 (\(s\)) 表示。
  • 不透明度 (\(\alpha\)): 透明程度。
  • 视角相关颜色 (球谐系数) : 编码随视角变化的RGB颜色的球谐参数。

渲染过程涉及将每个3D高斯投影成一个2D椭圆:

\[ \Sigma' = J W \Sigma W^{T} J^{T} \]

其中 \(W\) 是视图变换矩阵,\(J\) 是投影的雅可比矩阵。像素按从后到前的顺序混合排序后的溅射体:

\[ C = \sum_{i \in N} c_i \alpha_i \prod_{j=1}^{i-1} (1 - \alpha_j) \]

这种显式表示相比NeRFs显著加快了渲染速度。但为数百万个高斯存储位置、旋转、缩放、不透明度以及数十个球谐系数,数据量会迅速膨胀至数GB。


压缩流程: 优先保留关键参数

这一压缩方案的核心洞见是,部分参数对最终图像几乎没有影响,而另一些参数则至关重要。通过测量参数的敏感度,对影响较小的部分进行更高比例的压缩,团队在减小数据规模的同时尽量保留了视觉质量。

图2. 流程概览: 从一个优化后的3D高斯集合开始,经过敏感度计算、聚类到码本、量化微调和熵编码,最终生成压缩场景。

图2. 端到端的压缩工作流: 从优化后的3D高斯重建出发,分析参数,将它们聚类到紧凑的码本中,在低精度下微调,然后用熵编码存储。

阶段1: 敏感度感知向量聚类

占用存储空间最大的参数包括:

  • 球谐系数 (视角相关颜色)
  • 高斯形状参数 (旋转与缩放)

许多高斯具有相似的形状或颜色。这种冗余可以通过向量量化利用:
不必单独存储每个参数,而是建立包含常见颜色和形状的小型码本,然后为每个高斯只记录码本索引。

不同于标准的k-Means一视同仁地对待向量,这里在聚类时根据参数敏感度进行加权:

\[ S(p) = \frac{1}{\sum_{i=1}^{N} P_i} \sum_{i=1}^{N} \left| \frac{\partial E_i}{\partial p} \right| \]

其中 \(E\) 为图像能量,\(P_i\) 为第 \(i\) 张图的像素数。敏感度高意味着视觉影响大,这类参数必须精确保留。

图3. 球谐系数敏感度的直方图。多数高斯的敏感度很低,因此易于压缩。

图3. 三个场景中球谐系数的敏感度分布。只有少部分高斯对颜色变化非常敏感。

超过敏感度阈值的参数会跳过聚类,直接精准存储,并加入码本。颜色和形状聚类相互独立,以轻量化索引替代引擎中庞大的数据。


阶段2: 量化感知微调

聚类是有损的。为了恢复一些质量,场景 (包括码本) 会在训练图像上进行微调。

关键创新在于量化感知训练:
目标是将精度从32位浮点数降到8位整数 (位置使用16位浮点以避免质量下降) 。如果在训练后直接量化,会显著损害结果质量。相反,在正向传播中模拟8位量化,而梯度计算基于全精度值。

这种方式使参数在训练过程中习惯量化噪声,从而在低比特存储时依然保持无可见伪影。


阶段3: 结合空间排序的熵编码

最后一步是用DEFLATE进行无损压缩。为了提高效果,高斯沿Z序 (Morton) 曲线排序,将空间邻近的点聚在一起。

空间相邻的点通常颜色和形状相似,这样排序能增加DEFLATE容易压缩的重复模式,从而进一步消除冗余。


为速度优化的渲染器

压缩本身不能保证加速渲染——但更小且结构优化的数据更易于加速。

Kerbl等人的原始CUDA光栅化器针对RTX GPU优化,但不适合集成到引擎或低功耗设备。

新渲染器通过标准API (如WebGPU) 实现硬件光栅化,甚至可在浏览器中运行:

  1. 预处理: 剔除屏幕外高斯,计算视角相关颜色并投影成2D椭圆。
  2. 深度排序: 在GPU上高效排序以保证正确混合。
  3. 光栅化: 将每个高斯绘制成匹配其2D投影的四边形;片元着色器应用衰减并混合颜色。

这样既将任务交给GPU的固定功能单元,又利用了压缩数据降低带宽的优势。


结果: 文件更小,帧率更高,保真度如初

在合成和真实数据集上,压缩率平均达到 26倍,PSNR仅下降 0.23 dB——远低于人眼可察觉的约0.5 dB阈值。

表1. 压缩率和质量指标 (PSNR, SSIM, LPIPS) 显示,在显著减小尺寸的同时质量损失极小。

表1. 不同数据集下未压缩3DGS与压缩表示的指标对比。

并排对比可视化几乎无差异:

图4. 合成场景: 基线 vs. 压缩后。

图4. 合成场景中未压缩与压缩后渲染对比——质量几乎完全一致。

图5. 真实世界场景: 真实图像、基线3DGS、压缩表示。

图5. 压缩后的渲染保持了真实场景的高质量。

即使在PSNR下降最严重的情况下,差异也仅为轻微、难以察觉的颜色偏移:

图6. PSNR下降最严重的案例;平均绝对误差依旧很低,差异难以察觉。

图6. 最差案例对比: 压缩版依旧在视觉上高度还原。

性能提升也很显著:
在NVIDIA RTX A5000上,“Bicycle”场景帧率从93 FPS提升到 321 FPS——加速3.45倍。新流程在集成GPU上同样可运行,而原方法无法做到

表2. 在多种GPU (包括低功耗设备) 上的渲染FPS提升。

表2. 压缩格式结合硬件光栅化器可在不同设备上加速渲染。


消融实验洞见

为了验证各步骤的作用,团队依次将它们应用在同一场景中:

表3. 各步骤压缩对文件大小和PSNR的影响。

表3. 颜色聚类带来最大尺寸削减但质量下降明显,量化感知微调是恢复质量的关键。

要点:

  • 颜色聚类: 尺寸缩减最大,但质量损失也最大。
  • 量化感知微调: 在将尺寸再次减半的同时恢复了大部分失去的PSNR。
  • Morton排序: 零质量损失的情况下再次显著减小尺寸。

结论: 让3DGS真正走向实用化

这项研究表明,3D高斯溅射庞大的数据体积并非无法克服的障碍。通过敏感度驱动的方法、智能量化和空间感知编码,大规模的点云重建可以变得轻量、快速且便携。

平均 26倍压缩率最高4倍加速 让高保真3D场景在以下应用中成为现实:

  • 网络流式传输照片级环境。
  • 内存有限的独立VR/AR头显。
  • 需要轻量且逼真资产的游戏引擎

当前一个主要挑战是如何在不产生可见误差的情况下压缩高斯位置。但这条技术路线成功拉近了质量与实用性的距离,为在各类设备和平台上实现实时、照片级的3D内容铺平了道路。