3D Gaussian Splatting的进展

24年3月来自中科院计算所和UCSB的论文“Recent Advances in 3D Gaussian Splatting”。

3D 高斯splatting(3DGS)的出现大大加快了新视图合成的渲染速度。与使用位置和视点条件神经网络表示 3D 场景的神经隐式表示(如NeRF)不同,3D 高斯splatting利用一组高斯椭球函数来建模场景,从而将高斯椭球函数光栅化为图像来实现高效渲染。除了渲染速度快之外,3D 高斯splatting的显式表示还促进了动态重建、几何编辑和物理模拟等下游任务。该领域的快速变化和不断增长的工作,把最近的 3D 高斯splatting方法按功能粗略地分为 3D 重建、3D 编辑和其他下游应用。包括传统的基于点的渲染方法和 3D Gaussian Splatting 的渲染公式。

3D 高斯splatting (3DGS) [5] 建议对一组高斯椭球进行光栅化,以近似 3D 场景的外观,这不仅实现了可比的新视图合成质量,而且还允许在 1080p 分辨率下快速收敛(约 30 分钟)和实时渲染(⩾ 30 FPS),从而实现低成本的 3D 内容创建和实时应用。

有两篇文献综述 [6, 7] 总结了 3DGS 的最新成果,它们也是该领域的一个很好的参考工具。如图所示,根据功能将这些工作分为三个部分:3D Gaussian Splatting 如何在各种场景下实现逼真的场景重建, 3D Gaussian Splatting 的场景编辑技术,以及 3D Gaussian Splatting 如何实现数字人等下游应用。最后,在更高层次上总结了最近关于 3D Gaussian Splatting 的研究工作,并提出了该领域未来有待完成的工作。

[外链图片转存中…(img-CHuOYlV7-1722355492690)]

代表性作品的时间表可以在下图中找到:

[外链图片转存中…(img-pN3YpVvz-1722355492690)]

基于点渲染技术

基于点的渲染技术,旨在通过渲染一组离散的几何图元来生成逼真的图像。Grossman & Dally [8] 提出了基于纯点表示的基于点渲染技术,其中每个点仅影响屏幕上的一个像素。与渲染点不同,Zwicker [9] 提出渲染splats(椭球),以便每个splat可以占据多个像素,并且它们之间的相互重叠可以比纯基于点的表示更容易生成无孔图像。后来,一系列splat方法旨在通过引入用于抗锯齿渲染的纹理过滤器 [10]、提高渲染效率 [11, 12] 和解决不连续阴影 [13] 来增强它。

传统的基于点渲染方法更注重如何使用给定的几何产生高质量的渲染结果。随着最近隐式表示的发展[15–17],研究人员开始探索使用神经隐式表示进行基于点的渲染,而无需任何给定的几何来完成 3D 重建任务。一项代表性工作是 NeRF [1],它使用隐式密度场对几何形状进行建模,并使用另一个外观场预测与视图相关的颜色 ci。

为了确保高质量的渲染,NeRF [1] 通常需要在单射线上采样 128 个点,这不可避免地需要更长的训练和渲染时间。为了加快训练和渲染速度,3D Gaussian Splatting [5] 放弃了神经网络,直接优化高斯椭球,并附加位置 P、旋转 R、比例 S、不透明度 α 和表示视图相关颜色的球面谐波系数 (SH) 等属性。像素颜色由从给定视点投影到其上的高斯椭球决定。

3DGS 与 NeRF 具有相似的渲染过程,但它们之间有两个主要区别:
(1) 3DGS 直接对不透明度值进行建模,而 NeRF 将密度值转换为不透明度值。
(2) 3DGS 使用基于光栅化的渲染,不需要采样点,而 NeRF 需要在 3D 空间中进行密集采样。

无需采样点和查询神经网络,3DGS 就会变得非常快,在普通设备上可达到 ∼ 30 FPS,渲染质量与 NeRF 相当。

质量增强

