跳转至

Matryoshka Gaussian Splatting

会议: ECCV2026
论文: ECCV 原文
项目: Matryoshka Gaussian Splatting
领域: 3D 视觉
关键词: 高斯泼溅、连续细节层级、嵌套表示、随机预算训练、不透明度排序

一句话总结

MGS 把高斯按不透明度动态排序,并联合训练随机长度前缀与全集,使一个场景模型支持细粒度预算截断,在 MipNeRF 360 上获得 28.20 dB 全集 PSNR 和 64.81 的质量与帧率曲线面积,但训练时间约为骨干的两倍。

研究背景与动机

3D 高斯泼溅用大量显式高斯实现新视角合成,移动设备、混合现实头显与服务器却无法承担同样的渲染预算。细节层级(level of detail,LoD)因此不只是离线压缩问题:同一场景运行时可能需要不断调整参与渲染的高斯数量。普通 3DGS 的高斯共同解释训练图像,没有天然的重要性次序,直接删掉一部分会破坏遮挡与颜色累积,导致孔洞和伪影。

H3DGS、Octree-GS 等离散 LoD 方法提供有限档位,需要额外的层级结构;按不同压缩目标分别得到的模型也未必拥有相互包含的高斯集合。连续 LoD 更符合预算随设备、视角变化的需求,但已有方法可能以全集画质下降为代价。这里真正困难的并不是“能否少画一些高斯”,而是让少画时仍能解释主要结构,多画时又不会丢掉原有重建质量。

本文把 Matryoshka 表示学习的“前缀可独立使用”推广到场景基元,而不是嵌入维度。核心 idea:用已有的不透明度建立高斯顺序,每次同时监督一个随机预算前缀和完整集合,让早期高斯承担基础重建、后续高斯补充细节,而不另建重要性网络或多套 LoD 模型。

方法详解

整体框架

输入是带相机位姿的训练图像,输出是一组可按前缀截断的有序高斯。每个高斯仍具有位置、协方差、不透明度和视角相关颜色参数,渲染器及高斯参数化不变;MGS 改的是集合组织方式与训练目标。

实现建立在 gsplat 与 3DGS-MCMC 上,由后者控制高斯容量。训练时先确定不透明度降序下的高斯顺序,再抽取一个保留比例,用同一训练视角分别渲染对应前缀与全集;联合更新后重新排序。部署时只调整前缀长度,不需要为每个预算重新训练。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
  Input["位姿图像与固定容量高斯"] --> Order["不透明度嵌套排序"]
  Order --> Train["随机预算联合训练"]
  Train -->|更新后重新排序| Order
  Order -->|训练完成后截取前缀| Render["标准光栅化与新视角图像"]

关键设计

1. 不透明度嵌套排序:让集合前缀先保留主要场景贡献

高斯没有像网络通道那样预先给定的有序轴。MGS 直接使用每个高斯的不透明度作为重要性分数,并按降序建立排列。对任意预算,选择的都是该排列中最靠前的一段,因此较小集合必然被较大集合包含,而不是每次独立选择一组基元。

原文式 (3)–(5) 的关系可写为:

\[ s(g_i)=\sigma_i,\qquad s(g_{\pi(1)})\ge\cdots\ge s(g_{\pi(N)}),\qquad \mathcal G_{\le k}=\{g_{\pi(1)},\ldots,g_{\pi(k)}\}. \]

这里的顺序决定“选哪些高斯”,并不取代标准光栅化内部按深度进行的前向透明度合成。被选中的高斯仍按相机视角参与常规渲染;这一区分解释了为什么无需改渲染架构,也避免把重要性次序误解成像素合成次序。

使用不透明度还有训练上的便利:它本来就通过透明度合成接收逐像素梯度,无需引入新的可学习重要性标量及其代理梯度。位置、体积或球谐能量并不直接等价于跨预算的重建贡献,后面的消融显示,仅仅让全集画得好并不能保证前缀可靠。

排序不是训练前的一次性预处理。每次参数更新都会改变不透明度,算法随后重新计算降序排列,使下一次采样仍选择当前最重要的基元。这是随重建训练不断变化的离散排序过程,论文没有把排序描述为可微网络层。

这种机制也不是“固定原模型再剪枝”:联合训练本身会重塑不透明度分布。原文图 6 观察到低不透明度尾部受到抑制、高不透明度峰增加 1.9 个百分点;作者据此解释为什么截去后缀时,通常先丢掉模型已弱化的贡献。该观察支持机制解释,但不构成每个前缀质量严格单调的数学证明。

2. 随机预算联合训练:用两个渲染覆盖大量预算

若每一步都渲染全部可能的前缀,训练成本会随高斯总数增长。MGS 在每一步抽取一个连续保留比例,再向上取整为整数高斯数量。原文式 (6) 的采样关系按正文恢复如下:

\[ r\sim\operatorname{Unif}(r_{\min},1),\qquad k=\lceil rN\rceil. \]

