[学习笔记] citygaussianV2

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

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

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

  • 代码链接 : https://github.com/DekuLiuTesla/CityGaussian 

一、引言

  • 问题背景
    3D高斯溅射(3DGS)在渲染速度和训练效率上表现出色,但在复杂的大规模场景中(如城市级重建)存在两大挑战:

    1. 几何不准确:离散的高斯分布难以精准贴合物体表面,导致细节丢失。

    2. 效率瓶颈:训练时间长、内存占用高,难以扩展到平方公里级场景。

  • 论文目标
    CityGaussianV2提出一种改进的2D高斯溅射框架,通过优化训练策略和引入新算法,实现高效、高精度的几何重建,同时大幅降低资源消耗。

二、预备知识

2.1 cityGaussian

分而治之策略
  • 粗略全局高斯先验:首先,使用所有观测数据训练一个粗略的全局高斯先验,以获得整体的几何分布。这一步通过 Structure-from-Motion (SfM) 生成初始点云,然后进行 30,000 次迭代训练,得到一个粗略的全局高斯模型。

  • 高斯划分:将全局高斯先验收缩到一个有界的立方体区域,然后均匀划分为多个块。每个块包含较少的高斯点,从而平衡不同块的工作负载。

  • 数据划分:对于每个块,只保留对该块渲染结果有显著贡献的训练数据。具体来说,如果一个块在渲染图像中贡献显著(通过 SSIM 损失衡量),则保留其对应的训练数据。此外,还保留位于块内的训练数据。

  • 并行训练:对每个块进行并行训练,使用粗略全局高斯先验作为初始化。每个块训练 30,000 次迭代,学习率适当降低,以确保训练的稳定性和高效性。

细节层次(LoD)策略
  • 细节层次生成:使用压缩技术(如 LightGaussian)对训练好的高斯点进行压缩,生成不同细节层次的模型。每个细节层次使用不同的压缩率,从而在保持渲染质量的同时显著减少内存和计算需求。

  • 细节层次选择与融合:在渲染时,根据相机与块的距离选择合适的细节层次。具体来说,将场景划分为多个距离区间,每个区间对应一个细节层次。相机距离较近的块使用高细节层次,距离较远的块使用低细节层次。通过这种方式,显著减少了渲染时的计算负担,同时保持了较高的渲染质量。

2.2 2DGS

2D 高斯喷溅是椭圆形盘,其特征是中心点 pk​、切向向量 tu 和 tv​,以及两个控制方差的缩放因子(su​ 和 sv​)。

三、核心技术解析

流程说明: 

  • Camera Pose:相机姿态 2D
  • Gaussian:2D高斯分布
  • Projection:投影(将三维世界中的信息转化为二维图像表示)
  • Differentiable Rasterizer:可微分光栅化(光栅化是将矢量图像转化为像素化图像的过程,可微分光栅化这可以该过程是可微分的,可以计算梯度,从而允许通过反向传播优化)
  • Adaptive Density Control:自适应密度控制 (对2D高斯分布进行调整,通过伸长滤波器来实现)
  • Loss Calculation:经过可微分光栅化和自适应密度控制后的结果被输入到损失计算模块中 损失计算的结果被用于计算梯度。梯度信息通过反向传播传递回整个网络,用于更新相机姿态、2D高斯分布和其他可训练参数。这一过程是优化的核心,通过不断调整参数来最小化损失函数。
  • Operation Flow(操作流) 表示数据和操作的前向传播过程
  • Gradient Flow(梯度流)表示梯度的反向传播过程,用于更新网络参数
3.1 分解梯度密集化(DGD):告别模糊,加速收敛
  • 问题根源
    传统2DGS在训练初期会生成大量模糊的高斯分布(图(b)所示),这些“虚胖”的高斯需要多次迭代才能细化,拖慢收敛速度。

  • 关键洞察
    SSIM损失对图像结构差异敏感,而L1损失仅关注像素级误差。若仅用L1损失指导高斯分裂,模型会倾向于保留模糊但颜色匹配的高斯。

  • 解决方案
    DGD策略仅使用SSIM损失的梯度驱动高斯分裂。公式如下:

    其中,ω是缩放因子(默认0.9),通过动态调整梯度幅值,快速淘汰模糊高斯。

  • 效果
    在7,000次迭代时,CityGaussianV2的PSNR已接近2DGS的30,000次结果(图(b)所示),训练效率提升3倍以上。

2. 伸长过滤器:终结高斯数量爆炸
  • 问题场景
    在并行训练中,某些高斯在远距离视角下退化为“沙粒状”(下图左)。这些高斯投影到屏幕时仅覆盖1-2像素,但其位置梯度极大,导致频繁分裂,最终引发内存溢出(OOM)。

  • 过滤器设计
    计算每个高斯的伸长率\eta =\frac{min(Su,Sv)}{max(Su,Sv)}(Su​,Sv​为2D高斯缩放参数),过滤掉η<0.1的“畸形”高斯。

  • 效果
    高斯数量从19.3M降至8.06M,内存占用减少50%,且不影响重建质量。 上表解读:

