3DGS综述以及对3DGS的理解:A Survey on 3D Gaussian Splatting


今天想介绍的是ZJU带来的3DGS的首篇综述A Survey on 3D Gaussian Splatting 这是论文链接 arXiv:2401.03890,结合一些资料,趁这个机会好好学习一下3DGS,加油入坑!!!

首先说一些自己的理解,3DGS之所以爆火,很大程度在于他的实时性,而这一部分极大程度得益于他定制的算法与自定义 CUDA 内核。除此之外,Gaussian Splatting根本不涉及任何神经网络,甚至没有一个小型的 MLP,也没有什么 “神经”的东西,场景本质上只是空间中的一组点。在大家都在研究数十亿个参数组成的模型的人工智能世界里,这种方法越来越受欢迎,令人耳目一新。它的想法源于 “Surface splatting”(2001 年),说明经典的计算机视觉方法仍然可以激发相关的解决方案。它简单明了的表述方式使Gaussian Splatting特别容易解释,这也是为什么在某些应用中选择它而不是 NeRFs。

引言 INTRODUCTION

NeRF自从2020年开始,在多视角合成中做出来巨大的贡献,他利用神经网络,实现了空间坐标到颜色和密度的映射的,然NeRF的方法是计算密集型的,通常需要大量的训练时间和大量的渲染资源,特别是高分辨率的输出。

NeRF

针对这些问题,3DGS出现了,3DGS 采用显式表示和高度并行的工作流程,有利于更高效的计算和渲染,其创新在于其独特地融合了可微分管道和基于点的渲染技术的优点,通过用可学习的 3D 高斯函数表示场景,保留了连续体积辐射场的理想特性,这对于高质量图像合成至关重要,同时避免了与空白空间渲染相关的计算开销,这是传统 NeRF 方法的常见缺点,而3DGS很好的解决了这个问题,在不影响视觉质量的情况下达到了实时渲染。

论文中也发现,自3DGS出现以来,2023年有很多的论文在arXiv中挂出来,所以基于此也写了这样一个综述,同时促进3DGS领域的进一步研究和创新

The number of papers on 3DGS is increasing every month.

以下是论文架构的图,论文的大概架构如下所示,可以看到这篇综述撰写的一个逻辑,还是非常好的,接下来,我会顺着这个架构进行解读论文来学习

  • 第2部分:主要是一些问题描述和相关研究领域的一些简要的背景
  • 第3部分:介绍3DGS,包括3DGS的多视角的合成和3DGS的优化
  • 第4部分:3DGS 产生重大影响的各种应用领域和任务,展示了其多功能性
  • 第5部分:对3DGS进行了一些比较和分析
  • 第6、7部分:对一些未来的开放性工作进行总结和调查

Structure of the overall review.

背景 BACKGROUND

背景主要分两部分讲解

  • 辐射场的概念:隐式和显式
  • 有关辐射场的场景重建、渲染等领域相关介绍

问题定义

辐射场

辐射场是实际上是对三维空间中光分布的表示,它捕捉了光与环境中的表面和材质相互作用的方式。从数学上来说,辐射场可被描述为一个函数$L:\mathbb{R}^5\to\mathbb{R}^+$, 其中$L(x,y,z,\theta,\psi)$将点$(x,y,z)$和球坐标下的方向$(\theta,\phi)$映射为非负的辐射值。辐射场有显示表达和隐式表达,可用于场景表示和渲染。

隐式辐射场

隐式辐射场是辐射场中的一种,在表示场景中的光分布时,不需显式定义场景的集合形状。这里面最常见的就是NeRF,使用神经网络来学习连续的体积表示。在NeRF中,使用MLP 网络用于将一组空间坐标 $(x, y, z)$ 和观察方向 $(\theta,\phi)$ 映射到颜色和密度值。任何点处的辐射不是显式存储的,而是通过查询神经网络实时计算得出。因此,该函数可以写成:
$$
L_\text{implicit}(x,y,z,\theta,\phi)=\text{NeuralNetwork}(x,y,z,\theta,\phi)
$$
这种方式的好处是构建了一个可微且紧凑的复杂场景,但是由于我们总是需要对光线进行采样和体渲染的计算,会导致计算负载比较高。

显式辐射场

