2024-04-18 万丈高楼平地起!中科院最新CityGaussian:搞定实时、高质量、大场景的渲染!

3DGS极大地推动了实时三维场景重建和新视图合成的发展。然而,有效地训练大规模3DGS并在各种尺度上实时渲染它仍然具有挑战性。本文介绍了CityGaussian(CityGS),它采用了一种新的分而治之的训练方法和细节层次(LoD)策略来进行高效的大规模3DGS训练和渲染。具体来说,全局场景先验和自适应训练数据选择可以实现高效的训练和无缝融合。基于融合的高斯基元,我们通过压缩生成不同的细节级别,并通过所提出的逐块细节级别选择和聚合策略实现跨不同尺度的快速渲染。在大规模场景上的大量实验结果表明,我们的方法达到了最先进的渲染质量,能够在截然不同的尺度上对大规模场景进行一致的实时渲染。

项目主页:https://dekuliutesla.github.io/citygs/

总结来说,本文的主要贡献如下:

  • 我们提出了一种有效的分治策略,以并行方式重建大规模的3DGS;
  • 利用所提出的LoD策略,我们以最小的质量损失实现了在截然不同的尺度下的实时大规模场景渲染;
  • 我们的方法称为CityGS,在公共基准测试中与当前最先进的方法相比表现良好。

详解CityGaussian

训练和渲染的概览分别如图2和图3所示。

前置知识

首先简单介绍一下3DGS。3DGS用离散的3D高斯表示场景,每个场景都配备了可学习的属性,包括3D位置、不透明度、几何结构(即用于构建高斯协方差的缩放和旋转)、视图相关颜色的球谐(SH)特征。在渲染中,给定内参和位姿,高斯被飞溅到屏幕空间,按深度顺序排序,并通过alpha混合进行渲染:

在训练过程中,典型的初始化选择是使用SfM生成的点云,如COLMAP。然后,基于从可微分渲染中导出的梯度,将对高斯进行克隆、加密、修剪和持续优化。然而,大规模场景的渲染可能会消耗2000多万个GS球,这很容易导致训练过程中的内存不足错误,并且渲染时间也会减慢。

Training CityGS

本节首先说明了全局高斯粗先验的必要性以及如何生成它。在此基础上,我们描述了高斯和数据基元的划分策略。在本节的最后,我们将介绍训练和后期处理的细节。管道如图2所示。

  • Global Gaussian Prior Generation:直观的大规模场景训练策略包括将分治策略应用于COLMAP点。然而,由于缺乏深度约束和全局意识,这种方法往往会导致块体边缘的高斯自由漂移等问题,从而使不同零件的可靠融合变得困难。此外,来自COLMAP点的渲染图像往往是模糊和不准确的,使得难以评估投影图像中每个块的重要性。为此,我们提出了一种简单而有效的方法来解决这些问题。
  • Primitives and Data Division:考虑到大多数场景中存在的不规则分布,直接块划分往往导致高斯基元分配不均匀。例如,在图2的最左边部分,左下网格分配了几个高斯,而中央网格被密集占用。结果,在相同的训练计划下,稀疏块往往会过拟合,而密集块可能缺乏足够的训练。为了解决这个问题,我们首先将高斯压缩到一个有界三次区域。

在微调阶段,我们希望每个block都经过充分的训练。具体来说,分配的数据应使训练进度集中在块内的细化细节上。因此,只有当所考虑的块将大量可见内容投影到相应的屏幕空间时,才需要保留一个位姿。注意力不集中的情况,如严重闭塞或内容贡献较小,应予以闭塞。由于SSIM损失可以有效地捕捉结构差异,并且在一定程度上对亮度变化不敏感,我们将其作为我们的数据分割策略的基础。

训练和后处理在数据和基元划分之后,我们继续并行训练每个块。具体而言,我们利用第前文中生成的粗略全局先验来初始化每个块的微调。训练损失遵循原始3DGS论文中概述的方法,包括L1损失和SSIM损失的加权和。然后,对于每个块,我们过滤掉包含在其空间边界内的微调高斯。得益于全局几何先验,块之间的干扰显著减轻,通过直接级联产生高保真度结果。其他定性验证可在附录中找到。LoD部分保留了进一步的细化。

Level-of-Detail on CityGS

为了消除不必要的高斯给光栅化器带来的计算负担,我们的CityGS涉及多个细节级别的生成和逐块可见高斯选择。我们将在下面的两个小节中分别介绍这两个部分。

细节级别生成:当对象远离相机时,它们在屏幕上占据的面积较小,同时提供的高频信息较少。因此,较远的低细节级别区域可以由低容量的模型很好地表示,即更少的点、更低的特征维度和数据精度。在实践中,我们使用先进的压缩策略LightGaussian生成不同的细节级别,该策略直接在经过训练的高斯上操作,以最小的性能退化实现了显著的压缩率。因此,对所需高斯的内存和计算需求显著减轻,同时渲染保真度仍然得到很好的保持。

细节级别选择和融合:细节级别选择的基线是用来自相应细节级别的高斯填充不同距离间隔之间的截头体区域。然而,这种方法需要每点距离的计算和分配,导致了显著的计算开销。

之后,相机前面的所有角落都将投影到屏幕空间中。这些投影点的最小值和最大值构成一个边界框。通过用屏幕面积计算其并集上的交集(IoU),我们可以检查块是否与截头体有交集。与相机所在的块一起,所有具有相应细节级别的可见块都将用于渲染。

在融合步骤中,仍然通过直接级联来理解不同的细节级别,这会产生可忽略不计的不连续性。

实验结果

结论

本文提出了CityGS,它成功地实现了高保真度的实时大规模场景重建。通过为高斯几何量身定制的分块和LoD策略,我们在主流基准上获得了最先进的渲染保真度,同时在渲染同一场景的不同比例时显著降低了时间成本。然而,隐藏的静态场景假设限制了其泛化能力。将截然不同的视图(如鸟瞰图和街景)结合在一起进行训练也会降低CityGS的性能,而不是提高其性能。其内在机制值得进一步探索和解决。

参考

[1] CityGaussian: Real-time High-quality Large-Scale Scene Rendering with Gaussians

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注


往期评论