【论文笔记】A Survey on 3D Gaussian Splatting

这篇具有很好参考价值的文章主要介绍了【论文笔记】A Survey on 3D Gaussian Splatting。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原文链接:https://arxiv.org/abs/2401.03890

1. 引言

NeRF在计算效率和可控性上具有局限性,这导致了3D高斯溅射(3D GS)的出现,重新定义了场景表达和渲染。

3D GS通过引入新的场景表达技术,用大量的3D高斯表达场景。3D GS使用显式的表达和高度并行化的工作流程,促进高效计算和渲染;其创新在于混合了可微渲染与基于点的渲染技术的优势。3D GS保留了连续体积辐射场的理想特性(有利于高质量图像渲染),同时避免了渲染空空间带来的计算开销。此外,3D GS的显式表达提供了对场景的动态控制能力。

2. 背景

2.1 问题定义

2.1.1 辐射场

辐射场是3D空间中光分布的表达,捕捉了环境中光与表面和材料的交互。神经场可表达为函数 L : R 5 → R + L:\mathbb{R}^5\rightarrow\mathbb{R}^+ L:R5R+,其中 L ( x , y , z , θ , ϕ ) L(x,y,z,\theta,\phi) L(x,y,z,θ,ϕ)将点 ( x , y , z ) (x,y,z) (x,y,z)和球坐标下的方向 ( θ , ϕ ) (\theta,\phi) (θ,ϕ)映射为非负辐射值。辐射场有显示表达和隐式表达。

2.1.2 隐式辐射场

隐式辐射场不显式地定义场景几何,通常使用神经网络学习连续体积场景表达。其代表NeRF使用MLP将坐标与视线方向映射为密度和颜色,不会显式存储,而是通过查询神经网络在线计算:
L implicit ( x , y , z , θ , ϕ ) = NeuralNetwork ( x , y , z , θ , ϕ ) L_\text{implicit}(x,y,z,\theta,\phi)=\text{NeuralNetwork}(x,y,z,\theta,\phi) Limplicit(x,y,z,θ,ϕ)=NeuralNetwork(x,y,z,θ,ϕ)

这一形式允许复制场景可微且紧凑的表达,但渲染时的射线行进有较高的计算复杂度。

2.1.3 显式辐射场

显式辐射场直接在离散空间结构中表达光的分布,如体素或点集。结构中的每个元素存储了相应位置的辐射信息。这一方法通常能更直接、更快地获取辐射数据,但需要大量存储空间,且分辨率可能受限。通常形式为:
L explicit ( x , y , z , θ , ϕ ) = DataStructure [ ( x , y , z ) ] ⋅ f ( θ , ϕ ) L_\text{explicit}(x,y,z,\theta,\phi)=\text{DataStructure}[(x,y,z)]\cdot f(\theta,\phi) Lexplicit(x,y,z,θ,ϕ)=DataStructure[(x,y,z)]f(θ,ϕ)

其中 DataStructure \text{DataStructure} DataStructure为网格或点云, f f f为基于视线方向修改辐射的函数。

2.1.4 3D高斯溅射

3D GS使用3D高斯作为灵活且高效的表达,从而利用了隐式和显式辐射场的优势。高斯可通过基于神经网络的优化来精确表达场景,但进行的是显式、结构化的数据存储。这种混合方法能进行高质量渲染,且训练更快、有实时性。3D高斯表达可表示为:
L 3DGS ( x , y , z , θ , ϕ ) = ∑ i G ( x , y , z , μ i , Σ i ) ⋅ c i ( θ , ϕ ) L_\text{3DGS}(x,y,z,\theta,\phi)=\sum_iG(x,y,z,\mu_i,\Sigma_i)\cdot c_i(\theta,\phi) L3DGS(x,y,z,θ,ϕ)=iG(x,y,z,μi,Σi)ci(θ,ϕ)