与隐式不同的是,显示是直接表示光在离散空间结构中的分布,比如体素网格或点云。该结构中的每个元素都存储了其在空间中相应位置的辐射信息,而不是像NeRF一样去执行查询的操作,所以他会更直接也更快的得到每个值,但是同时也需要更大内存使用和导致较低的分辨率。通常我们可以表示为:
$$
L_\text{explicit}{ ( x , y , z , \theta , \phi ) }=\text{DataStructure}[(x,y,z)]\cdot f(\theta,\phi)
$$
其中,DataStructure可以是网格或点云,而$f(θ, ϕ)$是一个根据观察视线方向修改辐射的函数。

3D Gaussian Splatting (两全其美)

3DGS通过利用3D 高斯函数作为其表示形式,充分利用了显示辐射场和隐式辐射场的优势。这些高斯函数被优化用于准确表示场景,结合了基于神经网络的优化和显式结构化数据存储的优点。这种混合方法能进行高质量渲染,同时具有更快的训练和实时性能,3D高斯表达可表示为:
$$
L_{\mathrm{3DGS}}(x,y,z,\theta,\phi)=\sum_{i}G(x,y,z,\mu_{i},\Sigma_{i})\cdot c_{i}(\theta,\phi)
$$
其中 $G$ 是具有平均值 $μ_i$ 和协方差 $Σ_i$ 的高斯函数,$c$ 表示与视图相关的颜色。

显式与隐式的理解

这里放一张理解显示隐式图像的图片,我还是觉得相当不错的

显式隐式表达

背景和术语

许多技术和研究学科与 3DGS 有着密切的关系,以下各节将对此进行简要介绍。

场景重建与渲染

场景重建:从一组图像集合或其它数据建立场景的三维模型。

渲染:将计算机可读取的信息(如场景中的3D物体)转化为图像。
早期技术基于光场生成逼真的图像,运动结构(SfM)与多视图立体匹配(MVS)算法通过从图像序列估计3D结构来增强光场。

神经渲染和辐射场

神经渲染:将深度学习与传统图形技术结合生成逼真的图像。早期方法使用CNN估计混合权重或纹理空间解决方案。

辐射场:一种函数表达,描述从各方向穿过空间各点的光的量。NeRF使用神经网络建模辐射场。

体积表示和光线行进

体积表达:不仅将物体和场景建模为表面,还将其其建模为充满材料或空白空间的体积。这样可以对如雾、烟或半透明材料进行更精确的渲染。

光线行进:是体积表达渲染图像的技术,通过增量跟踪穿过“体”的光线来渲染图像。NeRF引入重要性采样和位置编码增强合成图像的质量,虽然能得到高质量的图像,但这一方法计算量大。

基于点的渲染

基于点的渲染是一种使用点而非传统多边形来可视化3D场景的技术。该方法特别适用于渲染复杂、非结构化或稀疏的几何数据。点可以通过添加额外属性,如可学习的神经描述符来进行增强,并且可以高效地进行渲染,但这种方法可能会出现渲染中的空洞或混叠效应等问题。3DGS通过使用各向异性高斯进行更连贯的场景表达。

用于显式辐射场的3DGS

3DGS能够实时渲染高分辨率的图像,并且不需要神经网络,是一个突破。

这一块主要围绕两块进行讲解

  • 3DGS的前向过程
  • 3DGS的优化过程

学习3D高斯函数进行新视角合成

假如现在有一个场景,目的是生成特定视角下的相机图像。NeRF对每一个像素使用光线行进和采样点,影响其实时性;而3DGS将3D高斯投影到图像平面,称为“泼溅”,如下图所示。然后对高斯进行排序并计算每个像素的值。NeRF和3DGS的渲染可视为互逆关系。

3DGS的Splatting 泼溅

这里面有个点很有意思,为什么说是互逆关系,我参考了知乎的一篇文章3D Gaussian Splatting中的数学推导的说明,我觉得这个说的还不错。

首先,我们回忆一下体渲染的这个事情。假设读者跟我一样是从NeRF才接触体渲染的,那么回顾一下NeRF中,沿着一个像素,发出一条射线,然后这条射线“射向体数据”(在NeRF里就是沿着光线进行采样,然后查询采样点的属性)的过程。这个过程可以归结为一种backward mapping

