3D Gaussian Splatting for Real-Time Radiance Field Rendering
TL;DR 精炼摘要
本文提出了一种用于实时辐射场渲染的3D高斯泼溅方法,通过三个关键要素实现高质量、新视角合成,其中包括使用3D高斯函数优化场景表示、各向异性协方差控制的密度优化,以及快速可见性感知渲染算法,确保1080p分辨率下能够实现每秒≥30帧的实时渲染。
摘要
Radiance Field methods have recently revolutionized novel-view synthesis of scenes captured with multiple photos or videos. However, achieving high visual quality still requires neural networks that are costly to train and render, while recent faster methods inevitably trade off speed for quality. For unbounded and complete scenes (rather than isolated objects) and 1080p resolution rendering, no current method can achieve real-time display rates. We introduce three key elements that allow us to achieve state-of-the-art visual quality while maintaining competitive training times and importantly allow high-quality real-time (>= 30 fps) novel-view synthesis at 1080p resolution. First, starting from sparse points produced during camera calibration, we represent the scene with 3D Gaussians that preserve desirable properties of continuous volumetric radiance fields for scene optimization while avoiding unnecessary computation in empty space; Second, we perform interleaved optimization/density control of the 3D Gaussians, notably optimizing anisotropic covariance to achieve an accurate representation of the scene; Third, we develop a fast visibility-aware rendering algorithm that supports anisotropic splatting and both accelerates training and allows realtime rendering. We demonstrate state-of-the-art visual quality and real-time rendering on several established datasets.
思维导图
论文精读
中文精读
1. 论文基本信息
1.1. 标题
3D Gaussian Splatting for Real-Time Radiance Field Rendering (用于实时辐射场渲染的 3D 高斯泼溅)
1.2. 作者
BERNHARD KERBL, GEORGIOS KOPANAS, THOMAS LEIMKÜHLER, GEORGE DRETTAKIS
- BERNHARD KERBL:Inria,蔚蓝海岸大学 (Inria, Université Côte d'Azur, France)
- GEORGIOS KOPANAS:Inria,蔚蓝海岸大学 (Inria, Université Côte d'Azur, France)
- THOMAS LEIMKÜHLER:马克斯普朗克计算机科学研究所 (Max-Planck-Institut für Informatik, Germany)
- GEORGE DRETTAKIS:Inria,蔚蓝海岸大学 (Inria, Université Côte d'Azur, France)
- *两位作者贡献相等 (Both authors contributed equally to the paper.)
1.3. 发表期刊/会议
ACM Transactions on Graphics (TOG) 42, 4, Article 1 (August 2023), 14 pages. 该期刊 (ACM Transactions on Graphics) 是计算机图形学领域的顶级刊物,通常被视为该领域的“Siggraph Journal”,具有极高的学术声誉和影响力。
1.4. 发表年份
2023
1.5. 摘要
辐射场 (Radiance Field) 方法最近彻底改变了使用多张照片或视频捕获场景的新视角合成 (novel-view synthesis)。然而,实现高视觉质量仍然需要神经网络,这在训练和渲染时成本高昂,而最近更快速的方法不可避免地以速度换取质量。对于无界和完整场景(而非孤立对象)以及 1080p 分辨率渲染,目前没有方法能达到实时显示速率。本文引入了三个关键要素,使得在保持有竞争力的训练时间的同时,实现最先进的 (state-of-the-art, SOTA) 视觉质量,并且重要的是,能够在 1080p 分辨率下实现高质量的实时 ( 帧每秒, fps) 新视角合成。 首先,从相机标定过程中产生的稀疏点开始,本文使用 3D 高斯函数来表示场景,它既保留了连续体渲染 (volumetric radiance fields) 场在场景优化中所需的良好特性,又避免了在空闲空间中进行不必要的计算。 其次,本文对 3D 高斯函数进行交错优化/密度控制,特别是优化各向异性协方差 (anisotropic covariance) 以实现对场景的精确表示。 第三,本文开发了一种快速的可见性感知渲染算法,该算法支持各向异性泼溅 (anisotropic splatting),既加速了训练,又实现了实时渲染。 本文在多个已建立的数据集上展示了最先进的视觉质量和实时渲染能力。
1.6. 原文链接
- 原文链接:
https://arxiv.org/abs/2308.04079v1 - PDF 链接:
https://arxiv.org/pdf/2308.04079v1.pdf发布状态: arXiv 预印本,后被 ACM Transactions on Graphics 正式接收发表。
2. 整体概括
2.1. 研究背景与动机
核心问题: 传统的辐射场 (Radiance Field) 方法,尤其是基于神经网络的 NeRF (Neural Radiance Field) 及其变体,在新视角合成 (novel-view synthesis) 方面取得了令人惊叹的视觉质量。然而,这些方法的计算成本极高,导致训练时间长,且渲染速度慢,无法满足实时交互的需求。 具体来说,论文指出:
- 高视觉质量与计算成本的矛盾:
NeRF及其最先进的 (state-of-the-art, SOTA) 版本如Mip-NeRF360能够生成高质量图像,但需要数小时甚至数十小时的训练时间(如Mip-NeRF360需要 48 小时),并且渲染速度极慢(远低于 1 帧每秒)。 - 速度与质量的权衡: 近期一些旨在加速训练和渲染的方法,如
InstantNGP和Plenoxels,虽然显著提升了速度,但往往牺牲了部分视觉质量,难以达到NeRF家族的最高水平。它们通常只能实现交互式帧率(10-15 帧每秒),距离实时( 帧每秒)仍有差距。 - 场景类型和分辨率的挑战: 对于复杂的、无界 (unbounded) 场景(包含背景而非孤立对象)以及 1080p 的高分辨率渲染,现有方法都无法同时实现高质量和实时显示。
为什么这个问题很重要:
实时、高质量的 3D 场景渲染是许多应用(如虚拟现实、增强现实、游戏、电影制作、数字孪生等)的关键需求。当前 NeRF 方法的计算瓶颈限制了其在这些领域的大规模实际应用。解决这一问题将极大地推动 3D 内容生成和交互技术的发展。
切入点和创新思路:
本文的创新思路在于结合了体渲染 (volumetric rendering) 的优化优势和点云渲染 (point-based rendering) 的高效性。作者观察到,NeRF 成功的关键在于其连续的、可微分的场景表示,但这导致了昂贵的光线步进 (ray marching) 采样。而点云表示虽然离散,但可以利用 GPU 的光栅化能力实现极快的渲染。作者试图找到一种兼具两者优势的表示方式。
2.2. 核心贡献/主要发现
本文提出了 3D Gaussian Splatting (3DGS) 方法,其核心贡献在于:
- 引入 3D 高斯作为灵活且富有表现力的场景表示: 将场景建模为一组可微分的 3D 高斯函数,每个高斯函数包含位置、不透明度 、各向异性协方差 (anisotropic covariance) 以及球谐函数 (Spherical Harmonics, SH) 系数来表示颜色。这种表示既具有体渲染的连续可微分特性利于优化,又能避免在空闲空间进行不必要的计算,并且可以直接投影到 2D 图像空间进行高效的光栅化。
- 创新的优化与自适应密度控制策略: 提出了一种交错的优化方法,在优化 3D 高斯属性的同时,通过自适应密度控制(克隆
clone和分裂split操作以及透明高斯剔除)来动态调整高斯函数的数量和分布,使得场景表示更加紧凑和精确。特别地,优化各向异性协方差使得高斯函数能够更好地适应场景的几何形状。 - 快速、可微分的可见性感知渲染算法: 开发了一个高效的基于瓦片 (tile-based) 的渲染器。该渲染器利用 GPU 的快速排序算法,实现了对各向异性泼溅 (anisotropic splatting) 的 -混合 ( -blending),并支持可见性感知,从而在保证高质量的同时,实现了前所未有的实时渲染速度。更重要的是,该渲染器是完全可微分的,使得在训练过程中能够高效地进行反向传播。
主要发现:
3DGS在多个基准数据集上实现了与Mip-NeRF360相当甚至更好的视觉质量,但训练时间仅需数十分钟(例如Mip-NeRF360的 48 小时对比3DGS的 35-45 分钟)。3DGS首次实现了在 1080p 分辨率下高质量的新视角合成 (novel-view synthesis) 实时渲染( 帧每秒),远超现有所有方法。- 研究表明,连续表示并非实现高质量辐射场训练的严格必要条件,明确的、可微分的 3D 高斯表示也能达到相同甚至更好的效果。
3. 预备知识与相关工作
3.1. 基础概念
- 辐射场 (Radiance Field): 指的是场景中每个点在任意方向上的光线辐射度(颜色和密度)的连续函数表示。它描述了空间中光线的传播情况,是新视角合成 (novel-view synthesis) 的核心概念。
- 新视角合成 (Novel-view Synthesis): 从一组已知视角的图像生成任意新视角图像的任务。
- 结构光束法 (Structure-from-Motion, SfM): 一种从无序的 2D 图像序列中估计相机运动参数(位姿)和场景稀疏 3D 结构(稀疏点云)的计算机视觉技术。它通常作为 3D 重建和渲染任务的预处理步骤。
- 多层感知机 (Multi-Layer Perceptron, MLP): 一种前馈神经网络,由多个全连接层组成,通常用于学习复杂的非线性映射。在
NeRF中,MLP用来将 3D 位置和视角方向映射到颜色和密度。 - 体渲染 (Volumetric Rendering): 一种渲染技术,用于从三维体数据(如密度场、辐射场)生成 2D 图像。它通过沿着穿过场景的视线(射线)累积光线贡献来计算像素颜色。
- 光线步进 (Ray Marching):
体渲染中常用的一种采样策略,沿着每条光线以固定或自适应的步长进行采样,查询场景的密度和颜色信息。 - 泼溅 (Splatting): 一种点云渲染 (point-based rendering) 技术,它将 3D 空间中的点投影到 2D 图像平面上,并通过一个具有一定“范围”或“核函数”的形状(例如圆形、椭圆形、高斯核)来“涂抹”像素,从而克服点云稀疏性造成的空洞问题。
- 高斯分布 (Gaussian Distribution):
- 2D 高斯: 图像处理中常用的一种概率分布,其等高线是椭圆形。在 2D 泼溅中,通常用 2D 高斯函数来表示点在图像平面上的影响范围。
- 3D 高斯: 3D 空间中的一种概率分布,其等高面是椭球形。本文使用 3D 高斯来建模场景的几何和辐射属性。
- 协方差矩阵 (Covariance Matrix): 描述随机变量之间线性关系(或变异程度)的矩阵。在 3D 高斯中,协方差 (covariance) 矩阵定义了椭球的形状、大小和方向,即高斯的各向异性 (anisotropic) 特性。
- 各向异性 (Anisotropic): 指在不同方向上表现出不同性质的特性。对于 3D 高斯,这意味着其在 x、y、z 三个方向上的尺度和方向可能不同,形成椭球而非球体。
- 球谐函数 (Spherical Harmonics, SH): 一组定义在球面上的正交基函数,常用于表示三维空间中方向性变化的函数,如光照、辐射度等。使用
SH可以紧凑地编码视角依赖性 (view-dependent) 的颜色信息,例如高光和阴影。 - 随机梯度下降 (Stochastic Gradient Descent, SGD): 一种常用的优化算法,用于最小化损失函数。它通过在每一步中随机选择一个或一小批(mini-batch)样本来估计梯度并更新模型参数。
- PSNR (Peak Signal-to-Noise Ratio,峰值信噪比):
- 概念定义: 衡量图像重建质量的客观指标,表示信号最大可能功率与噪声功率之比。通常以分贝 (dB) 为单位,值越高表示图像失真越小,重建图像与真实标注数据 (Ground Truth) 图像之间的差异越小,质量越好。
- 数学公式:
- 符号解释:
- :图像像素的最大可能值。例如,对于 8 位灰度图像,其值为 255。
- :均方误差 (Mean Squared Error),表示原始图像和重建图像之间像素值差异的平方的平均值。
- SSIM (Structural Similarity Index Measure,结构相似性指数测量):
- 概念定义: 一种感知指标,用于衡量两幅图像之间的结构相似性,它更符合人类视觉感知系统对图像质量的判断。
SSIM综合考虑了亮度、对比度和结构三个方面。值越接近 1 表示两幅图像越相似,质量越高。 - 数学公式:
- 符号解释:
x, y:待比较的两幅图像。- :图像 和 的平均亮度。
- :图像 和 的标准差(衡量对比度)。
- :图像 和 的协方差(衡量结构相似性)。
- :用于避免分母为零或过小的常数。其中 是像素值的动态范围(例如,对于 8 位图像 ), 是小常数。
- 概念定义: 一种感知指标,用于衡量两幅图像之间的结构相似性,它更符合人类视觉感知系统对图像质量的判断。
- LPIPS (Learned Perceptual Image Patch Similarity,学习型感知图像块相似度):
- 概念定义: 一种基于深度学习的感知图像相似度指标。它不直接比较像素值,而是通过预训练的深度卷积神经网络(例如 VGG、AlexNet 等)提取图像的特征,然后在特征空间中计算两幅图像之间的距离。
LPIPS值越低表示两幅图像在人类感知上越相似,通常被认为比PSNR和SSIM更能反映人类对图像质量的判断。 - 数学公式:
- 符号解释:
x, y:待比较的两幅图像。- :在预训练深度网络的第 层提取的特征。
- :一个可学习的权重向量,用于缩放不同层特征的重要性。
- :第 层特征图的高度和宽度。
- :表示元素级乘法。
- :表示 L2 范数(欧几里得距离)。
- 概念定义: 一种基于深度学习的感知图像相似度指标。它不直接比较像素值,而是通过预训练的深度卷积神经网络(例如 VGG、AlexNet 等)提取图像的特征,然后在特征空间中计算两幅图像之间的距离。
3.2. 前人工作与技术演进
3.2.1. 传统场景重建与渲染
- 光场 (Light Fields): 早期新视角合成 (novel-view synthesis) 方法,通过密集采样或非结构化捕获(如
Lumigraph)来记录光线信息,然后插值生成新视图。 - SfM (Structure-from-Motion) 与 MVS (Multi-View Stereo):
SfM估计稀疏点云和相机位姿,MVS则在此基础上生成密集的 3D 几何重建。这些几何信息用于引导图像重投影和混合以合成新视图。 - 局限性: 传统方法受限于未重建区域或“过度重建”伪影(如
MVS在无特征/反光区域或薄结构上的问题)。存储所有输入图像成本高昂,且难以处理复杂的场景。
3.2.2. 神经渲染与辐射场
- 早期深度学习应用: 利用
CNN预测混合权重或在纹理空间进行渲染。 - 体渲染 (Volumetric Representations):
Soft3D开启了体渲染的先河,随后结合深度学习和体光线步进 (ray marching) 的方法出现,利用连续可微分的密度场表示几何。 - NeRF (Neural Radiance Field):
Mildenhall et al. 2020引入了位置编码 (positional encoding) 和重要性采样 (importance sampling) 来提高质量,但依赖大型MLP,导致训练和渲染速度慢。 - NeRF 变体: 针对
NeRF的速度和质量问题,涌现了大量后续工作,主要通过三种设计选择来加速:- 空间数据结构: 利用体素 (
voxel)、哈希 (hash) 网格或点来存储和插值特征,如Plenoxels[Fridovich-Keil and Yu et al. 2022]使用稀疏体素网格,InstantNGP[Müller et al. 2022]使用多分辨率哈希编码。 - 不同编码方式: 如
InstantNGP的哈希表编码。 - MLP 容量: 使用更小的
MLP甚至完全放弃神经网络。
- 空间数据结构: 利用体素 (
- 最先进的 (state-of-the-art, SOTA) 质量:
Mip-NeRF360[Barron et al. 2022]是当前图像质量上的SOTA,但训练和渲染时间仍然极高。 - 速度型方法:
InstantNGP和Plenoxels提供了更快的训练速度和交互式渲染帧率,但质量通常不及Mip-NeRF360,并且在表示空闲空间和处理结构化网格加速时仍有局限性。
3.2.3. 基于点的渲染与辐射场
- 传统点云渲染:
[Gross and Pfister 2011]介绍。通过泼溅 (splatting) 具有一定范围的图元(如圆盘、椭球)来解决点云的孔洞和锯齿问题[Botsch et al. 2005; Pfister et al. 2000; Zwicker et al. 2001b]。 - 可微分点云渲染:
[Wiles et al. 2020; Yifan et al. 2019]引起兴趣。 - 神经点云方法:
[Aliev et al. 2020; Rückert et al. 2022]等方法增强点云的神经特征并使用CNN渲染,实现了快速甚至实时的新视角合成。- 局限性: 它们通常依赖
MVS生成初始几何,继承了MVS的伪影;CNN渲染可能导致时间上的不稳定。 Pulsar[Lassner and Zollhofer 2021]实现了快速球体光栅化,但其渲染是顺序无关 (order-independent) 的,不完全遵循alpha混合的可见性顺序。[Zhang et al. 2022]也不需要MVS,使用SH,但仅限于单个对象场景且需要掩模初始化,难以扩展到复杂场景。[Xu et al. 2022]使用点表示辐射场并进行剪枝和稠密化,但仍采用体光线步进 (volumetric ray-marching),无法实时显示。
- 3D 高斯在其他领域的应用:
[Rhodin et al. 2015; Stoll et al. 2011]在人体性能捕捉中使用 3D 高斯,[Wang et al. 2023]在体光线步进 (ray-marching) 中用于视觉任务。- 局限性: 这些方法通常关注孤立对象(如人脸、人体),场景深度复杂度小。
3.3. 差异化分析
本文 3DGS 方法与上述相关工作的核心区别和创新点在于:
- 与传统
NeRF(如Mip-NeRF360) 相比:3DGS放弃了隐式连续表示和昂贵的光线步进 (ray marching),转而采用显式的、可微分的 3D 高斯表示。这使得3DGS在保持甚至超越NeRFSOTA视觉质量的同时,显著缩短了训练时间(数十分钟 vs 数十小时),并首次实现了 1080p 分辨率下的实时渲染。 - 与加速型
NeRF(如InstantNGP,Plenoxels) 相比:3DGS在训练速度上具有竞争力,但在最终视觉质量上能达到更高的水平。这些加速型NeRF仍然依赖结构化网格和光线步进 (ray marching),质量受限于网格分辨率,且渲染速度仍无法达到实时。3DGS的无结构 3D 高斯表示和独特的瓦片式光栅化器避免了这些限制。 - 与神经点云方法 (如
Pulsar,ADOP,Zhang et al. 2022) 相比:- 表示:
3DGS使用 3D 各向异性高斯 (anisotropic Gaussians),相比于这些方法通常使用的 2D 平面点或球形点,能更灵活、更紧凑地表示复杂几何。 - 初始化:
3DGS可以仅从SfM稀疏点云初始化,无需MVS几何或掩模,降低了对输入数据的要求。 - 渲染:
3DGS的光栅化器支持各向异性泼溅 (anisotropic splatting),并严格尊重可见性顺序进行 -混合 ( -blending),避免了Pulsar等方法的顺序无关渲染可能带来的伪影。 - 可微分性:
3DGS的渲染器支持对任意数量混合高斯的反向传播,而Pulsar等方法可能存在梯度计算的数量限制,影响优化稳定性。 - 质量与速度:
3DGS在保持SOTA质量的同时,实现了真正的实时渲染,而其他神经点云方法可能在质量、场景复杂性或分辨率扩展性上有所不足。
- 表示:
4. 方法论
4.1. 方法原理
本文的核心思想是利用 3D 高斯函数作为场景的基本构建块,结合高效的光栅化渲染和自适应优化策略,实现高质量的新视角合成 (novel-view synthesis) 实时渲染。 其背后的直觉是:
-
显式表示的优势:
NeRF的连续隐式表示需要昂贵的光线步进 (ray marching) 才能查询场景信息。如果能用一种显式且易于渲染的结构来表示场景,就可以绕过ray marching的瓶颈。 -
高斯函数的灵活性: 3D 高斯函数(由位置、各向异性协方差 (anisotropic covariance) 和不透明度定义)是一个可微分的体表示。它能够灵活地适应各种几何形状,从细小的结构到大面积的平面,都可以用相对较少的高斯函数来紧凑表示。
-
高效的光栅化: 3D 高斯函数可以投影到 2D 图像平面,形成 2D 椭圆,这使得它们可以利用 GPU 强大的光栅化 (rasterization) 能力进行高效渲染,类似于传统的点云渲染 (point-based rendering) 中的泼溅 (splatting)。
-
可微分性: 整个过程(高斯参数化、投影、渲染)必须是可微分的,以便通过梯度下降进行优化。
下图(原文 Figure 2)展示了整个方法的概览:
该图像是一个示意图,展示了从 SfM 点到图像生成的流程,包含初始化、3D 高斯表示、投影和自适应密度控制等步骤。箭头指示了操作流和梯度流。
从 SfM 稀疏点云开始,初始化 3D 高斯函数。在优化循环中,首先从当前模型中渲染图像,然后与真实标注数据 (Ground Truth) 图像进行比较,计算损失。损失通过可微分渲染器反向传播,更新 3D 高斯的位置、协方差、不透明度以及球谐函数 (Spherical Harmonics, SH) 系数。优化过程还穿插着自适应密度控制步骤,用于添加或移除 3D 高斯,以更好地表示场景。最终得到一个紧凑、精确且可实时渲染的场景表示。
4.2. 核心方法详解
4.2.1. 可微分 3D 高斯泼溅 (Differentiable 3D Gaussian Splatting)
本文将场景表示为一组 3D 高斯函数。每个高斯函数由以下属性定义:
-
位置 (Position):3D 坐标 (mean)。
-
协方差矩阵 (Covariance Matrix):,定义了高斯函数的形状、大小和方向。
-
不透明度 (Opacity):,一个介于 0 和 1 之间的值。
-
球谐函数 (Spherical Harmonics, SH) 系数:用于表示高斯的颜色 ,可以捕捉视角依赖性 (view-dependent) 的外观。
一个 3D 高斯函数
G(x)定义为: 符号解释: -
:三维空间中的任意点。
-
:高斯函数的中心(均值)的 3D 坐标。
-
:3D 协方差 (covariance) 矩阵,一个 的对称正定矩阵,描述了高斯函数的形状和方向。
3D 高斯到 2D 投影:
为了渲染,3D 高斯函数需要投影到 2D 图像平面。本文遵循 Zwicker et al. [2001a] 的方法,将 3D 高斯的协方差 (covariance) 矩阵 投影到相机坐标系下的 2D 协方差矩阵 。
给定一个视图变换矩阵 (将世界坐标转换为相机坐标),相机坐标系下的协方差 (covariance) 矩阵 为:
符号解释:
- :投影到 2D 图像空间后的协方差 (covariance) 矩阵(一个 矩阵)。
- :投影变换 (projective transformation) 的仿射近似的雅可比矩阵 (Jacobian)。它将相机坐标系下的 3D 点投影到 2D 图像平面,并考虑了透视效应。
- :从世界坐标系到相机坐标系的视图变换矩阵,通常是一个 的旋转矩阵。
- :世界坐标系下的 3D 协方差 (covariance) 矩阵。 通过选择 的左上角 子矩阵,可以得到一个 2D 方差 (variance) 矩阵,其结构和性质类似于从带有法线的平面点开始的情况。
协方差矩阵的参数化与优化: 直接优化协方差 (covariance) 矩阵 存在挑战,因为它必须是正半定矩阵。梯度下降优化难以直接约束此条件。 因此,本文采用一种更直观且等效的表示方式:将 3D 高斯函数的协方差 (covariance) 矩阵 分解为尺度矩阵 和旋转矩阵 : 符号解释:
- :一个旋转矩阵,由一个四元数 参数化,定义了高斯椭球的方向。
- :一个对角尺度矩阵,由一个 3D 向量 参数化,定义了高斯椭球在三个主轴上的尺度。 这种分解允许独立优化尺度 和旋转 ,并通过将 归一化来确保其有效性。对于尺度 ,使用指数激活函数来确保其为正值。
梯度计算: 为了避免自动微分带来的额外开销,本文明确推导了所有参数的梯度。 通过链式法则,可以找到 对尺度 和旋转 的导数: 符号解释:
-
:投影协方差 对尺度向量 的导数。
-
:投影协方差 对四元数 的导数。
-
:投影协方差 对世界坐标系协方差 的导数。
-
:世界坐标系协方差 对尺度向量 的导数。
-
:世界坐标系协方差 对四元数 的导数。
进一步简化 Eq. 5 (),令 ,则 是 的左上角 矩阵。 对于 ,其偏导数 可表示为: 符号解释:
-
:矩阵 的第 行第 列元素。
-
:矩阵 的第 行第 列元素。
接下来推导 和 。由于 ,可以定义 ,则 。 因此,可以写出: 符号解释:
-
:中间矩阵
R S。 -
: 对 的导数。
-
: 对尺度向量 的导数。
-
: 对四元数 的导数。
由于协方差 (covariance) 矩阵 是对称的,其导数 可以紧凑地表示为: 符号解释:
-
:矩阵 的转置。
对于尺度 ,我们有 : 符号解释:
-
:矩阵 的第 行第 列元素。
-
:尺度向量 的第 个分量。
-
:旋转矩阵 的第 行第 列元素。
为了推导关于旋转的梯度,需要回忆单位四元数 到旋转矩阵 的转换公式: 符号解释:
-
:四元数 的实部和三个虚部。
-
R(q):由四元数 得到的 旋转矩阵。 基于此,可以得到 对 各分量的偏导数: 符号解释: -
:尺度向量 的三个分量。
-
:四元数 的实部和三个虚部。
-
:矩阵 对四元数 各分量的偏导数。
4.2.2. 带自适应密度控制的 3D 高斯优化 (Optimization with Adaptive Density Control of 3D Gaussians)
优化是 3DGS 的核心,它通过迭代渲染和损失计算来调整 3D 高斯函数的参数。
初始化:
- 从
SfM得到的稀疏点云作为初始 3D 高斯函数的中心。 - 初始协方差 (covariance) 矩阵被估计为一个各向同性高斯 (isotropic Gaussian),其轴长等于到最近三个点距离的平均值。
- 不透明度 和
SH系数也进行初始化。
优化参数:
- 位置
- 不透明度
- 各向异性协方差 (anisotropic covariance)(通过尺度 和旋转 )
- 球谐函数 (Spherical Harmonics, SH) 系数
激活函数:
- 不透明度 使用
sigmoid激活函数,将其约束在[0, 1)范围内,并获得平滑梯度。 - 协方差 (covariance) 的尺度使用指数激活函数,以确保其为正值。
损失函数:
使用 损失与 D-SSIM 项结合:
符号解释:
- :总损失。
- :
L1损失,通常是预测图像与真实标注数据 (Ground Truth) 图像之间像素绝对差的平均值。 - :
D-SSIM损失,基于SSIM的损失,用于衡量结构相似性。 - :权重系数,在所有实验中设为
0.2。
自适应密度控制 (Adaptive Density Control):
为了从稀疏的 SfM 点发展出密集的、准确的场景表示,本文引入了自适应密度控制策略,在优化过程中周期性地调整高斯函数的数量和分布。
该算法总结在 Algorithm 1 中:
| Algorithm 1 Optimization and Densification w, h: width and height of the training images | |
| M ← SfM Points S, C, A ← InitAttributes() | Positions Covariances, Colors, Opacities Iteration Count |
| i ← 0 while not converged do | |
| V, ← SampleTrainingView() > Camera V and Image |
符号解释:
-
w, h:训练图像的宽度和高度。 -
:SfM (Structure-from-Motion) 初始点。
-
S, C, A:分别表示高斯函数的尺度、颜色和不透明度。 -
InitAttributes():初始化高斯函数属性的函数。 -
:迭代计数器。
-
SampleTrainingView():采样一个训练视图(相机 和图像)。该策略包括:
-
初始化与预热 (Warm-up): 从
SfM稀疏点开始。在优化预热期(见7.1节),使用较低分辨率进行计算,然后逐步提高分辨率。 -
周期性稠密化 (Densification): 在预热后,每 100 次迭代进行一次稠密化操作。
-
透明高斯剔除 (Transparent Gaussian Removal): 移除不透明度 小于阈值 的高斯函数,以减少不必要的计算和内存占用。
-
基于梯度的高斯分裂/克隆:
-
触发条件: 稠密化关注那些视空间位置梯度平均幅度超过阈值 的高斯函数(在测试中设置为
0.0002)。这些区域通常对应于“欠重建”或“过重建”,表明场景在该处未被很好地表示。 -
克隆 (Clone) 策略 (欠重建): 对于小的、位于欠重建区域的高斯函数,直接克隆一个新的高斯函数(相同大小),并沿位置梯度方向移动。这有助于覆盖新的几何细节。
-
分裂 (Split) 策略 (过重建): 对于大的、位于高方差区域的高斯函数,将其替换为两个新的高斯函数,并将它们的尺度除以因子 。新高斯函数的位置通过以原始 3D 高斯函数作为
PDF进行采样来初始化。这有助于更精细地表示复杂几何。下图(原文 Figure 4)展示了自适应高斯密度化方案:
该图像是一个示意图,展示了自适应高斯密度化方案的两个阶段。顶部部分展示了当小规模几何体不足覆盖时,采用克隆方式进行优化;底部部分则表现了在过度重建情况下,如何通过拆分大面积样本以提升精度,进一步优化过程。
-
-
不透明度重置 (Opacity Reset): 每 次迭代,将高斯函数的不透明度 设置为接近零。这有助于优化过程摆脱在输入相机附近产生的“浮点物 (floaters)”,并允许算法重新学习哪些高斯是必要的,同时剔除不重要的高斯。
4.2.3. 快速可微分高斯光栅化器 (Fast Differentiable Rasterizer for Gaussians)
该渲染器是本文实现实时性能的关键,它支持各向异性泼溅 (anisotropic splatting) 和可见性感知。
图像形成模型:
点云渲染 (point-based rendering) 中的 -混合 ( -blending) 和 NeRF 风格的体渲染 (volumetric rendering) 共享相同的图像形成模型。
体渲染 (Volumetric Rendering) 沿着光线计算颜色 :
符号解释:
-
:最终的像素颜色。
-
:光线上采样的点数。
-
:透射率 (transmittance),表示光线从相机到第 个采样点未被遮挡的程度。
-
:第 个采样点的密度。
-
:第 个采样点处的步长。
-
:第 个采样点的颜色。
这可以重写为: 其中: 符号解释:
-
:第 个采样点的有效不透明度。
-
:可以看作是 。
典型的神经点云方法 (neural point-based approach) 计算像素颜色 的公式如下: 符号解释:
-
:每个点的颜色。
-
:由 2D 高斯函数计算并乘以学习到的点不透明度。 从 Eq. 2 和 Eq. 3 可以看出,图像形成模型是相同的。
渲染管道: 该渲染器是一个基于瓦片 (tile-based) 的软件光栅化器 (rasterizer),利用 GPU 进行高效并行处理。其算法总结在 Algorithm 2 中:
| Algorithm 2 GPU software rasterization of 3D Gaussians w, h: width and height of the image to rasterize M, S: Gaussian means and covariances in world space C, A: Gaussian colors and opacities V: view configuration of current camera |
| function RASTERIzE(w, h, M, S, C, A, V) CullGaussian(p, V ) Frustum Culling M′, S′ ← ScreenspaceGaussians(M, S, V ) Transform T ← CreateTiles(w, h) |
| L, K ← DuplicateWithKeys(M ′, T) Indices and Keys SortByKeys(K, L) Globally Sort R ← IdentifyTileRanges(T , K) I ← 0 Init Canvas |
| for all Tiles t in I do for all Pixels i in t do r ← GetTileRange(R, t) I[i] ← BlendInOrder(i, L, r, K, M′, S′, C, A) |
符号解释:
w, h:图像的宽度和高度。M, S:世界空间中的高斯均值和协方差 (covariance)。C, A:高斯的颜色和不透明度。- :当前相机的视图配置。
CullGaussian(p, V):根据视锥体进行视锥体剔除 (Frustum Culling)。ScreenspaceGaussians(M, S, V):将高斯从世界空间变换到屏幕空间,得到 和 。CreateTiles(w, h):将屏幕划分为瓦片。DuplicateWithKeys(M', T):为每个与瓦片重叠的高斯生成实例,并分配一个键 。SortByKeys(K, L):通过键 对高斯实例 进行全局排序。IdentifyTileRanges(T, K):识别每个瓦片在高斯排序列表中的范围 。Init Canvas:初始化渲染画布 。BlendInOrder(i, L, r, K, M', S', C, A):按顺序混合瓦片 中像素 的高斯。
关键步骤:
- 瓦片划分: 屏幕被划分为 像素的瓦片。
- 高斯剔除: 剔除不在视锥体内的 3D 高斯函数(99% 置信区间),并使用保护带 (guard band) 拒绝极端位置的高斯以防止数值不稳定。
- 实例与键生成: 对于每个与瓦片重叠的高斯,都会创建一个实例。每个实例分配一个键,该键结合了视空间深度和瓦片 ID。
- 全局排序: 使用快速 GPU Radix 排序算法
[Merrill and Grimshaw 2010]对所有高斯实例进行一次全局排序。排序的依据是生成的键,确保了高斯函数在每个瓦片内大致按深度顺序排列。 - 瓦片处理: 为每个瓦片启动一个线程块。每个线程块协同加载高斯函数到共享内存。
- 像素渲染: 对于给定像素,线程按深度顺序从前到后遍历高斯列表,累积颜色和不透明度。当像素的不透明度达到饱和(接近 1)时,相应线程停止处理。
可微分性与反向传播:
- 渲染器是完全可微分的。
- 无限梯度接收: 与某些限制接收梯度图元数量的方法不同,
3DGS不限制接受梯度更新的混合图元数量。这对于处理具有任意深度复杂度的场景至关重要。 - 中间不透明度重建: 在反向传播时,需要恢复前向传播过程中每个步骤累积的不透明度值。本文通过存储最终累积的不透明度,并在反向遍历时,将最终不透明度除以每个高斯函数的不透明度 来重建这些中间不透明度值。
- 数值稳定性: 为了避免数值不稳定(如除以零),在混合过程中会跳过 的更新,并将 限制在
0.99以下。在包含高斯函数之前,会计算累积不透明度,如果超过0.9999则停止混合。
5. 实验设置
5.1. 数据集
实验在广泛的数据集上进行,涵盖了不同的场景类型和捕获方式,以全面评估 3DGS 的性能。
-
真实世界场景:
-
Mip-NeRF360 数据集
[Barron et al. 2022]: 包含 9 个场景,是目前NeRF渲染质量最先进的 (state-of-the-art, SOTA) 基准。这些场景捕获风格多样,既有有界室内场景,也有大型无界室外环境,非常适合评估方法在复杂场景下的泛化能力。 -
Tanks&Temples 数据集
[Knapitsch et al. 2017]: 选择了其中的Truck和Train两个场景。这是一个大规模室外数据集,以其复杂的几何和纹理挑战而闻名。 -
Hedman et al.
[Hedman et al. 2018]提供的数据集: 选择了其中的 2 个场景(具体未指明,但通常包括室内和室外场景)。 -
数据集样本示例: 下图(原文 Figure 5)展示了来自
Mip-NeRF360的Bicycle、Stump、Room和Tanks&Temples的Truck和Train场景的渲染结果。
该图像是插图,展示了我们的方法与多种基准方法的结果对比,包括真实场景、我们的方法、Mip-NeRF360、InstantNGP 和 PlenoXels。每一行展示了不同场景的渲染效果,强调了我们方法在视觉质量上的优势。下图(原文 Figure 6)展示了
Tanks&Temples的Train场景。
该图像是示意图,展示了不同迭代次数对渲染效果的影响。上方左侧为7K迭代(约5分钟),右侧为30K迭代(约35分钟),显示出火车的细节逐渐提升。下方展示了在同样迭代条件下的另一场景,7K与30K迭代之间的变化微弱,7K迭代已达到较高质量。下图(原文 Figure 11)展示了
Tanks&Temples的Train场景。
该图像是图表,展示了两个场景的比较:左侧为Mip-NeRF360方法的结果,显示了浮动物体和颗粒感;右侧为我们的方法,展示了粗糙、各向异性的高斯表示,导致低细节视觉效果。该图展示了在TRAIN场景中的失效伪影对比。下图(原文 Figure 12)展示了
Hedman et al.的DrJohnson场景。
该图像是一个比较图,左侧展示了Mip-NeRF360在训练时视角重叠较少的情况下产生的伪影,右侧是我们的方法在相同场景中的表现。两者均在少数重叠视角下产生 artifacts,展示了不同技术的效果对比。
-
-
合成有界场景:
-
Blender 数据集
[Mildenhall et al. 2020]: 包含 8 个场景(Mic,Chair,Ship,Materials,Lego,Drums,Ficus,Hotdog)。这些场景提供详尽的视图,尺寸有限,并提供精确的相机参数。这些场景通常用于评估NeRF方法在理想条件下的性能。 -
数据集样本示例: 下图(原文 Figure 10)展示了
Blender数据集中的Lego场景。
该图像是插图,展示了三种不同渲染策略下的场景效果,包括真实场景(Ground Truth)、完整渲染(Full)和各向同性渲染(Isotropic),分别表现了不同的视觉质量。
-
-
紧凑性评估:
- 使用了
[Zhang et al. 2022]提出的方法,从他们通过空间雕刻 (space carving) 和前景掩模获得的初始点云开始,评估3DGS在保持质量的同时,能否生成更紧凑的模型。
- 使用了
5.2. 评估指标
论文使用以下三个标准指标来评估新视角合成 (novel-view synthesis) 任务的图像质量:
- PSNR (Peak Signal-to-Noise Ratio,峰值信噪比):
- 概念定义: 衡量图像重建质量的客观指标,表示信号最大可能功率与噪声功率功率之比。通常以分贝 (dB) 为单位,值越高表示图像失真越小,重建图像与真实标注数据 (Ground Truth) 图像之间的差异越小,质量越好。
- 数学公式:
- 符号解释:
- :图像像素的最大可能值。例如,对于 8 位灰度图像,其值为 255。
- :均方误差 (Mean Squared Error),表示原始图像和重建图像之间像素值差异的平方的平均值。
- SSIM (Structural Similarity Index Measure,结构相似性指数测量):
- 概念定义: 一种感知指标,用于衡量两幅图像之间的结构相似性,它更符合人类视觉感知系统对图像质量的判断。
SSIM综合考虑了亮度、对比度和结构三个方面。值越接近 1 表示两幅图像越相似,质量越高。 - 数学公式:
- 符号解释:
x, y:待比较的两幅图像。- :图像 和 的平均亮度。
- :图像 和 的标准差(衡量对比度)。
- :图像 和 的协方差(衡量结构相似性)。
- :用于避免分母为零或过小的常数。其中 是像素值的动态范围(例如,对于 8 位图像 ), 是小常数。
- 概念定义: 一种感知指标,用于衡量两幅图像之间的结构相似性,它更符合人类视觉感知系统对图像质量的判断。
- LPIPS (Learned Perceptual Image Patch Similarity,学习型感知图像块相似度):
- 概念定义: 一种基于深度学习的感知图像相似度指标,通过预训练深度网络提取图像特征,然后计算特征空间中的距离。
LPIPS值越低表示图像越相似,越符合人类感知。 - 数学公式:
- 符号解释:
x, y:待比较的两幅图像。- :在预训练深度网络的第 层提取的特征。
- :一个可学习的权重向量,用于缩放不同层特征的重要性。
- :第 层特征图的高度和宽度。
- :表示元素级乘法。
- :表示 L2 范数(欧几里得距离)。
- 概念定义: 一种基于深度学习的感知图像相似度指标,通过预训练深度网络提取图像特征,然后计算特征空间中的距离。
5.3. 对比基线
论文将自己的方法与以下几种最先进的 (state-of-the-art, SOTA) 和主流辐射场渲染方法进行了比较:
- Plenoxels
[Fridovich-Keil and Yu et al. 2022]: 使用稀疏体素网格来存储和插值连续密度场,无需神经网络。以其快速训练和渲染速度而闻名,但质量通常不如NeRF家族的最先进的 (state-of-the-art, SOTA) 方法。 - InstantNGP (Base 和 Big 版本)
[Müller et al. 2022]: 使用多分辨率哈希编码和小型MLP来加速训练和渲染。是目前最快的NeRF变体之一。Base是基本配置,Big是作者建议的稍大网络配置。 - Mip-NeRF360
[Barron et al. 2022]:NeRF家族中最先进的 (state-of-the-art, SOTA) 方法,以其卓越的图像质量著称,尤其是在处理无界场景和抗锯齿方面表现出色,但训练和渲染成本极高。 - Point-NeRF
[Xu et al. 2022]: 一种使用点来表示辐射场的方法,通过径向基函数方法。它也采用了点剪枝和稠密化技术,但仍依赖体光线步进 (volumetric ray-marching)。 - Zhang et al. 2022
[Zhang et al. 2022]: 一种不需要MVS且使用SH的点基渲染方法,但仅限于单个对象场景,且需要掩模进行初始化。用于比较模型紧凑性。
6. 实验结果与分析
6.1. 核心结果分析
本文通过在多个数据集上与现有方法进行对比,证明了 3DGS 在视觉质量和渲染速度上的最先进的 (state-of-the-art, SOTA) 性能。
以下是原文 Table 1 的结果:
| Dataset | Mip-NeRF360 | Tanks&Temples | Deep Blending | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Method | SSIM↑ | PSNR↑ | LPIPS↓ | Train | FPS | Mem | SSIM↑ | PSNR↑ | LPIPS↓ | Train | FPS | Mem | SSIM↑ | PSNR↑ | LPIPS↓ | Train | FPS | Mem |
| Plenoxels | 0.626 | 23.08 | 0.463 | 25m49s | 6.79 | 2.1GB | 0.719 | 21.08 | 0.379 | 25m5s | 13.0 | 2.3GB | 0.795 | 23.06 | 0.510 | 27m49s | 11.2 | 2.7GB |
| INGP-Base | 0.671 | 25.30 | 0.371 | 5m37s | 11.7 | 13MB | 0.723 | 21.72 | 0.330 | 5m26s | 17.1 | 13MB | 0.797 | 23.62 | 0.423 | 6m31s | 3.26 | 13MB |
| INGP-Big | 0.6699 | 25.59 | 0.331 | 7m30s | 9.43 | 48MB | 0.745 | 21.92 | 0.305 | 6m59s | 14.4 | 48MB | 0.817 | 24.96 | 0.390 | 8m | 2.79 | 48MB |
| M-NeRF360 | 0.792* | 27.69† | 0.237 | 48h | 0.06 | 8.6MB | 0.759 | 22.22 | 0.257 | 48h | 0.14 | 8.6MB | 0.901 | 29.40 | 0.245 | 48h | 0.09 | 8.6MB |
| Ours-7K | 0.770 | 25.60 | 0.279 | 6m25s | 160 | 523MB | 0.767 | 21.20 | 0.280 | 6m55s | 197 | 270MB | 0.875 | 27.78 | 0.317 | 4m35s | 172 | 386MB |
| Ours-30K | 0.815 | 27.21 | 0.214 | 41m33s | 134 | 734MB | 0.841 | 23.14 | 0.183 | 26m54s | 154 | 411MB | 0.903 | 29.41 | 0.243 | 36m2s | 137 | 676MB |
*数据直接取自原始论文,其余通过本文实验获得。 †表示数据直接取自原始论文。
1. 实时渲染性能 (FPS):
3DGS在 7K 迭代 (Ours-7K) 时就能达到非常高的帧率(Mip-NeRF360 数据集上 160 FPS,Tanks&Temples 上 197 FPS,Deep Blending 上 172 FPS),远超所有基线方法。- 在 30K 迭代 (Ours-30K) fully converged 模型下,帧率虽然略有下降,但仍保持在 134-154 FPS 之间,这仍然是实时 (real-time) 性能(远超 30 FPS)。
- 相比之下,
Mip-NeRF360的帧率仅为 0.06-0.14 FPS,InstantNGP和Plenoxels也只能达到个位数或十几帧每秒,无法实现实时。
2. 视觉质量 (SSIM, PSNR, LPIPS):
- 在 Mip-NeRF360 数据集上,
Ours-30K在 SSIM (0.815), PSNR (27.21), LPIPS (0.214) 方面与Mip-NeRF360(SSIM 0.792, PSNR 27.69, LPIPS 0.237) 相当,甚至在 LPIPS 上表现更优。 - 在 Tanks&Temples 和 Deep Blending 数据集上,
Ours-30K在所有指标上都显著超越了Mip-NeRF360及其他基线方法,达到了最先进的 (state-of-the-art, SOTA) 质量。 - 这表明
3DGS成功地在高质量渲染和实时性能之间取得了平衡,甚至在某些情况下超越了质量最先进的 (state-of-the-art, SOTA) 方法。
3. 训练时间:
Ours-30K的训练时间为 26-41 分钟,与InstantNGP(5-8 分钟) 和Plenoxels(25-27 分钟) 相比具有竞争力。- 与
Mip-NeRF360(48 小时) 相比,3DGS的训练时间大幅缩短,达到了从几小时到几十分钟的量级。 Ours-7K在更短的训练时间(4-7 分钟)内就能达到与InstantNGPBig相当的质量,甚至在Tanks&Temples和Deep Blending上表现更好,并且帧率极高。
4. 内存占用 (Mem):
-
3DGS模型的内存占用(270MB-734MB)高于InstantNGP(13MB-48MB) 和Mip-NeRF360(8.6MB),但远低于Plenoxels(2.1GB-2.7GB)。在实时渲染下,数百兆的内存占用通常是可接受的。下图(原文 Figure 5)展示了各种方法的视觉结果对比:
该图像是插图,展示了我们的方法与多种基准方法的结果对比,包括真实场景、我们的方法、Mip-NeRF360、InstantNGP 和 PlenoXels。每一行展示了不同场景的渲染效果,强调了我们方法在视觉质量上的优势。
从图中可以看出,3DGS (Ours) 在细节保留和整体视觉效果方面与真实标注数据 (Ground Truth) 最接近,且优于其他基线方法,尤其是在处理纹理细节和复杂几何方面。
下图(原文 Figure 6)展示了 3DGS 在不同迭代次数下的视觉质量变化:
该图像是示意图,展示了不同迭代次数对渲染效果的影响。上方左侧为7K迭代(约5分钟),右侧为30K迭代(约35分钟),显示出火车的细节逐渐提升。下方展示了在同样迭代条件下的另一场景,7K与30K迭代之间的变化微弱,7K迭代已达到较高质量。
对于某些场景,即使在 7K 迭代(约 5 分钟)时,3DGS 已经取得了相当好的结果,背景伪影在 30K 迭代(约 35 分钟)后显著减少。对于其他场景,7K 迭代的质量已经非常高,与 30K 迭代的差异微乎其微。
合成有界场景 (Blender 数据集) 结果: 以下是原文 Table 2 的结果:
| PSNR↑ | Avg. | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Mic | Chair | Ship | Materials | Lego | Drums | Ficus | Hotdog | ||
| Plenoxels | 33.26 | 33.98 | 29.62 | 29.14 | 34.10 | 25.35 | 31.83 | 36.81 | 31.76 |
| INGP-Base | 36.22 | 35.00 | 31.10 | 29.78 | 36.39 | 26.02 | 33.51 | 37.40 | 33.18 |
| Mip-NeRF | 36.51 | 35.14 | 30.41 | 30.71 | 35.70 | 25.48 | 33.29 | 37.48 | 33.09 |
| Point-NeRF | 35.95 | 35.40 | 30.97 | 29.61 | 35.04 | 26.06 | 36.13 | 37.30 | 33.30 |
| Ours-30K | 35.36 | 35.83 | 30.80 | 30.00 | 35.78 | 26.15 | 34.87 | 37.72 | 33.32 |
表 2. Synthetic NeRF 的 PSNR 分数,从 100K 随机初始化点开始。竞争指标从各自论文中提取。
- 在
Blender数据集上,Ours-30K的平均 PSNR 达到 33.32,与INGP-Base(33.18) 和Point-NeRF(33.30) 相当,甚至略高于Mip-NeRF(33.09)。 - 即使从 100K 随机初始化的点开始训练,
3DGS也能快速收敛并自动剪枝到 610K 有效高斯,最终模型大小在 200-500K 高斯之间。 - 渲染帧率在 180-300 FPS 之间,显示出在理想的合成场景下,
3DGS的卓越效率。
紧凑性:
- 与
[Zhang et al. 2022]提出的点基模型相比,3DGS能够以更少的参数建模复杂形状。 - 在与
[Zhang et al. 2022]的方法进行比较时,3DGS在达到或超越其报告的 PSNR 分数时,使用的点数量大约是其四分之一(平均模型大小 3.8 MB vs 9 MB)。这表明各向异性高斯 (anisotropic Gaussians) 具有很高的表示效率。
6.2. 消融实验/参数分析
论文通过一系列消融实验,验证了其方法中各个组件和设计选择的有效性。 以下是原文 Table 3 的结果:
| Truck-5K | Garden-5K | Bicycle-5K | Truck-30K | Garden-30K | Bicycle-30K | Average-5K | Average-30K | |
|---|---|---|---|---|---|---|---|---|
| Limited-BW | 14.66 | 22.07 | 20.77 | 13.84 | 22.88 | 20.87 | 19.16 | 19.19 |
| Random Init | 16.75 | 20.90 | 19.86 | 18.02 | 22.19 | 21.05 | 19.17 | 20.42 |
| No-Split | 18.31 | 23.98 | 22.21 | 20.59 | 26.11 | 25.02 | 21.50 | 23.90 |
| No-SH | 22.36 | 25.22 | 22.88 | 24.39 | 26.59 | 25.08 | 23.48 | 25.35 |
| No-Clone | 22.29 | 25.61 | 22.15 | 24.82 | 27.47 | 25.46 | 23.35 | 25.91 |
| Isotropic | 22.40 | 25.49 | 22.81 | 23.89 | 27.00 | 24.81 | 23.56 | 25.23 |
| Full | 22.71 | 25.82 | 23.18 | 24.81 | 27.70 | 25.65 | 23.90 | 26.05 |
表 3. 消融实验。
-
从
SfM初始化:-
Random Init(随机初始化) 的 PSNR 远低于Full模型 (使用SfM点初始化)。例如,在 30K 迭代下,Random Init平均 PSNR 为 20.42,而Full模型为 26.05。 -
这表明使用
SfM点作为初始 3D 高斯位置对于模型的收敛和最终质量至关重要,尤其是在背景区域和训练视图未充分覆盖的区域。 -
下图(原文 Figure 7)展示了
SfM初始化与随机初始化的视觉对比:
该图像是示意图,展示了 SfM 点与随机点云的初始化对比。上方为随机点云初始化,底部为使用 SfM 点的初始化,展示了在场景优化中所取得的明显差异。SfM初始化在高斯的分布和重构质量上均优于随机初始化。
-
-
稠密化策略:
-
No-Split(无分裂): PSNR 显著下降 (平均 30K 迭代 23.90),表明将大高斯分裂为小高斯对于细致的几何重建至关重要,尤其是在处理“过重建”区域。 -
No-Clone(无克隆): PSNR 也有所下降 (平均 30K 迭代 25.91),但不如No-Split严重。这说明克隆小高斯有助于在“欠重建”区域填充新的几何信息,加速收敛并更好地表示薄结构。 -
下图(原文 Figure 8)展示了稠密化策略的消融实验结果:
该图像是图表,展示了不同的稠密化策略在合成场景中的效果,包括 "No Split-5k"、"No Clone-5k" 和 "Full-5k" 的对比。图中左上、右上、左下、右下分别显示了这些策略的视觉效果,重点突出细节的差异。可以看到,“分裂”对于重建背景等大尺度几何细节很重要,而“克隆”有助于更好地重建薄结构。
-
-
无限深度复杂度梯度接收:
-
Limited-BW(限制接收梯度的点数量,例如 10 个最前面的点) 导致 PSNR 大幅下降 (平均 30K 迭代 19.19),这表明对接收梯度的高斯函数数量施加硬性限制会严重损害优化稳定性和最终质量。 -
这验证了本文方法中不限制梯度接收点数量的设计选择是正确的。
-
下图(原文 Figure 9)展示了限制梯度接收点数量对视觉质量的显著影响:
该图像是对比图,展示了当限制接收梯度的高斯点数量时,对视觉质量的显著影响。左侧展示了仅限10个接收梯度的高斯点的结果,而右侧则呈现了完整方法的效果。左侧限制梯度点数量的图像质量明显低于右侧完整方法的图像。
-
-
各向异性协方差 (Anisotropic Covariance):
-
Isotropic(各向同性高斯,即只优化一个标量半径) 的 PSNR 略低于Full模型 (平均 30K 迭代 25.23 vs 26.05)。 -
这表明优化完整的各向异性协方差 (anisotropic covariance) 对于高斯函数能够更好地与表面对齐,从而在相同数量的高斯下实现更高的渲染质量至关重要。
-
下图(原文 Figure 10)展示了各向同性 (Isotropic) 与完整 (Full) 渲染的视觉效果对比:
该图像是插图,展示了三种不同渲染策略下的场景效果,包括真实场景(Ground Truth)、完整渲染(Full)和各向同性渲染(Isotropic),分别表现了不同的视觉质量。可以看到完整 (Full) 模型在细节和几何对齐上表现更好。
-
-
球谐函数 (Spherical Harmonics, SH):
No-SH(不使用SH) 的 PSNR 略低于Full模型 (平均 30K 迭代 25.35 vs 26.05)。- 这证实了
SH对于捕捉视角依赖性 (view-dependent) 效果(如高光、阴影)并提高整体图像质量(由 PSNR 衡量)是有效的。
Mip-NeRF360 场景的详细误差指标: 以下是原文 Table 4, 5, 6 的结果:
| SSIM↑ | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| bicycle | flowers | garden | stump | treehill | room | counter | kitchen | bonsai | |
| Plenoxels | 0.496 | 0.431 | 0.6063 | 0.523 | 0.509 | 0.8417 | 0.759 | 0.648 | 0.814 |
| INGP-Base | 0.491 | 0.450 | 0.649 | 0.574 | 0.518 | 0.855 | 0.798 | 0.818 | 0.890 |
| INGP-Big | 0.512 | 0.486 | 0.701 | 0.594 | 0.542 | 0.871 | 0.817 | 0.858 | 0.906 |
| Mip-NeRF360† | 0.685 | 0.583 | 0.813 | 0.744 | 0.632 | 0.913 | 0.894 | 0.920 | 0.941 |
| Mip-NeRF360 | 0.685 | 0.584 | 0.809 | 0.745 | 0.631 | 0.910 | 0.892 | 0.917 | 0.938 |
| Ours-7k | 0.675 | 0.525 | 0.836 | 0.728 | 0.598 | 0.884 | 0.873 | 0.900 | 0.910 |
| Ours-30k | 0.771 | 0.605 | 0.868 | 0.775 | 0.638 | 0.914 | 0.905 | 0.922 | 0.938 |
表 4. Mip-NeRF360 场景的 SSIM 分数。†数据取自原始论文。
| PSNR↑ | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| bicycle | flowers | garden | stump | treehill | room | counter | kitchen | bonsai | |
| Plenoxels | 21.912 | 20.097 | 23.4947 | 20.661 | 22.248 | 27.594 | 23.624 | 23.420 | 24.669 |
| INGP-Base | 22.193 | 20.348 | 24.599 | 23.626 | 22.364 | 29.269 | 26.439 | 28.548 | 30.337 |
| INGP-Big | 22.171 | 20.652 | 25.069 | 23.466 | 22.373 | 29.690 | 26.691 | 29.479 | 30.685 |
| Mip-NeRF360† | 24.37 | 21.73 | 26.98 | 26.40 | 22.87 | 31.63 | 29.55 | 32.23 | 33.46 |
| Mip-NeRF360 | 24.305 | 21.649 | 26.875 | 26.175 | 22.929 | 31.467 | 29.447 | 31.989 | 33.397 |
| Ours-7k | 23.604 | 20.515 | 26.245 | 25.709 | 22.085 | 28.139 | 26.705 | 28.546 | 28.850 |
| Ours-30k | 25.246 | 21.520 | 27.410 | 26.550 | 22.490 | 30.632 | 28.700 | 30.317 | 31.980 |
表 5. Mip-NeRF360 场景的 PSNR 分数。†数据取自原始论文。
| LPIPS↓ | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| bicycle | flowers | garden | stump | treehill | room | counter | kitchen | bonsai | |
| Plenoxels | 0.506 | 0.521 | 0.3864 | 0.503 | 0.540 | 0.4186 | 0.441 | 0.447 | 0.398 |
| INGP-Base | 0.487 | 0.481 | 0.312 | 0.450 | 0.489 | 0.301 | 0.342 | 0.254 | 0.227 |
| INGP-Big | 0.446 | 0.441 | 0.257 | 0.421 | 0.450 | 0.261 | 0.306 | 0.195 | 0.205 |
| Mip-NeRF360† | 0.301 | 0.344 | 0.170 | 0.261 | 0.339 | 0.211 | 0.204 | 0.127 | 0.176 |
| Mip-NeRF360 | 0.305 | 0.346 | 0.171 | 0.265 | 0.347 | 0.213 | 0.207 | 0.128 | 0.179 |
| Ours-7k | 0.318 | 0.417 | 0.153 | 0.287 | 0.404 | 0.272 | 0.254 | 0.161 | 0.244 |
| Ours-30k | 0.205 | 0.336 | 0.103 | 0.210 | 0.317 | 0.220 | 0.204 | 0.129 | 0.205 |
表 6. Mip-NeRF360 场景的 LPIPS 分数。数据取自原始论文。
这些详细数据进一步印证了 3DGS 在 Mip-NeRF360 数据集上,其 30K 迭代模型(Ours-30k)在 SSIM、PSNR 和 LPIPS 方面与 Mip-NeRF360 相当甚至更好,尤其是在 LPIPS 上表现出卓越的感知质量。7K 迭代模型(Ours-7k)也能在短时间内达到非常有竞争力的结果。
Tanks&Temples 和 Deep Blending 场景的详细误差指标: 以下是原文 Table 7, 8, 9 的结果:
| Tanks&Temples | Deep Blending | |||
|---|---|---|---|---|
| Truck | Train | Dr Johnson | Playroom | |
| Plenoxels | 0.774 | 0.663 | 0.787 | 0.802 |
| INGP-Base | 0.779 | 0.666 | 0.839 | 0.754 |
| INGP-Big | 0.800 | 0.689 | 0.854 | 0.779 |
| Mip-NeRF360 | 0.857 | 0.660 | 0.901 | 0.900 |
| Ours-7k | 0.840 | 0.694 | 0.853 | 0.896 |
| Ours-30k | 0.879 | 0.802 | 0.899 | 0.906 |
表 7. Tanks&Temples 和 Deep Blending 场景的 SSIM 分数。
| Tanks&Temples | Deep Blending | |||
|---|---|---|---|---|
| Truck | Train | Dr Johnson | Playroom | |
| Plenoxels | 23.221 | 18.927 | 23.142 | 22.980 |
| INGP-Base | 23.260 | 20.170 | 27.750 | 19.483 |
| INGP-Big | 23.383 | 20.456 | 28.257 | 21.665 |
| Mip-NeRF360 | 24.912 | 19.523 | 29.140 | 29.657 |
| Ours-7k | 23.506 | 18.892 | 26.306 | 29.245 |
| Ours-30k | 25.187 | 21.097 | 28.766 | 30.044 |
表 8. Tanks&Temples 和 Deep Blending 场景的 PSNR 分数。
| Tanks&Temples | Deep Blending | |||
|---|---|---|---|---|
| Truck | Train | Dr Johnson | Playroom | |
| Plenoxels | 0.335 | 0.422 | 0.521 | 0.499 |
| INGP-Base | 0.274 | 0.386 | 0.381 | 0.465 |
| INGP-Big | 0.249 | 0.360 | 0.352 | 0.428 |
| Mip-NeRF360 | 0.159 | 0.354 | 0.237 | 0.252 |
| Ours-7k | 0.209 | 0.350 | 0.343 | 0.291 |
| Ours-30k | 0.148 | 0.218 | 0.244 | 0.241 |
表 9. Tanks&Temples 和 Deep Blending 场景的 LPIPS 分数。
这些表格进一步确认了 3DGS 在 Tanks&Temples 和 Deep Blending 这样更具挑战性的真实场景中,其 30K 迭代模型通常在 SSIM、PSNR 和 LPIPS 上显著优于所有基线方法,包括 Mip-NeRF360。这表明 3DGS 在处理复杂真实场景方面具有强大的鲁棒性和优越性。
6.3. 实施细节 (Implementation Details)
- 实现语言与框架: 使用 Python 语言,基于 PyTorch 框架。
- 自定义 CUDA 内核: 为了实现高效的光栅化 (rasterization),编写了自定义 CUDA 内核,这些内核是基于
[Kopanas et al. 2021]现有方法的扩展版本。 - 排序算法: 利用 NVIDIA CUB 库中的
Radix sort(基数排序) 例程实现快速排序。 - 交互式查看器: 使用开源的 SIBR
[Bonopera et al. 2020]构建了一个交互式查看器,用于测量实现的帧率。 - 代码和数据可用性: 源代码和所有数据在
https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/上公开。
优化细节:
- 低分辨率预热: 为了提高稳定性,优化过程首先在较低分辨率下进行“预热”。具体来说,从图像分辨率降低 4 倍开始,并在 250 次和 500 次迭代后分两次提升分辨率。
- SH 系数优化策略:
- 问题:
SH系数优化对缺乏角度信息很敏感,尤其是在捕获场景只有部分视角时。 - 解决方案: 优化开始时只优化零阶
SH系数(即基础颜色或漫反射颜色),然后每 1000 次迭代引入一个SH频带,直到所有 4 个频带都得到表示。这有助于在角度信息不足的情况下稳定优化,避免不正确的颜色值。
- 问题:
6.4. 局限性
论文也坦诚地指出了 3DGS 存在的局限性:
-
未观测区域的伪影: 在场景中未被充分观测的区域,仍会出现伪影。虽然其他方法(如
Mip-NeRF360)在这些区域也面临挑战,但3DGS的显式高斯表示可能导致在这些区域出现低细节的粗糙高斯。-
下图(原文 Figure 11)展示了
Mip-NeRF360和3DGS在TRAIN场景中未观测区域的伪影对比:
该图像是图表,展示了两个场景的比较:左侧为Mip-NeRF360方法的结果,显示了浮动物体和颗粒感;右侧为我们的方法,展示了粗糙、各向异性的高斯表示,导致低细节视觉效果。该图展示了在TRAIN场景中的失效伪影对比。Mip-NeRF360出现“浮点物”和颗粒感,而3DGS产生粗糙的各向异性高斯 (anisotropic Gaussians),导致低细节视觉效果。 -
下图(原文 Figure 12)展示了
DrJohnson场景中,训练时视角重叠较少时3DGS和Mip-NeRF360都可能产生伪影:
该图像是一个比较图,左侧展示了Mip-NeRF360在训练时视角重叠较少的情况下产生的伪影,右侧是我们的方法在相同场景中的表现。两者均在少数重叠视角下产生 artifacts,展示了不同技术的效果对比。
-
-
拉长伪影或斑点状高斯: 尽管各向异性高斯 (anisotropic Gaussians) 具有许多优点,但该方法可能产生拉长的伪影(elongated artifacts)或“斑点状 (splotchy)”高斯。
-
弹出伪影 (Popping Artifacts): 在优化过程中创建大型高斯时,可能会偶尔出现弹出伪影,这通常发生在视角依赖性 (view-dependent) 外观的区域。
- 原因:渲染器中通过保护带 (guard band) 简单地拒绝高斯,以及简单的可见性算法可能导致高斯突然切换深度/混合顺序。
- 潜在改进:更原则性的剔除方法、抗锯齿 (antialiasing) 处理、引入正则化。
-
缺乏正则化: 目前的优化没有应用任何正则化。引入正则化有助于缓解未观测区域和弹出伪影问题。
-
超参数敏感性: 尽管在完整评估中使用了相同的超参数,但早期实验表明,在非常大的场景(如城市数据集)中,可能需要降低位置学习率才能收敛。
-
高 GPU 内存消耗: 相比于基于
NeRF的解决方案,模型的内存消耗显著更高。在训练大型场景时,未优化的原型可能会超过 20 GB 的峰值GPU内存消耗。然而,可以通过低级实现优化逻辑(类似于InstantNGP)来显著降低这一数字。渲染训练好的场景需要存储完整模型(大型场景数百兆字节)以及渲染器额外的 30-500 MB 内存。
7. 总结与思考
7.1. 结论总结
本文提出了 3D Gaussian Splatting (3DGS),这是第一个能够实现实时、高质量辐射场 (Radiance Field) 渲染的方法,适用于各种场景和捕获风格。其核心优势在于:
- 卓越的视觉质量: 在多个基准数据集上达到了与最先进的 (state-of-the-art, SOTA)
NeRF方法(如Mip-NeRF360)相当甚至更好的视觉质量。 - 前所未有的实时性能: 首次实现了 1080p 分辨率下高质量的实时新视角合成 (novel-view synthesis)( 帧每秒)。
- 高效的训练: 训练时间与最先进的 (state-of-the-art, SOTA) 快速方法具有竞争力,远低于高质量
NeRF方法所需的数十小时。 这些成就得益于三个关键要素:
-
使用 3D 各向异性高斯 (anisotropic Gaussians) 作为场景表示,它既具有体渲染 (volumetric rendering) 的可微分特性,又避免了空闲空间的不必要计算。
-
交错优化和自适应密度控制策略,包括优化各向异性协方差 (anisotropic covariance),以及通过克隆和分裂来动态调整高斯函数。
-
一个快速、可微分、可见性感知的基于瓦片光栅化器 (rasterizer),支持各向异性泼溅 (anisotropic splatting) 和高效的反向传播。
本文的成果挑战了广泛接受的观念,即连续表示是实现快速高质量辐射场 (Radiance Field) 训练的必要条件,证明了显式的高斯表示同样可以达到甚至超越其性能。
7.2. 局限性与未来工作
局限性:
- 未观测区域的伪影: 在训练视图覆盖不足的区域,模型可能产生伪影,如粗糙的各向异性高斯 (anisotropic Gaussians) 导致低细节。
- 几何伪影: 可能出现拉长的伪影或“斑点状 (splotchy)”高斯。
- 弹出伪影: 由于大高斯的创建、简单的剔除策略和可见性算法,在视角依赖性 (view-dependent) 区域可能出现弹出伪影。
- 缺乏正则化: 目前方法未引入正则化,这可能导致一些伪影的出现。
- 内存消耗: 训练和推理时
GPU内存消耗相对较高,尤其是在大型场景中。
未来工作:
- 模型内存优化: 探索对优化逻辑进行低级实现(如
InstantNGP),以显著降低GPU内存消耗。 - 高斯压缩技术: 将点云 (point cloud) 压缩领域的成熟技术应用于高斯表示,以进一步减少模型大小。
- 更原则性的剔除和抗锯齿: 改进高斯剔除策略和引入抗锯齿 (antialiasing) 处理,以缓解弹出伪影和提高渲染质量。
- 正则化: 引入正则化技术以处理未观测区域的伪影并提高优化稳定性。
- 网格重建: 探索如何利用 3D 高斯表示进行网格(mesh)重建,这将有助于连接体渲染 (volumetric rendering) 和表面表示,并拓宽实际应用。
7.3. 个人启发与批判
个人启发:
- 显式表示的潜力: 本文最令人振奋的启发是,显式、可微分的几何基元(如 3D 高斯)在新视角合成 (novel-view synthesis) 领域拥有巨大的潜力。在
NeRF及其隐式表示占据主导地位的背景下,3DGS证明了通过巧妙的基元选择和渲染管线设计,显式表示不仅能实现实时性能,还能达到甚至超越隐式表示的最先进的 (state-of-the-art, SOTA) 质量。这为 3D 内容创建和实时渲染开辟了新的思路。 - 软硬件协同设计的重要性:
3DGS的成功离不开其对GPU架构和光栅化 (rasterization) 管线的深刻理解和充分利用。通过定制化的 CUDA 内核和瓦片式渲染器,它将点云渲染的高效性与辐射场优化的可微分性完美结合。这强调了在高性能图形应用中,算法创新与底层硬件优化协同设计的重要性。 - 自适应策略的有效性:
3DGS的自适应密度控制策略(克隆和分裂)是其能够从稀疏SfM点逐渐学习到高精度场景表示的关键。这种动态调整表示复杂度的能力,避免了固定分辨率网格的限制,使得模型能高效地分配资源,聚焦于需要更多细节的区域。 - 工程实现的价值: 论文提到大部分训练时间耗费在 Python 代码中,而渲染内核是优化的 CUDA 实现。这表明,即使是一个研究原型,通过关键部分的优化也能取得突破性成果。同时,也指明了未来通过全面移植到
CUDA等高效语言可进一步提升性能的潜力。
批判与思考:
- 内存消耗仍是挑战: 尽管
3DGS在速度和质量上表现出色,其较高的GPU内存消耗(尤其是在训练大型场景时)仍然是一个实际问题,可能限制其在资源受限设备上的应用。未来的研究应继续探索更高效的高斯表示、剪枝或流式传输策略。 - 伪影的根本原因: 论文提到了在未观测区域的伪影和弹出伪影。这些伪影可能部分源于高斯基元本身的性质,即它是一种“模糊”的表示。尽管各向异性高斯 (anisotropic Gaussians) 增强了形状适应性,但当场景几何非常复杂或视角稀疏时,高斯之间的重叠和混合仍然可能导致不准确或不稳定的视觉效果。未来的工作可以考虑结合更明确的几何约束或引入更高级的可见性/遮挡处理。
- 网格重建的潜力与挑战: 作者提出未来工作可以探索从 3D 高斯进行网格重建。这是一个非常有价值的方向。然而,从一组模糊的、重叠的高斯中提取出清晰的、拓扑正确的网格,将是一个不小的挑战,需要新的算法来处理高斯之间的几何关系。
- 通用性与鲁棒性: 尽管在多个数据集上进行了评估,但高斯参数(特别是各向异性协方差 (anisotropic covariance))在极端视角或非常规几何形状下,其优化稳定性仍值得进一步探究。例如,在极薄的物体或具有复杂自遮挡的场景中,高斯是否总能找到最优配置以避免伪影。
- 与其他显式表示的比较: 随着
3DGS的成功,未来可能会出现更多基于显式几何基元(如点、体素、甚至更复杂的参数化形状)的辐射场方法。3DGS能够成为这些新方法的重要基线,推动整个领域向更高效、更实用的方向发展。
相似论文推荐
基于向量语义检索推荐的相关论文。