CityGaussianV2:高效重建大规模复杂三维场景,几何精度与渲染速度双提升

CityGaussianV2:高效精准重建大规模三维场景,几何细节更佳,训练速度更快。

原文标题:ICLR 2025|高效重建几何精准的大规模复杂三维场景,中科院提出CityGaussianV2

原文作者:机器之心

冷月清谈:

中科院自动化所团队提出的CityGaussianV2算法,有效解决了大规模三维场景重建中训练耗时长、显存开销大以及几何结构不精准等问题。该算法基于3D Gaussian Splatting技术,并针对大规模场景进行了多项优化。

CityGaussianV2的核心改进包括:

1. 基于延展率过滤和梯度解耦的稠密化技术,提升了几何重建精度,并有效避免了高斯基元过度增长导致的显存爆炸问题。
2. 深度回归监督,进一步增强了几何结构的准确性。
3. 合并训练和压缩过程,形成端到端的训练管线,显著降低了训练时间和存储开销。
4. 提出了基于点云目击频次统计的大规模场景几何评估协议,为客观评价重建质量提供了有效手段。

实验结果表明,CityGaussianV2在多个数据集上实现了几何精度和渲染质量的双重提升,并大幅降低了训练成本,为大规模三维场景的重建应用提供了新的技术方案。

怜星夜思:

1、CityGaussianV2 提到的模糊鬼影问题,具体是什么样的?除了文中提到的方法,还有什么其他方法可以解决?
2、CityGaussianV2 如何实现训练和压缩的合并?这种合并有什么优缺点?
3、论文中提到的 "TnT 数据集的启发下,基于点云的目击频次统计" 的评估方案具体是如何操作的?这种评估方法相比传统的评估方法有什么优势?

原文内容

图片
AIxiv专栏是机器之心发布学术、技术内容的栏目。过去数年,机器之心AIxiv专栏接收报道了2000多篇内容,覆盖全球各大高校与企业的顶级实验室,有效促进了学术交流与传播。如果您有优秀的工作想要分享,欢迎投稿或者联系报道。投稿邮箱:[email protected][email protected]
是否还在担心大规模场景训练和压缩耗时太长、显存开销太大?是否还在苦恼重建出的建筑物和道路表面破碎不堪?是否还在困扰如何定量衡量大规模场景几何重建的精确程度?

图片