这使预算区间能够在训练过程中被随机覆盖,而不是只训练预设的几个 LoD 档位。这里“连续”指可细粒度调整比例,实际参与渲染的数量依旧是整数;也不能把有限次训练说成已经逐一访问了所有可能的前缀。

只训练随机前缀会让模型过分照顾低预算重建,全集质量反而受损。因此同一步还要渲染完整集合,使用同一张真实图像监督两者。全集分支不是另一个模型或教师,而是同一组高斯在完整预算下的输出;两项损失一起更新共享参数。

全集损失为高容量性能提供持续约束,前缀损失迫使靠前的基元独立解释主要可见结构。这两种要求同时存在,才使排序从一个事后删点规则变成训练所得的嵌套表示。每步渲染次数固定为 2,与候选预算的数量无关,但排序和额外渲染并非没有计算成本。

一个完整示例

以主实验的 5M 高斯容量说明操作,不把示例当成额外实验结果。若某次采样得到 10% 的保留比例,就取当前不透明度排名最前的 500,000 个高斯,用训练相机渲染前缀图像,同时渲染全部 5,000,000 个高斯。

两张图都与同一真实图像比较,参数更新后重新排序,所以某个高斯下次可能进入或离开前缀。训练完成后,同一模型在 5%、10%、100% 预算分别使用 250,000、500,000、5,000,000 个高斯,无需切换一套单独训练的参数。

这个例子只是数量映射,不保证帧率按比例提高。视角、投影覆盖面积和光栅化开销也会影响吞吐量;论文因此同时报告基元数量与实际 FPS 两种效率轴。

损失函数 / 训练策略

单次重建损失沿用 3DGS 的 L1 与 D-SSIM 加权组合。令其为 \(\ell\),原文式 (7) 按相邻文字可恢复为以下联合目标;缓存中的部分公式排版损坏,因此这里规范化记号而不逐字转录:

\[ \mathcal L_{\mathrm{MGS}}=\ell(\mathcal G_{\le k};I,c)+\gamma\ell(\mathcal G_{\le N};I,c),\qquad \gamma=1. \]

默认前缀与全集等权,主实验固定容量为 \(N=5\mathrm M\),训练 50,000 步,硬件为同规格 Ubuntu 服务器上的 NVIDIA A100。MCMC 的作用是保持可控容量,从而让预算比较更明确,不是额外的语义模块。

主文定义了 \(r_{\min}\),但当前缓存的实现段没有给出其默认数值;也未明确列出 L1/D-SSIM 混合系数的具体取值。不能用测试时最小的 1% 比例反推训练默认值。精确复现仍须核对补充材料或实现。

消融采用 bicycle 单场景、1M 高斯、50,000 步,因此其中的 PSNR 与主实验全基准均值不能直接拼接比较。图 8 的权重扫描发现 6:4 的前缀/全集比例具有最佳 AUC,但作者为简洁和平衡使用 5:5;默认设置不是声称 AUC 最优的设置。

实验关键数据

主实验

四个基准均按每第 8 张图像划分测试集,即索引 0、8、16 等用于测试。连续 LoD 方法评估 100%、90%、80%、70%、60%、50%、40%、30%、20%、10%、5%、1% 共 12 个比例;离散方法使用各自推荐的工作点。

下表摘录原文表 1。PSNR/SSIM/LPIPS 是各方法最高预算下的结果,AUC 则来自跨预算曲线,二者不是同一类测量。

基准 方法 PSNR↑ SSIM↑ LPIPS↓ AUCfps↑ AUCsplats↑
MipNeRF 360 3DGS-MCMC 28.40 0.843 0.133 — —
MipNeRF 360 Octree-GS 27.62 0.813 0.221 21.61 68.43
MipNeRF 360 CLoD-3DGS 27.44 0.814 0.215 46.38 56.56
MipNeRF 360 MGS 28.20 0.841 0.130 64.81 77.79
Tanks & Temples MGS 24.56 0.874 0.086 70.16 77.54
Deep Blending Octree-GS 30.35 0.910 0.252 29.54 83.21
Deep Blending MGS 28.41 0.902 0.176 82.63 83.22
BungeeNeRF Octree-GS 28.23 0.922 0.088 19.69 73.70
BungeeNeRF MGS 27.13 0.906 0.088 62.99 79.93

为定义 AUC,论文先将 PSNR、SSIM、LPIPS 分别按固定范围 (14, 32)、(0.35, 0.92)、(0.06, 0.60) 线性归一化并裁剪至 [0, 1],得到三个带波浪号的指标,再按式 (9) 计算:

\[ \bar Q=\frac{\tilde p+\tilde s+(1-\tilde\ell)}{3}. \]

AUCfps 对质量与 FPS 的单调包络积分,工作点向更低帧率方向延展,积分区间为 [0, 500] FPS。AUCsplats 的包络向更多高斯方向延展,原点连接最低预算工作点,积分区间为 [0, 5M]。两者均归一化并乘以 100,所以 64.81 是 AUC 分数,不是帧率或 PSNR。

消融实验