所以很自然的,会有一种forward mapping的办法。形式上,就是将整个“体数据”投影到此时位姿所对应的图像平面。这种办法的前提就不能是用NeRF那种隐式表达了,需要一些显式的表达才能支持这样直接的投影。例如以三个顶点长成的三角面基元(primitive),然后将这些许多的三角面直接投影到成像平面上,判断哪些像素是什么颜色,当有多个三角形投影时,根据他们的“深度”来判断前后顺序,然后进行熟悉的alpha compositing。当然也会有其他基元,例如小的平面表示等等。

无论是backward mapping还是forward mapping,这个过程都涉及到将连续的表示变成离散的。在backward mapping里,是对场进行采样;在forward mapping里,是需要直接生成出基元,这也是一种连续化为离散。为了理解在这个过程中,高斯分布为什么重要,我们需要牵扯到信号与系统中的概念。与混过数字信号处理考试不同的是,我们要清楚此时引入信号与系统里的工具的目的是什么。回想刚才三角面基元的情景,在实际情境中,我们其实都接触不到“连续”的表达,比如三角面,我们只会记录它的三个顶点。当投影完成后,我们只能做一些有限的操作来阻止“锯齿”,例如对结果进行一个模糊操作,这些操作一般都是局部的。我们这样做的目的,本质是“希望用离散的表达来重建原来的信号,进一步在重建好的信号上进行“resampling”。如果我们对处理后的结果,视觉上看起来没什么混叠或者锯齿上的问题,那就说明我们“resampling”是成功的。

从下图也可以看到NeRF和Gaussian在概念上的区别,左边是NeRF沿着光线查询连续 MLP,右边是Gaussian一组与给定光线相关的离散的高斯分布

difference between NeRF and Gaussian Splatting

首先简单介绍一下,3DGS是如何表示真实场景的,前面也有提过,在Gaussian Splatting中,3D世界用一组3D点表示,实际上是数百万个,大致在0.5到5百万之间。每个点是一个3D高斯,具有其独特的参数,这些参数是为每个场景拟合的,以便该场景的渲染与已知数据集图像紧密匹配,接下来就介绍他的属性。

Representing a 3D world

  • 3D高斯的属性: 一个3D高斯主要包括,中心(位置)$x,y,z$的均值$μ$、不透明度 $α$、3D 协方差矩阵 $Σ$ 和颜色 $c$(一般是RGB或者是球谐(SH)系数)。 其中$c$与视角有关,$c$ 由球谐函数表示。所有属性均可学习,都可以通过反向传播来学习和优化。

  • 视域剔除:给定特定的相机姿态,该步骤会判断哪些高斯位于相机的视锥外,并在后续步骤中剔除之,以节省计算。

  • Splatting泼溅:实际上只是3D高斯(椭圆体)投影到2D图像空间(椭圆)中进行渲染。给定视图变换 $W$ 和3D协方差矩阵$\Sigma$,我们可以使用使用以下公式计算投影 2D 协方差矩阵 $\Sigma^{\prime}$
    $$
    \Sigma^{\prime}=JW\Sigma W^\top J^\top
    $$
    其中 $J$ 为投影变换中仿射近似的雅可比矩阵。

  • 像素渲染:如果不考虑并行,采用最简单的方式:给定像素 $x$ 的位置,与其到所有重叠高斯函数的距离,即这些高斯函数的深度。这些可以通过观察变换 $W$ 计算出来,形成高斯函数的排序列表$N$。然后进行alpha混合,计算该像素的最终颜色:
    $$
    C=\sum_{i\in\mathcal{N}}c_i\alpha_i^{\prime}\prod_{j=1}^{i-1}\left(1-\alpha_j^{\prime}\right.)
    $$
    其中 $c_i$ 是学习到的颜色,最终的不透明度 $\alpha_i^{\prime}$ 是学习的不透明度 $\alpha_i$ 与高斯的乘积:
    $$
    \alpha_i’=\alpha_i\times\exp\left(-\frac12(x’-\mu_i’)^\top\Sigma_i’^{-1}(x’-\mu_i’)\right)
    $$

    其中 $x’$ 和 $μ’_i$ 是投影空间中的坐标,同时我也找了个gif来可视化了一下Gaussian Splatting对位置p的影响:

    3DGS

    如果仔细看的话,我们会发现,实际上这个公式和多变量正态分布的概率密度函数十分相像,是忽略了带有协方差行列式的标准化项,而是用不透明度来加权。
    $$
    (2\pi)^{-k/2}\det(\boldsymbol{\Sigma})^{-1/2}\exp\biggl(-\frac12(\mathbf{x}-\boldsymbol{\mu})^\mathrm{T}\boldsymbol{\Sigma}^{-1}(\mathbf{x}-\boldsymbol{\mu})\biggr)
    $$

    不过如果考虑并行的话加快速度,这种列表排序实际上很难并行化,所以很有可能这个渲染程度比NeRF还慢。为了实现实时渲染,3DGS也做了一个tradeoff,3DGS做出了一些让步来适应并行计算

    Tiles(Patches)

  • Tiles (Patches):为避免逐像素计算出现的成本,3DGS改为patch级别的渲染。具体来说,首先将图像分割为多个不重叠的patch,称为tile,每个图块包含 16×16 像素,如下图所示。3DGS然后确定tile与投影高斯的相交情况,由于投影高斯可能会与多个tile相交,需要进行复制,并为每个复制体分配相关tile的标识符(如tile的ID)。(不用判断每个像素与高斯的距离,而是判断tile就简单多了)

    从下图可以看到排序的结果,在排序中,高位是tile的ID,低位就是深度,一起进行排序,下面的图是AI葵视频的结果,还是很好理解的

    3DGS排序

    3DGS排序例子(AI葵)

  • 并行渲染:复制后,3DGS(对应字节的无序列表)结合包含了相关的tile ID(对应字节的高位)和深度信息(对应字节的低位),如上图所示。由于每一块和每一像素的计算是独立的,所以可以基于CUDA编程的块和线程来实现并行计算,同时有利于访问公共共享内存并保持统一的读取顺序。排序后的列表可直接用于渲染(alpha混合),如下图所示。

    并行渲染

    总的来说,3DGS在前向过程中做出了一些近似计算,以提高计算效率并保留图像合成的高质量。

