标题:2D Gaussian Splatting for Geometrically Accurate Radiance Fields

项目地址:https://github.com/hbb1/2d-gaussian-splatting


这篇文章介绍了一种新的几何精确的辐射场重建方法——2D Gaussian Splatting (2DGS)。以下从功 能、输入和输出三个方面分析这篇文章。视频讲解见B站【方矩实验室】

功能

2D Gaussian Splatting (2DGS) 方法

  1. 优化几何精确的辐射场重建:2DGS通过优化一组二维高斯面片来表示和重建复杂的真实世界场景。这些面片被紧密地对齐到表面。
  2. 实时渲染:使用2D Gaussian Splatting,能够实现高质量的新视角图像的实时渲染,且具有视角一致的法线和深度图。
  3. 细致的三角网格重建:提供 从优化的二维面片详细且无噪音的三角网格重建
  4. 正则化:引入深度失真 法线一致性正则化 项,以提高重建质量。
  5. 高效的训练和渲染速度:通过高效的训练速度和实时渲染能力,保持竞争力。

输入

  1. 多视角RGB图像:用于从不同视角捕捉的场景图像。
  2. 稀疏点云和相机位姿:用于初始化和监督优化过程。
  3. 深度图和法线图:用于增强几何重建的正则化项。

输出

  1. 新视角图像:高质量的、视角一致的重建图像。
  2. 深度图和法线图:精确的深度信息和法线信息,用于进一步的几何处理。
  3. 三角网格:从优化的二维高斯面片生成的详细且无噪音的三角网格,用于表示场景的几何结构。

  通过这些功能,2D Gaussian Splatting方法在高质量图像合成和几何重建方面展示了出色的性能,且在效率上也具有显著优势。这使得它在计算机视觉和图形学领域具有广泛的应用潜力。

一、摘要

  3D Gaussian Splatting (3DGS) 最近革新了辐射场重建,实现了高质量新视角合成和快速渲染速度。然而,由于3D高斯的多视图不一致性,3DGS无法准确表示表面。我们提出了2D Gaussian Splatting (2DGS),这是一种从多视图图像中建模和重建几何精确辐射场的新方法。关键思路是将3D体积压缩成一组2D定向平面高斯圆盘。与3D高斯不同,2D高斯在内在建模表面的同时提供了视图一致的几何形态。为了准确恢复薄表面并实现稳定优化,我们引入了一种利用射线-斑点交叉和光栅化的透视精确2D喷溅过程。此外,我们还结合了深度失真和法线一致性项,以进一步提高重建质量。我们证明了我们的可微分渲染器在保持竞争外观质量、快速训练速度和实时渲染的同时,允许无噪声和详细的几何重建

