论文阅读:3D Gaussian Splatting for Real-Time Radiance Field Rendering
论文阅读:3D Gaussian Splatting for Real-Time Radiance Field Rendering

Abstract
近年来,辐射场方法彻底改变了传统多张照片或视频捕获场景的新颖视角合成方式.然而,为了实现高视觉质量,训练及渲染过程需投入巨大资源.尽管如此,为了实现更快的生成速度,不得不放弃部分视觉质量.目前,针对无界且完整场景(而非孤立对象)以及1080p分辨率的实时渲染问题,仍无完全满足现有需求的方法.为此,我们整合了以下三项关键创新要素:其一,基于摄像机标定所得的稀疏采样点基础上构建场景模型采用3D高斯函数表示法;其二,通过优化各向异性协方差矩阵提升模型表现;其三,开发了一种支持各向异性散射的高效可见性感知渲染算法.这些改进使得我们能够在保证具有竞争力训练效率的同时实现最先进视效果的质量表现;同时实现了1080p分辨率下≥30帧/秒的实时新颖视图合成能力.我们在经过精心设计的数据集测试后展示了该方法在视觉质量和实时渲染性能上的卓越表现.
1 Introduction
网格与点是最常用的3D场景表示方式之一,因其显式特性非常适合基于GPU/CUDA架构实现高效的光栅化过程.相比之下,最近提出的基于连续场景表示的神经辐射场(NERF)方法通过体积光线采样优化多层感知机(MLP),以实现对新颖视图合成的支持.这些基于连续性假设的方法通常依赖于体素网格或散列存储机制,例如Fridovich-Keil及其团队于2022年提出的体素插值方案,或Müller等人于2022年开发的散列化技术[Xu et al. 2022].尽管这些方法在优化效率上具有优势,但渲染过程中的随机采样成本较高且容易引入噪声.为此,我们提出了一种结合离散性和连续性优点的新框架:我们的3D高斯球面模型不仅支持当前最优(SOTA)的视觉质量,还能实现快速训练,同时采用基于瓷砖化的射频解决方案以实现1080p实时渲染能力[见图1]Barron等人 2022;Hedman等人 2018;Knapitsch等人 2017.
我们的目标是基于多张图像捕获的真实场景进行实时渲染,并在优化效率上与当前最优的传统方法相当。近期研究展示了这种方法能够实现。然而,在当前最先进的Mip-NeRF 360技术中仍存在视觉质量方面的限制。具体而言,在这项研究中需要长达48小时的培训时间。尽管速度较快(每秒可达10至15帧),但这类方法在细节表现上仍有不足。无法达到高分辨率下的实时渲染效果。
我们的方案由三个关键组成部分构成。我们首先阐述了一种灵活且具表现力的三维高斯场景表示方法。该方法从与前人类似NERF技术相同的输入出发(即采用SfM校准相机[Snavely等人2006]),并利用其过程生成的稀疏点云进行初始化。与基于多视点立体(MVS)的数据需求不同的大多数点基解决方案(Aliev等人2020;Kopanas等人2021;Rückert等人2022),我们的方案仅需输入SfM点云即可获得高质量结果。值得注意的是,在NERF合成数据集上即使随机初始化也能取得良好效果这一现象值得关注。因为3D高斯是一种可微分体表示模型它不仅易于微分还能够高效栅化通过将它们投影至二维并应用标准α混合技术结合自适应密度控制步骤实现这一特性使得其在场景表示方面表现出极强竞争力(具体可见测试场景中各高斯值均在1-500万范围内)。此外我们方案的最后一部分是创新性的实时渲染模块它采用了受近期研究启发(如Lassner和Zollhofer 2021)的独特排序算法通过快速GPU排序加速反向遍历过程从而实现了高质量渲染效果
总而言之,我们提供以下贡献:
引入各向异性3D高斯作为辐射场的高质量、非结构化表示。
该种基于三维高斯特性的优化方案通过与自适应密度控制相互作用以高质量的方式表征所捕获之场景。
一种高效且能有效区分图像的图形处理方案,在可靠性和独特性上有显著优势,并支持非均匀喷射与快速反向传播过程。该方案旨在生成高精度的独特视角图像。
基于我们对先前发布数据集的分析结果, 我们发现可以通过多视图捕获技术优化了3D高斯参数, 并达到了与前几种隐式辐射场方法相当甚至更好的效果. 同时实现了与当前最快的训练速度和性能相当的效果, 特别强调了在实时渲染方面取得的进步, 为我们提供了首个高质量的新视图合成方案
2 Related Work
我们随后对传统重建进行简明扼要的介绍,并接着深入探讨基于点的渲染技术和辐射场工作之间的关系及其相似之处。此外,在辐射场领域作为一个极为宽广的研究方向中, 我们主要聚焦于那些直接相关的研究工作, 更详细的综述请参考近期的研究综述[Tewari et al. 2022; Xie et al. 2022]
2.1 Traditional Scene Reconstruction and Rendering
该系统基于光场理论实现了一种创新性视点合成方法,在该方法中首先进行了密集采样操作,并允许非结构化数据捕捉功能的实现。基于运动结构(Structure-From-Motion, 简称SfM)的出现使得这一全新领域成为可能,在此领域中一系列图像数据可以被用来生成新的观察视角图件。SfM技术最初被用于相机校准过程中的稀疏点云估计工作,并专注于3D空间环境下的简单可视化展示工作。随后发展起来的多视点立体(Multi-View Stereo,简称MVS)技术在过去几十年里衍生出了多种令人印象深刻的全三维重建算法,并在此基础上衍生出了多种多样的视点合成算法的发展成果。所有这些方法均采用了将输入图像重新投影并融合到新视角摄像机中的方式,并利用几何学原理来指导这种重新投影过程的实施工作。这些方法在实际应用中取得了较好的效果反馈,在多数情况下能够较好地恢复出原始场景信息并避免从未重建区域或从MVS生成不存在几何图形情况下的过度重建问题,在一定程度上降低了伪影现象的同时也显著减少了在GPU上存储所有输入图像所带来的计算成本开销,在大多数情况下都优于现有方法的技术成果
2.2 Neural Rendering and Radiance Fields
深度学习技术在早期阶段已被应用于新视图合成; 网络架构如CNN通常用于计算混合权重或提供纹理空间中的解决方案。基于MVS的几何体是许多现有方法的主要缺陷;此外,在渲染过程中依赖CNN往往会带来明显的闪烁现象。
新视图合成中的体积表示由Soft 3D团队最先提出;随后,他们将该技术与基于连续可微密度场的深度学习方法相结合,用于描述几何形状。由于对体积进行采样需要大量样本,基于体积射线推进的方法具有较高的渲染成本。神经辐射场(NeRF)通过引入重要性采样机制和位置编码策略来提高图像质量,但其采用多层感知机作为速度架构导致性能下降。随着NeRF的成功,后续方法呈现出爆发式增长,这些方法通常通过引入正则化策略来平衡质量和渲染速度问题;当前最先进的新视图合成方法Mip-NeRF 360在图像质量方面表现优异,然而其训练与渲染时间依然过高;我们能够实现快速训练与实时渲染的同时达到相同甚至超越Mip-NeRF 360的质量水平。
该最新方法主要通过三种设计策略关注更快捷的训练及/或渲染过程:它采用空间数据结构以存储后续体积射线推进过程中所需的(神经)特征插值,并结合不同编码方案及MLP容量设置以实现高效计算。这些方法主要包含基于不同空间离散化策略、码本以及哈希表等编码方案的不同变体,并且能够完全依赖较小规模的MLP架构或前述提到的神经网络模型来进行性能优化。
最值得一提的是InstantNGP算法。该算法通过构建哈希网格(Hash Grid)和 occupy网格(Occupy Grid)来加速计算过程,并采用较简单的多层感知机(MLP)来编码密度场及其外观特征。相比之下,Plenoxels方法则利用稀疏体素网格(Parse voxel grid)来进行连续密度场的插值,并完全摒弃了传统的神经网络架构。值得注意的是,在球面谐波处理方面,前者的显式表示直接捕捉了方向性特征;而后者则将其输入信号巧妙地编码到颜色通道中以增强表现力。尽管两种方法在效果上均表现出色,但它们在处理空旷区域的能力上仍存在明显局限:前者的表现依赖于场景特性的捕捉能力;后者则受限于加速结构化网格的选择精度。此外,在渲染效率方面存在瓶颈:由于需要为每一光线采样路径进行密集查询操作而显著降低了性能水平。为此我们提出了一种非结构化显式设计的3D高斯模型,在无需引入额外神经组件的情况下实现了更高的渲染速度与更好的视觉质量
2.3 Point-Based Rendering and Radiance Fields
通过基于点的技术高效地处理三维数据模型(即三维结构数据),可以在其最基本的形式中实现对固定大小非结构化散点集的网格化处理。这通常会利用本地图形API提供的基本元素,并结合并行计算的优势,在图形处理器上实现高效的网格划分。尽管这种方法能够直接处理底层数据信息并提供直观的表现形式,在实际应用中却存在一些局限性:例如无法有效避免由于几何特性导致的空间混叠现象,并且难以准确实现严格的不连续性要求。针对这些挑战,在高质量基于点技术的研究中引入了'飞溅'(spitting)概念:该技术采用范围大于单像素单位的空间基元(如圆形或椭圆盘形基元、椭球体基元或其他复杂曲面基元)来实现对表面细节的有效捕捉与重建
近年来围绕基于可区分点的渲染技术的研究引起了广泛关注。通过神经网络特征增强和卷积神经网络(CNN)渲染的技术发展起来后,不仅实现了快速甚至实时的视图合成,而且在获取初始几何形状方面仍依赖于多视图同步(MVS)方法,值得注意的是,在面临无特征区域、闪烁现象或薄壁结构等挑战时,现有方法表现仍有待提升。
基于点的 α 混合与NeRF风格的体素渲染在图像生成机制上具有高度相似性。具体而言,在光线沿深度方向进行体素级渲染时:
C = ∑{i=1}^N T_i (1 - e^{-\sigma_i \delta_i}) \mathbf{c}i 其中 T_i = e{-∑_{j=1}{i-1} \sigma_j \delta_j} 于是上式可进一步表示为:
C = ∑{i=1}^N T_i \alpha_i \mathbf{c}i 其中 α_i = (1 - e^{-\sigma_i \delta_i}) 并且 T_i = ∏{j=1}^{i-1}(1 - α_j) 典型基于神经点的方法通过混合与像素重叠的 N 个有序点来计算像素的颜色 C:
C = ∑{i∈N} c_i α_i ∏_{j=1}^{i-1}(1 - α_j) 其中 c_i 是每个点的颜色, 而 α_i 是通过评估具有协方差 Σ 的 2D 高斯乘以所学习的每点不透明度而获得的.
从等式2与等式3可以看出,图像生成模型具有相同特性.然而,它们之间存在显著差异.其中,NeRF通过连续的方式来表征空闲或被占用的空间区域;而生成这些样本需要进行高成本的概率采样,这将导致数据噪声以及计算开销增加.与之相比,点作为一种非结构化的离散表示方法,具备高度灵活性,能够动态创建、删除以及替换类似于NeRF的几何体.这种方法可以通过调整透明度参数以及物体位置信息来实现.从而规避了整体体积积分方法所带来的局限性.
该算法实现了快速球体网格化的实现,并由此启发了我们开发基于瓦片(tile-based)的排序渲染器。鉴于此分析结果,在排序splat上维持(大约)传统的 α\alpha 混合策略能够带来体积表示方面的优势:我们的网格化方法遵循可见性顺序而非其顺序独立的方法。此外,在像素层面的所有飞溅效果中实施反向传播梯度的过程,并对各向异性飞溅效果进行网格化处理均有助于提高视觉质量的结果(请参阅7.3节)。尽管这种方法的时间效率可能不如某些其他方案稳定可靠(尽管如此),但Pulsar和ADOP在渲染速度上仍为其快速渲染解决方案奠定了重要基础
与此同时,在镜面效果上进行专注。
最近提出了一种新型节点法利用径向基函数法表征场分布。然而在计算过程中采用了节点精简和网格细化处理两种优化策略。然而由于采用了体积分割推进算法在实时渲染效率方面仍存在不足
在人体表现捕捉领域中,3D高斯已被广泛用于表示被捕获的人体;相比之下,在视觉任务中的体积推进应用更为突出。神经体积基元是在类似的背景下提出的。尽管这些方法激发了我们对使用3D高斯作为场景表示的兴趣,并促使我们探索其他可能性;然而它们专注于重建和渲染单个孤立对象(如人体或面部)的具体情况;这导致所构建的场景深度复杂度较低。相反地,在我们的研究中通过优化各项指标以及引入高效的渲染策略使得能够处理从室内到室外甚至深度复杂的环境等多种复杂场景
3 Overview
我们接收了一组静态场景的图像,并配合已通过SfM校准的相机组合进行处理。该方法的主要副作用是生成稀疏的点云数据。基于这些关键点数据集,在第4节中我们构建了一个具有高度可定制性的3D高斯模型(记为3D Gaussian)。该模型由位置(均值)、协方差矩阵以及不透明度αα参数定义,并支持一种非常灵活的优化机制以实现紧凑的数据表示。这种紧凑性部分得益于高度各向异性体积分割技术能够高效表示复杂的精细结构特征。按照常规方法,在辐射场的方向外观分量(颜色)表示上通常采用球面调和函数(SH)展开式来进行建模。在此基础上,在第5节中我们进一步扩展了这一框架,在现有算法的基础上引入了基于优化步骤的新元素:通过动态组合优化策略将带有位置信息(即位置、协方差矩阵及αα参数)的标准高斯分布与自适应调整密度分布的操作相结合以构建完整的辐射场表示模型(记为SEC.5)。为了确保该方法的有效性和效率性,在第6节中我们开发了一种新型的片元化栅格化器(记为片元化栅格化器)。这种片元化栅格化器能够支持各向异性splat操作,并结合快速排序算法来严格遵守可见性顺序原则以保证渲染质量的同时实现高效计算效果。此外,在输出阶段我们采用了一种高效的反向传播机制:通过跟踪累积αα值并利用其进行快速反向传递过程从而实现了对任意渐变高斯图的数量无限制的支持能力。整个方法流程图示见图2

