写在前面&笔者的个人理解
三维 Gaussian splatting(3DGS)是近年来在显式辐射场和计算机图形学领域出现的一种变革性技术。这种创新方法的特点是使用了数百万个3D高斯,这与神经辐射场(NeRF)方法有很大的不同,后者主要使用隐式的基于坐标的模型将空间坐标映射到像素值。3D GS凭借其明确的场景表示和可微分的渲染算法,不仅保证了实时渲染能力,而且引入了前所未有的控制和场景编辑水平。这将3D GS定位为下一代3D重建和表示的潜在游戏规则改变者。为此我们首次系统地概述了3D GS领域的最新发展和关键贡献。首先详细探索了3D GS出现的基本原理和公式,为理解其意义奠定了基础。进而深度讨论3D GS的实用性。通过促进实时性能,3D GS开辟了大量应用,从虚拟现实到交互式媒体等等。此外,还对领先的3D GS模型进行了比较分析,并在各种基准任务中进行了评估,以突出其性能和实用性。该综述的结论是确定了当前的挑战,并提出了该领域未来研究的潜在途径。通过这项调查,我们旨在为新来者和经验丰富的研究人员提供宝贵的资源,促进在适用和明确的辐射场表示方面的进一步探索和进步。
为了帮助读者跟上3D GS的快速发展,我们提供了首个关于3D GS的调查综述,我们系统而及时地收集了有关该主题的最重要的最新文献。鉴于3D GS是最近的一项创新(图1),我们的重点是自其推出以来出现的各种发展和贡献。3D GS的相关工作主要来源于arxiv。文章的主要目标是对3D GS的初步发展、理论基础和新兴应用进行全面和最新的分析,突出其在该领域的革命性潜力。承认3D GS的新生但快速发展的性质,本次调查还旨在确定和讨论该领域的当前挑战和未来前景。我们提供了对3D GS可能促进的正在进行的研究方向和潜在进展的见解。希望给大家的不仅仅是提供一个学术综述,而是促进这一领域的进一步研究和创新。本文的文章结构如图2所示:
背景介绍
本节首先提供辐射场的简要公式,辐射场是场景渲染中的一个关键概念。它概述了两种主要类型的辐射场表示:隐式如NeRF,它使用神经网络进行直接但计算要求高的渲染;和显式的比如网格,它采用离散结构来更快地访问,但代价是更高的内存使用率。下文进一步建立了与相关领域的联系,如场景重建和渲染。
问题定义
辐射场:辐射场是三维空间中光分布的表示,它捕捉光如何与环境中的表面和材料相互作用。从数学上讲,辐射场可以描述为函数,其中将空间中的一个点和由球面坐标指定的方向映射到非负辐射值。辐射场可以通过隐式或显式表示进行封装,每种表示都具有特定的场景表示和渲染优势。
隐式辐射场:隐式辐射场表示场景中的光分布,而不明确定义场景的几何体。在深度学习时代,它经常使用神经网络来学习连续的体积场景表示。最突出的例子是NeRF。在NeRF中,MLP网络用于将一组空间坐标和观看方向映射到颜色和密度值。任何点的辐射度都不是明确存储的,而是通过查询神经网络实时计算的。因此,函数可以写成:
这种格式允许对复杂场景进行可微分和紧凑的表示,尽管由于体积光线行进,渲染过程中的计算负载往往很高。
显式辐射场:相反,显式辐射场直接表示离散空间结构中的光分布,例如体素网格或点集。该结构中的每个元素存储其在空间中的相应位置的辐射信息。这种方法允许更直接且通常更快地访问辐射数据,但代价是更高的内存使用率和潜在的更低分辨率。显式辐射场表示的一般形式可以写成:
其中DataStructure可以是网格或点云,是基于观看方向修改辐射的函数。
两全其美的3D Gaussian Splatting:3D GS表示从隐式辐射场到显式辐射场的转变。它通过利用3D高斯作为灵活高效的表示,利用了这两种方法的优势。这些高斯系数经过优化,可以准确地表示场景,结合了基于神经网络的优化和显式结构化数据存储的优点。这种混合方法旨在通过更快的训练和实时性能实现高质量渲染,特别是对于复杂的场景和高分辨率输出。3D高斯表示公式化为:
上下文和术语
许多技术和研究学科与3D GS有着密切的关系,下文将对其进行简要描述。
场景重建与渲染:粗略地说,场景重建涉及从图像或其他数据的集合创建场景的3D模型。渲染是一个更具体的术语,专注于将计算机可读信息(例如,场景中的3D对象)转换为基于像素的图像。早期的技术基于光场生成逼真的图像。structure-from-motion(SfM)和多视图立体(MVS)算法通过从图像序列估计3D结构进一步推进了这一领域。这些历史方法为更复杂的场景重建和渲染技术奠定了基础。
神经渲染与辐射场:神经渲染将深度学习与传统图形技术相结合,以创建照片级真实感图像。早期的尝试使用卷积神经网络(CNNs)来估计混合权重或纹理空间解决方案。辐射场表示一个函数,该函数描述了通过空间中每个点在每个方向上传播的光量。NeRFs使用神经网络对辐射场进行建模,从而实现详细逼真的场景渲染。
体积表示和Ray-Marching:体积表示不仅将目标和场景建模为曲面,还将其建模为填充了材质或空白空间的体积。这种方法可以更准确地渲染雾、烟或半透明材料等现象。Ray-Marching是一种与体积表示一起使用的技术,通过增量跟踪穿过体积的光的路径来渲染图像。NeRF分享了体积射线行进的相同精神,并引入了重要性采样和位置编码来提高合成图像的质量。在提供高质量结果的同时,体积射线行进在计算上是昂贵的,这促使人们寻找更有效的方法,如3D GS。
基于点的渲染:基于点的渲染是一种使用点而不是传统多边形来可视化3D场景的技术。这种方法对于渲染复杂、非结构化或稀疏的几何数据特别有效。点可以用额外的属性来增强,如可学习的神经描述符,并有效地渲染,但这种方法可能会遇到诸如渲染中的漏洞或混叠效应等问题。3D GS通过使用各向异性高斯来扩展这一概念,以实现场景的更连续和更有凝聚力的表示。
显式辐射场的3D高斯
3D GS在不依赖神经组件的情况下,在实时、高分辨率图像渲染方面取得了突破。
学习得到的3D高斯用于新视角合成
考虑一个由(数百万)优化的3D高斯表示的场景。目标是根据指定的相机姿势生成图像。回想一下,NeRF是通过计算要求很高的体积射线行进来完成这项任务的,对每个像素的3D空间点进行采样。这种模式难以实现高分辨率图像合成,无法实现实时渲染速度。与此形成鲜明对比的是,3D GS首先将这些3D高斯投影到基于像素的图像平面上,这一过程被称为“splatting”(图3a)。然后,3D GS对这些高斯进行排序,并计算每个像素的值。如图所示,NeRF和3D GS的渲染可以被视为彼此的逆过程。在接下来的内容中,我们从3D高斯的定义开始,这是3D GS中场景表示的最小元素。接下来描述如何将这些3D高斯用于可微分渲染。最后介绍了3D GS中使用的加速技术,这是快速渲染的关键。
三维高斯的性质:三维高斯的特征是其中心(位置)μ、不透明度α、三维协方差矩阵∑和颜色c。对于与视图相关的外观,c由球面谐波表示。所有属性都是可学习的,并通过反向传播进行优化。
Frustum Culling:给定指定的相机位姿,此步骤将确定哪些3D高斯位于相机的平截头体之外。通过这样做,给定视图之外的3D高斯将不会参与后续计算,从而节省计算资源。
Splatting:**在该步骤中,3D高斯(椭球)被投影到2D图像空间(椭球)中用于渲染。给定观看变换W和3D协方差矩阵∑,投影的2D协方差矩阵∑′使用以下公式计算:
其中J是投影变换的仿射近似的Jacobian矩阵。
按像素渲染:在深入研究3D GS的最终版本之前,我们首先详细介绍了其更简单的形式,以深入了解其工作机制。3D GS利用多种技术来促进并行计算。给定像素x的位置,其到所有重叠高斯的距离,即这些高斯的深度,可以通过观看变换W来计算,形成高斯N的排序列表。然后,采用阿尔法合成来计算该像素的最终颜色:
其中是学习的颜色,最终不透明度是学习的不透明度和高斯值的乘积:
其中x′和μ是投影空间中的坐标。考虑到生成所需的排序列表很难并行化,因此与NeRF相比,所描述的渲染过程可能会更慢,这是一个合理的担忧。事实上,这种担忧是有道理的;当使用这种简单的逐像素方法时,渲染速度可能会受到显著影响。为了实现实时渲染,3DGS做出了一些让步来适应并行计算。
Tiles (Patches):为了避免为每个像素推导高斯系数的成本计算,3D GS将精度从像素级转移到patch级细节。具体来说,3D GS最初将图像划分为多个不重叠的块,在原始论文中称为“tiles”。图3b提供了tiles的图示。每个瓦片包括16×16个像素。3D GS进一步确定哪些tiles与这些投影的高斯图相交。假设投影的高斯可能覆盖多个tiles,逻辑方法包括复制高斯,为每个副本分配相关tiles的标识符(即tile ID)。
并行渲染:在复制之后,3D GS将各个tile ID与从每个高斯的视图变换获得的深度值相组合。这生成字节的未排序列表,其中高位表示tile ID,低位表示深度。通过这样做,排序后的列表可以直接用于渲染(即alpha合成)。图3c和图3d提供了这些概念的视觉演示。值得强调的是,渲染每个tile和像素都是独立发生的,这使得这个过程非常适合并行计算。另一个好处是,每个tile的像素都可以访问公共共享内存,并保持统一的读取序列,从而能够以更高的效率并行执行alpha合成。在原始论文的官方实现中,该框架将tile和像素的处理分别视为类似于CUDA编程架构中的块和线程。
简而言之,3D GS在前向处理阶段引入了几种近似,以提高计算效率,同时保持高标准的图像合成质量。
3D Gaussian Splatting的优化
3D GS的核心是一个优化过程,旨在构建大量的3D高斯集合,准确捕捉场景的本质,从而促进自由视点渲染。一方面,3D高斯的特性应该通过可微分渲染来优化,以适应给定场景的纹理。另一方面,能够很好地表示给定场景的3D高斯数是预先未知的。一个很有前途的途径是让神经网络自动学习3D高斯密度。我们将介绍如何优化每个高斯的性质以及如何控制高斯的密度。这两个过程在优化工作流程中是交错的。由于在优化过程中有许多手动设置的超参数,为了清晰起见,我们省略了大多数超参数的符号。
参数优化
损失函数:一旦图像的合成完成,就将损失计算为渲染图像和GT的差:
3D-GS的损失函数与NeRFs的损失函数略有不同。由于耗时的ray-marching,NeRF通常在像素级而不是图像级进行计算。
参数更新:3D高斯的大多数特性可以直接通过反向传播进行优化。需要注意的是,直接优化协方差矩阵∑会导致非正半定矩阵,这不符合通常与协方差矩阵相关的物理解释。为了避免这个问题,3D GS选择优化四元数q和3D矢量s。q和s分别表示旋转和缩放。这种方法允许协方差矩阵∑被重构如下:
密度控制
初始化:3D GS从SfM或随机初始化的稀疏点的初始集合开始。然后,采用点加密和修剪来控制三维高斯的密度。
点密集化:在点密集化阶段,3D GS自适应地增加高斯密度,以更好地捕捉场景的细节。这一过程特别关注几何特征缺失的区域或高斯分布过于分散的区域。密集化在一定次数的迭代之后执行,目标是表现出大的视图空间位置梯度(即,高于特定阈值)的高斯。它涉及在重建不足的区域克隆小高斯,或在重建过度的区域分裂大高斯。对于克隆,将创建高斯的副本,并将其移向位置梯度。对于分裂,用两个较小的高斯代替一个较大的高斯,将它们的规模缩小一个特定的因子。该步骤寻求高斯在3D空间中的最佳分布和表示,从而提高重建的整体质量。
点修剪:点修剪阶段涉及去除多余或影响较小的高斯,在某种程度上可以被视为一个正则化过程。这一步骤是通过消除几乎透明的高斯(α低于指定阈值)和在世界空间或视图空间中过大的高斯来执行的。此外,为了防止输入相机附近高斯密度的不合理增加,在一定次数的迭代后,将高斯的阿尔法值设置为接近零。这允许控制必要的高斯密度的增加,同时能够淘汰多余的高斯。该过程不仅有助于节省计算资源,还确保模型中的高斯对场景的表示保持精确和有效。
应用领域和任务
3D GS的变革潜力远远超出了其理论和计算的进步。本节深入探讨3D GS正在产生重大影响的各种开创性应用领域,如机器人、场景重建和表示、人工智能生成的内容、自动驾驶,甚至其他科学学科。3D GS的应用展示了其多功能性和革命性的潜力。在这里,我们概述了一些最著名的应用领域,深入了解3D GS如何在每个领域形成新的前沿。
SLAM
SLAM是机器人和自主系统的核心计算问题。它涉及机器人或设备在未知环境中理解其位置的挑战,同时建图环境布局。SLAM在各种应用中至关重要,包括自动驾驶汽车、增强现实和机器人导航。SLAM的核心是创建未知环境的地图,并实时确定设备在该地图上的位置。因此,SLAM对计算密集型场景表示技术提出了巨大的挑战,同时也是3D GS的良好试验台。
3D GS作为一种创新的场景表示方法进入SLAM领域。传统的SLAM系统通常使用点/曲面云或体素网格来表示环境。相比之下,3D GS利用各向异性高斯来更好地表示环境。这种表示提供了几个好处:1)效率:自适应地控制3D高斯的密度,以便紧凑地表示空间数据,减少计算负载。2) 准确性:各向异性高斯可以进行更详细、更准确的环境建模,尤其适用于复杂或动态变化的场景。3) 适应性:3D GS可以适应各种规模和复杂的环境,使其适用于不同的SLAM应用。一些创新研究在SLAM中使用了3D高斯飞溅,展示了这种范式的潜力和多功能性。
动态场景建模
动态场景建模是指捕捉和表示随时间变化的场景的三维结构和外观的过程。这涉及到创建一个数字模型,该模型准确地反映场景中对象的几何体、运动和视觉方面。动态场景建模在各种应用中至关重要,包括虚拟和增强现实、3D动画和计算机视觉。4D高斯散射(4D GS)将3D GS的概念扩展到动态场景。它结合了时间维度,允许对随时间变化的场景进行表示和渲染。这种范式在实时渲染动态场景的同时保持高质量的视觉输出方面提供了显著的改进。
AIGC
AIGC是指由人工智能系统自主创建或显著改变的数字内容,特别是在计算机视觉、自然语言处理和机器学习领域。AIGC的特点是能够模拟、扩展或增强人工生成的内容,实现从逼真图像合成到动态叙事创作的应用。AIGC的意义在于其在各个领域的变革潜力,包括娱乐、教育和技术发展。它是不断发展的数字内容创作格局中的一个关键元素,为传统方法提供了可扩展、可定制且通常更高效的替代方案。
3D GS的这种明确特性有助于实现实时渲染功能以及前所未有的控制和编辑水平,使其与AIGC应用程序高度相关。3D GS的显式场景表示和可微分渲染算法完全符合AIGC生成高保真、实时和可编辑内容的要求,这对虚拟现实、交互式媒体等领域的应用至关重要。
自动驾驶
自动驾驶旨在让车辆在没有人为干预的情况下导航和操作。这些车辆配备了一套传感器,包括相机、LiDAR以及雷达,并结合了先进的算法、机器学习模型和强大的计算能力。中心目标是感知环境,做出明智的决策,安全高效地执行机动。自动驾驶对交通运输具有变革潜力,提供了关键好处,如通过减少人为失误提高道路安全性,增强无法驾驶者的机动性,以及优化交通流量,从而减少拥堵和环境影响。
自动驾驶汽车需要感知和解读周围环境,才能安全行驶。这包括实时重构驾驶场景,准确识别静态和动态物体,并了解它们的空间关系和运动。在动态驾驶场景中,由于其他车辆、行人或动物等移动物体,环境不断变化。实时准确地重建这些场景对于安全导航至关重要,但由于所涉及元素的复杂性和可变性,这是一项挑战。在自动驾驶中,3D GS可以用于通过将数据点(例如从LiDAR等传感器获得的数据点)混合成内聚和连续的表示来重建场景。这对于处理不同密度的数据点和确保场景中静态背景和动态目标的平滑准确重建特别有用。到目前为止,很少有作品使用3D高斯对动态驾驶/街道场景进行建模,并且与现有方法相比,在场景重建方面表现出优异的性能。
性能对比
本节通过展示我们之前讨论的几种3D GS算法的性能来提供更多的经验证据。3D GS在许多任务中的不同应用,加上每个任务的定制算法设计,使得在单个任务或数据集中对所有3D GS算法进行统一比较变得不切实际。因此,我们在3D GS领域中选择了三个具有代表性的任务进行深入的性能评估。性能主要来源于原始论文,除非另有说明。
定位性能
静态场景渲染性能
动态场景渲染性能
驾驶场景渲染性能
数字人体性能
未来研究方向
尽管近几个月来3D GS的后续工作取得了显著进展,但我们认为仍存在一些有待克服的挑战。
- 数据高效的3D GS解决方案:从有限的数据点生成新颖的视图和重建场景是非常令人感兴趣的,特别是因为它们有可能以最小的输入增强真实感和用户体验。最近的进展已经探索了使用深度信息、密集概率分布和像素到高斯映射来促进这种能力。然而,仍然迫切需要在这一领域进行进一步探索。此外,3D GS的一个显著问题是在观测数据不足的地区出现伪影。这一挑战是辐射场渲染中的一个普遍限制,因为稀疏数据往往会导致重建不准确。因此,在这些稀疏区域中开发新的数据插值或积分方法代表了未来研究的一条很有前途的途径。
- 内存高效的3D GS解决方案:虽然3D GS展示了非凡的能力,但其可扩展性带来了重大挑战,尤其是当与基于NeRF的方法并置时。后者得益于仅存储学习的MLP的参数的简单性。在大规模场景管理的背景下,这种可扩展性问题变得越来越严重,其中计算和内存需求显著增加。因此,迫切需要在训练阶段和模型存储期间优化内存利用率。探索更高效的数据结构和研究先进的压缩技术是解决这些限制的有希望的途径。
- 高级渲染算法:目前3D GS的渲染管道是向前的,可以进一步优化。例如,简单的可见性算法可能导致高斯深度/混合顺序的剧烈切换。这突出了未来研究的一个重要机会:实现更先进的渲染算法。这些改进的方法应旨在更准确地模拟给定场景中光和材料特性的复杂相互作用。一种有前景的方法可能涉及将传统计算机图形学中的既定原理同化和适应到3D GS的特定环境中。在这方面值得注意的是,正在进行的将增强渲染技术或混合模型集成到3D GS当前计算框架中的努力。此外,逆渲染及其应用的探索为研究提供了肥沃的土壤。
- 优化和正则化:各向异性高斯虽然有利于表示复杂的几何形状,但会产生视觉伪像。例如,那些大的3D高斯,尤其是在具有依赖于视图的外观的区域,可能会导致弹出的伪影,视觉元素突然出现或消失,破坏沉浸感。在3D GS的正则化和优化方面有相当大的探索潜力。引入抗锯齿可以缓解高斯深度和混合顺序的突然变化。优化算法的增强可能会更好地控制空间中的高斯系数。此外,将正则化纳入优化过程可以加速收敛、平滑视觉噪声或提高图像质量。此外,如此大量的超参数影响了3D GS的泛化,这急需解决方案。
- 网格重建中的3D高斯:3D GS在网格重建中的潜力及其在体积和表面表示谱中的位置尚待充分探索。迫切需要研究高斯基元如何适用于网格重建任务。这一探索可以弥合体积绘制和传统基于表面的方法之间的差距,为新的绘制技术和应用提供见解。
- 赋予3D GS更多可能性:尽管3D GS具有巨大的潜力,但3D GS的全部应用范围在很大程度上仍未开发。一个很有前途的探索途径是用额外的属性来增强3D高斯,例如为特定应用量身定制的语言和物理属性。此外,最近的研究已经开始揭示3D GS在几个领域的能力,例如,相机姿态估计、手-物体相互作用的捕捉和不确定性的量化。这些初步发现为跨学科学者进一步探索3D GS提供了重要机会。
结论
据我们所知,这篇综述首次全面概述了3D GS,这是一项革命性的显式辐射场和计算机图形学技术。它描绘了传统NeRF方法的范式转变,突出了3D GS在实时渲染和增强可控性方面的优势。我们的详细分析证明了3D GS在实际应用中的优势,特别是那些需要实时性能的应用。我们提供了对未来研究方向和该领域尚未解决的挑战的见解。总的来说,3D GS是一项变革性技术,有望对3D重建和表示的未来发展产生重大影响。这项调查旨在作为一项基础资源,推动这一快速发展领域的进一步勘探和进展。
原文链接:https://mp.weixin.qq.com/s/jH4g4Cx87nPUYN8iKaKcBA