二、引言

  照片级真实感的新视角合成(NVS)和精确几何重建是计算机图形学和视觉领域的长期关键目标。最近,3D Gaussian Splatting (3DGS) [Kerbl et al. 2023] 作为一种隐式方法 [Barron et al. 2022a; Mildenhallet al. 2020] 和基于特征网格的表示方法 [Barron et al. 2023; Müller et al. 2022] 在NVS中崭露头角,因为其在高分辨率下的实时照片级NVS结果。3DGS迅速发展,已扩展到多个领域,包括抗锯齿渲染 [Yu et al.2024]、材料建模 [Jiang et al. 2023; Shi et al. 2023]、动态场景重建 [Yan et al. 2023] 以及可动画化身的创建 [Qian et al. 2023; Zielonka et al. 2023]。然而,由于3D高斯模型的体积辐射表示与表面纤细特性之间的冲突,3DGS在捕捉复杂几何结构方面仍然存在不足

  另一方面,早期的研究 [Pfister et al. 2000; Zwicker et al. 2001a,b] 表明surfels(表面元素)是复杂几何结构的有效表示。Surfels 通过形状和阴影属性在局部近似物体表面,可以从已知几何结构中导出。它们广泛应用于SLAM [Whelan et al. 2016] 和其他机器人任务 [Schöps et al. 2019] 作为高效的几何表示。后续进展 [Yifan et al. 2019] 将surfels纳入了可微分框架。然而,这些方法通常需要地面实况(GT)几何、深度传感器数据或在已知光照条件下操作。

  受这些工作的启发,我们提出了2D Gaussian Splatting,用于3D场景重建和新视角合成,结合了两者的优点,同时克服了它们的局限性。与3DGS不同,我们的方法使用2D高斯原语表示3D场景,每个原语定义一个定向椭圆盘。2D高斯相对于其3D对应物的显著优势在于渲染期间几何表示的准确性。具体而言,3DGS在像素射线与3D高斯交点处评估高斯值 [Keselman and Hebert 2022, 2023],这导致从不同视点渲染时深度不一致相反,我们的方法利用显式的射线-斑点交叉,结果是透视正确的喷溅,如图2所示,从而显著提高了重建质量。此外,2D高斯原语中固有的表面法线通过法线约束实现直接表面正则化。与基于surfels的模型 [Pfister et al. 2000; Yifan et al. 2019; Zwicker et al. 2001a] 相比,我们的2D高斯可以通过基于梯度的优化从未知几何中恢复。

  尽管我们的2D高斯方法在几何建模方面表现出色,但仅用光度损失进行优化可能会导致重建噪声,这源于3D重建任务固有的无约束特性 [Barron et al. 2022b; Yu et al. 2022b; Zhang et al. 2020]。为了增强重建并实现更平滑的表面,我们引入了两个正则化项:深度失真和法线一致性。深度失真项将2D原语集中在沿射线的紧密范围内,解决了渲染过程中忽略高斯之间距离的问题。法线一致性项最小化渲染法线图与渲染深度的梯度之间的差异,确保深度和法线定义的几何之间的对齐。结合这些正则化项与我们的2D高斯模型,使我们能够提取高度准确的表面网格,如图1:

在这里插入图片描述

图1. 2DGS: (a) 优化了一组2D定向盘来表示和重建复杂的真实世界场景,这些场景来自多视图RGB图像。这些优化后的2D盘与表面紧密对齐。 (b) 使用2D高斯喷溅,我们允许实时渲染具有视图一致法线和深度图的高质量新视图图像。 © 最后,我们的方法从优化后的2D盘中提供了详细且无噪声的三角网格重建。

  

  

深入分析解读

  • 1. (a) 作为表面元素的2D盘

    • 左上部分展示了不同视角下的彩色盘(Disk (color))和法线盘(Disk (normal))。

    • 这些2D盘被用来表示和重建场景中的表面元素,优化后与表面紧密对齐,确保了重建表面的准确性。

  • 2. (b) 2D高斯喷溅

    • 左下部分展示了辐射场(Radiance field)和表面法线(Surface normal)。

    • 使用2D高斯喷溅方法,能够实现高质量新视图图像的实时渲染,同时确保视图一致的线和深度图。这意味着可以从不同视角生成一致且精确的图像。

  • 3. (c ) 网格化

    • 右侧展示了从优化后的2D盘中生成的三角网格重建结果(Mesh)。

    • 重建的网格详细且无噪声,展示了我们的方法在生成高质量网格方面的能力。

  图1详细展示了我们的方法2DGS在重建复杂真实世界场景中的应用和效果。具体来说:

  • 通过优化一组2D定向盘,能够准确表示和重建场景表面。
  • 使用2D高斯喷溅方法,可以实现具有视图一致法线和深度图的高质量新视图图像的实时渲染。
  • 最终生成的三角网格详细且无噪声,展示了我们的方法在生成高质量重建结果方面的优势。

  这种方法不仅提高了重建的准确性和质量,还显著提升了渲染和重建的效率,适合实际应用中的复杂场景重建。总结一下,我们做出了以下贡献

  1. 我们提出了一种高效的可微分2D高斯渲染器,通过利用2D表面建模、射线-斑点交叉和体积集成,实现透视正确的喷溅。
  2. 引入了两个正则化损失,用于改进和无噪声的表面重建。
  3. 与其他显式表示相比,我们的方法在几何重建和NVS结果方面达到了最先进的水平
    在这里插入图片描述