其中 G G G为高斯函数,均值为 μ i \mu_i μi,方差为 Σ i \Sigma_i Σi c i c_i ci表示视线相关的颜色。

2.2 上下文和术语

2.2.1 场景重建和渲染

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

2.2.2 神经渲染和辐射场

神经渲染:通过将深度学习与传统图形技术结合生成图像。早期方法使用CNN估计混合权重或纹理空间解。
辐射场:函数表达,描述从各方向穿过空间各点的光的量。NeRF使用神经网络建模辐射场。

2.2.3 体积表达和射线行进

体积表达:不仅将物体和场景表达为表面,还表达为填充了材料或空空间的“体”。这样可以对如雾、烟或半透明材料进行更精确的渲染。
射线行进:是体积表达渲染图像的技术,通过增量跟踪穿过“体”的光线来渲染图像。NeRF引入重要性采样和位置编码增强合成图像的质量。但这一方法计算量大。

2.2.4 基于点的渲染

基于点的渲染使用点而非传统的多边形可视化3D场景,对复杂、无结构或稀疏几何数据的渲染非常高效。点可以使用可学习神经描述符增强特征。但这一方法会导致渲染中出现孔或混叠现象。3D GS通过使用各向异性高斯进行更连贯的场景表达。

3. 3D高斯用于显式辐射场

3D高斯可以进行实时、高分辨率的图像渲染,而无需依赖神经成分。

3.1 使用学习的3D高斯进行新视图合成

现有由大量3D高斯表达的场景,目的是生成特定视角下的相机图像。NeRF使用射线行进采样点,影响其实时性;而3D GS将3D高斯投影到图像平面,称为“溅射”,如下图所示。然后对高斯进行排序,并计算各像素的值。NeRF和3D GS的渲染可视为互逆关系。
【论文笔记】A Survey on 3D Gaussian Splatting,3D高斯溅射,论文阅读,深度学习,计算机视觉

  • 3D高斯的属性:一个3D高斯的属性包括,中心(位置) μ \mu μ,不透明度 α \alpha α,3D协方差矩阵 Σ \Sigma Σ,颜色 c c c。其中 c c c与视角相关,由球面谐波表达。所有属性均可学习,并通过反向传播优化。

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

  • 溅射:3D高斯(椭球)被投影到2D图像平面(椭圆)进行渲染。给定视图变换 W W W和3D协方差矩阵 Σ \Sigma Σ,投影的2D协方差矩阵 Σ ′ \Sigma' Σ按下式计算:
    Σ ′ = J W Σ W T J T \Sigma'=JW\Sigma W^TJ^T Σ=JWΣWTJT

    其中 J J J为投影变换仿射近似的雅可比矩阵。

  • 像素渲染:给定像素的位置 x x x,其与所有重叠高斯的距离,即高斯的深度可以通过视图变换 W W W计算,得到排序后的高斯列表 N \mathcal{N} N。然后进行alpha混合,计算该像素的最终颜色:
    C = ∑ i ∈ N c i α i ′ ∏ j = 1 i − 1 ( 1 − α j ′ ) C=\sum_{i\in\mathcal{N}}c_i\alpha'_i\prod_{j=1}^{i-1}(1-\alpha'_j) C=iNciαij=1i1(1αj)

    其中 c i c_i ci为学习的颜色,最终不透明度 α i ′ \alpha'_i αi为学习不透明度 α i \alpha_i αi与高斯的乘积:
    α i ′ = α i × exp ⁡ ( − 1 2 ( x ′ − μ i ′ ) T Σ i ′ − 1 ( x ′ − μ i ′ ) ) \alpha'_i=\alpha_i\times\exp(-\frac{1}{2}(x'-\mu'_i)^T\Sigma^{'-1}_i(x'-\mu'_i)) αi=αi×exp(21(xμi)TΣi1(xμi))

    其中 x ′ x' x μ i ′ \mu'_i μi为投影空间内的坐标。考虑到排序的并行化较为困难,这种逐像素的方法可能会影响渲染速度。为实现实时渲染,3D GS做出了一些让步,以进行并行计算。
    【论文笔记】A Survey on 3D Gaussian Splatting,3D高斯溅射,论文阅读,深度学习,计算机视觉

  • Tile(Patch):为避免逐像素计算,3D GS改为patch级别的渲染。首先将图像分割为多个不重叠的patch,称为tile,如上图所示。然后确定tile与投影高斯的相交情况。由于投影高斯可能会与多个tile相交,需要进行复制,并为每个复制体分配相关tile的标识符(如tile的ID)。
    【论文笔记】A Survey on 3D Gaussian Splatting,3D高斯溅射,论文阅读,深度学习,计算机视觉

  • 并行渲染:复制后,3D GS(对应字节的无序列表)包含了相关的tile ID(对应字节的高位)和深度信息(对应字节的低位),如上图所示。排序后的列表可直接用于渲染(alpha混合),如下图所示。由于渲染每个tile和像素是独立的,这使得该过程适合并行计算。此外,每个tile的像素可访问共享空间,保留统一的读取序列,可以进一步提高效率。可以将tile与像素的处理类比于CUDA程序结构中的块与线程。
    【论文笔记】A Survey on 3D Gaussian Splatting,3D高斯溅射,论文阅读,深度学习,计算机视觉
    总的来说,3D GS在前向过程中做出了一些近似,以提高计算效率并保留图像合成的高质量。