虽然可以生成高质量的重建结果,但 3DGS 的渲染仍有改进空间。Mip-Splatting[33] 观察到,改变采样率(例如焦距)会引入高频高斯形状伪影或强烈的膨胀效应,从而极大地影响渲染图像的质量。为了消除高频高斯形状伪影,Mip-Splatting[33] 将 3D 表示的频率,限制在训练图像确定的最大采样频率的一半以下。此外,为了避免膨胀效应,它在投影高斯椭球中引入了另一个 2D Mip 滤波器,近似于类似于 EWA-Splatting[10] 的盒滤波器。

除了混叠问题外,渲染视图相关效果的能力也需要改进。为了产生更忠实的视图相关效果,VDGS [37] 建议对 3DGS 进行建模以表示 3D 形状,并使用类似 NeRF 的神经网络(而不是原始 3DGS 中的球谐函数系数)来预测视图相关颜色和不透明度等属性。 Scaffold-GS[38]提出初始化一个体素网格,并在每个体素点上附加可学习的特征,高斯的所有属性由插值特征和轻量级神经网络确定。在Scaffold-GS的基础上,Octree-GS[39]引入了一种细节层次策略来更好地捕捉细节。

为了更好地引导 3D 高斯 Splatting 的增长,GaussianPro [32] 引入了一种渐进传播策略来更新高斯,通过考虑相邻视图之间的法向一致性并添加平面约束。GeoGaussian [41] 建议在高斯的切平面上对高斯进行加密,并鼓励相邻高斯之间几何属性的平滑性。

不同重建方法的定量结果可以在表中找到:基于 3DGS 的方法和基于 NeRF 的方法相当,但基于 3DGS 的方法具有更快的渲染速度。

[外链图片转存中…(img-3VKIa0vB-1722355492691)]

压缩和正则化

虽然 3D Gaussian Splatting 实现了实时渲染,但在降低计算要求和改善点分布方面仍有改进空间。一些方法侧重于改变原始表示以减少计算资源。

矢量量化是信号处理中的一种传统压缩方法,涉及将多维数据聚类为一组有限的表示,主要用于高斯 [54–58]。C3DGS [54] 采用残差矢量量化 (R-VQ) [59] 来表示几何属性,包括缩放和旋转。SASCGS [56] 利用矢量聚类将颜色和几何属性编码为两个码本,并使用敏感度感知的 K-Means 方法。EAGLES[57]量化了所有属性,包括颜色、位置、不透明度、旋转和缩放,它们表明,不透明度的量化可以减少新型视图合成任务中的漂浮物或视觉伪影。

定量重建结果及压缩后三维场景大小如表所示:

[外链图片转存中…(img-b3QaHr4l-1722355492691)]

动态3D重建

与NeRF表示相同,3DGS也可以扩展用于重构动态场景。动态3DGS的核心在于如何对高斯属性值随时间的变化进行建模。最直接的方法就是在不同的时间步长为3D高斯分配不同的属性值。

Luiten[18]将3D高斯的中心和旋转(四元数)视为随时间变化的变量,而其他属性在所有时间步长保持不变,从而通过重构动态场景实现6自由度跟踪。然而,逐帧离散定义缺乏连续性,会导致长期跟踪效果不佳。因此,引入了基于物理的约束,即三个正则化损失,包括短期局部刚性和局部旋转相似性损失以及长期局部等距损失。然而,这种方法仍然缺乏帧间相关性,并且对于长期序列需要较高的存储开销。因此,分解空间和时间信息并分别用规范空间和变形场对其进行建模已成为另一个探索方向。规范空间是静态的3DGS,那么问题就变成了如何对变形场进行建模。一种方法是使用MLP网络对其进行隐式拟合,类似于动态NeRF [66]。Yang[19]遵循这个想法,提出将位置编码的高斯位置和时间步长t输入到MLP,MLP输出3D高斯的位置、旋转和缩放的偏移量。然而,不准确的姿势可能会影响渲染质量。这在NeRF的连续建模中并不重要,但离散的3DGS会放大这个问题,尤其是在时间插值任务中。因此,他们在编码的时间向量中添加了线性衰减的高斯噪声,以改善时间平滑,而无需额外的计算开销。