图2. 3DGS和2DGS的比较。3DGS在从不同视角查看时使用不同的交叉平面进行值评估,导致不一致性。我们的2DGS提供了多视角一致的值评估。这张图展示了3D Gaussian Splatting (3DGS) 和 2D Gaussian Splatting (2DGS) 的工作原理和区别

  • 左图(3DGS):
    • 3DGS方法会选择一个交叉平面来计算高斯值,这个平面是射线与高斯体积交叉的地方。
    • 当从不同的视角观察时,所选择的交叉平面会不同,因此计算出来的高斯值会出现不一致。这不一致性会影响最终的渲染效果,使得图像的几何精确度不高。
  • 右图(2DGS):
    • 2DGS方法使用二维高斯圆盘,这些圆盘是平面的,并且紧贴物体表面。
    • 不论从哪个视角观察,这些圆盘在相同的位置进行计算,因此每个视角下的高斯值都是一致的。这种一致性可以保证图像的几何精确度更高,渲染效果更好。

总结起来, 2DGS方法通过将三维高斯体积压缩成二维高斯圆盘,解决了3DGS在多视图渲染时的几何不一致问题,使得生成的图像在多个视角下都能保持一致的高质量

三、相关工作

3.1新视角合成

  在NVS领域,特别是自从引入Neural Radiance Fields (NeRF) [Mildenhall et al. 2021]以来,取得了显著进展。NeRF采用多层感知机(MLP)来表示几何和视角相关的外观,通过体积渲染进行优化,提供了卓越的渲染质量。后续的NeRF开发进一步增强了其功能。例如,Mip-NeRF [Barron et al. 2021]和随后的工作[Barron et al. 2022a, 2023; Hu et al. 2023]解决了NeRF的抗锯齿问题。此外,NeRF的渲染效率通过技术如蒸馏[Reiser et al. 2021; Yu et al. 2021]和烘焙[Chen et al. 2023a; Hedman et al. 2021; Reiser et al. 2023;
Yariv et al. 2023]得到大幅提升。此外,NeRF的训练和表示能力得到了增强,使用了基于特征网格的场景表示[Chen et al. 2022, 2023c; Fridovich-Keil et al. 2022; Liu et al. 2020; Müller et al. 2022; Sun et al.2022a]。

  最近,3D Gaussian Splatting (3DGS) [Kerbl et al. 2023]出现,展示了令人印象深刻的实时NVS结果。这种方法迅速扩展到多个领域[Xie et al. 2023; Yan et al. 2023; Yu et al. 2024; Zielonka et al. 2023]。在这项工作中,我们提出将3D高斯“扁平化”为2D高斯原语,以更好地将其形状与物体表面对齐。结合两个新的正则化损失,我们的方法比3DGS更准确地重建表面,同时保留其高质量和实时渲染能力

3.2 3D重建

  多视图图像的3D重建一直是计算机视觉中的长期目标。基于多视图立体视觉的方法[Schönberger et al.2016; Yao et al. 2018; Yu and Gao 2020]依赖于包含特征匹配、深度预测和融合的模块化管道。相比之下,最近的神经方法[Niemeyer et al. 2020; Yariv et al. 2020]通过MLP[Mescheder et al. 2019; Park et al.2019]隐式地表示表面,训练后通过Marching Cube算法提取表面。进一步的进展[Oechsle et al. 2021;Wang et al. 2021; Yariv et al. 2021]将隐式表面与体积渲染结合,实现了从RGB图像中详细的表面重建。这些方法已通过附加的正则化扩展到大规模重建[Li et al. 2023; Yu et al. 2022a,b],以及高效的物体重建[Wang et al. 2023]。尽管取得了这些令人印象深刻的发展,大规模场景重建的效率仍然是一个挑战。例如,Neuralangelo [Li et al. 2023]需要128个GPU小时来重建Tanks and Temples数据集中的单个场景[Knapitsch et al. 2017]。在这项工作中,我们引入了2D高斯喷溅,一种显著加速重建过程的方法。它在速度上比以前的隐式神经表面表示快一个数量级,同时实现了相似或更好的结果

