跳转至

Mobile-GS: Real-time Gaussian Splatting for Mobile Devices

会议: CVPR 2025
arXiv: 2603.11531
代码: https://xiaobiaodu.github.io/mobile-gs-project/
领域: 3D视觉
关键词: 3D高斯溅射, 实时渲染, 移动端部署, 无排序渲染, 模型压缩

一句话总结

提出 Mobile-GS,通过深度感知的无序渲染(消除排序瓶颈)+ 神经视角依赖增强 + 一阶SH蒸馏 + 神经向量量化 + 贡献度剪枝,首次在 Snapdragon 8 Gen 3 手机 GPU 上实现 116 FPS 实时高斯溅射渲染,存储仅 4.6MB 且视觉质量与原始 3DGS 相当。

研究背景与动机

  1. 领域现状:3DGS 实现了高质量新视角合成,但计算和存储需求大,难以在手机/AR眼镜等移动设备上实时运行
  2. 现有痛点:Alpha blending 需要对高斯按深度排序,这是主要计算瓶颈(占推理时间很大比例);3DGS 使用三阶 SH 存储大量参数;轻量化方法(Scaffold-GS、Mini-Splatting 等)仍依赖排序,无法突破速度瓶颈
  3. 核心矛盾:排序是正确混合的前提但也是速度瓶颈——去掉排序可以大幅加速,但会引入透明度伪影
  4. 本文要解决什么:(1) 消除排序瓶颈实现无序渲染,(2) 补偿无序渲染的质量损失,(3) 压缩存储以适配移动端
  5. 切入角度:深度感知的权重函数可以隐式模拟近-远排序效果;视角依赖 MLP 可以补偿透明度伪影
  6. 核心idea一句话:用深度感知权重替代排序 + 神经网络补偿 + 多维压缩实现移动端实时3DGS

方法详解

整体框架

从预训练教师模型(Mini-Splatting)蒸馏出一阶SH的学生模型,训练过程中同时学习深度感知无序渲染和视角依赖增强MLP,训练后进行向量量化和贡献度剪枝压缩。推理时完全消除排序步骤,用 Vulkan 2.0 部署到移动端。

关键设计

  1. 深度感知无序渲染(Depth-aware Order-independent Rendering):
  2. 做什么:消除 alpha blending 的排序依赖,用加权求和替代
  3. 核心思路:像素颜色 \(\mathbf{C} = (1-T)\frac{\sum_i \mathbf{c}_i \alpha_i w_i}{\sum_i \alpha_i w_i} + T\mathbf{c}_{bg}\),其中 \(w_i = \phi_i^2 + \frac{\phi_i}{d_i^2} + \exp(\frac{s_{max}}{d_i})\)。分子分母都是求和,不依赖顺序。\(T = \prod(1-\alpha_j)\) 区分前景/背景
  4. 设计动机:排序是 \(O(N \log N)\),占推理时间主导。无序加权中逆深度项自然降低远处贡献,大尺度项增加大高斯权重

  5. 神经视角依赖增强(Neural View-dependent Enhancement):

  6. 做什么:用 MLP 预测视角依赖的不透明度和权重,补偿无序渲染的透明度伪影
  7. 核心思路:\(\mathbf{F} = \text{MLP}_f(\mathbf{P}_i, s_i, r_i, Y_i)\)\(\phi_i = \text{ReLU}(\text{MLP}_\phi(\mathbf{F}))\)\(o_i = \sigma(\text{MLP}_o(\mathbf{F}))\)。输入包括相机-高斯方向向量、尺度、旋转和 SH 系数
  8. 设计动机:无序混合在空间重叠区域会透明化——视角依赖的不透明度可以动态抑制被遮挡区域的透明效果

  9. 一阶SH蒸馏 + 神经向量量化 + 贡献度剪枝:

  10. SH蒸馏:从三阶(48系数)蒸馏为一阶(12系数),用颜色蒸馏损失+尺度不变深度蒸馏损失监督,大幅减少参数
  11. 神经向量量化:K-Means 分组 + 多码本子向量量化 + Huffman 编码。SH 特征进一步分解为漫反射/视角依赖分量,用轻量 MLP 解码
  12. 贡献度剪枝:联合考虑不透明度和尺度分位数筛选低贡献高斯,累积投票达阈值后永久剪枝

