专栏名称: 计算机视觉深度学习和自动驾驶
讨论计算机视觉、深度学习和自动驾驶的技术发展和挑战
目录
相关文章推荐
庞门正道  ·  谁家的修狗,不要就抱走啦! ·  昨天  
庞门正道  ·  10年了,厉害的人更厉害了! ·  2 天前  
字体设计  ·  全新升级:教你三门品牌Logo设计技能 ·  2 天前  
字体设计  ·  本周三款免费字体来了 ·  2 天前  
51好读  ›  专栏  ›  计算机视觉深度学习和自动驾驶

3D Gaussian Splatting的进展

计算机视觉深度学习和自动驾驶  · 公众号  ·  · 2024-08-03 00:00

正文

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 的研究工作,并提出了该领域未来有待完成的工作。


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


基于点渲染技术

基于点的渲染技术,旨在通过渲染一组离散的几何图元来生成逼真的图像。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 的方法具有更快的渲染速度。


压缩和正则化

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

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

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


动态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的方法中对神经场进行密集采样和查询,并使自由视点视频等动态重建的下游应用更加可行。


挑战性输入的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 上的编辑总结为三类:几何编辑、外观编辑和物理模拟。

几何编辑







请到「今天看啥」查看全文