3.3 可微分基于点的图形

  可微分基于点的渲染[Aliev et al. 2020; Insafutdinov and Dosovitskiy 2018; Rückert et al. 2022; Wileset al. 2020; Yifan et al. 2019]由于其在表示复杂结构方面的效率和灵活性,得到了广泛的研究。特别是,NPBG 将点云特征光栅化到图像平面,然后利用卷积神经网络进行RGB图像预测。DSS 专注于在已知光照条件下优化多视图图像中的定向点云。Pulsar 引入了一种基于平铺的加速结构,以实现更高效的光栅化。最近,3DGS 优化了各向异性的3D高斯原语,展示了实时照片级NVS结果。尽管取得了这些进展,从非约束的多视图图像中使用基于点的表示仍然具有挑战性。在本文中,我们展示了使用2D高斯原语的详细表面重建。我们还强调了优化过程中附加正则化损失的关键作用,展示了它们对重建质量的显著影响

3.4 同期工作

  自从3DGS [Kerbl et al. 2023]引入以来,它迅速适应了多个领域。我们现在回顾最接近的逆渲染工作。这些工作[Gao et al. 2023; Jiang et al. 2023; Liang et al. 2023; Shi et al. 2023]通过将法线建模为3D高斯原语的附加属性,扩展了3DGS。相比之下,我们的方法通过使用2D高斯原语表示3D表面的切向空间,固有地定义了法线,使其与底层几何结构更加紧密地对齐。此外,上述工作主要专注于估计场景的材质属性,并评估其在重新照明任务中的结果。值得注意的是,这些工作都没有专门针对表面重建,这是我们工作的主要重
点。

  我们还强调了我们的方法与同期工作SuGaR和NeuSG 之间的区别。与SuGaR将2D高斯近似为3D高斯不同,我们的方法直接采用2D高斯,简化了过程并在不需要额外网格细化的情况下增强了生成的几何结构。NeuSG共同优化3D高斯原语和隐式SDF网络,并从SDF网络中提取表面,而我们的方法利用2D高斯原语进行表面近似,提供了一种更快且概念上更简单的解决方案

四、3D 高斯喷溅

4.1 3D高斯原语

  3D高斯原语是一种数学方法,用来描述3D空间中的点的分布。可以把它想象成一个立体的“云团”,每个云团都有自己的中心位置、大小和方向。我们通过这些“云团”来表示3D场景中的物体。

高斯原语公式

在这里插入图片描述

协方差矩阵的作用

在这里插入图片描述

2D协方差矩阵

在这里插入图片描述

背景和动机

  3D Gaussian Splatting (3DGS) 通过在三维空间中使用高斯原语来表示和渲染复杂的几何场景。然而,这种方法在处理薄表面时存在局限性。为了克服这些问题,提出了 2D Gaussian Splatting (2DGS),它通过将 3D 高斯原语简化为 2D 平面高斯盘,实现了更好的几何对齐和表面重建。

3DGS 的问题

  • 体积表示的局限性:3D 高斯原语适用于体积表示,但在处理薄表面时效果不佳。
  • 视角不一致性:3DGS 在不同视角下会产生不一致的深度表示,导致几何重建的准确性降低。
  • 表面法线:3DGS 不本质地表示表面法线,这对于高质量的表面重建是必要的。

