专栏名称: 计算机视觉深度学习和自动驾驶
讨论计算机视觉、深度学习和自动驾驶的技术发展和挑战
目录
相关文章推荐
51好读  ›  专栏  ›  计算机视觉深度学习和自动驾驶

最新综述!3D Gaussian Splatting

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

正文

点击下方 卡片 ,关注 「计算机视觉工坊」 公众号
选择 星标 ,干货第一时间送达

添加小助理:dddvision,备注:方向+学校/公司+昵称,拉你入群。文末附行业细分群

扫描下方二维码,加入 3D视觉知识星球 ,星球内凝聚了众多3D视觉实战问题,以及各个模块的学习资料: 近20门视频课程(星球成员免费学习) 最新顶会论文 计算机视觉书籍 优质3D视觉算法源码 等。想要入门3D视觉、做项目、搞科研,欢迎扫码加入!

读者个人理解

本文对Gaussian Splatting技术进行了深入的探讨,总结了该技术在3D重建和视图合成领域的最新进展和应用情况。具体来说,文章首先回顾了Gaussian Splatting技术的基本原理和优势,然后详细讨论了该技术在处理动态和可变形对象、文本生成、优化和速度、渲染和阴影方法以及压缩等方面的最新进展。同时,文章也分析了该技术的挑战,如计算复杂性、内存使用、边缘伪影以及性能与准确性的权衡等。最后,文章总结了Gaussian Splatting技术的应用领域,并展望了该技术的未来发展方向。

3D重建与新视角合成

3D数据的表示

  • 传统方式 :包括点云、网格和体素。这些传统的3D数据表示方式在计算机图形学和计算机视觉中很常见。
  • 新型方式 :包括神经网络/多层感知机(MLP)和Gaussian Splats。这些新型表示方式利用深度学习技术,能够更好地捕捉和表达3D对象或场景的细节。

数据集

  • Gaussian Splatting模型通常需要包含多个姿态的稠密图像场景。这些场景的相机姿态通常是未知的,需要通过结构光(SFM)方法使用COLMAP库计算出来。
  • 原始Gaussian Splatting论文使用了Mip-NeRF360、Tanks&Temples和Deep Blending等数据集,这些数据集包含了不同场景的多张图片,可以用来训练和测试Gaussian Splatting模型。

3D重建和NVS技术

3D重建和视点合成技术主要经历了传统算法、深度学习算法以及神经辐射场(NeRF)和Gaussian Splatting等方法的发展。这些方法通过学习图像中的3D几何和外观信息,提高了重建和视点合成的效率和质量。

3DGS的基本原理和核心要素

Gaussian Splatting使用大量3D高斯或粒子来表示3D场景,每个粒子都带有位置、方向、缩放、不透明度和颜色信息。为了渲染这些粒子,它们首先转换到2D空间,然后以最优的方式进行组织。

图4展示了Gaussian Splatting算法的架构。在原始算法中,需要执行以下步骤:

  1. SfM :使用SfM从图像中计算出点云,使用COLMAP库进行处理。
  2. 转换为Gaussian Splats :将每个点转换为Gaussian Splats,以便进行栅格化处理。
  3. 训练 :通过随机梯度下降等类似神经网络的训练方法来优化Gaussian Splats的参数,以达到高质量的表示。
  4. 可微分Gaussian栅格化 :使用可微分Gaussian栅格化方法将Gaussian Splats投影到2D图像中,并按照深度进行排序,然后通过正向和反向传播来优化每个像素。

数学表示与渲染过程