3DGS的优化

学习到这里,我们可能会有一个问题,怎么可能在空间中的一堆圆球中得到一个像样的图像的,确实是这样,如果没有进行优化,在渲染的时候就会出现很多伪影,从下图你可以看到。

An example of renders of an under-optimized scene

3DGS的核心是3D高斯集合的优化过程。一方面需要通过可微渲染来使高斯符合场景纹理,另一方面表达场景需要的高斯数量是未知的。这分别对应参数优化与密度控制两步,这两步在优化过程中交替进行。优化过程中,需要手动设置很多超参数。

参数优化 Parameter Optimization

  • 损失函数:图像合成后,计算渲染图像与真实图像的差异作为损失:
    $$
    \mathcal{L}=(1-\lambda)\mathcal{L}1+\lambda\mathcal{L}{D-SSIM}
    $$
    其中 $λ$ 是权重因子。与 NeRF 的损失函数略有不同,由于光线行进成本高昂,NeRF 通常在像素级别而不是图像级别进行计算,而3DGS是图像级别的。

  • 参数更新:3D高斯的多数参数可通过反向传播直接更新,但对于协方差矩阵 $\Sigma$来说,需要半正定矩阵(这里面是一个定义,应该是多元正态分布的协方差矩阵是一个半正定矩阵),直接优化可能会产生非半正定矩阵,而只有半正定矩阵才有物理意义。因此,改为优化四元数$q$和3D向量$s$。将协方差矩阵分解:
    $$
    \Sigma=RSS^\top R^\top
    $$
    其中$R$与$S$分别由$q$和$s$推导得到的旋转和缩放矩阵。

    • $S$是一个对角缩放矩阵,含有3个参数
    • $R$是一个3x3的旋转矩阵,通过旋转四元数来表示

    对于不透明度$α$, 其计算图较为复杂:$(q,s)\to\Sigma\to\Sigma^{\prime}\to\alpha$。为避免自动微分的计算消耗,3DGS还推导了$q$与$s$的梯度,在优化过程中直接计算之。

密度控制 Density Control

  • 初始化:3DGS建议从SfM产生的稀疏点云初始化或随机初始化高斯,可以直接调用 COLMAP 库来完成这一步。。然后进行点的密集化和剪枝以控制3D高斯的密度。当由于某种原因无法获得点云时,可以使用随机初始化来代替,但可能会降低最终的重建质量。

