3DGS压缩-Knowledge Distillation for 3DGS
如何轻量化一个复杂并且冗余的神经网络,答案是做蒸馏与dropout,同样的问题也出现在了3DGS上,这里的一个trade-off在于:高效压缩与质量不下降,之前一些压缩工作在这两个方向之间来回摇摆。
时值3DGS发布两年,The University of Manchester的学者给出了一个均衡的方案,尽管GS时离散且显式的表达方式,但是作者仍以一种巧妙的方式套用传统的神经网络轻量化的思路,KD一般包含两方面,一方面是从standard model特殊处理得到多个teacher,以此增加student的鲁棒性,二方面是从model latent space distribution角度出发,使得student distribution逼近teacher distribution。
等等,这似乎有点像OT?
abstract
3D Gaussian Splatting (3DGS) 在新视角合成(NVS)任务中表现出了显著的效果。然而,它存在一个主要缺陷:为了实现高保真渲染,通常需要大量的三维高斯,这导致了巨大的内存消耗和存储需求。为了解决这一问题,我们提出了首个 3DGS 知识蒸馏框架,其中引入了多种教师模型,包括 原始 3DGS、噪声增强版本以及 dropout 正则化版本。这些教师模型的输出会被聚合,用于指导轻量级学生模型的优化。为了蒸馏隐藏的几何结构,我们提出了一种 结构相似性损失,以增强学生模型与教师模型在空间几何分布上的一致性。通过在多个数据集上的全面定量与定性评估,我们的方法 Distilled-3DGS —— 一个简单而有效、不依赖复杂技巧的框架 —— 在渲染质量和存储效率方面,相比当前最先进的方法都取得了有前景的结果。
1. Introduction
3D Gaussian Splatting (3DGS) [13] 在新视角合成中展现了显著的效果。该方法采用基于点的表示,并结合 三维高斯属性,通过基于光栅化的渲染管线合成图像。然而,要实现高保真的图像渲染,特别是在复杂场景中,3DGS 通常需要大量三维高斯点,从而带来较大的 计算与存储开销,限制了其在资源受限设备上的应用。
另一方面,知识蒸馏(Knowledge Distillation, KD)[3] 已被证明在压缩神经网络、提升多种视觉任务效率方面非常有效。但将其应用于 3DGS 面临独特挑战:
- 3DGS 是一种 显式且非结构化表示,由数量不定的高斯点构成,缺乏常规 KD 可利用的一致潜在特征空间。
- 高斯点的分布是 场景相关且无序的,无法直接在教师模型与学生模型之间建立逐点对应关系。
- 渲染输出具有 视角依赖性,且对单个高斯点 不可微分,因此设计稳定且有效的蒸馏损失极具挑战。
为此,我们提出了 Distilled-3DGS 框架,在教师模型集成与几何感知蒸馏策略的精心设计下,实现了高效压缩与性能提升。
具体而言,我们提出一种基于知识蒸馏的轻量化 3DGS 表示框架 Distilled-3DGS。该方法通过蒸馏多个复杂教师模型的知识来增强紧凑学生模型的性能。整体流程包括两个阶段:
- 多教师训练阶段:首先训练一个标准的 3DGS 模型;随后分别引入随机扰动和 dropout 策略,获得两个额外的多样化教师模型。
- 蒸馏训练阶段:将多个教师模型的预测结果进行聚合,生成伪图像;学生模型通过强制其渲染输出与该伪图像保持一致来接受监督,从而有效继承教师模型的丰富先验知识,获得更全面与鲁棒的训练信号。
在 Distilled-3DGS 中,教师模型通常包含稠密且高质量的点云,而学生模型为了效率和部署考虑,会被压缩为更加稀疏的点集。尽管稀疏,学生模型仍需重建与教师模型相同的三维场景,即保留其核心空间布局与局部几何模式。为此,我们提出了 空间分布蒸馏策略,引导学生模型在空间点分布上与教师对齐。与逐点对应不同,该结构感知的监督方式鼓励学生学习教师的全局与局部几何一致性,从而更有效、全面地蒸馏教师的结构知识。
2. Related Work
2.1 3DGS的压缩
3DGS用数百万各向异性高斯明确表示3D场景,并利用可微分栅格化,实现实时、光现实视图合成。当3DGS通过优化高斯属性来覆盖场景时,它通常会产生许多冗余高斯,从而降低渲染效率并大幅增加内存使用。
为了解决这些问题,随后的几种方法旨在根据手工制作的重要性标准修剪冗余的高斯。Mini-Splatting[5]使用模糊分割、深度重新初始化和隨機取樣來解決重疊和重建偽影。Radsplatting [24]通过应用最大算子从射线贡献中推导出重要性分数来增强稳健性。Taming-3DGS [21]利用像素突出度和梯度信息进行选择性致密化,而LP-3DGS [38]利用学习的二进制掩码进行高效的高斯修剪。此外,Scaffold-GS [20]提出了一个结构化的双层分层场景表示,以更好地调整3D高斯原语的分布。
总体而言,上述优先考虑效率的方法通常可以实现更快的性能,但与标准3DGS相比,这往往以牺牲渲染质量为代价。相反,专注于提高渲染质量的方法往往需要更高的计算资源。为了解决这种权衡,我们提出了一个基于知识蒸馏的3DGS框架,该框架同时提高了存储效率和渲染保真度。
2.2 KD(Knowledge Distillation)
知识蒸馏(KD)
知识蒸馏(Knowledge Distillation, KD)旨在将大规模教师模型的知识迁移到紧凑的学生模型中。KD 最初被提出用于 模型压缩 [3, 10],早期方法主要通过匹配教师模型的输出实现,随后扩展到模仿中间表示 [27, 32]。KD 已广泛应用于多种视觉任务,如 目标检测 [18, 35]、语义分割 [12, 19] 和 图像生成 [17, 36]。
多教师知识蒸馏(MKD)
为克服单教师 KD 的局限性,研究者提出了 多教师蒸馏(Multi-teacher KD, MKD),以聚合来自多个教师模型的多样化知识。早期方法通常对每个教师赋予 等权重 [7, 30],而近期方法则采用自适应加权策略,例如 基于熵的加权(EB-KD) [15] 和 基于置信度的蒸馏(CA-MKD) [33]。MMKD [34] 进一步引入元学习,实现特征与 logits 的联合蒸馏。这些方法大多依赖 CNN 的结构化特征空间,通过软标签或中间层监督实现有效对齐。
将 KD 扩展到 3DGS 的挑战
与基于 CNN 的模型不同,将 KD 应用于 3D Gaussian Splatting (3DGS) 面临独特挑战。3DGS 使用 显式且非结构化的高斯基元集合 表示场景,这些基元是无序的、场景相关的,且缺乏一致的潜在空间。这使得教师模型与学生模型之间无法直接建立逐元素对应关系,因此传统 KD 方法无法直接应用。
我们的方法
我们提出利用多个 预训练 3DGS 教师模型 渲染高质量图像作为学生模型的监督信号。同时,我们设计了 空间分布蒸馏策略,引导学生模型在空间点分布上与教师对齐。通过这种结构感知的蒸馏方式,即使在 3DGS 表示非结构化的情况下,也能有效地将教师模型的几何先验知识传递给学生模型。
3. Method
3.1. Preliminaries
3D Gaussian Splatting (3DGS) 它通过 显式的基于点的表示 对场景建模,从而实现任意视角下的高保真渲染。核心思想是将场景表示为若干 高斯基元(Gaussian primitives),每个高斯基元同时携带位置、形状、颜色以及透明度信息。通过将这些三维高斯投影到二维图像平面,并通过 alpha blending 融合颜色,生成最终像素值。高斯参数通过光度损失函数进行优化,训练时使用带位姿的图像作为监督。
3.2. Distilled 3D Gaussian Splatting
3DGS。与神经网络中的传统KD不同,它是一种显式3D表示,具有可变非结构化3D高斯,所以其蒸馏方法仍未被探索。为了解决这个问题,我们首先概述了拟议的蒸馏-3DGS,然后详细介绍了多样化教师模型和蒸馏方法的设计。
3.3. Overview of Distill-3DGS
如图 2 所示,我们首先训练三个采用不同策略的独立 3DGS 模型,以构建虽然庞大但质量极高的教师模型,这些模型包含数百万个高斯基元,并通过标准光度损失进行优化。
随后,我们利用优化后的教师 3DGS 表示,通过融合多个教师模型的输出生成伪标签。在学生模型的训练过程中,这些伪标签被用于将多个教师的先验知识迁移至单一学生模型。
为了获得轻量化的学生模型,我们依据 Mini-Splatting [5] 中提出的重要性评分对高斯基元数量进行剪枝。
此外,为了蒸馏隐藏在 3D 高斯几何结构中的知识,我们提出了针对非结构化 3D 高斯的结构化知识蒸馏方法,以促使教师模型与学生模型在空间分布上保持一致。
首先训练一个标准教师模型,同时生成两个变体:采用随机扰动的
模型和采用随机丢弃的
模型。随后通过这些教师的输出联合监督剪枝后的学生模型
。该框架还引入了空间分布蒸馏策略,帮助学生模型从教师群体中学习结构模式。
3.4. Training Diverse Teacher models
我们采用多种不同策略对基础 3DGS 模型进行多次训练,以增强教师模型的鲁棒性和泛化能力。
常规训练(Regular training)
首先,我们按照 [13] 中相同的设置,训练一个标准的 3DGS 模型 。其训练损失函数定义为:
特征扰动(Feature Perturbation)
我们训练一个带有高斯参数随机扰动的 3DGS 模型,并遵循 3DGS 中提出的相同优化与密度控制策略。在每个训练迭代 t 中,每个高斯基元会被扰动:
其中,随机噪声被加到对应的高斯参数上,包括、三维旋转
、尺度
以及不透明度
。由于用三维矩阵表示旋转增加扰动以后,不一定还正交从而不再是一个旋转矩阵,即对于旋转矩阵来说,扰动算子不是连续的,我们改为对其连续的六维表示进行扰动:
其中, 分别为旋转矩阵与六维表示之间的映射与逆映射。通过在训练过程中引入参数扰动,模型被迫学习对高斯基元精确位置与形状不敏感的场景结构,从而提升其泛化能力。
随机 Dropout(Random Dropout)
Dropout [8, 26] 被认为是提升模型鲁棒性最有效的技术之一,其核心思想是在训练过程中随机停用部分神经元。受到 Dropout 成功经验的启发,我们引入了一种随机 Dropout 策略,以进一步增强模型 表示的鲁棒性和冗余性。
在训练过程中,每个高斯基元以概率 p 被随机停用。在推理阶段,所有高斯基元均被激活,以实现新视角合成。通过在训练时随机丢弃部分高斯基元,我们的方法鼓励模型学习协作性与分布式的场景表示,而不是依赖少量关键基元。受 [25] 启发,丢弃率 会随迭代次数 t 动态更新:
3.5. Training Efficient Student Model-响应KD蒸馏理论中的teacher模型概率分布蒸馏
知识蒸馏是一种将大规模教师模型的知识迁移到更小、更快的学生模型中的技术。这种方法在资源受限环境下部署深度神经网络时尤其有用。在教师模型指导下训练的学生模型,能够以显著更少的参数达到与教师模型相当的性能。整个过程主要包括 伪标签生成 和 学生模型训练 两个部分。
利用教师模型进行伪标签生成
通过评估经过优化的多种教师模型 ,
,
,我们可以分别渲染得到视角对应的图像
。这些渲染图像作为先验知识,经过平均策略聚合后生成伪标签
,用于指导学生模型的学习。
常规知识蒸馏
在学生网络的训练过程中,我们同时利用真实标签和由多个教师模型生成的伪标签作为额外知识,共同引导学生模型 的优化。遵循常规的知识蒸馏损失形式,我们将多个教师融合的知识纳入目标函数,定义如下:
空间分布蒸馏
在 3DGS 的场景下,优化后的教师模型能够提供结构丰富且稠密的三维点分布;而学生模型则在稀疏或受限采样条件下运行,目标是重建相似的场景表示。为了实现这一点,我们希望设计一种结构相似性损失,鼓励学生模型捕捉与教师模型相似的空间几何分布。然而,由于点密度差异、采样噪声以及点分布不均匀等问题,直接基于坐标的距离度量往往对这些变化不够鲁棒。
为了解决这个问题,我们采用了 体素直方图表示(如图 3 所示):将三维空间离散化为规则的体素网格,并统计每个体素中的点数。这样可以将点的空间分布编码为高维结构特征,天然对点数和密度变化具有鲁棒性。通过比较体素直方图,就可以高效且结构感知地评估不同点云之间的相似性。
因此,我们提出一种基于体素直方图的结构损失,以增强学生模型的结构学习能力。
在学生模型的训练阶段,我们首先从优化后的标准教师模型 和学生模型
中分别得到点云
和
。随后确定一个同时覆盖两者的公共三维包围盒,并将该空间划分为分辨率为 128 的规则体素网格。接着,将两个点云中的每个点根据其空间坐标分配到对应的体素单元。对于点云
和
,分别统计落入每个体素的点数,从而得到两个高维的体素占据直方图
和
。
这些直方图接着被归一化为概率分布,从而独立于点数和密度,仅捕捉各自的空间结构。最后,我们计算它们的余弦相似度,损失定义如下:
该损失能够定量反映学生点云与教师点云在结构分布上的匹配程度。
最终,在学生模型的训练阶段,总损失函数定义为:
4. Experiments
Datasets. 我们在三个常用数据集上进行了实验:LLFF 包含 8 个前向相机场景,Mip-NeRF360 涵盖 9 个室内外多样化场景,Tanks and Temples (T&T) 中选取了两个场景。数据划分遵循 3DGS 协议,即每 8 张图像选取 1 张作为测试集,图像分辨率保持与 3DGS 一致。
Evaluation Metrics. 我们采用 PSNR、SSIM 和 LPIPS 三个常见指标来评估新视角合成质量,其中 PSNR 与 SSIM 衡量像素保真度与结构一致性,LPIPS 则更符合人类视觉感知。此外,还报告了存储优化参数时的平均显存占用。
Implementations. 实验基于官方 3DGS 代码库,在单张 NVIDIA RTX 3090 GPU 上完成训练。教师模型训练 30k 步,高斯稠密化在第 15000 步停止,随机扰动在第 500–15000 步间施加,Dropout 策略在同一范围内逐步引入。学生模型训练同样为 30k 步,前 15000 步进行稠密化,随后进行简化,并从第 15000 步开始每隔 500 步加入基于体素直方图的结构相似性损失。
4.1. Comparisons with State-of-the-Arts
对比方法分为两类:
NeRF 系列方法:包括最新的 Mip-NeRF 360,以及两种高效变体 INGP 和 Plenoxels。
3DGS 系列方法:包括原始的 3DGS,以及主流的高斯简化方法(CompactGaussian、LP-3DGS、EAGLES、MiniSplatting、Taming 3DGS)。其中,原始 3DGS 的结果既包含论文 [13] 中的数值,也包含研究者复现的实验结果。
实验结果(表 1)显示:
与 3DGS 系方法相比,Distilled-3DGS 在三种评估指标上都超过了 baseline 3DGS,并且在 Mip-NeRF360 数据集上显著减少了高斯数量。这得益于多样化 teacher 模型提供的全面知识监督。与原始 3DGS 相比,Distilled-3DGS 的 PSNR 分别提升 0.55 dB、0.62 dB、0.46 dB(对应三个数据集),而高斯数量则减少了 86.0%、87.5%、89.6%。
与现有的高斯简化方法(如 Taming 3DGS)相比,Distilled-3DGS 在保持类似高斯数量的同时,进一步提升了渲染质量。在视觉效果上(如图 4 所示),与 Taming-3DGS、Mini-Splatting 以及原始 3DGS 相比,Distilled-3DGS 能更忠实地保留图像细节,同时使用的高斯原语显著更少。
4.2. Ablation Studies and Further Analyses
实验因素 | 配置/变化 | 影响 | 定量结果 |
---|---|---|---|
教师数量 | 使用 Gstd + Gperb + Gdrop | 性能最佳,互补知识增强鲁棒性与泛化 | 优于任意单一或同质教师组合 |
移除 Gperb | 鲁棒性下降 | PSNR 降低 | |
移除 Gdrop | 泛化能力下降,易过拟合 | PSNR 降低 | |
仅用 Gstd | 缺乏多样性 | PSNR = 31.36 | |
单教师 | 性能最差 | 明显低于多教师 | |
空间分布蒸馏 | 保留 | 渲染质量提升 | — |
移除 | 结构一致性下降 | PSNR -0.16 dB | |
网格更大 | 更精细表示,但显存占用显著增加 | PSNR ↑,显存 ↑ | |
高斯数量 | Student (Base) | 质量接近 3DGS,但高斯数大幅减少 | — |
Student (Big) | PSNR ↑,但高斯数量接近教师模型 | — | |
Student (Small) | 高斯数最少,PSNR 仅下降 0.15 dB | — | |
教师多样性 | Gstd + Gperb + Gdrop | 最佳表现 | PSNR = 32.15 dB (Room, Mip360) |
3×Gstd | 性能下降 | PSNR = 31.36 | |
单教师 | 最差 | — |
5. Conclusion
方面 | 优点(Contributions) | 缺点(Limitations) |
---|---|---|
模型结构 | 提出多教师蒸馏框架,将多个教师的知识迁移到一个更紧凑的学生模型 | 需要预训练多个教师模型,训练成本至少增加 N 倍 |
知识迁移 | 同时保留几何结构与外观先验,保证重建质量 | 多模型推理生成蒸馏软标签时,显存开销大 |
蒸馏方法 | 引入空间分布蒸馏,提升学生模型对几何结构的捕捉能力 | 蒸馏流程复杂,难以直接端到端优化 |
实验表现 | 在多场景实验中,学生模型以显著更少的高斯数量实现与教师相近甚至更好的性能 | 当前方法对高斯数量的剪枝还不够灵活 |
应用价值 | 在内存受限或实时应用场景中具备潜力 | 泛化能力仍受限,有待进一步探索 |