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 相当。
研究背景与动机¶
- 领域现状:3DGS 实现了高质量新视角合成,但计算和存储需求大,难以在手机/AR眼镜等移动设备上实时运行
- 现有痛点:Alpha blending 需要对高斯按深度排序,这是主要计算瓶颈(占推理时间很大比例);3DGS 使用三阶 SH 存储大量参数;轻量化方法(Scaffold-GS、Mini-Splatting 等)仍依赖排序,无法突破速度瓶颈
- 核心矛盾:排序是正确混合的前提但也是速度瓶颈——去掉排序可以大幅加速,但会引入透明度伪影
- 本文要解决什么:(1) 消除排序瓶颈实现无序渲染,(2) 补偿无序渲染的质量损失,(3) 压缩存储以适配移动端
- 切入角度:深度感知的权重函数可以隐式模拟近-远排序效果;视角依赖 MLP 可以补偿透明度伪影
- 核心idea一句话:用深度感知权重替代排序 + 神经网络补偿 + 多维压缩实现移动端实时3DGS
方法详解¶
整体框架¶
从预训练教师模型(Mini-Splatting)蒸馏出一阶SH的学生模型,训练过程中同时学习深度感知无序渲染和视角依赖增强MLP,训练后进行向量量化和贡献度剪枝压缩。推理时完全消除排序步骤,用 Vulkan 2.0 部署到移动端。
关键设计¶
- 深度感知无序渲染(Depth-aware Order-independent Rendering):
- 做什么:消除 alpha blending 的排序依赖,用加权求和替代
- 核心思路:像素颜色 \(\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)\) 区分前景/背景
-
设计动机:排序是 \(O(N \log N)\),占推理时间主导。无序加权中逆深度项自然降低远处贡献,大尺度项增加大高斯权重
-
神经视角依赖增强(Neural View-dependent Enhancement):
- 做什么:用 MLP 预测视角依赖的不透明度和权重,补偿无序渲染的透明度伪影
- 核心思路:\(\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 系数
-
设计动机:无序混合在空间重叠区域会透明化——视角依赖的不透明度可以动态抑制被遮挡区域的透明效果
-
一阶SH蒸馏 + 神经向量量化 + 贡献度剪枝:
- SH蒸馏:从三阶(48系数)蒸馏为一阶(12系数),用颜色蒸馏损失+尺度不变深度蒸馏损失监督,大幅减少参数
- 神经向量量化:K-Means 分组 + 多码本子向量量化 + Huffman 编码。SH 特征进一步分解为漫反射/视角依赖分量,用轻量 MLP 解码
- 贡献度剪枝:联合考虑不透明度和尺度分位数筛选低贡献高斯,累积投票达阈值后永久剪枝
训练策略¶
以 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,高实用价值