PAPER DEEP DIVE
ImprovedVBGS:实时持续变分贝叶斯高斯泼溅
面向机器人自主导航的实时重建需求,改进变分贝叶斯高斯泼溅方法,支持持续在线重建。
ImprovedVBGS:实时连续变分贝叶斯高斯泼溅
作者:Damani Mguni-Coker(独立研究者) | arXiv:2607.15542v1 | 代码:github.com/damanimc/ImprovedVBGS
一句话总结
ImprovedVBGS 通过空间截断变分推断和改进的重分配(转发+截断+消除动态重编译),将VBGS的每帧延迟从84.0秒降至0.050秒(RTX 3070 Ti上1680倍加速),同时保持重建质量,实现了消费级硬件上的实时连续3D重建。
研究背景与动机
在线重建是机器人和自主导航的关键需求。3D高斯泼溅(3DGS)已成为快速高质量新视图合成的标准方法,将场景表示为3D高斯集合,每个由均值位置 $\mu \in \mathbb{R}^3$、协方差矩阵 $\Sigma$、不透明度 $\alpha$ 和球谐系数参数化。
在连续学习设定中,数据按顺序到达,梯度方法会导致灾难性遗忘——新图像覆盖已学参数。常见缓解策略(回放缓冲区)随观测视图数增加内存和计算开销,不适合资源受限场景。
图1:VBGS生成模型。每个点的位置 $s$ 和颜色 $c$ 由潜在组件分配 $z \sim \mathrm{Cat}(\pi)$ 生成。
VBGS将问题表述为概率混合模型上的变分推断,使用共轭先验(位置和颜色的Normal-Inverse-Wishart、混合权重的Dirichlet),推导出闭式变分更新规则。这些更新是顺序不变的,通过将充分统计量加到后验参数中来累积新观测,使VBGS天然免疫灾难性遗忘,无需回放缓冲区。
然而VBGS的每次更新需要评估所有 $n$ 个观测点对所有组件的责任($O(nK)$),代价随场景大小线性增长。后续工作[11]通过核融合和混合精度搜索将训练时间从234分钟降至61分钟,但仍处理所有观测点,每帧延迟远高于实时要求。ImprovedVBGS解决这一核心瓶颈。
方法详解
1. 融合充分统计量与混合精度搜索
复现[11]的核融合(消除大型中间张量)和自动混合精度搜索(在数值稳定性约束下分配操作级精度)。但一旦应用空间截断E步,混合精度不再带来性能提升。
2. 空间截断变分E步
变分推断通过最大化ELBO估计后验分布。ELBO由三部分组成:
$$\text{ELBO}=\sum_{n=1}^{N}\big(\mathbb{E}_{q}[\log p(s_{n}|z_{n},\mu_{s},\Sigma_{s})]+\mathbb{E}_{q}[\log p(c_{n}|z_{n},\mu_{c},\Sigma_{c})]+\mathbb{E}_{q}[\log p(z_{n}|\pi)]\big)$$变分E步计算每个数据点 $x_n$ 的组件分配期望。对数责任由空间似然、颜色似然和混合权重组成:
$$\log\gamma_{n,k}\propto\underbrace{\mathbb{E}_{q(\mu_{k,s},\Sigma_{k,s})}[\log p(s_{n}|\mu_{k,s},\Sigma_{k,s})]}_{\text{空间似然}}+\underbrace{\mathbb{E}_{q(\mu_{k,c},\Sigma_{k,c})}[\log p(c_{n}|\mu_{k,c},\Sigma_{k,c})]}_{\text{颜色似然}}+\underbrace{\mathbb{E}_{q(\pi)}[\log\pi_{k}]}_{\text{混合权重}}$$关键洞察:空间似然集中在附近的均值上。每帧构建KD树 $T$(基于空间均值 $\{\mu_{s,k}\}$),对每个点查询 $C$ 个最近邻组件索引,仅在该子集上评估对数分数:
$$R_{n}=\mathrm{softmax}(\log\hat{\gamma}_{n}), \quad \mathrm{ELBO}_{n}=\mathrm{logsumexp}(\log\hat{\gamma}_{n})$$这从 $O(nK)$ 降至 $O(nC)$,其中 $C \ll K$(如 $C=4$)。
截断E步的复杂度降低可形式化表达。原始E步需对所有 $K$ 个组件评估:
$$T_{\text{dense}} = O(n \cdot K)$$截断后仅评估 $C$ 个最近邻:
$$T_{\text{trunc}} = O(n \cdot C + n \cdot \log K)$$其中 $n \log K$ 为KD树查询开销。当 $K = 10^5$、$C = 4$ 时,加速比约为 $K / (C + \log K) \approx 10^4 / (4 + 17) \approx 476$ 倍。
3. 改进的重分配
连续学习中需要重分配:将未使用的组件重新定位到建模不良的区域。每个组件 $k$ 有Dirichlet权重参数 $\alpha_k$,未被分配点的组件衰减至先验下限。每步取 $\alpha_k$ 最低的5%组件移到ELBO最低的区域。
重分配的目标函数可表示为选择使全局ELBO增量最大的重分配方案。每点ELBO为责任的对数归一化因子:
$$\text{ELBO}_{n}=\log{\sum_{k=1}^{K}\exp(\log\hat{\gamma}_{n,k})}$$截断重分配:ELBO值已在E步计算,直接复用截断E步的低ELBO候选,无需密集ELBO重扫。重分配转发:将ELBO值直接从fit步转发(重排步骤顺序),以小幅PSNR下降换取更低延迟。静态张量填充:$n_{\mathrm{reassign}}$ 每帧变化导致JAX重编译,通过填充到固定编译时形状 $n_{\max}=\lfloor f \cdot N \rfloor$ 消除开销。
flowchart TD
A["输入: 带深度的RGB-D帧"] --> B["构建KD树于空间均值"]
B --> C["截断E步: 每点查询C个最近邻组件"]
C --> D["计算截断责任 R_n 和 ELBO_n"]
D --> E["M步: 更新后验参数
(充分统计量累积)"]
E --> F["重分配: 截断ELBO + 转发
静态张量填充"]
F --> G["输出: 更新的3D高斯场景"]
C -.->|"ELBO复用"| F
实验结果
在RTX 3070 Ti(8GB VRAM)上评估,显著受限于此前的A5000(24GB)。在NeRF Synthetic数据集全部8个场景上测试,200训练帧+100验证帧,$N=10^5$组件,随机初始化。
| 场景 | 延迟(秒/帧) | PSNR(dB) |
|---|---|---|
| chair | 0.128 | 21.68±0.62 |
| drums | 0.132 | 18.48±0.44 |
| ficus | 0.117 | 21.06±0.69 |
| hotdog | 0.143 | 23.40±0.74 |
| lego | 0.136 | 21.54±0.69 |
| materials | 0.133 | 20.51±1.41 |
| mic | 0.117 | 23.43±0.55 |
| ship | 0.159 | 21.30±0.77 |
| 平均 | 0.133 | 21.42±0.74 |
图2:Lego场景延迟分析。基线VBGS的fit步被compute_elbo_delta(28.8秒/帧,47%)和sum_stats(24.3秒/帧,40%)主导;ImprovedVBGS中两者仅各占约5%。
消融实验(Lego场景)
| 配置 | 批量大小 | 延迟(秒/帧) | PSNR(dB) |
|---|---|---|---|
| 基线VBGS | 100 | 84.0 | 20.65±0.92 |
| +融合统计量 | 100 | 41.0 | 20.65±0.92 |
| +截断E步 | 100 | 3.39 | 20.64±0.92 |
| +大批量 | 250k | 0.050 | 20.64±0.92 |
| +重分配 | 250k | 18.1 | 21.48±0.72 |
| +截断重分配 | 250k | 0.373 | 21.56±0.69 |
| +静态张量填充 | 250k | 0.131 | 21.57±0.69 |
| +重分配转发 | 250k | 0.107 | 21.37±0.70 |
从84.0秒/帧降至0.050秒/帧(无重分配时)或0.107秒/帧(含重分配转发),加速比达1680倍(无重分配)/785倍(含重分配)。重分配将PSNR从20.64提升至21.48+,截断重分配进一步降至0.373秒/帧且PSNR略升。
图4:附加场景重建结果可视化。
延迟分析详解
基线VBGS的fit步被两个操作主导:compute_elbo_delta占28.8秒/帧(47%),sum_stats_over_samples占24.3秒/帧(40%),其余仅8.1秒/帧。在ImprovedVBGS中,这两者分别降至3.1毫秒/帧(4.8%)和3.7毫秒/帧(5.6%),其余操作占58.4毫秒/帧。
重分配步中基线的compute_elbo_delta占22.7秒/帧(88%)。ImprovedVBGS完全移除了该步骤的重计算,仅保留107毫秒/帧的其他操作。这证明截断E步不仅加速了fit步,还通过ELBO复用消除了重分配步的主要瓶颈。
批量大小与内存优化
基线VBGS在 $N=10^5$ 组件下仅能使用100的批量大小以避免OOM错误。经过融合统计量和截断E步优化后,批量大小提升至250,000,充分利用GPU并行性。这一提升对延迟降低至关重要——从截断E步的3.39秒/帧降至0.050秒/帧,67.8倍的提升主要来自大批量的并行化。
与VBGS生态的对比
VBGS [10]首次将变分推断引入高斯泼溅,实现了无回放的连续学习,但每帧84秒的延迟使其无法实时使用。Zaino等[11]通过核融合和混合精度将训练时间从234分钟降至61分钟,内存从9.44GB降至1.1GB,并在Jetson Orin Nano上实现边缘部署。ImprovedVBGS在此基础上进一步将每帧延迟从秒级降至毫秒级,使真正的on-the-fly重建成为可能。三者的关系是渐进式优化:VBGS确立理论基础→[11]实现边缘可行性→ImprovedVBGS实现实时性。
图3:NeRF Synthetic数据集重建结果可视化。
局限性
- 需要深度输入(不像传统3DGS仅用RGB),限制了适用场景。
- 使用超过2倍参数(29 vs 14),不建模球谐视角相关颜色。
- 在RTX 3070 Ti上实现,未在更低端的边缘设备上验证。
- 重分配转发以小幅PSNR下降(约0.2dB)换取延迟降低。
总结与展望
ImprovedVBGS通过空间截断变分E步(KD-tree最近邻剪枝)和改进重分配(截断ELBO复用+转发+静态张量填充),在保持无回放连续学习优势的同时,将VBGS训练从每帧84秒降至0.05秒,使消费级硬件上的实时连续3D重建成为可能。核心贡献是将变分E步的 $O(nK)$ 复杂度降至 $O(nC)$,并消除了JAX动态重编译开销。
金句:"空间似然集中在附近均值上"——这一简单洞察使截断E步在不损失重建质量的前提下实现了数量级的加速,将变分贝叶斯高斯泼溅从学术原型推向实时部署。
深度解读由 RobotWorld paper-detail-generator 基于全文精读生成 | arXiv:2607.15542v1