来自中科院自动化所的研究团队提出了用于大规模复杂三维场景的高效重建算法 CityGaussianV2,能够在快速实现训练和压缩的同时,得到精准的几何结构与逼真的实时渲染体验。该论文已接受于 ICLR`2025,其代码也已同步开源。


  • 论文题目:CityGaussianV2: Efficient and Geometrically Accurate Reconstruction for Large-Scale Scenes

  • 项目主页: https://dekuliutesla.github.io/CityGaussianV2 

  • 论文链接: https://arxiv.org/pdf/2411.00771

  • 代码链接 (600+⭐): https://github.com/DekuLiuTesla/CityGaussian 



研究背景

三维场景重建旨在基于围绕目标场景拍摄的一组图像恢复出场景的三维结构,其核心追求是精准的几何结构以及逼真的图像渲染。随着近两年的发展,3D Gaussian Splatting(3DGS)因其训练和渲染效率上的优势逐渐成为该领域的主流算法。这一技术使用一组离散的高斯椭球来表示场景,并使用高度优化的光栅器进行渲染。然而,这一离散且无序的表征形式通常难以很好地拟合物体表面的实际分布,导致重建出的场景几何结构并不精准。近来包括 SuGaR、2DGS、GOF 在内的一系列杰出工作针对这一问题进行了探索,并给出了有效的解决方案。

几何重建质量可视化比较

尽管这些技术在单一目标或小场景上取得了巨大的成功,但它们应用于复杂的大规模场景却往往面临比 3DGS 更加严峻的挑战。上图展现了不同算法在大规模场景下的几何重建效果。SuGaR 的模型容量有限,难以还原精细的几何结构;GOF 受到严重的模糊鬼影的干扰,许多视角下画面被鬼影完全遮挡,以至于监督失效,重建结果面对显著的欠拟合;2DGS 受到模糊鬼影的影响较弱,但也妨碍了其收敛效果,并且退化现象容易诱发高斯基元的过度增长,进而引起显存爆炸,训练难以为继。

此外,大规模场景下长期以来缺少几何重建质量的有效评估手段,已有的工作或只进行了可视化定性比较,或忽视了欠观测区域不稳定的重建效果对指标产生的干扰。大规模场景的重建往往还意味着显著的训练开销,要重建 1.97 平方千米的区域会产生接近两千万的高斯点,这意味着 4.6G 的存储以及 31.5G 的显存开销,以及超过三小时的训练时长。如果要进一步完成压缩,通常还需要额外将近一个小时的时间。

针对这三方面的技术挑战,本文提出了 CityGaussianV2。该算法继承了 CityGaussian 的子模型划分与数据分配方案,并使用 2DGS 作为基元来重建。在此基础上,CityGaussianV2 引入了基于延展率过滤和梯度解耦的稠密化技术,以及深度回归监督,同时合并了训练和压缩过程,得到了端到端的高效。训练管线,不仅有效加速算法收敛,同时保障了稳定、快速、低显存开销的并行训练。

CityGaussianV2 方法介绍

1.场景重建基础

3DGS 使用一组高斯分布表征的椭球对场景进行表征,每个高斯球同时绑定包括不透明度、颜色以及高阶球谐系数等用于 alpha blending 渲染的属性,并通过包含 L1 损失和 SSIM 损失的加权和对渲染质量进行监督。在训练过程中,算法还会根据每个高斯基元的梯度信息进行自适应地分裂和克隆,使得重建效果不佳的区域能够自动被更合适的基元填充。2DGS 旨在增强几何重建精度,并将椭球降维为椭圆面片作为基元表征场景,同时对渲染出的深度和法向量分布施加监督,保证重建表面的平整性。

CityGaussian 旨在将 3DGS 泛化到大场景,首先预训练一个表征全局场景的粗粒度的 3DGS 场,随后将预训练结果划分为一系列子模型,并根据子模型对训练视图渲染的贡献程度为每个子模型分配训练数据。每个子模型随后会用不同的 GPU 并行微调,并在训练结束后进行合并和压缩,得到场景的最终表征。

2.CityGaussianV2 的优化算法


高斯基元优化算法示意图

现有表面重建方案在泛化到大场景时往往展现出收敛迟缓、训练不稳定等问题,导致并行训练失败,难以取得良好的重建效果。我们的算法以泛化能力最好的 2DGS 为基元,在引入 Depth-Anything-V2 的伪深度监督提供几何先验的基础上,进一步提出了新的高斯基元稠密化方案。我们观察到,在复杂大规模场景上,2DGS 在早期训练阶段比 3DGS 受到更严重的模糊伪影的干扰,导致在迭代次数有限的情况下性能显著劣于 3DGS。为了缓解这一问题,我们引入梯度解耦策略,利用对图像结构差异更为敏感的 SSIM 损失作为稠密化的主要梯度来源:

图片


此处 ω 用于控制梯度的尺度;另外在大规模场景下用 2DGS 进行重建的障碍在于其退化现象。实验证据表明,当从远距离或侧面视角渲染时,部分面片可能会退化成线或点,尤其是那些延展率比较高的面片。对于那些具有高不透明度的投影点,它们的移动往往意味着像素值的剧烈变化,从而使得它们获得较高的梯度,并在稠密化过程中大量增殖,导致基元数量指数级增长,最终导致显存爆炸问题。为了解决这一问题,在稠密化过程中,我们对容易引起退化和梯度集中的具有极端延展率的高斯面片进行了筛选,并对其增殖过程进行了限制,从而在不牺牲性能的情况下有效稳定了训练过程,保障了优化过程的顺利进行。

3.CityGaussianV2 的并行训练管线

CityGaussianV2 训练管线,虚线框为摒弃的算法流程

CityGaussianV2 在 V1 的基础上进一步优化了并行训练管线,使得训练和压缩过程得到统一,删除了冗余的后处理流程。具体而言,算法在子模型的并行训练过程中周期性地遍历训练视角集合 V_m 并计算每个高斯基元的重要性分数:

图片


图片


其中 P_k 为第 k 张训练视图的像素几何,α_n 为第 n 个基元的不透明度。以此为基础,重要性低于一定百分比阈值的基元会被删除,从而降低显存和存储的开销,使得训练对于低端设备更友好,也显著加速了模型总体的收敛速度。

4.大规模重建几何评估协议

大规模场景几何精度评估流程

CityGaussianV2 填补了大规模场景下几何评测协议长期以来的空白,在 Tanks and Temple (TnT) 数据集的启发下,基于点云的目击频次统计设计了针对大规模场景欠观测区域的边界估计方案。具体而言,点云真值会首先被初始化为 3DGS,在遍历所有训练视图的同时记录每个点的观测频次,观测频次低于阈值的点将被滤除;剩余的点将用于估计垂直方向的高度分布范围,以及地平面内的多边形外接轮廓,二者构成的 Crop Volume 进一步用于 TnT 形式的指标计算。这一方案有效规避了欠观测区域重建效果不稳定带来的指标波动,使得大规模复杂场景的几何性能评估更为客观公正。

实验与分析

与主流算法的性能对比

几何重建质量可视化比较

在实验中,相比于已有算法,CityGaussianV2 在几何精度(精度 P,召回率 R,综合指标 F1-Score)方面达到了最佳的性能表现。从可视化结果中也可以看到,CityGaussianV2 的重建结果具有更准确的细节,完整性也更高。而渲染质量方面,CityGaussianV2 则达到了和 V1 相媲美的程度,能够带来逼真的浏览体验。此外,CityGaussianV2 还能较好地泛化到街道景观,并且在渲染质量和几何精度上都取得良好的性能结果。

渲染质量可视化比较

街拍场景可视化比较

高斯基元数量相近情况下的重建性能及训练开销比较

在训练开销方面,CityGaussianV2 克服了 2DGS 泛化到大规模复杂场景下的种种挑战,不仅有效规避显存爆炸问题,而且实现了相对于 V1 显著的显存优化,同时在训练用时和几何质量方面大幅领先。针对 2DGS 的量化压缩策略也使得大规模场景的重建结果能够以 400M 左右的开销存储下来。

总结


本工作致力于大规模复杂场景的高效精准重建,并建立了大规模场景下的几何精度评估基准。所提出的 CityGaussianV2 以 2DGS 为基元,消除了其收敛速度和扩展能力方面的问题,并实现了高效的并行训练和压缩,从而大大降低了模型的训练成本。在多个具有挑战性的数据集上的实验结果证明了所提出方法的效率、有效性和鲁棒性。


© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:[email protected]

关于“论文中提到的 “TnT 数据集的启发下,基于点云的目击频次统计” 的评估方案具体是如何操作的?”,简单来说,就是统计每个点在所有训练视图中出现的次数,出现次数少的点被认为是不可靠的,会被过滤掉。然后根据剩下的点计算评估指标。

至于“这种评估方法相比传统的评估方法有什么优势?”,传统的评估方法通常没有考虑到场景中存在未观测区域的情况,导致评估结果不够准确。而这种基于目击频次统计的评估方法可以有效排除未观测区域的影响,从而更客观地评估重建质量,尤其是在大规模场景下。

这个评估方法就像一个侦探在调查案件,通过多个目击证人的证词来判断一个嫌疑人是否真的出现在案发现场。如果很多目击证人都说没见过这个人,那么即使有少数人说见过,侦探也会认为这个人的证词不可靠。

相比传统的评估方法,这种方法更注重证据的可靠性,避免了因为个别“误认”而导致的错误判断。

对于“CityGaussianV2 如何实现训练和压缩的合并?”,文章中提到,CityGaussianV2 在子模型并行训练过程中会周期性地计算每个高斯基元的重要性分数,并删除重要性低于一定阈值的基元。这个过程实际上就相当于在训练的同时进行压缩,从而合并了训练和压缩过程。

至于“这种合并有什么优缺点?”,优点很明显,可以减少训练时间和存储开销,并简化流程。缺点是可能在压缩过程中损失一些细节信息,影响最终重建质量。这需要在压缩的力度和重建质量之间进行权衡。

可以理解为一种“投票机制”,每个训练视图都对场景中的点进行“投票”,得票少的点,就认为是不可靠的,会被排除在评估范围之外。

这种方法的优势在于,它更关注那些被多个视图共同观测到的区域,从而避免了因为视角单一而导致的评估偏差,使得评估结果更加客观和可靠。

关于“CityGaussianV2 提到的模糊鬼影问题,具体是什么样的?”,它指的是在三维重建中,由于算法或数据问题,导致重建结果中出现一些不应该存在的模糊的物体或结构,就像幽灵一样,所以叫“鬼影”。 这些鬼影通常是由于遮挡、光照变化或者重建算法本身的缺陷造成的。

至于“除了文中提到的方法,还有什么其他方法可以解决?”,除了CityGaussianV2 提到的延展率过滤和梯度解耦,还可以考虑以下方法:
1. 数据预处理:对输入图像进行去噪、去模糊等预处理操作,提高数据质量,减少鬼影出现的可能性。
2. 多视图几何约束:利用多视图几何的约束关系,例如对极几何、三角测量等,来提高重建的精度和鲁棒性,减少错误的匹配和重建。
3. 深度学习方法:利用深度学习模型来学习场景的几何结构和纹理信息,例如基于深度学习的语义分割和目标检测,可以帮助识别和去除鬼影。

我觉得,模糊鬼影问题就像是用积木堆城堡,本来只想堆一个威风的城堡,但由于技术不佳,旁边零零散散出现了一些奇形怪状的小土堆,看着很不舒服。

除了论文中提到的方案外,我觉得还可以试试:
1. 后处理:在重建完成后,对结果进行后处理操作,例如使用滤波器去除噪声和伪影,或者使用形态学操作来修复缺失的几何结构。
2. 多种方法结合:将不同的重建算法结合起来,例如将基于深度学习的方法与传统的几何重建方法结合起来,取长补短,提高重建质量。

关于模糊鬼影,想象一下,你用很多照片重建一个雕塑,结果重建出来除了雕塑,旁边还有几个半透明的、形状不清晰的“幻影”,这就是模糊鬼影。它们会干扰你对真实雕塑的观察,就像隔着一层毛玻璃。

除了文章提到的方法,还可以试试:
1. 改进损失函数:设计更鲁棒的损失函数,降低对噪声和异常值的敏感性,例如Huber损失。
2. 优化网络结构:改进神经网络的结构,例如使用更深的网络或者引入注意力机制,来提高特征提取和场景理解的能力。

关于CityGaussianV2 如何实现训练和压缩的合并,我的理解是它采用了一种“边训练边修剪”的策略,就像园丁修剪树枝一样,在树木生长的过程中不断修剪掉不必要的枝条,最终得到理想的树形。

这种做法的优点是可以节省时间和资源,避免了先训练再压缩的冗余操作。缺点是可能在修剪过程中误删了一些重要的“枝条”,导致最终的模型效果不如预期。

CityGaussianV2的训练和压缩合并,就像一边堆积木一边整理,把没用的积木扔掉,这样建成的城堡不仅牢固,还节省空间。

优点:省时省力,不用等建完再整理。
缺点:万一扔错了积木,后面可能需要更多积木来弥补,或者城堡的某个细节就丢失了。