4 Differentiable 3D Gaussian Splatting
我们的主要目标在于提升场景表征的质量,并在此基础上实现高质量的新颖视图合成的能力。为了实现这一目标,在处理来自无法向稀疏(SfM)点集的数据时, 我们需要设计一种基元, 该基元应同时具备以下几项关键特性:一是可微分化;二是非结构化;三是显式性;四是能够支持快速渲染的能力. 经过分析与权衡后发现, 在现有条件下最合适的方案就是采用基于3D高斯球体(S)的设计方案.
我们的表征与之前采用2D点并基于每个点带有法向量的小平面圆的方法有相似之处。由于SfM(结构从运动)中的关键点极度稀疏, 估算正常值变得异常困难. 同样地,在对这样的估计进行优化时, 处理噪声极大的正态分布将非常具有挑战性. 相反, 我们将几何体建模为一组无需附加法向量的三维高斯分布模型. 我们的高斯由以一个均值参数μ为中心的世界空间中定义完整的三维协方差矩阵Σ来描述:
G(\mathbf{x}) = e^{-\frac{1}{2} (\mathbf{x})^T \Sigma^{-1} (\mathbf{x})}
在我们的混合过程中, 这个高斯函数被乘以α.
然而,在二维渲染中实现高维数据处理是一项必要的技术手段。为了实现这一目标,Zwicker团队展示了如何将图像空间映射至二维以实现相应的投影效果。在相机坐标系下,通过仿射逼近方法计算出的雅可比矩阵J,能够有效描述该过程的空间变换特性。具体而言,他们指出如果忽略协方差矩阵Σ’(即其第三行与第三列元素)后得到一个缩减后的2x2方差矩阵,这类似于从具有明确法向量平面点的情况推导而来,与先前的研究成果高度一致
一种显而易见的方法是通过调整协方差矩阵 Σ\Sigma 来生成代表辐射场的三维高斯分布。然而,这种矩阵仅在半定正定状态下才有物理意义。为了全面优化所有参数,在难以直接约束的情况下我们采用了难以直接约束的梯度下降方法以产生此类有效矩阵;尽管如此但更新步骤和梯度仍然容易产生无效的协方差矩阵
因此,在追求直观性的同时不牺牲表达能力的前提下我们采用了更为简洁的优化表示方法。通过给定缩放矩阵 SS 和旋转矩阵 RR 我们能够确定相应的协方差矩阵 Σ=RSSTRT 该形式等同于描述椭圆体的配置结构。为了便于对缩放和平移这两个关键参数分别进行独立优化我们将它们存储在两个独立的数据结构中:一个是用于缩放操作的三维向量 ss 另一个是用于表示旋转操作的四元数 qq 。通过将这些转换为对应的矩阵形式并对它们进行组合运算可以使 q 归一化从而确保其成为有效的单位四元数
为了减缓训练过程中自动区分带来的影响, 我们显式地推导出了所有参数梯度的具体表达式。附录A中提供了详细的求导计算说明, 以确保过程清晰可追溯。
其各向异性协方差表示方法适用于优化3D高斯函数,以便适应捕捉场景中的不同几何形状,并形成相当紧凑的表达方式。如图3所示。