A sparse 3D point cloud produced by SfM, means initialization

  • 点密集化:在点密集化阶段,3DGS自适应地增加高斯的密度,以更好地捕捉场景的细节。该过程特别关注缺失几何特征或高斯过于分散的区域。密集化在一定数量的迭代后执行,比如100个迭代,针对在视图空间中具有较大位置梯度(即超过特定阈值)的高斯。其包括在未充分重建的区域克隆小高斯或在过度重建的区域分裂大高斯。对于克隆,创建高斯的复制体并朝着位置梯度移动。对于分裂,用两个较小的高斯替换一个大高斯,按照特定因子减小它们的尺度。这一步旨在在3D空间中寻求高斯的最佳分布和表示,增强重建的整体质量。

    这一部分的意义是什么呢,因为SGD只能对现有点进行调整,但是在完全没有点或点太多的区域,很难找到好的参数,所以这就是点密集化的作用。

  • 点的剪枝:点的剪枝阶段移除冗余或影响较小的高斯,可以在某种程度上看作是一种正则化过程。一般消除几乎是透明的高斯(α低于指定阈值)和在世界空间或视图空间中过大的高斯。此外,为防止输入相机附近的高斯密度不合理地增加,这些高斯会在固定次数的迭代后将$\alpha$设置为接近0的值。该步骤在保证高斯的精度和有效性的情况下,能节约计算资源。

Adaptive Gaussian densification scheme.

用SH系数来表示颜色

在计算机图形学中,用球谐函数(Spherical Harmonics,简称SH)表示视角相关的颜色起着重要作用,最初是在Plenoxels中提出的。他能表示非兰伯特效应,比如金属表面的高光反射。不过这样也不是一定的,实际上也可以使用3个RGB值表示颜色,然后使用Gaussian Splatting。

图形学全局环境光照技术与球谐函数息息相关,我们的环境光来源四面八方,可以理解为一个球面函数,当模拟漫反射环境光,我们用一张环境贴图进行采样,对每一个点进行半球采样出在这个像素上的颜色,球谐光照简单来说就是用几个系数存取了整张环境贴图包围在球上法线方向所对应的的颜色信息。在渲染过程中传入球谐系数。在模型上根据对应的法线信息,从球谐函数中获取对应的颜色信息。

球谐函数是定义在球面上的特殊函数,换句话说,可以对球面上的任意点计算这样一个函数并得到一个值。

这里我们简单理解一下,SH,球谐函数,归根到底只是一组基函数,至于这组基函数是怎么来的,不管他。简单点来说,每一个函数都可以由多个基函数组合起来,如果我们有很多基函数,我们可以通过对应的权重系数复原出原来的函数,不过本质上还是一个有损压缩,不一定那么准确,不过如果基函数越多,复原的函数越准确,但是计算量也变大了。

在球面基函数中,最多的就是球谐函数了。球谐函数有很多很好的性质,比如正交性,旋转不变性(这边就不介绍了)。正交性说明每个基函数都是独立的,每个基函数都不能用别的基函数加权得到。当SH的系数用的越多,那么表达能力就越强,跟原始的函数就越接近。(如果更详细的了解可以看看一些原理,我主要是宏观的了解SH是什么,简单理解就是他是一种颜色的表示)

当用来描述不同方向光照的SH基函数,我们一般用二阶或者三阶,比如下面的例子就是3阶的

下面展示的是一个$l=2$和3阶的球谐函数,一共包括9个学习系数,我们可以根据点的视角得到相关颜色,可以看到最后是red红色分量。

得到l=2和9个学习系数的点的视角相关颜色(红色分量)的过程

3DGS 流程

最后根据论文的图来总结一下3DGS的流程

3DGS 流程

  1. Structure from Motion:使用SfM从一组图像中估计出点云,可以直接调用 COLMAP 库操作

    Structure from Motion

  2. Convert to Gaussians:将每个点建模成一个 3D 高斯图像。从 SfM 数据中,我们能推断出每个高斯图像的位置和颜色。但如果是要得到更高质量的表征的话,还需要对每个高斯函数进行训练,以推断出更精细的位置和颜色,并推断出协方差和透明度。

  3. Training:与神经网络类似,我们使用随机梯度下降法进行训练,但这里没有神经网络的层的概念 (都是 3D 高斯函数)。

    训练步骤如下:

    1. 用当前所有可微高斯函数渲染出图像
    2. 根据渲染图像和真实图像之间的差异计算损失
    3. 根据损失调整每个高斯图像的参数
    4. 根据情况对当前相关高斯图像进行点的密度控制

    步骤 1-3 比较简单,下面我们稍微解释一下第 4 步的工作:

    • 如果某高斯图像的梯度很大 (即它错得比较离谱),则对其进行分裂或克隆
      • 如果该高斯图像很小,则克隆它
      • 如果该高斯图像很大,则将其分裂
    • 如果该高斯图像的 alpha 太低,则将其删除

    这么做能帮助高斯图像更好地拟合精细的细节,同时修剪掉不必要的高斯图像。

  4. Differentiable Gaussian Rasterization:3D Gaussian Splatting实际上是一种光栅化的方法,将数据成像到屏幕上,与其他方法相比,他有两个特点

    1. 可微

    主要步骤如下:

    1. 针对给定相机视角,把每个 3D 高斯投影到 2D。
    2. 按深度对高斯进行排序。
    3. 对每个像素,从前到后计算每个高斯在该像素点的值,并将所有值混合以得到最终像素值。