2DGS 的提出

  2DGS 的主要思想是通过将 3D 高斯原语投影到二维平面上,从而简化其表示和计算。具体来说,2DGS 从3DGS 的协方差矩阵中去掉第三行和第三列,得到二维的协方差矩阵,从而实现了 3D 到 2D 的转换。

具体过程

在这里插入图片描述

  2DGS 确实是从 3DGS 演变而来的,通过将 3D 高斯原语投影到二维平面上,2DGS 实现了几何精确的辐射场重建。具体过程包括简化协方差矩阵、保持位置参数化以及进行显式的几何对齐。这种方法解决了 3DGS在处理薄表面和视角一致性方面的局限性。

4.2 体积积分混合法

  体积积分混合法是一种计算方法,用来将多个高斯原语的效果叠加在一起,得到最终的图像。公式如下:

在这里插入图片描述

总结

  1. 3D高斯原语:用“云团”来表示3D空间中的点。
  2. 高斯原语公式:用数学公式来描述一个点在云团中的浓度。
  3. 协方差矩阵:决定云团的形状和方向。
  4. 转换矩阵:将云团从世界坐标系转换到相机视角。
  5. 体积积分混合法:将多个云团的效果叠加,得到最终的图像。

表面重建的挑战

使用3D高斯建模和喷溅重建表面面临几个挑战。首先,3D高斯的体积辐射表示与表面的薄性质相冲突。其次,3DGS无法本质上建模表面法线,这对高质量表面重建至关重要。第三,3DGS中的光栅化过程缺乏多视图一致性,导致从不同视点渲染时2D交叉平面的变化[Keselman and Hebert 2023],如图2(a)所示。此外,使用仿射矩阵将3D高斯转换到射线空间只在靠近中心时产生准确投影,在周围区域会牺牲透视准确性[Zwicker et al. 2004]。因此,这通常会导致如图5所示的噪声重建。

在这里插入图片描述

图5. DTU基准测试集上的定性比较]。2DGS产生了详细且无噪声的表面。这张图展示了在DTU基准测试集上,不同方法对两个场景(一个建筑物和一个玩具狗)的重建结果进行的比较。

在建筑物场景中

  • 3DGS方法重建的建筑物表面较为粗糙,存在噪声。
  • SuGaR方法的重建质量有所提升,但仍存在一些细节缺失和噪声。
  • 我们的2DGS方法重建出的建筑物表面细节更为清晰,且无明显噪声。

在玩具狗场景中

  • 3DGS方法重建的玩具狗表面存在明显的噪声和不规则。
  • SuGaR方法的重建质量有所改善,但细节仍不够清晰。
  • 我们的2DGS方法重建出的玩具狗表面细节更加清晰,且无明显噪声。

  这张图表明,本文提出的2D Gaussian Splatting方法在重建复杂场景时,能够生成细节更为丰富且无噪声的表面,相较于3DGS和SuGaR方法表现更为优越。

五、2D 高斯喷溅

  为了在保持高质量新视角合成的同时准确重建几何,们提出了可微分的2D高斯喷溅(2DGS)。

5.1 建模

  与3DGS 将整个角度辐射建模为一个整体不同,通过采用嵌入在3D空间中的“扁平"2D高斯来简化三维建模。通过2D高斯建模,原语在平面圆盘内分布密度, 定义法线为密度变化最陡方向。这一特性使得与薄表面更好地对齐 。虽然之前的方法[Kopanas et al. 2021; Yifan et al. 2019]也使用2D高斯进行几何重建,但它们需要稠密点云或地面实况法线作为输入。相比之下,2D GS仅凭稀疏校准点云和光度监督同时重建外观和几何

  如图3所示, 2D喷溅由其中心点 p k p_k pk、两个主要切向矢量 t u t_u tu t v t_v tv以及控制2D高斯方差的缩放矢量( s u s_u su, s v s_v sv)特征化。注意,原始法线由两个正交的切向矢量 t w t_w tw= t u t_u tu t v t_v tv定义。我们可以将方向排列成3x3旋转矩阵 R = [ t u , t v , t w ] R=[t_u,t_v,t_w] R=[tu,tv,tw],并将缩放因子排列成一个3x3对角矩阵S,其最后一个条目为零。