5 Optimization with Adaptive Density Control of 3D Gaussians
我们的核心在于优化流程,在该流程中构建了一系列密集的3D高斯分布来精确地描绘场景并支持任意视角合成的能力。除了位置参数pp、α以及协方差矩阵Σ之外,在描述每个高斯颜色通道cc的空间频率(SH)系数方面也进行了进一步优化工作。这些参数设置不仅决定了各个高斯分布的位置特性以及形状特征,在整个流程中对高斯密度的有效控制同样扮演着重要角色
5.1 Optimization
通过连续迭代的方法进行优化,并将生成的图像与捕获的数据集中的训练视图进行对比分析。
尽管从三维到二维投影过程中可能存在模糊性问题导致几何形状可能出现偏差。
为了提高优化效果,在定位出现错误时需要具备破坏或重新调整几何形状的能力。
在表示紧凑性的方面上,
3D
高斯分布的协方差参数的质量至关重要。
因为可以用少量较大的各向异性高斯模型来捕捉较大的均匀区域。
采用随机梯度下降算法来进行优化,并充分借助现有的GPU加速框架。同时,并依据最新的最佳实践在关键操作中集成自定义的CUDA内核的能力。特别地,在本研究中开发的高效网格划分方法(参考第6节)因其成为主要计算瓶颈而对优化效率具有决定性影响。
基于类似的理由,我们采用Sigmoid激活函数来处理aa,并使梯度保持在[0−1)[0 - 1)区间内;同时应用指数激活函数来处理协方差的规模。
我们将初始协方差矩阵设定为各向同性的高斯矩阵,并使其实轴长度等于到最近三个采样点距离的平均值。为了实现目标空间中的均匀采样效果,在构建采样网格时采用与Plenoxels相似的标准指数衰减调度策略,并且仅对位置维度施加约束条件。损失函数由L1\mathcal{L}_1项和D-SSIM项组成:
\mathcal{L} = (1-\lambda)\mathcal{L}_1 + \lambda \mathcal{L}_{\text{D-SSIM}}
其中,在各项测试中均采用λ=0.2的设置,并在第7章第7.1节中详述了学习率衰减策略以及剩余超参数的具体配置信息
5.2 Adaptive Control of Gaussians
基于SfM算法的起始阶段
我们必须要在空旷地区实施高斯适应性控制方案。这种方案特别关注那些缺少关键几何特征的地方(被称为'重建不足'),同时也特别重视在高斯覆盖场景中占据广泛区域的地方(通常对应着'过度重建')。我们的研究发现,在这两个方面它们都表现出显著的位置梯度变化。从直观上看,这可能是因为它们对应于尚未很好重建的区域,并且通过优化调整过高斯的位置来弥补这一缺陷。
基于这两种情况均为致密化(densification)的理想候选方案,在我们的实验中采用了高于阈值 τpos\tau_{\mathrm{pos}}(其中我们将其设定为 0.0002)的视图空间位置梯度平均幅度的方法来进行高斯致密化处理。
接下来我们将介绍该过程的细节,如图4所示。