这一部分详细介绍了Gaussian Splatting技术中使用的数学表示方法以及渲染过程。Gaussian Splatting是一种用于3D重建和视点合成的技术,其核心思想是通过使用大量的3D高斯函数(称为Splats)来表示3D场景,并通过这些Splats来生成新的视图。

  1. 3D高斯的参数化
  • 均值 :一个三维向量,表示高斯函数的中心位置。
  • 协方差 :一个3x3矩阵,描述了高斯函数的形状,决定了高斯函数在空间中的扩散程度。
  • 颜色 :一个三维向量,表示高斯函数的颜色。
  • 透明度 :一个标量,表示高斯函数对渲染图像的影响程度。
  • 高斯函数的投影
    • 将3D高斯函数的均值 通过透视投影转换到摄像机坐标系中,得到
    • 转换到像素坐标系中,得到
    • 为了近似地计算高斯函数的协方差 在像素空间中的转换,使用泰勒级数的一阶展开。
  • 高斯函数的深度合成
    • 对于每个像素 ,计算每个参与合成的高斯函数 的权重 ,即 乘以每个高斯函数的透明度 乘以其贡献的叠加。
    • 透明度 的计算基于高斯函数在像素中心与高斯函数中心的偏移量
    • 采用在线方式计算 ,即从前景高斯函数到背景高斯函数的顺序计算。

    总的来说,这一部分内容详细阐述了Gaussian Splatting中使用的数学表示方法以及渲染过程,是理解Gaussian Splatting技术的基础。

    质量评估矩阵

    这一部分介绍了Gaussian Splatting中常用的质量评估指标,用于评估生成的图像质量并与真实图像进行比较。这些评估指标包括峰值信噪比(PSNR)、结构相似性指数(SSIM)和感知图像补丁相似度(LPIPS)。

    1. 峰值信噪比(PSNR):
    • PSNR是一个无参考的质量评估指标,用于比较两个图像的质量。
    • 计算公式为:
    • 其中, 是图像 中的最大像素值, 是图像 的像素值与真实图像的像素值之间的均方误差。
  • 结构相似性指数(SSIM):
    • SSIM是一个全参考的质量评估指标,用于比较两个图像的结构相似性。
    • 计算公式为:
    • 其中, 分别是图像 的局部统计平均值, 分别是图像 的局部统计方差, 是图像 的局部协方差, 是常数。
  • 感知图像补丁相似度(LPIPS):
    • LPIPS是一个全参考的质量评估指标,它使用学习的卷积特征来评估两个图像的相似度。
    • 计算公式为:
    • 其中, 分别是原始图像 和生成图像 在特征层 中的特征值, 分别是特征层 的宽度和高度。

    这些质量评估指标可以帮助研究人员和开发者评估Gaussian Splatting技术的性能,并指导算法的优化和改进。

    最新进展

    这些进展涵盖了从提高渲染效率和质量到扩展应用领域的各个方面。具体来说,这些进展可以分为以下几个方面:

    动态场景和可变形物体建模方面的进展

    主要讨论了Gaussian Splatting技术在动态场景和可变形物体建模方面的进展。这一部分着重于通过修改Gaussian Splatting的原始表示,以更好地捕捉动态变化和形变。具体来说,这一部分包括以下几个方面:

    1. 运动和跟踪
    • 动态场景:在动态场景中,所有参数的3D高斯矩阵都依赖于输入图像,以捕获动态场景。然而,为了捕获动态,一些参数(如位置)与时间或时间步有关。例如,位置可以通过下一个帧在时间上连续更新。
    • 动态3D高斯:一些方法直接扩展原始Gaussian Splatting表示,其中每个点绑定到运动系数,这些系数强制共享基轨迹。这允许独立控制场景运动,产生新的运动组合。
  • 表达或情绪变化和可编辑的数字人像
    • 表达变化:一些方法使用稀疏控制点来学习紧凑的6DoF变换基,然后使用隐式变换来表示形变。例如,Huang等人使用3D高斯函数和变换MLP来捕捉表达变化。
    • 可编辑的数字人像:这些方法允许用户通过简单的控制信号实时处理场景中的元素,无需预先计算控制信号。例如,Yu等人提出的Controllable Gaussian Splatting (CoGS) 方法。
  • 非刚性或可变形物体
    • 3D高斯和形变场:一些方法使用3D高斯函数和形变场来表示动态场景中的变形物体。例如,Yang等人提出的Deformable 3D Gaussians方法。
    • 神经参数化高斯:一些方法使用神经参数化高斯来捕捉非刚性物体的运动。例如,Das等人提出的NPGs方法。

    如何结合扩散模型

    主要讨论了Gaussian Splatting技术如何结合扩散模型,以从文本描述中生成3D对象。这一部分主要探讨了以下几个方面:

    1. 文本生成 :这一方向关注于如何使用Gaussian Splatting技术来生成3D对象,这些对象可以从文本描述中生成。具体方法包括使用扩散模型来生成初始3D点云,然后使用Gaussian Splatting将点云转换为高斯球,最后将高斯球渲染为3D图像。
    2. 去噪和优化 :这一方向关注于如何使用Gaussian Splatting技术来提高3D对象生成的质量。具体方法包括使用扩散模型来指导Gaussian Splatting的优化过程,以及使用新的去噪技术来提高生成质量。

    总体而言,主要阐述了如何将Gaussian Splatting技术与其他深度学习方法相结合,以实现从文本描述中生成3D对象的目标。这种结合充分利用了Gaussian Splatting在3D建模方面的优势,以及扩散模型在生成高质量3D对象方面的能力。

    具体来说,扩散模型是一种能够从噪声输入生成图像的神经网络。通过与Gaussian Splatting相结合,可以生成具有细节的高质量3D对象。例如,Li等人提出的GaussianDiffusion框架,通过将Gaussian Splatting与Langevin动力学扩散模型相结合,实现了更高质量的3D对象生成。

    此外,一些方法还探索了如何优化扩散模型,以提高生成质量。例如,Yang等人提出的统一框架,通过优化去噪得分,提高了扩散模型在3D对象生成方面的性能。总的来说,主要阐述了了如何通过结合Gaussian Splatting技术和扩散模型,实现从文本描述中生成3D对象的目标,从而拓展了Gaussian Splatting的应用范围。

    在优化和加速方面的进展

    详细阐述了Gaussian Splatting技术在优化和加速方面的进展。这一部分主要关注如何提高Gaussian Splatting的训练和推理速度,从而使得其在实时应用中更加可行。具体来说,这一部分包括以下几个方面:

    1. 优化和压缩 :这一方向着重于如何通过减少Gaussian Splatting中的高斯点数量和压缩几何属性,来减少内存使用并提高渲染速度。具体方法包括使用学习到的掩码策略来减少高斯点数量,以及使用编码本和网格表示来压缩几何属性。
    2. 快速训练和推理 :这一方向关注于如何使用Gaussian Splatting技术来提高训练和推理速度。具体方法包括使用结构化噪声和变分Gaussian Splatting模型来减少收敛问题和去噪问题,以及使用网格表示和变分模型来提高渲染速度。

    总体而言,主要描述了通过减少高斯点数量、压缩几何属性和使用高效的数据结构,来提高Gaussian Splatting的训练和推理速度的方法。这些进展使得Gaussian Splatting技术在实时应用中更加可行,并有望推动其在各种领域的应用。

    具体来说,一些研究通过使用学习到的掩码策略来减少高斯点数量,从而降低了内存使用和渲染时间。例如,Lee等人提出的Compact 3D Gaussian Representation框架。此外,一些研究还探索了如何使用网格表示和变分模型来提高渲染速度。例如,Navaneet等人提出的基于K-means的向量量化方法。

    在渲染和着色方法方面的进展

    主要阐述了Gaussian Splatting技术在渲染和着色方法方面的进展。这一部分主要关注如何通过修改Gaussian Splatting的原始表示和优化方法,来提高渲染质量和速度。具体来说,这一部分包括以下几个方面:

    1. 渲染和着色 :这一方向着重于如何改进Gaussian Splatting的渲染和着色方法,以提高渲染质量和速度。具体方法包括添加新的滤波器、使用更复杂的着色模型以及通过混合3D高斯函数来实现更逼真的渲染效果。
    2. 实时渲染 :这一方向关注于如何使用Gaussian Splatting技术来实现实时渲染。具体方法包括使用更高效的着色模型、更快速的渲染算法以及通过混合3D高斯函数来实现更逼真的渲染效果。
    3. 物理基础渲染 :这一方向关注于如何使用Gaussian Splatting技术来实现物理基础的渲染效果。具体方法包括使用不同的着色模型和更高效的渲染算法来实现更逼真的渲染效果。

    总体而言,主要描述了通过修改Gaussian Splatting的原始表示和优化方法,来提高渲染质量和速度的各种方法。这些进展使得Gaussian Splatting技术在实时应用中更加可行,并有望推动其在各种领域的应用。

    具体来说,一些研究通过添加新的滤波器(如3D平滑滤波器和2D Mip滤波器)来改善渲染质量。例如,Yu等人提出的Mip-Splatting方法。此外,一些研究还探索了如何使用更复杂的着色模型(如反射率模型)来实现物理基础的渲染效果。例如,Gao等人提出的Relightable 3D Gaussian方法。

    在压缩方面的进展

    在文档的 IV. FUNCTIONAL ADVANCEMENTS 部分中, E. COMPRESSION 详细解释了Gaussian Splatting技术在压缩方面的进展。这一部分主要关注如何通过减少Gaussian Splatting中的高斯点数量和压缩几何属性,来减少存储需求并提高渲染速度。具体来说,这一部分包括以下几个方面:

    1. 存储压缩 :这一方向着重于如何通过减少Gaussian Splatting中的高斯点数量和压缩几何属性,来减少存储需求。具体方法包括使用学习到的掩码策略来减少高斯点数量,以及使用编码本和网格表示来压缩几何属性。
    2. 快速渲染 :这一方向关注于如何通过减少高斯点数量和压缩几何属性,来提高渲染速度。具体方法包括使用结构化噪声和变分Gaussian Splatting模型来减少收敛问题和去噪问题,以及使用网格表示和变分模型来提高渲染速度。

    总体而言,描述了通过减少高斯点数量、压缩几何属性和使用高效的数据结构,来减少存储需求并提高渲染速度的方法。这些进展使得Gaussian Splatting技术在实时应用中更加可行,并有望推动其在各种领域的应用。

    具体来说,一些研究通过使用学习到的掩码策略来减少高斯点数量,从而降低了存储需求和渲染时间。例如,Fan等人提出的LightGaussian方法。此外,一些研究还探索了如何使用编码本和网格表示来压缩几何属性,从而减少了存储需求并提高了渲染速度。例如,Navaneet等人提出的基于K-means的向量量化方法。

    应用案例

    详细描述了Gaussian Splatting技术在不同领域的应用案例。这一部分主要关注Gaussian Splatting技术在数字人像、SLAM(同步定位与映射)和网格提取与物理仿真等方面的应用。具体来说,这一部分包括以下几个方面:

    1. 数字人像 :这一方向关注于如何使用Gaussian Splatting技术来创建虚拟数字人像。具体方法包括使用Gaussian Splatting来捕捉人类从少数视角的姿态,并创建3D模型。例如,Zielonka等人使用Gaussian Splatting来表示人体,实现了实时渲染。Jena等人扩展了底层的SMPL几何结构,可以将其皮肤放置在任意位置,以模拟人体变形。Lei等人提出了GART方法,使用混合的移动3D高斯来显式近似变形主体的形状和外观。
    1. SLAM(同步定位与映射) :这一方向关注于如何使用Gaussian Splatting技术来实现实时定位和映射。具体方法包括使用Gaussian Splatting来表示3D场景,并通过不同的优化方法来实时定位和映射。例如,Yan等人提出了GS-SLAM方法,利用Gaussian Splatting来表示3D场景,并通过不同的优化方法实现实时定位和映射。Keetha等人提出了SplaTAM方法,实现了高保真度的重建。
    1. 网格提取与物理仿真 :这一方向关注于如何使用Gaussian Splatting技术来进行网格提取和物理仿真。具体方法包括使用Gaussian Splatting来表示3D场景,并通过不同的优化方法来提取网格和进行物理仿真。例如,Xie等人提出了一种方法,使用连续力学和偏微分方程来驱动Gaussian kernels的演化,实现运动生成,同时生成逼真的渲染效果。Guedon等人提出了一种方法,通过正则化项鼓励高斯与场景表面的对齐,然后使用泊松重建算法进行快速和可扩展的网格提取。






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