在这里插入图片描述

图3. 2D高斯喷溅的示意图。2D高斯喷溅是由中心点 p k p_k pk 、切向矢量 t u t_u tu t v t_v tv以及两个缩放因子 s u s_u su s v s_v sv控制方差的椭圆盘。它们的椭圆投影通过射线-喷溅交叉进行采样(见后面第二节),并通过图像空间中的阿尔法混合累积。2DGS通过梯度下降重建表面属性,如颜色、深度和法线。

在这里插入图片描述

  因此,一个2D高斯在世界空间中的局部切平面中定义,其参数化为:

在这里插入图片描述

  其中 H ∈ 4 ✖ 4 H∈4✖4 H4✖4 是表示2D高斯几何的齐次变换矩阵。对于 u = ( u , v ) u=(u,v) u=(u,v)空间中的点,其2D高斯值可以通过标准高斯评估为:

在这里插入图片描述
中心 p k p_k pk 、缩放( s u s_u su, s v s_v sv) 和旋转( t u t_u tu, t v t_v tv)是可学习参数。遵循3DGS,每个 2D高斯原语具有不透明度 α α α 和用球谐函数特征化的视角相关外观 c c c

  

5.2 2D高斯原语在世界空间中的局部切平面定义

  这部分内容介绍了如何在2D空间中定义高斯原语,并使用变换矩阵将其定位在世界空间中。

  2D高斯原语的参数化

在这里插入图片描述

  变换矩阵 H H H
在这里插入图片描述

  2D高斯原语的标准高斯评估

在这里插入图片描述

  举例说明
在这里插入图片描述

  总结:

  • 2D高斯原语:用来表示2D平面上的点,类似于纸上的墨点。
  • 变换矩阵 :将2D平面上的点转换到世界空间中。
  • 标准高斯评估:计算某个点在云团中的“浓度”。

5.3 喷溅

  一种常见的渲染2D高斯的方法是使用透视投影的仿射近似将2D高斯原语投影到图像空间中[Zwicker etal. 2001a,b]。然而,如[Zwicker et al. 2004]所指出的,这种投影仅在高斯中心处准确,并随着到中心距离的增加而误差增大。为了解决这个问题,Zwicker等人提出了一种基于齐次坐标的公式。具体来说,将2D喷溅投影到图像平面可以通过齐次坐标中的一般2D到2D映射来描述。设 W ∈ 4 × 4 W∈4×4 W4×4 为从世界空间到屏幕空间的变换矩阵。屏幕空间点因此得到:
在这里插入图片描述

  其中 x x x 表示从相机发射的齐次射线,穿过像素 ( x , y ) (x,y) (x,y) 并在深度z处与喷溅相交。为了光栅化2D高斯,Zwicker等人提出将其圆锥投影到隐式方法中的屏幕空间,使用 M = ( W H ) − 1 M=(WH)^{-1} M=(WH)1 。然而,逆变换引入了数值不稳定性,特别是当喷溅退化为线段时(例如,从侧面查看)。为了解决这个问题,先前的表面喷溅渲染方法丢弃了使用预定义阈值的这种状况不佳的变换。然而,这种方案在可微渲染框架中面临挑战,因为阈值化可能导致不稳定的优化。为了解决这个问题,我们采用了受[Sigg et al. 2006]启发的显式射线-喷溅交叉方法。

  射线-喷溅交叉

在这里插入图片描述

  

  







d \sqrt{d} d 1 8 \frac {1}{8} 81 x ˉ \bar{x} xˉ x ^ \hat{x} x^ x ~ \tilde{x} x~ ϵ \epsilon ϵ
ϕ \phi ϕ

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