3.2 3D高斯溅射的优化

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

3.2.1 参数优化

  • 损失函数:图像合成完成后,计算渲染图像与真实图像的差异作为损失:
    L = ( 1 − λ ) L 1 + λ L D − S S I M \mathcal{L}=(1-\lambda)\mathcal{L}_1+\lambda\mathcal{L}_{D-SSIM} L=(1λ)L1+λLDSSIM

    这与NeRF的损失略有不同。NeRF的损失是在像素层面计算的,而非图像层面。

  • 参数更新:3D高斯的多数参数可通过反向传播直接更新,但对于协方差矩阵 Σ \Sigma Σ来说,需要半正定矩阵。因此,改为优化四元数 q q q和3D向量 s s s。将协方差矩阵分解:
    Σ = R S S T R T \Sigma=RSS^TR^T Σ=RSSTRT

    其中 R R R S S S分别由 q q q s s s推导得到的旋转和缩放矩阵。对于不透明度 α \alpha α,其计算图较为复杂: ( q , s ) → Σ → Σ ′ → α (q,s)\rightarrow\Sigma\rightarrow\Sigma'\rightarrow\alpha (q,s)ΣΣα。为避免自动微分的计算消耗,3D GS还推导了 q q q s s s的梯度,在优化过程中直接计算之。

3.2.2 密度控制

  • 初始化:3D GS从SfM产生的稀疏点云初始化或随机初始化高斯。然后进行点的密集化和剪枝以控制3D高斯的密度。
  • 点的密集化:3D GS自适应地增加高斯密度,以更好地表达场景细节。该步骤关注缺失几何特征的区域和高斯过度扩张的区域。在固定的迭代次数后执行密集化,目标是那些视图空间位置梯度大的高斯。其包括在欠重建区域复制小高斯,以及在过重建区域分裂大高斯。前者将复制体沿位置梯度方向移动,后者则通过固定的比例因子缩小高斯大小。该步骤寻找3D空间中高斯的最优分布于表达,能提高重建质量。
  • 点的剪枝:该步骤移除冗余或影响较小的高斯,可以视为正则化过程。移除的是几乎透明的高斯( α \alpha α在某阈值下)或在世界空间/视图空间极其大的高斯。此外,为防止输入相机附近的高斯密度不合理地增加,这些高斯会在固定次数的迭代后将 α \alpha α设置为接近0的值。该步骤在保证高斯的精度和有效性的情况下,能节约计算资源。

4. 应用领域和任务

