【论文笔记】A Survey on 3D Gaussian Splatting
原文链接:https://arxiv.org/abs/2401.03890
1. 引言
NeRF在运算效率与控制能力上存在一定的限制性表现, 这一特点使得3D高斯溅射(3D GS)现象应运而生, 并对场景的表现形式及渲染效果产生了深远的影响
基于新的场景表征技术,大量采用基于高斯分布的3D表征场景进行构建与训练。该系统在结合显式的表征方式的同时,并结合了高度并行化的处理流程以实现整体性能提升;其创新性主要体现在将微分几何建模方法与点云表示方法进行了优势互补式的整合应用上;实验结果表明,在继承了连续体积辐射场理想特性的同时成功规避了传统方法在处理空空间时产生的计算开销问题;此外,在这一架构下实现了对目标场景的有效动态属性建模与实时交互控制能力
2. 背景
2.1 问题定义
2.1.1 辐射场
辐射场通过三维空间中光分布的描述来捕捉环境中的光与表面及材料的交互情况;它可以表示为函数L: \mathbb{R}^5 \rightarrow \mathbb{R}^+, 其中L(x,y,z,\theta,\phi)将位置(x,y,z)与球坐标方向(\theta,\phi)映射到非负的辐射强度值;根据需要, 辐射场既可以显式地表示出来(如显式函数形式), 也可以隐式地进行定义。
2.1.2 隐式辐射场
隐式辐射场避免显式定义场景的几何结构,并通过神经网络模型来表示连续体积的场景表达。其中一种典型的例子是NeRF算法:它利用多层感知机(MLP)将输入空间中的坐标位置与观察方向映射到对应的密度值和颜色信息;这种计算方式在线动态地生成光线的颜色和深度信息
这种形式支持在微分和浓缩的情况下简洁地描述场景,并且在渲染过程中光线传播具有很高的计算复杂度。
2.1.3 显式辐射场
显式辐射场则将在离散空间结构中显式地将光的分布表达出来。每个元素则记录了对应位置的辐射信息。这种方案通常会更加高效且快速地获取所需辐射数据,并且在存储效率上也有显著提升。然而其较大的存储需求可能会受到分辨率限制
我们定义\text{DataStructure}用于表示网格或点云,并设f为此类数据结构上基于视线方向对辐射进行调整的函数
2.1.4 3D高斯溅射
采用三维高斯函数这一形式既灵活又高效地表达了。并且充分结合了隐性和显性的辐射场优势。能够通过神经网络优化来精确描述场景。然而所采用的数据存储是显式的且结构化的。这种混合方法不仅实现了高质量的渲染效果在训练速度上具有显著优势并且能够实现实时渲染。
其中G为高斯函数,均值为\mu_i,方差为\Sigma_i;c_i表示视线相关的颜色。
2.2 上下文和术语
2.2.1 场景重建和渲染
场景重建过程:基于一组图像或其它数据构建相应的三维模型。
图形渲染过程:将三维模型的数据库转换为对应的二维图像输出。
早期技术主要依赖模拟光场原理来生成逼真的图像;而结合运动恢复结构(SfM)和多视图立体匹配(MVS)算法,在一系列静态或多角度的图片中推断三维空间结构,并以此提升整体视觉效果。
2.2.2 神经渲染和辐射场
神经渲染:利用深度学习与传统图形技术的融合生成图像效果。早期方法通过卷积神经网络推导混合权重或纹理空间解。
辐射场:数学表达式描述光线在空间中各点的分布情况。NeRF借助神经网络建模这一物理现象
2.2.3 体积表达和射线行进
体积表达:不仅表示为表面(surface),还以填充材料或空空间的形式表示(represent)。从而能够对雾(smoke)、烟(fumes)等半透明介质进行更精确的渲染(rendering)。
射线行进:是基于体积表达技术的一种图像渲染方法(method),通过追踪穿过物体表面(intersecting)的光线路径(ray paths)来生成图像(image)。Nerf引入了重要性采样(importance sampling)和位置编码(position encoding)等技术来提升合成图像的质量(quality)。然而这一方法由于计算量大而面临挑战。
2.2.4 基于点的渲染
采用点渲染取代传统的多边形表示方法来构建3D场景,在处理复杂、无组织或稀疏几何数据时展现出极高的效率。点不仅具有潜力用于增强特征提取能力,在渲染过程中也能通过可学习神经网络进一步优化表现。然而,在这一方法中存在一个问题即可能导致视觉效果出现模糊或不连贯现象。3D Global Space(3D GS)则通过引入各向异性高斯函数来实现更加连贯和逼真的场景呈现效果。
3. 3D高斯用于显式辐射场
3D高斯可以进行实时、高分辨率的图像渲染,而无需依赖神经成分。
3.1 使用学习的3D高斯进行新视图合成
当前场景由大量3D高斯表达,在此基础之上目标是生成特定视角下的相机图像。NeRF采用射线行进采样点的方式进行处理,并因此进而影响其实时性;另一方面,在处理中将这些高斯参数投射至图像平面,并称为投射过程(如图所示)。随后会对这些高斯参数进行排序操作,并计算各像素对应的值范围。值得注意的是,在渲染过程中两者在渲染效果上可相互转换或互逆关联。