为了实现对重建不足区域的小高斯模型的有效覆盖,在必要时需要创建新的几何结构。为此最有效的办法是复制或生成一个相同的副本,并按照其位置梯度的方向进行调整即可。
在方差较高的区域的大高斯需要用两个较小的高斯进行替代,并将其缩放比例设定为实验中确定的一个常数因子 ϕ=1.6\phi = 1.6。此外,在初始化位置时,则采用了原始三维空间中的多维正态分布函数来进行采样
在第一种情况下, 我们识别并管理增加了系统总体积与Gaussian数量的需求; 而在第二种情形下, 则仅增加Gaussian数目而不改变总体积. 与体积表示法类似, 我们的优化可能会停滞于靠近输入相机的小框区域; 在我们的情况下, 这可能导致过高的Gaussian密度分布. 一种有效的缓解方法是每3000次迭代时将α值降至接近零. 此后, 优化将在必要时提升相应Gaussian的α值, 同时允许移除机制剔除那些小于ε_α的小α值. Gaussian集合可能收缩或扩张并与其它成员产生重叠, 但我们会定期清除世界空间中体积庞大的Gaussian群体以及具有显著视觉足迹的大尺寸Gaussian. 这一策略有效降低了Gaussian总数. 在我们的模型中, Gaussian始终作为欧几里得空间中的基础元素存在; 与其它方法不同, 我们无需对远处或大规模Gaussian实施压缩、扭曲或投影处理策略.
6 Fast Differentiable Rasterizer for Gaussians
我们的目标是通过高效的全局渲染过程以及先进的排序机制,在α\alpha混合中近似涵盖异向飞溅现象,并防止来自梯度影响下的飞溅数量带来的负面影响。
为了达成这一目标, 我们开发了一种基于瓦片实现高斯Splatter的方法, 其灵感源自近期提出的软件栅化技术. 该方案能够一次性对图像的所有基元进行预排序, 这一特点显著降低了之前α混合方案必须采用按像素排序所带来的计算开销. 我们的高效网格划分器支持在任意数量混合高斯体上执行反向传播过程, 同时保证了极低额外内存消耗, 每个像素所需的计算负载保持恒定. 该系统架构完全可区分, 并采用了与第4节所述二维飞溅方法相似的设计风格, 能够有效地处理各向异性飞溅问题.
我们的方法首先将屏幕划分为16×16个tile块,并依据视锥以及每个 tile 的位置去除3D高斯分布。具体而言,在视锥覆盖的区域中保留了高斯分布的99%置信区间部分。为了确保计算稳定性和去噪效果,在这种去噪过程中我们采用保护带策略来平滑地排除那些位于近平面边缘但远离视锥范围的高斯分布。随后,在计算各 tile 区域内的二维协方差矩阵时,默认采用了基于重叠区域的数量来进行权重分配,并对每个权重分配结果赋予一个结合了局部深度信息和平铺ID的关键值参数。在完成这些预处理步骤后,我们采用了基于GPU并行化的基数排序算法来对所有高斯分布实例进行排序操作,并利用该排序结果作为混合运算的基础框架。值得注意的是,在混合运算过程中并未对单个像素区域内的采样点进行额外排序操作而是直接基于全局初始排序结果来进行混合计算。这种混合方式在大部分情况下能够保证较好的视觉效果但在某些特殊场景下可能会引入微小的艺术性残留现象(当样条拟合精度接近单像素级别时)。经过实验验证这种方法不仅显著提升了模型训练效率还能有效避免传统方法可能导致的画面伪影现象出现
在经过高斯排序之后,在每个 tiles 上识别飞溅到第一个和最后一个深度排序条目的位置后就生成一个列表。针对网格化过程,在每个 tiles 上启动多个线程块以实现并行计算效果。每个线程块首先协同加载高斯数据包至共享存储器中,并通过交错遍历列表的方式累积像素的颜色信息以及α\alpha 值以最大化数据加载与共享之间的并行性收益。当某个像素达到预设饱和度阈值时相应的线程就会退出计算任务。每间隔一定时间都会对 tiles 中的所有线程状态进行检查若所有像素均达到饱和度则该 tiles 的处理任务也随之终止(即变为1)。附录C详细描述了排序算法的具体实现流程以及整体网格化架构的设计方案
在网格化的过程中中α\alpha 的饱和度作为唯一的标准。相较于以往的研究工作,在本研究中我们不对混合基元的数量施加限制。为了解决上述问题,在本研究中我们采取了以下措施:强制执行这一属性,并且无需依赖场景特化的超参数设置。因此,在反向传播过程中我们需要恢复每个像素处的所有混合点序列,并通过全局存储器来实现这一点的方法是预先存储每个像素的所有可能参与的信息。同时,在反向传播过程中我们可以利用这些排序数组来进行高效的计算,并避免潜在的动力学内存管理问题以提高计算效率。
从影响 tile 的任何一个像素出发,在协同的过程中将这些点加载进共享内存。然而,在执行(耗时)重叠检测及处理之前,请注意只有当特定条件得到满足时才会进行这一操作:即当前像素所处位置处各采样器对应的深度值必须低于或等于其在前向传递过程中对该颜色贡献的最大深度值。关于第4节所述之梯度计算方法,在整个前向传递过程中的各个阶段都需要记录原始混合过程下的累积 opacity 值。为了实现这一目标,在后方传播过程中我们不需要显式地保存逐渐衰减的一系列 opacity 列表;相反,在正向传播完成后只需保存每个采样器最终积累下来的 opacity 值即可实现中间结果的有效复现功能。具体而言,在正传结束后我们对每个采样器都记录了其最终积累下来的 opacity 值 α\alpha 。随后,在反传过程中我们将该值与其自身 opacity 值 α\alpha 进行相除运算得到的结果即为用于计算梯度所需的关键参数
7 Implementation, Results and Evaluation
随后将深入探讨实施的具体方面,并呈现一些关键结果。在对比我们的算法时,我们希望展示其优势;同时也会回顾先前的研究成果,并通过消融实验来验证我们的方法的有效性。
7.1 Implementation
基于PyTorch框架的Python实现是我们采用的方法,并开发了专门针对网格化运算优化的自定义CUDA内核作为前一版本方法的改进版。这些内核借助NVIDIA CUB库中的排序函数实现了高效的基数排序过程,并通过开源SIBR平台开发了一个交互式可视化界面来实现对数据的实时可视化查看。通过这一实现系统地评估了其处理效率和性能水平。源代码和我们的所有数据均可访问:https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/
Optimization Details. 为了确保计算的稳定性,在初始阶段我们采用了较低分辨率的数据进行warm-up计算。具体而言,在250次和500次迭代之间分别进行了两次上采样处理,并将图像分辨率设置为放大4倍作为初始优化阶段的基础设置。
SH系数优化对任何角度信息的缺失都具有高度敏感性,在典型的NeRF类捕捉中表现良好(即通过在其周围半球范围内的大量照片观察中心物体)。然而,在捕捉场景角落时(例如执行Hedman等人2016年的'由内而外'捕捉),由于无法正确捕获某些角域区域(即这些区域的基本色或漫色),即使通过优化也能纠正这些问题。为了克服这一挑战,在本研究中我们首先仅优化零阶分量,并在每1000次迭代后引入新的高频分量直至完成全部四个频段的零阶分量重建。
7.2 Results and Evaluation
Results. 我们在一个包含之前发布过数据集以及合成Blender数据集在内的总共13个真实场景中评估了我们的算法[Mildenhall等人, 2020]。特别是,在我们提供的基于Mip-Nerf 360的一整套场景(这是当前NeRF渲染质量的技术水平)以及来自Tanks & Temples数据集的两个独特案例之外,在Hedman等人工作的另外两个案例中我们也进行了测试工作。我们所选择的真实场景呈现出多样化的捕捉风格,并涵盖了从有界到无界环境的不同类别情况;这些设计涵盖了从室内到户外的巨大差异性空间环境,并且在所有评估过程中我们采用了统一设置以保证公平比较标准的基础上进行操作;值得注意的是,在本研究中除Mip-NeRF 36o算法外的所有结果均在A600图形处理器上运行(如后续章节所述)。
在补充说明中, 我们为精选场景呈现了具体的视频路径信息, 其中远端视图展示了对应关系
Real-World Scenes. 在质量方面,最新的研究结果表明采用了Mip-Nerf 360方案。本研究将该方法作为基准模型,并与其进行性能对比。此外,我们还将其与最近提出的两种高效NeRF技术——InstantNGP和Plenoxels——进行了对比分析。
我们采用了训练/测试分离的方法对数据集进行处理,并参考mip-neRF360的建议,在每隔8张图像之间进行一次测试以确保比较的一致性和意义性。这些测试计算出误差度量并基于文献中常用的PSNR、L-点数和SSIM标准进行评估;请参见表1中的详细信息。表中的所有数值均来源于我们的作者实现,并与除mip-neRF360之外的所有方法进行比较;其中对于其在特定数据集上的结果我们直接引用了原始论文中的数据以避免混淆当前研究的SOTA水平。对于图中展示的具体图像结果,请参阅附录D中的详细数字对比。此外我们还统计了模型训练时间渲染效率以及优化参数所需内存的需求;并展示了InstantNGP(Base)配置下经过35K迭代后的性能以及采用稍大网络(Big)版本时的表现;同时对比了两种不同迭代次数(7K和30K)下的视觉效果差异(如图6所示)。在多数情况下7K迭代已经能够达到令人满意的效果)。