3DGS Limitations

优点

  1. 高品质、逼真的场景
  2. 快速、实时的渲染
  3. 更快的训练速度

缺点

  1. 防止模型优化中的“破碎”的高斯:点太大、太长、冗余等
  2. 更高的显存使用率 (4GB 用于显示,12GB 用于训练)
  3. 更大的磁盘占用 (每场景 1GB+)
  4. 与现有渲染管线不兼容
  5. 只能重建静态场景(但是好像现在动态的Gaussian也出来了,所以这个不算缺点了)

应用领域和任务 APPLICATION AREAS AND TASKS

同时定位和建图(SLAM)

SLAM需要让设备实时理解自身位置并同时为环境建图,因此计算量大的表达技术难以应用。

传统SLAM使用点/surfel云或体素网格表达环境。3DGS的优势在于高效性(自适应控制高斯密度)、精确性(各向异性高斯能建模环境细节)、适应性(能用于各种尺度和复杂度的环境)。

动态场景建模

动态场景建模需要捕捉和表达场景随时间变化的的3D结构和外观。需要建立能精确反映场景中物体几何、运动和视觉方面的数字模型。4D高斯泼溅通过扩展3D高斯溅射的概念,引入时间维度,使得可以表达和渲染动态场景。现在也有一些方法在研究在动态场景中的一些编辑的功能,与3DGS进行交互。

AI生成内容(AIGC)

AIGC是人工智能自动创建或极大修改的数字内容,可以模仿、扩展或增强人类生成的内容。

3DGS的显式特性、实时渲染能力和可编辑水平使其与AIGC高度相关。例如,有方法使用3DGS与生成模型、化身或场景编辑结合,如3DGS-Avatar。

自动驾驶

自动驾驶的目标是在无人干涉的情况下导航并操作车辆,其主要目标是安全而高效地感知环境、做出决策和操作执行器。

其中,感知和理解环境需要实时重建驾驶场景,精确识别静态和动态物体,并理解其相互关系和运动。动态驾驶场景中,场景还会随时间连续变化。3DGS可以通过混合数据点(如激光雷达点)将场景重建为连贯表达,有利于处理数据点变化的密度,以及静态背景和动态物体的精确重建。

性能比较 PERFORMANCE COMPARISON

在这一部分,针对3FGS在上述的领域上的一些性能评估。

性能基准:定位

  • 数据集:Replica。

  • 基准算法:Gaussian-SLAM、GS-SLAM、SplaTAM、GSS-SLAM。

  • 评估指标:均方根误差(RMSE)、绝对轨迹误差(ATE),测量传感器运动轨迹上真实位置与估计位置欧式距离的均方根。

  • 结果:基于3D高斯的SLAM方法能超过基于NeRF的密集视觉SLAM。

性能基准:静态场景渲染

  • 数据集:Replica。
  • 基准算法:Gaussian-SLAM、GS-SLAM、SplaTAM、GSS-SLAM。
  • 评估指标:峰值信噪比(PSNR)、结构相似性(SSIM)、学习的感知图像patch相似性(LPIPS),衡量RGB渲染性能。
  • 结果:基于3D高斯的方法能超过基于NeRF的方法。

性能基准:动态场景渲染

  • 数据集:D-NeRF。
  • 基准算法:CoGS、4D-GS、GauFRe、4DGS。
  • 评估指标:PSNR、SSIM、LPIPS, 用于衡量RGB渲染性能。
  • 结果:3DGS能大幅超过基于NeRF的SOTA。但静态版本的3DGS对动态场景的重建是失败的。