相比于NeRF,3DGS是一种显式表示,而隐式变形建模需要大量参数,容易带来过拟合,因此也提出了一些显式变形建模方法,以确保快速训练。Katsumata[76]受到人体和关节运动有时具有周期性的启发,提出用傅里叶级数拟合高斯位置的变化,旋转用线性函数近似,其他属性不随时间变化。因此动态优化就是优化傅里叶级数和线性函数的参数,参数数量与时间无关。这些参数函数是关于时间的连续函数,确保时间的连续性,从而确保新视图合成的鲁棒性。除了图像损失之外,还引入了双向光流损失。多项式拟合和傅里叶近似分别在建模平滑运动和剧烈运动方面具有优势。因此,Gaussian-Flow [77] 在时域和频域中结合了这两种方法,以捕获属性的时间相关残差,称为双域变形模型 (DDDM)。位置、旋转和颜色被认为会随时间而变化。为了防止统一时间划分引起的优化问题,这项工作采用了自适应时间步长缩放。最后,优化在静态优化和动态优化之间迭代,并引入时间平滑度损失和 KNN 刚性损失。

还有一些其他方法可供探索。 4DGS[85]将场景的时空视为一个整体,将三维高斯变换为四维高斯,即将高斯上定义的属性值变换到四维空间。例如,缩放矩阵是对角线的,因此在对角线上添加时间维度的缩放因子就形成了四维空间中的缩放矩阵。球谐函数(SH)的四维扩展可以表示为SH与一维基函数的组合。

下表报告了基于NeRF和基于3DGS的代表性方法的定量重建结果。基于3DGS的方法与基于NeRF的方法相比具有明显的优势,因为它们具有明确的几何表示,可以更容易地对动态进行建模。3DGS的高效渲染还避免了基于NeRF的方法中对神经场进行密集采样和查询,并使自由视点视频等动态重建的下游应用更加可行。

[外链图片转存中…(img-m8trbVZk-1722355492691)]

挑战性输入的3D重建

虽然大多数方法,都是在相对较小的场景中用密集视点的常规输入数据进行实验,但也有一些方法针对具有挑战性的输入(如稀疏视图输入、没有相机参数的数据以及城市街道等更大的场景)重建 3D 场景。FSGS[93] 是第一个探索从稀疏视图输入重建 3D 场景的方法。它从运动结构 (SfM) 方法中初始化稀疏高斯,并通过对现有的高斯进行解池化来识别它们。为了实现忠实的几何重建,额外预训练的 2D 深度估计网络有助于监督渲染的深度图像。SparseGS[94]、CoherentGS[95] 和 DNGaussian[96] 也通过引入预训练 2D 网络估计的深度输入,从稀疏视图输入进行 3D 重建为目标。它进一步去除具有不正确深度值的高斯函数,并利用分数蒸馏采样 (SDS) 损失 [97] 使新视点渲染的结果更加忠实于原图。

GaussainObject [98] 则用visual hull初始化高斯函数,并微调预训练的 ControlNet [99],修复向高斯函数的属性添加噪声而生成的退化渲染图像,其性能优于之前基于 NeRF 的稀疏视图重建方法。更进一步,pixelSplat [100] 无需任何数据先验即可从单视图输入重建 3D 场景。它提取类似于 PixelNeRF [101] 的像素对齐图像特征,并使用神经网络预测每个高斯函数的属性。MVSplat [102] 将成本体积表示带入稀疏视图重建,并将其作为高斯函数属性预测网络的输入。 SplatterImage[103]也适用于单视图数据,但它利用U-Net[104]网络将输入图像转换为高斯分布的属性。它可以通过扭曲操作从不同视角聚合预测的高斯分布,从而扩展到多视图输入。

