CityGaussian: Real-Time High-Quality Large-Scale Scene Rendering with Gaussians¶
会议: ECCV2024
arXiv: 2404.01133
代码: dekuliutesla/citygs
领域: 3d_vision
关键词: 3D Gaussian Splatting, Large-Scale Scene Reconstruction, Level-of-Detail, Divide-and-Conquer, Novel View Synthesis
一句话总结¶
提出 CityGaussian (CityGS),通过分治训练策略和 block-wise Level-of-Detail 机制,首次实现了城市级大规模场景(>1.5 km²)的高质量 3D Gaussian Splatting 训练与跨尺度实时渲染。
背景与动机¶
3D Gaussian Splatting (3DGS) 凭借显式高斯原语和高效光栅化,在小场景新视角合成中取得了实时高质量效果。但将其直接应用于大规模场景(如城市级区域)面临两个核心瓶颈:
- 训练显存溢出:覆盖 1.5 km² 的城市区域需要超过 2000 万个高斯原语,即便在 40GB A100 上也会 OOM。单张 24GB RTX3090 在高斯数超过 1100 万时即崩溃。
- 渲染速度退化:高斯数量从百万级增至千万级后,深度排序成为瓶颈。MatrixCity 场景(2300 万高斯)仅有 21 FPS,无法满足实时需求。
已有的 NeRF 类大规模方法(Block-NeRF、Mega-NeRF、Switch-NeRF)虽然采用分治策略,但基于隐式表征,细节保真度不足且渲染速度慢。VastGaussian 虽将 3DGS 扩展至大场景,但仍未解决实时渲染问题。
核心问题¶
如何在有限显存下高效训练城市级大规模 3DGS,并在跨尺度(从近景到高空鸟瞰)切换时始终保持实时渲染?
方法详解¶
1. 全局高斯先验生成¶
首先用所有训练图像对 COLMAP 点云进行 30,000 次迭代的标准 3DGS 训练,得到粗糙的全局高斯先验 \(\mathbf{G}_K\)。该先验提供:
- 全局几何分布感知,避免后续分块训练出现几何不准确的 floater
- 更干净的渲染图像,便于后续数据划分
2. 分治训练策略¶
空间收缩与分块:大规模场景通常无界,直接均匀网格划分会导致许多空块、负载不均。方法:
- 定义前景区域 \([\mathbf{p}_{min}, \mathbf{p}_{max}]\),对高斯位置归一化到 \([-1, 1]\)
- 对超出前景的背景区域使用非线性 contraction 映射(L∞ 范数),将无界空间压缩到 \([-2, 2]\) 立方体
- 在收缩空间中均匀网格划分,实现更均衡的高斯分配
自适应数据划分:不是简单按距离选训练视角,而是基于 SSIM 损失判断视角对该 block 的贡献:
- 原则一(公式 3):渲染包含/不包含该 block 高斯的图像,若 SSIM 差异 > 阈值 ε,则该视角对 block 有显著贡献,保留
- 原则二(公式 4):若相机位置落入 block 范围内,直接保留(防止 block 边缘处的 artifact)
- 两条原则取并集作为最终数据分配
并行微调与融合:
- 每个 block 以全局先验为初始化,独立训练 30,000 次迭代
- 使用 L1 + SSIM 组合损失
- 训练完成后按空间边界裁剪高斯,直接拼接即可无缝融合(全局先验消除了块间干扰)
3. Block-wise Level-of-Detail (LoD)¶
多级细节生成:使用 LightGaussian 压缩策略对融合后的高斯生成 3 个细节等级:
- LoD 2(50% 压缩):最精细
- LoD 1(34% 压缩):中等
- LoD 0(25% 压缩):最粗糙
Block-wise 可见性判断与等级选择:
- 以训练时划分的 block 为单位,计算 block 八个角点与视锥体的交集(IoU),判定 block 是否可见
- 使用 MAD(中位绝对偏差)算法去除 floater 对 block 包围盒的干扰,得到更紧致的边界
- 根据 block 八角点到相机中心的最小距离决定细节等级:0-200m 用 LoD 2,200-400m 用 LoD 1,>400m 用 LoD 0
- 同一 block 内所有高斯共享相同 LoD,避免逐点距离计算
融合渲染:不同 LoD 的高斯直接拼接送入光栅化器,几乎无可见的不连续性。
实验关键数据¶
渲染质量(无 LoD 版 vs SOTA)¶
| 方法 | MatrixCity PSNR↑ | MatrixCity SSIM↑ | Rubble PSNR↑ | Building PSNR↑ |
|---|---|---|---|---|
| Mega-NeRF | - | - | 24.06 | 20.93 |
| Switch-NeRF | - | - | 24.31 | 21.54 |
| 3DGS† | 23.67 | 0.735 | 25.47 | 20.46 |
| CityGS | 27.46 | 0.865 | 25.77 | 21.55 |
- 在 MatrixCity(2.7 km²合成城市)上 PSNR 提升 +3.79 dB,SSIM 提升 +0.13
- 首次成功重建完整 MatrixCity(相机海拔 150m-500m),此前方法均无法稳定训练
LoD 效果¶
| 模式 | SSIM | PSNR | FPS |
|---|---|---|---|
| 无 LoD | 0.865 | 27.46 | 21.6 |
| 仅 LoD 2 | 0.863 | 27.54 | 45.6 |
| 仅 LoD 0 | 0.825 | 26.57 | 69.4 |
| LoD(混合) | 0.855 | 27.32 | 53.7 |
- LoD 策略将 FPS 从 21.6 提升至 53.7(2.5× 加速),PSNR 仅降 0.14 dB
- 在极端高空视角下,唯有混合 LoD 能在全部高度保持最低 FPS > 25 的实时性
训练策略消融¶
| 配置 | PSNR | SSIM | 高斯数量 |
|---|---|---|---|
| baseline(邻近相机选择) | 23.98 | 0.779 | 12.2M |
| + 全局先验 | 25.01 | 0.801 | 15.4M |
| CityGS(完整策略) | 25.77 | 0.813 | 9.7M |
- 全局先验显著提升质量(+1.03 dB)
- 自适应数据划分(公式 3+4)在少用 37% 高斯的情况下进一步提升 +0.76 dB
LoD 策略消融¶
- Block-wise 选择 vs 逐点选择:FPS 53.7 vs 30.3,质量相当但速度快 77%
- 距离区间影响:[0,200],[200,400],[400,∞] 取得质量与速度的最佳平衡
亮点¶
- 全局先验 + 分治微调:先粗后精的两阶段策略优雅解决了块间干扰和 floater 问题,确保无缝融合
- 基于 SSIM 的自适应数据划分:相比简单空间距离选择,能精确筛选出对 block 有实质贡献的训练视角,减少无关数据干扰的同时降低高斯消耗
- Block-wise LoD:以 block 而非逐点为单位选择细节等级,避免了逐点距离计算的开销,实现了跨尺度一致的实时渲染
- MAD 去 floater:用中位绝对偏差估计 block 包围盒,有效排除 floater 对视锥体裁剪的干扰
局限性 / 可改进方向¶
- 静态场景假设:无法处理动态物体(行人、车辆),限制了实际城市场景的适用性
- 混合视角训练退化:论文承认同时使用航拍和街景视角训练反而降低性能,该问题尚未解决
- 压缩策略依赖外部方法:LoD 细节生成直接借用 LightGaussian,未针对大规模场景特点设计专用压缩
- Block 边界处理:虽然全局先验缓解了块间不连续,但在极端情况下仍可能存在接缝
- 训练开销:需要先训全局先验再逐块微调,总训练时间较长
与相关工作的对比¶
| 方法 | 表征 | 分治 | LoD | 实时 | 大规模质量 |
|---|---|---|---|---|---|
| Mega-NeRF | 隐式 MLP | ✓ | ✗ | ✗ | 一般 |
| Switch-NeRF | 隐式 MLP | ✓(可学习) | ✗ | ✗ | 一般 |
| BungeeNeRF | 隐式 MLP | ✗ | ✓(渐进式) | ✗ | 一般 |
| VastGaussian | 3DGS | ✓ | ✗ | ✗ | 较好 |
| CityGS | 3DGS | ✓ | ✓ | ✓ | SOTA |
- 相比 VastGaussian:CityGS 额外引入 LoD 实现实时渲染,且通过全局先验避免了外观变化处理的需求
- 相比 NeRF 类方法:渲染质量大幅领先(PSNR +1.5~3.8 dB),且具备实时能力
启发与关联¶
- 分治 + 全局先验是处理大规模显式表征的通用范式,可推广至大规模 mesh 重建、点云补全等任务
- Block-wise LoD 的思想可与 hierarchical Gaussian(如 octree-GS)结合,实现更细粒度的多尺度表示
- 动态场景扩展是明确的后续方向——可结合 4D Gaussian / deformable Gaussian 处理时变内容
- 自适应数据划分策略(基于 SSIM 贡献度)对其他需要数据高效利用的 3DGS 变体也有参考价值
评分¶
- 新颖性: ⭐⭐⭐⭐ (分治训练 + block-wise LoD 的组合方案系统性强,各模块设计合理)
- 实验充分度: ⭐⭐⭐⭐⭐ (5 个不同规模场景、完整消融、多角度 FPS 分析、street view 泛化验证)
- 写作质量: ⭐⭐⭐⭐ (结构清晰,图表丰富,动机阐述充分)
- 价值: ⭐⭐⭐⭐ (首次实现城市级 3DGS 实时渲染,工程与学术价值兼具)