3D高斯泼溅(3D Gaussian Splatting,简称3DGS)作为近年来新兴的视角合成技术,正以其高效的渲染能力和出色的图像质量,在计算机视觉与图形学领域掀起变革浪潮。该技术通过将3D场景表示为大量各向异性的3D高斯体,能够从一组带有位姿的输入图像中,迭代训练出能够捕捉场景外观与几何细节的表示模型。

用户可利用训练完成的场景表示,实时渲染出任意新视角的高质量图像。相较于传统的神经辐射场(NeRF)等方法,3DGS在保持相当甚至更优视觉保真度的同时,实现了数量级的渲染速度提升,这使其在3D建模、数字孪生、影视特效(VFX)、虚拟/增强现实(VR/AR)以及机器人同步定位与地图构建(SLAM)等对实时性要求苛刻的应用场景中,展现出巨大的实用化潜力。
然而,3DGS技术的规模化应用面临着一个核心瓶颈:显存限制。渲染图像的质量直接取决于场景表示的保真度,而保真度又与用于表征场景的高斯体数量正相关。这意味着,要捕捉大范围区域或包含复杂精细结构的场景,就必须使用海量的高斯体。因此,3DGS的内存(尤其是GPU显存)占用量会随着场景规模、复杂度以及目标输出图像分辨率的提升而急剧增长。当前顶尖的3DGS实现均依赖于GPU进行加速计算,但即便是高端的消费级显卡,其显存容量(通常为24GB或更少)对于处理包含数千万乃至上亿高斯体的大型场景而言,也显得捉襟见肘。显存容量已成为阻碍3DGS技术扩展至工业级大场景应用的关键障碍。
针对这一挑战,谢赛宁研究团队近期提出的CLM(CPU-GPU Load Management)系统提供了一种巧妙的解决方案。该系统允许3DGS仅使用单块消费级GPU(例如NVIDIA RTX 4090)即可完成对大型复杂场景的高质量渲染训练,有效移除了GPU内存壁垒。

CLM系统的设计基于一个深刻的洞察:3DGS的计算本质上是高度稀疏的。在每一次训练迭代中,并非所有的高斯体参数都需要参与计算。具体而言,在渲染某个特定视角(对应一张训练图像)时,只有位于该相机视锥体(frustum)内的高斯体才有可能对最终像素颜色产生贡献。

事实上,标准的3DGS渲染流水线在处理一个视角前,会先通过视锥剔除(frustum culling)步骤,显式地计算出该视角实际需要处理的高斯集合。

实验数据有力地支撑了这一稀疏性:在大规模场景中,单个视角所访问的高斯体数量通常不到场景高斯体总数的1%。研究团队通过定义稀疏度ρ_i = |V_i| / N 来量化这一特性,其中V_i是视角i访问的高斯集合,N是高斯体总数。



结果显示,场景越大,稀疏度ρ_i通常越小。在团队评估的最大数据集中,每个视角平均仅访问了0.39%的高斯体,单个视角访问量的上限也仅为1.06%。
CLM系统正是充分利用了这种与生俱来的稀疏性。其核心思想是:既然每次迭代只需一小部分高斯体,那么就没有必要将所有数十亿字节的高斯参数常驻在有限的GPU显存中。相反,可以将绝大部分高斯参数存储在容量大得多的CPU主内存中,仅在GPU需要时,才动态地将特定迭代所需的那“一小撮”高斯体子集加载到显存里。然而,简单的按需加载会引入频繁的CPU-GPU数据传输,产生巨大的通信开销,反而可能拖慢整体训练速度。为此,CLM基于对3DGS内存访问模式的深入分析,设计了一套新颖的卸载与缓存策略,该策略建立在四个关键观察之上:
1. **访问集可提前计算**:每个训练视角所需的高斯集合可以通过视锥剔除提前(在迭代开始前)计算出来。这使得为下一次迭代加载所需高斯数据的操作,可以与当前迭代的GPU计算过程重叠进行,从而隐藏部分数据加载的延迟。
2. **访问模式存在大量重叠**:不同视角(尤其是空间位置相近的视角)所访问的高斯集合之间存在显著的重叠。CLM利用这一点,在GPU端设立缓存,将频繁被访问的高斯体保留在显存中,避免相同数据的重复传输。
3. **训练过程具有空间局部性**:在训练序列中,空间上相邻的视角倾向于访问相似的高斯体集合。CLM通过精心调度训练迭代(微批次,microbatch)的顺序,最大化连续迭代间访问模式的重叠,从而提升缓存命中率,最小化总体通信量。


4. **计算与更新可重叠**:进一步利用空间局部性,可以将梯度计算与大部分高斯参数更新操作进行重叠,优化计算流水线。
在系统实现层面,CLM面临一个技术矛盾:为了确定某个视角的稀疏访问模式(即哪些高斯体在视锥内),传统方法需要将所有高斯体的位置等信息加载到GPU进行视锥剔除计算,但这本身就需要大量显存。CLM巧妙地通过仅使用高斯体的部分摘要信息(如包围盒)在CPU端进行近似剔除或高效调度,来预估访问模式,从而避免了这一“先有鸡还是先有蛋”的问题,为后续高效的细粒度数据加载奠定了基础。

CLM的整体训练流程可概括为:首先,系统选取一批训练图像(对应多个视角),并为每个视角i提前计算出其视锥内的高斯集合V_i。接着,将一个批次(batch)划分为更小的微批次(microbatch)。对于每个微批次,系统根据调度策略,仅将当前微批次所有视角所需的高斯体集合(通过缓存和预取机制优化后)从CPU内存传输至GPU显存。GPU完成该微批次的前向渲染、损失计算和反向传播后,相关的梯度信息被传回CPU,由CPU负责大部分高斯参数的更新。如此循环,直至完成训练。
评估结果表明,CLM系统取得了显著成效。它成功在单块RTX 4090 GPU上,渲染并训练了一个包含高达1.02亿个高斯体的超大规模场景,且达到了与需要多块高端GPU或大量显存的基线系统相媲美的重建质量。更重要的是,即使在处理能够完全装入GPU显存的小型场景时,CLM因其针对3DGS特性深度优化的卸载方案,所产生的额外性能开销也非常有限,展现了其设计的通用性与高效性。CLM的实现目前基于CUDA,但其架构设计与具体的渲染后端解耦,理论上也可迁移至Vulkan等其他GPU计算平台。这项工作为3DGS技术在资源受限环境下的落地应用打开了新的局面,使得利用消费级硬件处理影视级或城市级三维重建任务成为可能。
— 图片补充 —


关注“鲸栖”小程序,掌握最新AI资讯
本文由鲸栖原创发布,未经许可,请勿转载。转载请注明出处:http://www.itsolotime.com/archives/7622