关键列说明:

  • Rendering Quality(渲染质量):包括SSIM、PSNR、LPIPS。

  • Geometric Quality(几何质量):包括精确率(P)、召回率(R)、F1分数。

  • GS Statistics(高斯统计):

    • #GS:Gaussian数量(单位:百万,即M)。

    • T:总训练时间(单位:分钟)。

    • Size:存储占用(单位:GB)。

    • Mem.:内存占用(单位:GB)。

    • FPS:渲染帧率(单位:帧/秒)。

效果说明:

  • 未修剪的并行训练(+ Parallel Tuning)

    • #GS: 19.3M

    • Size: 4.57GB

    • Mem.: 31.5GB

    • FPS: 21.3

    • 说明:仅应用并行训练(未修剪)时,高斯数量激增至19.3M,导致存储和内存需求较高,渲染速度较慢。

  • 加入动态剪枝(+ Trim (Ours-b))

    • #GS: 8.07M

    • Size: 1.90GB

    • Mem.: 19.0GB

    • FPS: 31.3

    • 说明:在并行训练基础上加入动态剪枝(Trim)策略后,高斯数量从19.3M锐减至8.07M,存储和内存需求分别降低58%和40%,渲染速度提升47%。

3. 并行训练优化:从“分块”到“实时剪枝”
  • 传统流程的瓶颈
    CityGaussian需分块训练后,额外进行剪枝(30,000次迭代)和蒸馏(10,000次迭代),耗时长且占用资源。

  • CityGaussianV2的改进

    • 初始压缩:直接使用低阶球谐函数(SH degree=2),将特征维度从48(SH3)降至27,减少存储和计算量。

    • 动态贡献剪枝:在分块训练中实时计算高斯的渲染贡献值,淘汰低贡献单元。

  • 结果
    总训练时间从4小时缩短至2小时,模型体积压缩10倍(从4.6GB降至0.44GB),且F1分数提升10%(表2)。

4. 几何评估协议:解决“边界效应”难题
  • 传统评测的缺陷
    现有方法(如GauU-Scene)在边界区域(如天空、远距离建筑)因观测不足,导致几何精度指标(F1)波动剧烈,无法反映真实性能。

  • CityGaussianV2的方案

    • 可见性筛选:将真值点云初始化为高斯,通过渲染器统计各点在训练视角中的可见频率,剔除低频点(图5)。

    • 体积裁剪:基于筛选后的点云生成Alpha Shape,定义评测范围,排除噪声干扰。

  • 意义
    F1分数的标准差从0.1降至0.003,评测结果更稳定可靠。.

  • Groundtruth Point Cloud(地面真值点云):表示场景的真实3D数据(参考标准)
  • Reshape as Gaussian(将点云重塑为高斯分布):具体说就是每个点被表示为一个3D高斯分布
  • Training View Visibility Check(训练视图可见性检查):目的是识别除哪些点是边界点或观测不足的点,具体是做法是使用高斯光栅化器(将3D场景中的高斯分布渲染成2D图像) 将高斯分布投影到每个训练试图的2D图像平面。检查每个高斯分布在该视角下是否可见,统计每个高斯分布在所有训练视图中的可见频率。
  • Estimated Crop Volume(估计裁剪体积):基于上一步的可见性检查,系统会排除那些可见频率低于预设阈值的点。剩下的点用于计算裁剪体积(定义评估的有效区域),裁剪体积通常通过计算地面的alpha形状以及最小和最大高度来确定
  • TnT Style Evaluation(TnT风格评估):在裁剪体积内,系统会进行几何精度的评估。具体来说,重建的3D模型(通常是从高斯分布中提取的网格)会被采样为点云,并于地面真实点云进行比较
  • Evenly Sampled Point Cloud(均匀采样的点云):为了确保评估的公平性,重建的网格会被均匀采样(从网格表面均匀地选取一些点),生成一个点云。
  • Extract Mesh(提取的网格) :重建的最终输出--从高斯分布中提取的3D网格

其中:

  • 可见性检查:判断一个3D点在不同视图(视角)下是否可见的过程。
  • 大场景中进行可见性检查,排除掉那些在大多数训练试图下都不常见的点,可以使得结果更加稳定。

三、为什么2DGS比3DGS更适合几何重建

  • 3DGS的局限性
    3D高斯是三维椭球,其深度分布存在歧义。例如,一个细长的椭球可能被不同视角误判为多个表面,导致重建网格不连续。

  • 2DGS的优势
    2D高斯坍缩为二维圆盘(Surfel),严格贴合物体表面。通过法向对齐损失和深度扭曲正则化,确保表面平滑连续(图6)。

  • 实验验证
    在MatrixCity数据集上,2DGS的F1分数(0.556)远超3DGS(0.462),且内存占用仅为后者的一半。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A林玖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值