论文:《Recent Advances in 3D Gaussian Splatting》
作者:Tong Wu, Yu-Jie Yuan, Ling-Xiao Zhang, Jie Yang 等
链接:https://arxiv.org/abs/2403.11134
文章目录
前言
提示:这里可以添加本文要记录的大概内容:
三维Gaussian Splatting(3DGS)的出现,大大加快了新视图合成的渲染速度。与神经辐射场(NeRF)等神经隐式表示表示具有位置和视点条件神经网络的三维场景不同,3DGS利用一组高斯椭球来建模场景,从而通过将高斯椭球栅格化成图像来实现有效的渲染。除了快速的渲染速度外,3DGS的显式表示促进了下游任务,如动态重建、几何编辑和物理模拟。本文对近年来的3DGS 方法进行了文献综述,大致可分为三维重建、三维编辑等下游应用。
一、三维重建
1.1 质量增强
尽管3DGS能够产生高质量的重建结果,但其渲染仍有改进空间。例如, Mip-Splatting 观察到改变采样率,例如焦距,可能会引入高频高斯形状样式的伪影或强烈的膨胀效果,从而极大地影响渲染图像的质量。为了消除高频高斯形状样式的伪影,Mip-Splatting将3D表示的频率限制在训练图像确定的最大采样频率的一半以下。此外,为了避免膨胀效果,它还引入了另一个二维Mip滤波器,将投影的高斯椭球体近似为类似于EWA-Splatting的箱式滤波器。
MS3DGS也旨在解决原始3DGS中的混叠问题,并引入了多尺度高斯splats表示,在以新的分辨率级别渲染场景时,它从不同尺度级别选择高斯以产生无混叠的图像。
除了混叠问题,还需要改进渲染视角相关效果的能力。为了产生更加真实的视角相关效果,VDGS 使用类似于NeRF的神经网络来表示3D形状,并预测视角相关颜色和不透明度等属性,而不是原始3DGS中的球谐函数(SH)系数。Scaffold-GS提出了初始化体素网格,并将可学习特征附加到每个体素点上,高斯的所有属性都由插值特征和轻量级神经网络确定。
StopThePop指出,3DGS倾向于通过弹出;3DGS来欺骗视角相关效果,由于每个射线的深度排序,这导致当视点旋转时结果不够真实。。为了减轻弹出3DGS的潜在问题,StopThePop将每个射线的深度排序替换为基于tile的排序,以确保在局部区域内一致的排序顺序。为了更好地指导3DGS渲染,GaussianPro引入了一种渐进传播策略,通过考虑相邻视图之间的法线一致性并添加平面约束来更新高斯函数。为了处理更复杂的光照效果,如镜面反射和各向异性成分,Spec-Gaussian提出利用各向异性球形高斯来近似3D场景的外观。
不同重建方法的定量结果:
1.2 压缩与正则化
尽管3DGS实现了实时渲染,但在降低计算要求和改善点分布方面仍有改进空间。一些方法专注于改变原始表示以减少计算资源。其中,矢量量化是信号处理中的传统压缩方法,涉及将多维数据聚类到有限的表示集中,主要用于高斯函数中。
具体来说,C3DGS采用残差矢量量化(R-VQ)来表示几何属性,包括缩放和旋转。而SASCGS则利用矢量聚类将颜色和几何属性编码到两个码本中,采用了感知敏感的K均值方法EAGLES则将所有属性量化,包括颜色、位置、不透明度、旋转和缩放。相反,Compact3D则不量化不透明度和位置,因为共享它们会导致高斯重叠。在数据存储方面,LightGaussian采用基于八叉树的无损压缩来处理位置属性。而SOGS则采用了一种与矢量量化不同的方法,将高斯属性排列成多个2D网格,对这些网格进行排序,并应用平滑度正则化来惩罚在2D网格上与其局部邻域值非常不同的所有像素。对于磁盘数据存储,SASCGS利用DEFLATE熵编码方法来压缩数据,而SOGS则将RGB网格压缩为JPEG XL格式,并将所有其他属性存储为带有zip压缩的32位OpenEXR图像。
图2中展示量化重建结果和压缩后3D场景的大小:
1.3 动态三维重建
与NeRF表示相同,3DGS也可以扩展到重建动态场景。动态3DGS斑点渲染的核心在于如何模拟高斯属性值随时间变化的变化。最直接的方法是在不同的时间步长中为3DGS分配不同的属性值。Luiten等人将3DGS的中心和旋转(四元数)视为随时间变化的变量,而其他属性在所有时间步长上保持不变,从而通过重建动态场景实现6自由度跟踪。然而,逐帧离散定义缺乏连续性,可能导致长期跟踪结果不佳。因此,引入了基于物理的约束,包括短期局部刚性和局部旋转相似性损失以及长期局部等距损失。然而,该方法仍然缺乏帧间相关性,并且对于长期序列需要高存储开销。
因此,将空间和时间信息分解 并分别用规范空间和变形场建模已成为另一种探索方向。规范空间是静态的3DGS斑点渲染,然后问题就变成了如何建模变形场。一种方法是使用MLP网络来隐式拟合它,类似于动态NeRF。杨等人 提出动态GS,提出将位置编码高斯位置和时间步长 t t t 输入MLP,输出高斯的位置、旋转和缩放的偏移量。然而,不准确的姿态可能会影响渲染质量。这在连续建模NeRF中不是很明显,但是离散的3DGS斑点渲染可能会放大这个问题,尤其是在时间插值任务中。因此,他们在编码的时间向量中添加了一个线性衰减的高斯噪声,以提高时间平滑度,而无需额外的计算开销。
GauFRe 对缩放和旋转进行了指数化和归一化操作,然后添加了MLP预测的增量值,以确保便捷和合理的优化。由于动态场景包含大量的静态部分,它将点云随机初始化为动态点云和静态点云,然后分别进行优化,并将它们一起渲染,以实现动态部分和静态部分的解耦。
与NeRF不同,3DGS渲染是显式表示,而隐式变形建模需要大量的参数,可能会产生过拟合。以下是一些显式变形建模方法,以确保快速训练。
Katsumata等人建议使用傅立叶级数来拟合高斯位置的变化,灵感来自于人类和关节对象的运动有时是周期性的事实。旋转由线性函数近似。其他属性随时间保持不变。因此,动态优化是优化傅立叶级数和线性函数的参数,参数数量与时间无关。这些参数化函数是关于时间的连续函数,确保了时间上的连续性,从而确保了新视图合成的鲁棒性。除了图像损失外,还引入了双向光流损失。多项式拟合和傅里叶近似在建模平滑运动和激烈运动方面具有优势。因此,Gaussian-Flow在时间和频率域中将这两种方法结合起来,以捕获属性的时间相关残差,称为双域变形模型(DDDM)。位置、旋转和颜色被认为随时间改变。为了防止由均匀时间分割引起的优化问题,该工作采用自适应时间步长缩放。最后,优化在静态优化和动态优化之间迭代,并引入了时间平滑损失和KNN刚性损失。