4.1 同时定位和建图(SLAM)

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

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

4.2 动态场景建模

动态场景建模需要捕捉和表达场景随时间变化的的3D结构和外表。需要建立 能精确反映场景中物体几何、运动和视觉方面的数字模型。4D高斯溅射通过扩展3D高斯溅射的概念,引入时间维度,使得可以表达和渲染动态场景。

4.3 AI生成内容(AIGC)

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

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

4.4 自动驾驶

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

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

5. 性能比较

5.1 性能基准:定位

  • 数据集:Replica。
  • 基准算法:Gaussian-SLAM、GS-SLAM、SplaTAM、GSS-SLAM。
  • 评估指标:均方根误差(RMSE)、绝对轨迹误差(ATE),测量传感器运动轨迹上真实位置与估计位置欧式距离的均方根。
  • 结果:基于3D高斯的SLAM方法能超过基于NeRF的密集视觉SLAM。

5.2 性能基准:静态场景渲染

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

5.3 性能基准:动态场景渲染

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

5.4 性能基准:驾驶场景渲染

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

5.5 性能基准:人的化身

该任务的目标是从给定的多视角视频渲染人体化身模型。文章来源地址https://www.toymoban.com/news/detail-823070.html

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

6. 未来研究方向

  • 数据高效的3D GS解决方案:从少量数据点中进行新视图生成和场景重建很重要。目前的方法引入深度信息、密集概率分布、像素到高斯的映射来促进该能力。此外,在观测不足的区域,3D GS会产生伪影,可尝试在这些区域进行数据插值或整合。
  • 存储高效的3D GS解决方案:3D GS的可放缩性较差,在大尺度环境中需要大量的存储。需要优化训练阶段和模型的存储利用。可以探索更多高效的数据结构和先进的压缩技术。
  • 先进的渲染算法:目前3D GS的渲染算法较为直接,可见性算法会导致高斯深度/混合顺序的剧烈切换,需要实施更先进的渲染算法,以模拟光与材料属性的复杂相互作用。可结合传统计算机图形学的方法。此外,还可探索逆渲染。
  • 优化与正则化:各向异性高斯会导致不期望的视觉伪影。使用抗混叠可以减轻深度和混合顺序的突然变化。增强优化算法可能更好地控制高斯。使用正则化可以增加收敛速度,平滑视觉噪声或提高图像质量。此外,3D GS中大量的超参数也会影响3D GS的泛化性。
  • 网孔重建中的3D高斯:可探索3D GS在网孔重建中的潜力,从而缩小体积渲染和传统基于表面的方法的差距,以便提出新的渲染技巧和应用。
  • 赋予3D GS更多可能性:可以为3D高斯附加传统属性,如语言学的或物理学的属性,用于特定应用。目前已有方法使用3D GS进行相机姿态估计、手-物体交互作用的捕获、不确定性的量化。