下表摘录原文表 3,全部是 bicycle、1M 高斯的设置。排序消融与预算目标消融各有自己的默认行,原文的 25.47/68.62 与 25.43/66.87 应分别保留,不能合成一个“统一默认结果”。

消融组 配置 全预算 PSNR↑ LPIPS↓ AUCfps↑ AUCsplats↑
排序 不透明度降序 25.47 0.174 68.62 61.05
排序 不透明度升序 24.91 0.219 30.53 33.48
排序 球谐能量降序 25.17 0.187 59.39 47.12
排序 固定追加 25.51 0.175 46.41 43.09
预算目标 前缀 + 全集 25.43 0.175 66.87 60.96
预算目标 仅前缀 24.97 0.253 56.58 57.09
预算目标 固定 MRL 嵌套 25.37 0.183 66.57 60.35

关键发现

  • 全集画质相近并不代表低预算可用:固定追加的 PSNR 为 25.51,高于不透明度降序的 25.47,但 AUCfps 只有 46.41,明显低于 68.62。图 7 对应分析中,10% 预算的不透明度降序达到 22.2 dB、493 FPS,球谐能量降序仅 17.6 dB。
  • 去掉全集监督后,全集 PSNR 从 25.43 降至 24.97,LPIPS 从 0.175 升至 0.253;这直接支持保留全集分支,而不是只靠随机删点训练。
  • 原文表 2 中,MipNeRF 360 的训练时间由 2592 s 增至 5325 s,即 2.05 倍;其余基准报告 2.12、2.37、2.06 倍。两个渲染是训练成本,不是推理时必须渲染两次。
  • “不牺牲全集质量”应理解为接近骨干而非逐项不下降:MGS 在 MipNeRF 360 与 Tanks & Temples 均低于 MCMC 0.20 dB;BungeeNeRF 的最低 LPIPS 0.088 与 Octree-GS 并列。

亮点与洞察

  • 有序表示的关键是训练,而不是排序函数本身。MGS 让模型适应前缀缺失后再使用不透明度裁剪,这比把任意预训练高斯排序后截断更有机制依据。
  • 联合保留一个全集锚点,把连续预算覆盖压缩为每步两个渲染。该思路可启发其他显式基元表示,但前提是找到能与任务梯度协同的重要性标量。
  • 同时看完整画质和跨预算包络,能揭示“某一档很好、其余档位很差”的方法。表 3 中固定追加与不透明度降序的对比正说明单点 PSNR 不足以评价 LoD。

局限与展望

  • 作者明确指出当前排序与视角无关,视角/空间自适应仍是扩展方向。全局靠前的高斯并不保证对当前相机最有价值,实时预算调度和设备感知渲染也尚未形成完整方案。
  • 全集画质并非总胜出。原文图 5 的 DrJohnson 失败案例中,CLoD-3DGS 在 100% 预算达到 29.1 dB,MGS 为 27.7 dB,尽管 MGS 在低预算下退化更平缓。
  • 主要消融集中在 bicycle,不能据此认定排序与权重结论对所有场景都同样稳定。主实验采用 A100,也没有直接验证手机、头显上的延迟、功耗或跨帧稳定性。
  • 本笔记的评价边界:不同方法使用不同骨干和各自最高预算,AUC 又依赖固定归一化范围与积分上限,因此结果不等于完全相同容量下的架构优劣证明。
  • 本文没有证明质量对每个整数前缀严格单调,也没有证明极小预算必然保留可用场景。后续可增加更多场景的多随机种子实验、设备实测及连续切换的时间一致性评估。

相关工作与启发

  • vs 3DGS-MCMC:骨干提供固定容量训练,MGS 在其上加入前缀与全集联合目标;对照可隔离“获得 LoD 的代价”,比跨骨干最高 PSNR 排名更直接。
  • vs Octree-GS / H3DGS:前者通过八叉树锚点或层级阈值提供离散档位,MGS 使用单一有序集合的前缀。优势是预算粒度细,但并未在所有场景的最高 PSNR 上取胜。
  • vs CLoD-GS / CLoD-3DGS:原文分别将它们描述为距离相关的不透明度衰减与学习重要性排序方法。MGS 的重点是已有不透明度参数、动态重排与全集约束的组合,而不是首次允许改变高斯数量。
  • vs Matryoshka Representation Learning:共享思想是嵌套容量;MGS 的区别在于高斯起初没有固定次序,且相互遮挡参与渲染。随机预算目标相比固定前缀尺寸,提供更细粒度的训练覆盖。

评分

  • 新颖性: 4/5。将嵌套表示落到可重排序的高斯基元,目标简单但针对性强。
  • 实验充分度: 4/5。覆盖四基准、六种 LoD 对比及排序/目标/权重消融,设备和多场景稳定性验证仍有限。
  • 写作质量: 4/5。机制和失败案例清楚,但主文缺少部分复现超参,绝对化画质措辞需结合表格阅读。
  • 价值: 4/5。对单模型多预算的新视角渲染有实用意义,需接受额外训练成本。