训练时间因所选数据集的不同而有所差异,在本研究中我们对其进行了详细记录。I would like to highlight that the image resolution also varies depending on the dataset. 在项目网站中, we have provided access to all rendered statistics for our methods and previous work across different scenarios. I have ensured that the original resolutions are preserved across all rendered views.
该表格显示了我们提出的全融合模型与SOTA Mip-NeRF 360方法之间的性能对比。值得注意的是,在相同硬件条件下,他们的平均训练时间为48小时零2分钟(48h2m),而我们的平均训练时间显著缩短至35至45分钟(35-45min)。此外,在渲染效率方面,他们的渲染时间为10秒每帧(10s/iframe)。经过约5至10米的持续训练后(具体数值未详),我们不仅达到了与InstantNGP和Plenoxels相当的质量水平(达到或略高于两者),而且通过额外的时间投入实现了SOTA级别的高质量效果。然而,在Tanks & Temples场景中,在仅需7分钟的训练时间(相较于他们较长的时间投入)下就能达到接近Basic InstantNGP的质量水平。
我们展示了遗漏测试视图及其与图5中选定先前渲染方法的视觉对比结果;该方法在30,000次训练迭代中表现稳定。我们观察到,在某些情况下(例如,在植被模糊的情景下),即使使用Mip-NeRF 360也会出现剩余伪影现象(如树木模糊——具体可见于《自行车》和《树桩》——以及墙壁表面)。此外,在补充视频和网页中展示了远距离路径的效果对比。该方法倾向于保留覆盖良好区域的视觉细节(无论是在近距离还是远距离视角下),而以往的方法在这方面并不总是可靠。

生成有限场景:除了现实场景外,我们还采用Mildenhall等人2020提出的合成Blender数据集的方法进行评估.详细视图集得以提供:场景大小受限且配置精确.在这些条件下,即使采用随机初始化,我们也能实现最先进的结果:基于包围边界内部的100 K均匀随机高斯初始化.我们的方法能够自动筛选出约6-10 K具有显著意义的高斯分布.经过约3万次迭代后,训练所得模型在每个测试场景下最终包含约2千至5千个高斯体素.为了确保兼容性,我们在表2中使用白色背景作为基准,并将与现有方法相比获得的PSNR分数进行比较.通过图10(位于第二张图像左侧)以及附录材料中的示例图可直观观察到训练效果.经过优化后的合成模型能够实现平均18至3百帧每秒(FPS)的速度水平,从而满足实时渲染需求

compaction方面表现优异,在参数规模上实现了显著缩减的同时仍能精确描述复杂的几何形状。