性能基准:驾驶场景渲染

  • 数据集:nuScences。
  • 基准算法:DrivingGaussian。
  • 评估指标:PSNR、SSIM、LPIPS*(LPIPS× 1000), 用于衡量RGB渲染性能。
  • 结果:3DGS方法能大幅超过基于NeRF的方法。

性能基准:数字虚拟人

该任务的目标是从给定的多视角视频渲染人体化身模型。

  • 数据集:ZJU-MoCap。
  • 基准算法:GART、Human101、HUGS、3DGS-Avatar。
  • 评估指标:PSNR、SSIM、LPIPS* (LPIPS×1000) ,用于衡量RGB渲染性能$_{9}$
  • 结果:基于3DGS的方法能在渲染质量和速度上均有优势。

未来研究方向 FUTURE RESEARCH DIRECTIONS

  • 数据高效的3DGS解决方案:从少样本中进行新视图生成和场景重建很重要。目前的方法有探究引入深度信息、密集概率分布、像素到高斯的映射来促进该能力,实际上就是引入更多的信息。。此外,在观测不足的区域,3DGS会产生伪影,可尝试在这些区域进行数据插值或积分。
  • 存储高效的3DGS解决方案:3DGS的可扩展性较差,在大尺度环境中需要大量的存储。需要优化训练阶段和模型的存储利用,而对于NeRF来说只需要存储学习到的MLP参数。可以探索更多高效的数据结构和先进的压缩技术,如Light-Gaussian等
  • 先进的渲染算法:目前3DGS的渲染算法较为简单直接,可见性算法会导致高斯深度/混合顺序的剧烈切换,需要实施更先进的渲染算法,更好模拟光与材料属性的复杂相互作用。可结合传统计算机图形学的方法。此外,还可探索逆渲染。
  • 优化与正则化: 各向异性高斯虽然有利于表示复杂几何体,但可能产生不希望的视觉伪影。例如,特别是在具有视角依赖外观的区域,大的3D高斯可能导致弹出伪影,突然出现或消失的视觉元素打破了沉浸感。使用正则化可以增加收敛速度,平滑视觉噪声或提高图像质量。此外,3DGS中大量的超参数也会影响3DGS的泛化性。在3DGS的规则化和优化方面存在相当大的探索潜力。
  • 3D高斯在网格重建中的应用:可探索3DGS在网格重建中的潜力,从而缩小体积渲染和传统基于表面的方法的差距,以便提出新的渲染技巧和应用。
  • 赋予3DGS更多可能性: 尽管3DGS具有显著潜力,但3DGS的全范围应用仍然未被充分挖掘。一个有前景的探索方向是用额外的属性增强3D高斯,例如为特定应用定制的语言和物理属性。此外,最近的研究开始揭示3DGS在多个领域的能力,例如相机姿态估计、捕捉手对象互动和不确定性量化。这些初步发现突出了跨学科学者进一步探索3DGS的重要机会。

参考文献 REFERENCES

  1. Kerbl, B., Kopanas, G., Leimkühler, T., & Drettakis, G. (2023). 3D Gaussian Splatting for Real-Time Radiance Field Rendering. SIGGRAPH 2023.
  2. Mildenhall, B., Srinivasan, P. P., Tancik, M., Barron, J. T., Ramamoorthi, R., & Ng, R. (2020). NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis. ECCV 2020.
  3. Zwicker, M., Pfister, H., van Baar, J., & Gross, M. (2001). Surface Splatting. SIGGRAPH 2001
  4. Luiten, J., Kopanas, G., Leibe, B., & Ramanan, D. (2023). Dynamic 3D Gaussians: Tracking by Persistent Dynamic View Synthesis. International Conference on 3D Vision.
  5. Zwicker, M., Pfister, H., van Baar, J., & Gross, M. (2001). EWA Volume Splatting. IEEE Visualization 2001.
  6. Yu, A., Fridovich-Keil, S., Tancik, M., Chen, Q., Recht, B., & Kanazawa, A. (2023). Plenoxels: Radiance Fields without Neural Networks. CVPR 2022.
  7. A Comprehensive Overview of Gaussian Splatting
  8. Introduction to 3D Gaussian Splatting
  9. Sample Representation
  10. 《3D Gaussian Splatting for Real-Time Radiance Field Rendering》3D高斯的理论理解
  11. 【论文笔记】A Survey on 3D Gaussian Splatting

文章作者: Kedreamix
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Kedreamix !
  目录