3DGS 允许基于光栅化的点渲染技术进行高效训练和高质量实时渲染。3DGS 中的编辑已在多个领域得到研究。3DGS 上的编辑总结为三类:几何编辑、外观编辑和物理模拟。

几何编辑

在几何方面,GaussianEditor[134]使用提高斯语义跟踪的文本提示和语义信息来控制3DGS,从而实现3D修复、物体移除和物体合成。GaussianGrouping[135]在来自SAM的2D掩码预测和3D空间一致性约束的监督下,同时重建和分割开放世界3D物体,这进一步实现了包括3D物体移除、修复和合成在内的各种编辑应用,具有高质量的视觉效果和时间效率。此外,Point’n Move[136]将交互式场景物体操作与暴露区域修复相结合。得益于3DGS的显式表示,提出了双阶段自提示掩模传播过程,将给定的2D提示点转移到3D掩吗分割,从而实现具有高质量效果的用户友好的编辑体验。

外观编辑

在外观方面,GaussianEditor [139] 提出首先使用扩散模型 [140] 在最近的 2D 分割模型 [110] 生成的掩码区域中修改带有语言输入的 2D 图像,并再次更新高斯的属性,类似于之前的 NeRF 编辑工作 Instruct-NeRF2NeRF [141]。另一项独立研究工作也称为 GaussianEditor [134],其操作类似,但它进一步引入了分层高斯splatting (HGS),允许像目标修复这样的 3D 编辑。GSEdit [142] 以纹理网格或预先训练的 3DGS 为输入,并利用 Instruct-Pix2Pix [143] 和 SDS 损失来更新输入网格或 3DGS。为了缓解不一致问题,Gauss-Ctrl [144] 引入深度图作为 ControlNet [99] 的条件输入,以促进几何一致性。

为了能够更轻松地控制纹理和光照,研究人员已经开始解开纹理和光照,以实现独立编辑。GS-IR [151] 和 RelightableGaussian [23] 分别对纹理和光照进行建模。每个高斯函数上都定义了额外的材质参数来表示纹理,而光照则通过可学习的环境图来近似。GIR [152] 和 Gaussian-Shader [24] 通过将材质参数绑定到 3D 高斯函数上,共享相同的解偶范例,但为了处理更具挑战性的反射场景,它们向高斯函数添加了类似于 Ref-NeRF [153] 的法线方向约束。在纹理和光照解缠之后,这些方法可以独立地修改纹理或光照而不会影响另一个。

物理仿真

在基于物理的 3DGS 编辑中,PhysGaussian [21] 使用来自 3D GS 的离散粒子云,通过高斯核的连续变形 [154] 实现基于物理的动力学和照片级真实感渲染。高斯splashing [155] 结合了 3DGS 和基于位置的动力学 (PBD) [156],以整体管理渲染、视图合成和固体/流体动力学。与高斯shaders [24] 类似,法线被应用于每个高斯核,使其方向与表面法线对齐,改进 PBD 模拟,同时还允许基于物理的渲染增强流体上的动态表面反射。VR-GS [29] 是一个用于 VR 的物理动力学感知交互式高斯splatting系统,解决了实时编辑高保真虚拟内容的难题。 VR-GS 利用 3DGS 缩小了生成的 3D 内容和手工制作的 3D 内容之间的质量差距。通过利用基于物理的动力学,可以增强沉浸感并提供精确的交互和操作可控性。Spring-Gaus [157] 将 Spring-Mass 模型应用于动态 3DGS 的建模,并从输入视频中学习质量和速度等物理属性,这些属性可用于真实世界的模拟。Feature Splatting [158] 进一步结合了预训练网络中的语义先验,使目标级模拟成为可能。

3DGS 的应用如下:

**- 分割和理解

  • 几何重建和SLAM
  • 数字人
  • 3D/4D生成**
  • 19
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值