到了这里,关于【论文笔记】A Survey on 3D Gaussian Splatting的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【论文笔记】3D Gaussian Splatting for Real-Time Radiance Field Rendering

    原文链接:https://arxiv.org/abs/2308.04079 网孔和点是最常见的3D场景表达,因其是显式的且适合基于GPU/CUDA的快速栅格化。神经辐射场(NeRF)则建立连续的场景表达便于优化,但渲染时的随机采样耗时且引入噪声。本文的方法结合了上述两种方法的优点:使用3D高斯表达和基于ti

    2024年02月04日
    浏览(43)
  • 论文笔记《3D Gaussian Splatting for Real-Time Radiance Field Rendering》

    项目地址 原论文 最近辐射场方法彻底改变了多图/视频场景捕获的新视角合成。然而取得高视觉质量仍需神经网络花费大量时间训练和渲染,同时最近较快的方法都无可避免地以质量为代价。对于无边界的完整场景(而不是孤立的对象)和 1080p 分辨率渲染,目前没有任何方法

    2024年02月09日
    浏览(43)
  • 【反渲染高斯】GS-IR: 3D Gaussian Splatting for Inverse Rendering

    会有自己的理解PS,不保证正确,欢迎评论中指出错误。 我们提出了一种基于3D高斯溅射(GS)的新型反向渲染方法GS-IR,它利用前向映射体渲染forward mapping volume rendering来实现逼真的新视图合成和重照明结果。与先前使用隐式神经表征和体绘制(例如NeRF)的工作不同,这些工作具有

    2024年02月19日
    浏览(40)
  • 3D Gaussian Splatting:论文原理分析

    标题:3D Gaussian Splatting for Real-Time Radiance Field Rendering 作者:Bernhard Kerbl、Georgios Kopanas、Thomas Leimkühler和George Drettakis,来自法国Inria、Université Côte d\\\'Azur和德国Max-Planck-Institut für Informatik。 发表时间:2023年8月,ACM Transactions on Graphics上,卷号42,编号4 提出了一种名为3D Gaussia

    2024年01月23日
    浏览(50)
  • 学习笔记之——3D Gaussian Splatting源码解读

    之前博客对3DGS进行了学习与调研 学习笔记之——3D Gaussian Splatting及其在SLAM与自动驾驶上的应用调研-CSDN博客 文章浏览阅读450次。论文主页3D Gaussian Splatting是最近NeRF方面的突破性工作,它的特点在于重建质量高的情况下还能接入传统光栅化,优化速度也快(能够在较少的训练

    2024年01月20日
    浏览(61)
  • 3d gaussian splatting笔记(paper部分翻译)

    本文为3DGS paper的部分翻译。 基于点的𝛼混合和 NeRF 风格的体积渲染本质上共享相同的图像形成模型。 具体来说,颜色 𝐶 由沿射线的体积渲染给出: 其中密度 𝜎、透射率 𝑇 和颜色 c 的样本是沿着射线以间隔 𝛿 𝑖 采集的。 这可以重写为 典型的基于神经点的方法通过

    2024年01月24日
    浏览(48)
  • 3D Gaussian Splatting 应用场景及最新进展【附10篇前沿论文和代码】

    CV玩家们,知道 3D高斯 吗?对,就是计算机视觉最近的新宠,在几个月内席卷三维视觉和SLAM领域的3D高斯。不太了解也没关系,我今天就来和同学们一起聊聊这个话题。 3D Gaussian Splatting(3DGS)是用于实时辐射场渲染的 3D 高斯分布描述的一种光栅化技术,具有高质量和实时渲

    2024年02月03日
    浏览(66)
  • 【读论文】3D Gaussian Splatting for Real-Time Radiance Field Rendering

    What kind of thing is this article going to do (from the abstract and conclusion, try to summarize it in one sentence) To simultaneously satisfy the requirements of efficiency and quality, this article begins by establishing a foundation with sparse points using 3D Gaussian distributions to preserve desirable space. It then progresses to optimizing anisotrop

    2024年04月09日
    浏览(46)
  • 3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现)

    3D Gaussian Splatting for Real-Time Radiance Field Rendering https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/ 主要研究方法是使用3D高斯光点绘制(3D Gaussian Splatting)方法进行实时光辐射场渲染。该方法结合了3D高斯场表示和实时可微分渲染器,通过优化3D高斯场的属性和密度控制,实现了高质

    2024年02月03日
    浏览(49)
  • 3D Gaussian Splatting for Real-Time Radiance Field Rendering论文中代码复现及排错过程

    graphdeco-inria/gaussian-splatting: Original reference implementation of “3D Gaussian Splatting for Real-Time Radiance Field Rendering” (github.com) 以下是最初电脑所安装的内容: Anaconda3 2022.10-Windows-x86_64 CUDA 电脑只支持11.6,所以装的是11.6版本。 使用git去克隆repository 尽管挂了梯子,但是还是需要多次刷

    2024年02月05日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包