3D Gaussian Splatting Compression with Object Scalability¶
会议: ECCV2026
官方论文: 4180
论文: 会议 PDF
代码: https://github.com/RuixiangXue/ScalableGSC
领域: 3D视觉
关键词: 三维高斯压缩、对象级可伸缩性、渐进蒸馏、跨层上下文、感兴趣区域
代码地址来自论文,作者表述为将发布;本笔记未联网核验其公开状态。
一句话总结¶
论文先用 RecastGS 将预训练 3DGS 重组为可按对象选择质量的分层表示,再用 LayeredCGS 逐层压缩和渐进解码,在 kitchen 的约 2.3 MB 工作点将 ROI PSNR 从 19.65 dB 提至 21.81 dB,代价是降低背景及全图质量。
研究背景与动机¶
3D Gaussian Splatting 把场景显式表示为大量高斯,每个高斯携带位置、旋转、尺度、不透明度和球谐颜色。这种表示方便实时渲染,却可能让单场景模型超过 500 MB。已有压缩方法大多围绕整场景率失真优化:要么在场景重建时联合学习紧凑表示,要么对已有高斯进行剪枝、量化和熵编码。FCGS 进一步把编码变成可泛化的前馈过程,降低逐场景优化的成本,但压缩目标仍是整体场景。
交互浏览的需求不同。用户可能只关心厨房中的某个物体,背景只要能提供空间上下文即可;若前景和背景都只能选择同一质量档位,有限带宽就无法优先服务这个物体。GoDe、PCGS 等渐进方法已经让高斯具有层级,但全局质量层级不等于对象级质量控制。此外,直接把无序高斯切成层,也不能保证每个累积子模型都能独立提供良好画面。
本文因此把表示重组与编码器分开:先让不同规模的高斯子集都可用,再把对象归属叠加到质量层级上,最后利用已解码低层为高层提供编码上下文。核心 idea:将“保留多少层”和“给哪个对象保留这些层”解耦,使同一场景能以低质量背景支撑高质量前景,并按层传输和细化。
方法详解¶
整体框架¶
输入是已经训练好的 3DGS,而不是重新从图像构建场景。RecastGS 的过完备分层搜索先按重要性建立高斯层级,可选的渐进蒸馏再改善各累积子模型;并行的提示驱动对象提取给高斯分配前景或背景身份,两者组合成区域自适应表示。LayeredCGS 随后编码位置及属性,输出按层组织的码流,接收端先解码基础层,再逐步添加增强层。
这里的质量等级表示“前若干层的累积子模型”,而不是仅渲染某一个单层。更重要的是,独立的码流分段不意味着任意增强层可以脱离基础层解码:后层的熵模型使用先前已解码层作为条件,合法的渐进接收顺序必须满足这一依赖。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["预训练 3DGS"] --> B["过完备分层搜索"]
B --> C["渐进蒸馏<br/>可选"]
A --> D["提示驱动对象提取<br/>与区域重组"]
C --> D
D --> E["跨层条件编码"]
E --> F["分层码流<br/>预览与渐进细化"]
关键设计¶
1. 过完备分层搜索:先细分重要性,再合并成实际传输层
基础层需要用少量高斯支撑整个场景,增强层则补充更细的结构。论文沿用 GoDe 的梯度重要性思路:在当前剩余高斯中,用训练视角上的渲染损失计算各参数梯度,累积其范数作为重要性;从高层向低层迭代,把较不重要的高斯分出去,使重要高斯留在低层。各累积等级的高斯数量按指数式增长,因此低档位仍然具有较细的规模控制。
问题在于,直接以最终层数进行筛选,重要性更新的粒度可能太粗;一味增加层数又会增加后续优化成本。RecastGS 先搜索 16 个细层,再将每两个相邻层合并为一层,最终保留 8 层,基础层参数设为 100,000 个高斯。这样,排序决策享受更细分层的好处,而蒸馏和编码不必承担全部细层的复杂度。它是对已有梯度分层的改进,不是引入新的对象语义评分。
2. 渐进蒸馏:从接近完整模型的子集逐步缩小容量
高斯被删减后,剩余参数仍来自完整场景训练,未必适合独立渲染。GoDe 的微调随机采样一个质量等级,用真实图像监督对应累积子集;但小子集很难拟合全部高频细节,随机采样还可能让各等级优化不均衡。RecastGS 改用固定的完整预训练模型作教师,让学生拟合教师渲染图,而不是重新索取所有真实训练图像来执行这一步微调。
具体顺序是从第 7 级走向第 1 级,而非从最小模型向上长。每个学生由上一较大子模型优化后的参数初始化,再删除更高层高斯,缩小容量后继续拟合完整教师。完整的第 8 级保持对应原始预训练模型。论文 Eq. (4) 的核心目标是图像平方误差:
这里的教师图像始终来自完整模型,传递的是学生初始化,而不是逐阶段更换教师。这样,每一步只需补偿相邻容量之间的损失,不必让最小学生一开始就完成跨度很大的拟合。蒸馏共执行 30,000 次迭代,是可选的逐场景优化;“前馈压缩”只准确描述 LayeredCGS,不能用来概括开启蒸馏后的全部流程。
3. 提示驱动对象提取与区域重组:对象归属不绑定质量等级
用户在参考渲染视图中点选物体。系统在点击位置的小邻域内,找到投影中心满足距离条件、且正深度最近的高斯,把点击提升到三维,再投影到其他视图作为 SAM 的二维提示。SAM 生成多视角前景掩码后,每个高斯按其投影中心是否落入掩码获得一次前景投票;前景分数就是这些二值投票在全部参与视图上的平均值。分数严格大于 0.7 的高斯进入前景,其余属于背景,点击搜索半径设为 6。
投票得到的是高斯身份,质量层级决定的是候选子集,两者可以分别控制。设前景需要第 7 级、背景只需第 2 级,系统取第 7 级累积子模型中的前景高斯,再取第 2 级累积子模型中的背景高斯,合并后渲染和编码。这不会把背景全部删除,也不要求为每一种用户偏好重训场景;它只是重组已有表示。对象提取模块可以关闭,也可以替换为其他 3DGS 分割方法。
这一机制依赖多视角分割和中心投影的可靠性。它并不自动保证薄结构或严重遮挡下的对象边界正确,也没有在本文中扩展为任意多对象之间的复杂质量偏好系统。
4. 跨层条件编码:把已经接收的高斯变成下一层的概率上下文
LayeredCGS 对每层分别处理位置、几何属性和颜色属性。位置预量化为 16 位,再由基于 RENO 的轻量占据编码器 RENO-GS 压缩,使用 TorchSparse 加速;体素化导致的少量重复位置另外用 DEFLATE 无损记录。不透明度、旋转和尺度对画质敏感,采用量化后无损编码。颜色则沿用 FCGS 的掩码预测,把属性分为 MLP 编解码的有损部分,以及量化后无损编码的部分,掩码本身也写入码流。“无损”针对量化后的符号,不意味着原始浮点场景完全无损。
真正的跨层改动发生在属性熵模型:已解码的低层高斯把潜在特征按距离权重聚合到多分辨率网格,包含一个三维网格和 xy、xz、yz 三个正交平面网格。待编码高斯按位置查询网格上下文,并结合位置频率编码,由上下文分析器预测分布参数。空间上下文再与高斯内部通道上下文、超先验融合,形成三分量高斯混合模型,为几何属性和无损颜色属性的熵编码提供均值、尺度及混合权重。
其作用不是在接收端凭空补出细节,而是让发送端与接收端都能依据同一批已解码低层高斯预测高层属性,从而减少编码冗余。每次解出新层,接收端既得到可渲染的新增高斯,也得到后续层可利用的上下文。这解释了为什么“逐层可截断”与“跨层依赖”可以同时成立。
一个完整示例¶
以论文图 7 的 kitchen 为例,均匀分配采用前景第 2 级、背景第 2 级,压缩体积为 2.35 MB;区域自适应改成前景第 4 级、背景第 1 级,体积为 2.30 MB。也就是说,用户关心的物体保留了更多增强层,而背景退到基础层,不是把同一个全局码流简单提高质量。
结果是 ROI PSNR 从 19.65 dB 提高到 21.81 dB,但全图 PSNR 从 17.39 dB 降到 16.39 dB。对象可伸缩性的意义正是允许这种可控取舍;不能把它描述为在相同大小下对整个场景进行无代价增强。该 ROI 示例也不同于图 6 的全局渐进解码示例,两者的 PSNR 不应混用。
损失函数 / 训练策略¶
LayeredCGS 在 DL3DV-10K 的约 7,000 个真实场景上训练,预训练高斯来自 960P 图像及 SfM 数据。属性熵模型只优化几何与颜色属性总比特数除以“高斯数量 × 属性维度”的码率目标,默认属性维度为 56;因为量化步长已经固定,此目标不再加入失真项。训练每次随机抽取一层,所有层共享网络参数。这与 RecastGS 按大到小执行的场景蒸馏是两个不同的训练过程。
RENO-GS 单独用占据预测交叉熵训练,其他相关模块复用 FCGS 预训练权重。论文使用 Adam 训练 50 个 epoch,学习率从 0.0002 线性衰减;三维网格分辨率为 60、80、100,二维网格为 300、400、500,硬件为 RTX 4090。
实验关键数据¶
主实验¶
整体评测覆盖 Mip-NeRF 360、Tanks & Temples 和 Deep Blending,报告 PSNR、SSIM、LPIPS 与 BD-BR。BD-BR 比较率失真曲线在共同质量区间内的平均码率差,负值表示节省码率;模型压缩用文件体积作率轴,单独考察压紧表示时则使用高斯数量,二者不能等同。摘要概括 LayeredCGS 相对 FCGS 约 35% 的 BD-Rate 改善;前馈对比使用同一 vanilla 3DGS,关闭蒸馏和对象提取,仅保留分层搜索。
下表采用图 7 明确标注的 ROI 工作点。箭头左侧为均匀分配,右侧为区域自适应,档位顺序均为“前景 / 背景”。
| 场景 | 质量档位 | 体积 MB | 全图 PSNR dB | ROI PSNR dB | ROI 提升 dB |
|---|---|---|---|---|---|
| bicycle | 3 / 3 → 7 / 2 | 6.55 → 6.03 | 19.61 → 18.63 | 20.69 → 21.82 | +1.13 |
| garden | 3 / 3 → 6 / 2 | 7.06 → 6.30 | 16.85 → 15.28 | 25.70 → 26.82 | +1.12 |
| kitchen | 2 / 2 → 4 / 1 | 2.35 → 2.30 | 17.39 → 16.39 | 19.65 → 21.81 | +2.16 |
三个工作点都不是严格相同体积,而是相近且自适应配置略小;最后一列由原图两项 ROI PSNR 相减。ROI 曲线的 BD-BR 分别为 -28.57%、-51.96%、-33.75%,全图 PSNR 对应的 BD-BR 则恶化 4.59%、12.05%、7.06%。
消融实验¶
表中为 Mip-NeRF 360 上图 8 及正文的消融结果。“额外降低”沿用论文表述,不将不同参照下的百分比直接相加。
| 模块或配置 | 参照条件 | 报告的 BD-BR 改善 | 解释 |
|---|---|---|---|
| 过完备分层搜索,不微调 | 不微调的 GoDe | 降低 6.06% | 分层选择本身改善子模型 |
| 从小到大的渐进蒸馏 | 微调后的 GoDe 基线 | 降低 21.22% | 蒸馏顺序已有收益 |
| 从大到小的渐进蒸馏 | 微调后的 GoDe 基线 | 降低 31.27% | 本文采用的顺序更好 |
| LayeredCGS 去掉跨层上下文与 RENO-GS | FCGS | 降低 30.07% | 有序分层已利于压缩 |
| 加入跨层上下文 | 上述分层编码配置 | 额外降低 8.06% | 利用跨层相关性 |
| 加入 RENO-GS | 进一步加入几何编码器 | 额外降低 1.25% | 另报告约 1.7 倍解码加速 |
关键发现¶
图 6 的 kitchen 渐进解码展示了先预览再细化的实际轨迹。第一行是基础层成本,其余行是新增层的增量成本;画质均评价当前累积模型,不能把增量大小当成累积大小。
| 已解码层 | 当前层体积 MB | 当前层解码时间 s | 累积 PSNR dB | 累积 SSIM | 累积 LPIPS |
|---|---|---|---|---|---|
| 1 | 2.534 | 0.58 | 27.27 | 0.8683 | 0.2180 |
| 1–2 | +0.610 | +0.36 | 28.19 | 0.8869 | 0.1901 |
| 1–3 | +0.867 | +0.45 | 29.17 | 0.9017 | 0.1668 |
| 1–4 | +1.210 | +0.76 | 29.99 | 0.9127 | 0.1484 |
分层既改善了低容量子模型,也为概率编码提供了结构,但两者的收益应分别考察。RecastGS 正文报告分层搜索平均约 17.4 秒、渐进蒸馏约 15 分钟;方法节另给相对 GoDe 的额外分层开销 8.3 秒,统计口径不同,不能混写。0.58 秒是这一展示场景的基础层解码时间,不是端到端准备与传输延迟。
亮点与洞察¶
- 对象掩码与质量层级正交。 同一个对象可以选不同累积层,而不必把“属于哪个对象”重新学习一遍。这种表示组合方式比为每个 ROI 单独训练压缩模型更适合交互修改。
- 重要性层级也能成为熵编码上下文。 低层不只是预览所需的高斯,还能帮助预测高层属性。表示组织与传输顺序因此共同影响压缩效率。
- 先搜索得细,再执行得粗。 过完备分层把重要性判定粒度与最终层数分开,可借鉴到需要层级剪枝、但不希望增加部署档位的模型中。
局限与展望¶
- 作者明确承认的覆盖范围。 ROI 实验主要是前景与背景的二分质量分配;复杂多对象偏好、薄结构和严重遮挡仍待研究。anchor-based 与 pixel-aligned 3DGS 格式也被列为未来扩展。
- 逐场景准备成本不能忽略。 最强结果可包含约 15 分钟的渐进蒸馏,还可换用 GaussianSpa 重建骨干;不能与不做这些优化的纯前馈设置混为同一预算。实际部署应分开报告搜索、蒸馏、分割、编码、传输和解码时间。
- ROI 指标依赖 SAM 掩码。 实验 ROI 由 SAM 生成,未在正文证明其等价于人工标注的真实对象边界;多视角中心投票在遮挡和边界处的误差也值得单独测量。这是本笔记基于评测设计的观察。
- 渐进流不是任意随机访问。 码流分段存在低层上下文依赖;频繁切换 ROI 或丢失基础层时的系统代价,正文没有给出完整测量。后续可研究显式依赖管理和多对象带宽调度。
相关工作与启发¶
- GoDe: 提供梯度重要性分层和累积质量等级。本文在其基础上增加过完备搜索及从大到小的教师蒸馏,再引入独立对象掩码,而不是从零设计高斯层级。
- FCGS: 提供前馈属性压缩、颜色分流、通道上下文和超先验等基础部件。LayeredCGS 的关键差异是有序层间的空间上下文与 RENO-GS 位置编码,不能将所有编码器部件都归为本文原创。
- SAM 与 SAGD: 提示驱动对象提取借助已有二维分割及三维高斯对象提取思路,本文重点是把分割结果与质量层级组合成 ROI 压缩接口,而非提出通用分割模型。
- HAC / ContextGS: 这些方法采用 anchor-based 表示,与本文操作的 vanilla 3DGS 数据格式不同。跨方法率失真比较能反映系统表现,但不等于在完全相同表示和优化成本下替换一个编码模块。
评分¶
以下为笔记作者的主观评分,满分 5 分。
- 新颖性: 4/5。对象级质量重组与层间编码协同有明确价值,但多项底层机制建立在 GoDe、FCGS 和已有分割方法上。
- 实验充分度: 4/5。包含三组标准数据、ROI 取舍、模块消融与渐进时延;多对象复杂场景和端到端流式系统测试仍不足。
- 写作质量: 4/5。两阶段架构及图示清楚;BD-BR 汇总、不同时间口径和分段解码依赖需要读者仔细区分。
- 价值: 4/5。适合已有 3DGS 资产的渐进浏览与关注区域传输,实际收益取决于预处理成本和 ROI 稳定性。