3D Gaussian特性的描述:一个完整的三维Gaussian模型包含以下几大要素:中心位置参数μ、透明度参数α、描述三维分布状态的协方差矩阵Σ以及用于表示颜色信息的颜色通道c。值得注意的是,在此模型中颜色通道c会受到观察视角的影响,并可以通过球谐函数展开来进行精确表征。此外,在整个网络训练过程中所有的参数均能被自适应地进行优化
景深剪裁技术:基于特定相机姿态,在执行图像处理时会筛选并排除那些超出当前深度范围的高斯点(Gaussian points),从而优化后续计算效率。
溅射技术:三维高斯分布(球形结构)被投影到二维投影平面(圆形结构)进行渲染。给定观察空间变换矩阵W和三维高斯分布的协方差矩阵\Sigma,对应的二维协方差矩阵\Sigma'按如下公式计算:
\Sigma'=JW\Sigma W^{\top}J^{\top}
其中J为投影变换仿射近似的雅可比矩阵。
基于 pixels 的渲染流程:首先确定目标 pixel 位置 x;接着计算该 pixel 与其覆盖的所有二维高斯核之间的距离;这些高斯核所代表的深度信息可以通过应用视图变换矩阵 W 进行计算后得到的是按照深度排序后的高斯列表 \mathcal{N};随后执行Alpha混合运算以获得该 pixel 的颜色值:
C = \sum_{i \in \mathcal{N}} c_i \alpha'_i \prod_{j=1}^{i-1} (1 - \alpha'_j)
其中变量c_i代表学习的颜色类别,在计算最终不透明度\alpha'_i时,则将其定义为学习不透明度\alpha_i与高斯函数的乘积结果:
由此得出的结果表明,
\alpha'_i = \alpha_i \times \exp\left(-\frac{1}{2}(x' - \mu'_i)^T (\Sigma'^{-1}_i)(x' - \mu'_i)\right)
其中x'和\mu'_i属于投影空间中的坐标。由于排序的并行化存在较大挑战,在实际应用中这种方法可能导致渲染速度降低。为了实现实时渲染的需求,3D GS不得不牺牲一些计算精度以实现并行计算。

Tile(Patch) :为了避免逐像素计算带来的性能瓶颈,在3D GS中采用patch级别的渲染策略。首先将输入图像划分为多个互不重叠的patch块,并将其命名为tile(如上图所示)。随后判断每个tile块是否与投影高斯体相交。由于投影高斯体可能会同时与多个相邻的tile块产生交集关系,在这种情况下就需要对这些共享区域进行复制处理,并在每个复制区域中记录对应的原始tile块标识信息(例如:每个复制区域都应标注原始所属 tile 的唯一标识码)。