训练策略

以 Mini-Splatting 为教师,总训练 60K 轮,35K 时启动向量量化。损失 \(\mathcal{L} = \mathcal{L}_{rgb} + \mathcal{L}_{distill} + 0.1\mathcal{L}_{depth}\)

实验关键数据

主实验(Mip-NeRF 360 数据集,RTX 3090)

方法 PSNR↑ Storage↓ FPS↑
3DGS 27.21 839.9 MB 174
SortFreeGS 27.02 851.4 MB 731
LocoGS-S 27.02 8.5 MB 292
C3DGS 27.03 30.6 MB 184
Mobile-GS 27.12 4.6 MB 1125

移动端(Snapdragon 8 Gen 3):Mobile-GS 127 FPS vs SortFreeGS 24 FPS vs 3DGS 8 FPS。

消融实验

配置 PSNR↑ FPS↑ Storage↓
Full model 27.12 1125 4.6 MB
w/o 无序渲染 27.26 684 4.5 MB
w/o 视角依赖增强 26.68 1227 4.4 MB
w/o 神经量化 27.33 841 121 MB
0阶SH蒸馏 27.04 1219 3.6 MB
2阶SH蒸馏 27.13 917 7.3 MB

关键发现

  • 排序消除贡献最大速度提升(684→1125 FPS),但需要视角依赖增强补偿质量(去掉后降0.44dB)
  • 一阶SH是精度-效率最优平衡点:0阶损0.08dB但更快,2阶仅升0.01dB但慢20%
  • 神经向量量化将存储从121MB压缩到4.6MB(26倍),对PSNR影响仅0.21dB
  • Mobile-GS 在 Bicycle 场景(1600×1063 分辨率)手机端达 116 FPS,是首个真正的移动端实时 3DGS

亮点与洞察

  • 识别排序为计算瓶颈并彻底消除之——不是优化排序算法,而是用加权求和重新设计渲染公式。这种思路很有魄力
  • 蒸馏-量化-剪枝三管齐下的压缩策略:从 840MB 到 4.6MB(182倍压缩),几乎不损质量
  • Vulkan 2.0 部署为移动端 3DGS 提供了工程参考

局限性 / 可改进方向

  • 无序渲染在半透明物体(玻璃、烟雾)上可能效果更差——MLP 补偿有限
  • 训练时间(1.5h)比 3DGS(0.5h)长,因为额外的蒸馏和量化步骤
  • MLP 推理在移动端的开销未深入分析——可能在极低端设备上成为新瓶颈
  • 仅在 Snapdragon 8 Gen 3 验证,低端芯片(如骁龙 6 系列)上的实际表现未知
  • 视角依赖增强 MLP 的网络架构选择(层数、隐藏维度)缺乏系统搜索,可能存在更优配置
  • 量化过程中的码本大小(K=256)和子向量维度对压缩率-质量权衡的影响未充分探索
  • 深度感知权重函数 \(w_i\) 中的三项组合系数是经验设计,缺乏理论分析

相关工作与启发

  • vs SortFreeGS: 同为无排序渲染,但 SortFreeGS 同样存储大且无压缩。Mobile-GS 增加了全套压缩工具链
  • vs LocoGS: 极致压缩(8.5MB)但速度有限(292 FPS)。Mobile-GS 更小(4.6MB)且更快(1125 FPS)
  • vs LightGaussian: 仅做 SH 蒸馏(3→2阶),本文更激进(3→1阶)且增加量化
  • vs Compact3D/C3DGS: 用码本压缩但保留排序,存储仅 30.6MB 且速度无提升。Mobile-GS 同时解决速度和存储两个问题

评分

  • 新颖性: ⭐⭐⭐⭐ 排序消除+全套移动端优化的系统创新
  • 实验充分度: ⭐⭐⭐⭐⭐ 3个数据集+移动端实测+详细消融
  • 写作质量: ⭐⭐⭐⭐ 清晰,实验展示充分
  • 价值: ⭐⭐⭐⭐⭐ 首个真正移动端实时3DGS,高实用价值