在并行渲染过程中,在复制完成后, 3D Geometric Structure (GGS) 包含了 tile ID 和深度信息, 如图所示, 其中包含了 tile ID 和深度信息, 其中 tile ID 对应高位, 深度信息对应低位

总体而言,在前向过程中3D GS进行了某种程度的近似处理。这种处理旨在通过优化计算过程来提升效率,并从而保证图像合成的质量得以维持。
3.2 3D高斯溅射的优化
3D GS的核心主要体现在对3D高斯分布的实现过程。一方面需要通过可微渲染的方式以满足场景纹理的要求,在另一方面则需要满足场景所需高斯分布的数量未知这一条件。这两个方面具体对应着参数优化与密度控制两步操作,在整个优化过程中这两者会交替进行。在这一过程中需要手动配置大量超参数以完成任务。
3.2.1 参数优化
损失函数 定义了在图像合成后通过比较生成渲染图与实际图之间的差距来评估质量:
\mathcal{L}=(1-\lambda)\mathcal{L}_1+\lambda\mathcal{L}_{D-SSIM}
这与NeRF的损失有所不同。在像素级别上进行计算的是一种不同于的方法,在图像层次上则不是这样的情况
参数更新:大多数3D高斯参数可通过反向传播直接实现更新。然而,在协方差矩阵\Sigma方面,则需要满足半正定矩阵的要求。因此建议采用四元数q和3D向量s进行优化。其分解形式为:
\Sigma = RSS^T R^T
其中旋转矩阵R与缩放矩阵S分别由变量q和s通过推导获得。对于不透明度α而言,其计算流程较为复杂:(q,s)经过Σ变换至Σ'后再演变为α。为了避免自动微分带来的计算开销(computational overhead),3D GS直接推导了q与s的梯度,并在迭代过程中动态更新这些梯度信息以提高优化效率。
3.2.2 密度控制
- 初始化 :基于结构从运动(SfM)生成的稀疏点云在3D GMM中被初始化为一种形式。随后通过密集采样和剪枝操作来控制3D GMM的空间密度分布。
- 密集采样 :该过程根据场景细节动态调整高斯密度分布,在几何特征缺失区域增加采样密度,在几何特征丰富区域减少密度以避免过密采样。经过固定迭代次数后完成密集化操作目标:即在观察空间中具有显著梯度变化方向上的高斯节点进行优化调整。
- 剪枝操作 :该步骤旨在去除冗余节点并保留对重建质量有显著贡献的节点群落集合。具体而言:
- 剪除透明度极低(α值低于设定阈值)的空间位置节点
- 剪除全局空间或观察空间处于极大状态下的节点
- 为避免相机附近区域过度采样导致的空间分布不均匀问题,在迭代固定次数后将相关节点置为最小尺度
- 通过上述操作流程能够有效提升三维重建的质量与效率
4. 应用领域和任务
4.1 同时定位和建图(SLAM)
SLAM必须使设备实现实时定位并同时构建环境模型,由于对具有高计算复杂度的表达技术而言,这种实时性要求使得现有技术难以满足需求
常用的SLAM方法基于离散点/表面元素云或体素网格来表示环境。该算法在计算效率上表现出色,并通过非均匀高斯函数捕捉空间中的精细特征;同时能够有效处理不同复杂程度和尺度的空间布局。
4.2 动态场景建模
动态场景建模需要记录并描述场景随时间变化的三维结构及其外观特征。必须构建能够精确反映场景中物体几何形状、运动轨迹以及视觉效果的数字模型。4D高斯溅射方法是基于将3D高斯溅射概念扩展到四维空间,并引入时间维度来实现动态场景的生成与渲染
4.3 AI生成内容(AIGC)
AIGC是由人工智能自动创建或大幅修改的数字内容,并具备模仿、延伸或提升人类生成内容的能力。
3D GS通过显式定义、具备实时渲染性能以及较高的可编辑性与AIGC之间建立了紧密联系。例如,在生成模型、化身以及场景编辑等多个领域中都存在能够结合3D GS的技术方法。
4.4 自动驾驶
自动驾驶以实现无人驾驶车辆的导航和操作为目标,在无人干预的情况下完成这些任务。其主要任务是确保在安全且高效的环境下感知信息、制定决策并控制执行机构运作
其中,在环境感知与理解阶段需实时构建并呈现一个动态变化的驾驶场域,在此过程中准确识别静态与动态物体并解析它们间的相互作用及运动轨迹。在这一过程中,在时间维度上场域状态会发生持续更新,在空间维度上则会呈现出复杂的几何特征变化模式。基于融合数据集(包括激光雷达采集的数据)构建完整的时空分布模型能够有效提升对时空分布密度变化的适应能力,并能同时实现对静态背景区域与动态运动物体特征的有效提取与建模。
5. 性能比较
5.1 性能基准:定位
- 数据集名称:Replica。
- 基准SLAM算法: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(四维光栅扫描)。
- 评估指标名称:Peak signal-to-noise ratio (PSNR)、Structural similarity index (SSIM)以及Perceptual image quality perception index (LPIPS),这些指标从视觉质量角度评估网络输出的图像清晰度和细节。
- 研究结果:在与基于NeRF的SotA对比中表现出色。值得注意的是,在处理动态场景时,静态版本的3D GS表现欠佳。
5.4 性能基准:驾驶场景渲染
- 数据集为nuScences。
- 基准算法采用DrivingGaussian。
- 评估指标包括PSNR、SSIM以及LPIPS指标,并用于评估RGB渲染性能。
- 在实验中发现,在与基于NeRF的方法对比中,3D GS方法表现出了显著的优势。
5.5 性能基准:人的化身
该任务的目标是从给定的多视角视频渲染人体化身模型。
- 数据集 :ZJU-MoCap。
- 基准算法 :Gart、Human+101、Hugs、3DGS Avatar。
- 评估指标 :PSNR、SSIM以及经过缩放的LPIPS(LPIPS×1000),用于评估RGB渲染性能的相关指标。
- 结果 :采用基于3D GS的方法能同时提升渲染质量与运行速度的表现。
6. 未来研究方向
- 数据高效的3D GS解决方案:生成新视图并重建场景的能力至关重要。现有方法通过引入深度信息、密集的概率分布模型以及像素到高斯映射等技术来提升这一能力。在数据不足的区域可能出现伪影现象,可以通过数据插值或整合技术来改善效果。
- 存储高效的3D GS解决方案:现有方法在可扩展性方面存在局限性,在大规模场景中需要消耗大量存储资源。为了优化资源利用效率,在训练阶段和模型存储环节应采取更为先进的策略和技术。
- 先进的渲染算法:当前渲染算法较为基础,在模拟光线与材料相互作用时可能导致高斯深度/混合顺序的变化过于剧烈。为提高渲染质量,应采用更为先进的渲染算法以模拟复杂材料特性,并结合传统计算机图形学方法进行研究探索逆向渲染的可能性。
- 优化与正则化:各向异性高斯可能造成不理想的视觉效果。通过采用抗混叠技术可以在一定程度上缓解深度/混合顺序变化的问题;增强优化算法并引入正则化手段有助于更好地控制高斯参数对结果的影响。
- 网孔重建中的3D高斯:探索将3D GS应用于网格修复工作具有重要意义;这将有助于缩小体积渲染与基于表面的传统方法之间的差距;从而推动新的渲染技术和应用方案的发展。
- 赋予3D GS更多可能性:可以通过附加传统属性(如语言学属性或物理学属性)来拓展3D GS的应用场景;已有研究已将这种方法用于相机姿态估计、手-物体交互捕获以及不确定性量化等问题中。
