3D高斯泼溅(3D Gaussian Splatting, 3DGS) 的核心原理

​3D高斯泼溅(3DGS)的核心重建流程​ ​:从多视角图像通过SfM(运动恢复结构)生成的稀疏点云出发,经过​​初始化​ ​转换为3D高斯分布,再通过​​相机投影​ ​和​​自适应密度控制​ ​(动态分裂/修剪高斯以优化几何细节),最终由​​可微分瓦片光栅化器​​实时渲染成高质量图像,且整个流程支持梯度反向传播(箭头方向),实现端到端的联合优化。


​1. 核心思想​

3DGS是一种​​显式的3D场景表示方法​ ​,将场景建模为数十万至数百万个​​可学习的3D高斯椭球​​(Gaussian ellipsoids),通过可微分光栅化实现实时渲染。其核心优势在于:

  • ​显式表示​​:直接操作高斯参数(位置、协方差、颜色等),区别于NeRF的隐式神经场。

  • ​实时性​​:CUDA加速的光栅化可达 100+ FPS(4K分辨率)。

  • ​可编辑性​​:直接修改高斯参数即可调整场景几何与外观。


​2. 数学基础​

​(1) 3D高斯函数​

每个高斯椭球由以下参数定义:

  • ​均值(中心位置)​​:μ∈R3

  • ​协方差矩阵​​:Σ∈R3×3(控制椭球形状和方向)

  • ​透明度​​:α∈[0,1]

  • ​球谐系数(SH)​​:控制视角依赖的颜色(RGB)

高斯函数形式:

复制代码
​(2) 协方差矩阵参数化​

为保证正定性,协方差矩阵分解为:

复制代码
  • R:旋转矩阵(由四元数表示,减少参数量)

  • S:对角缩放矩阵


​3. 关键技术步骤​

​(1) 初始化​
  • ​输入​​:多视角图像通过COLMAP/SfM生成稀疏点云。

  • ​高斯生成​​:每个点云点初始化为一个各向同性高斯(球状),后续优化调整形状。

​(2) 可微分光栅化​
  • ​投影变换​​:将3D高斯投影到2D图像平面,得到2D高斯分布:

    复制代码

    其中 J为投影雅可比矩阵,W为视图变换矩阵。

  • ​像素着色​​:对每个像素,按深度排序混合重叠的高斯:

    复制代码

    N为覆盖像素 p的高斯集合,ci​为颜色。

​(3) 优化目标​

联合优化几何(μ,Σ)和外观(α,SH)参数:

复制代码
  • Lcolor​:渲染图像与真实图像的L1损失

  • LD-SSIM​:结构相似性损失(保留高频细节)

  • Lopacity​:稀疏性约束(剔除冗余高斯)


​4. 与NeRF的关键区别​

​特性​ ​3DGS​ ​NeRF​
​表示形式​ 显式高斯椭球集合 隐式神经辐射场(MLP)
​渲染方式​ 可微分光栅化(类似传统图形学) 体积渲染(射线步进采样)
​训练速度​ 5-30分钟(1080Ti) 5-50小时(同硬件)
​编辑性​ 直接修改高斯参数 需网络微调或潜空间操作
​动态场景支持​ 弱(需扩展为4D高斯) 较强(通过时空MLP)

​5. 核心创新点​

  1. ​各向异性高斯建模​​:通过协方差矩阵控制椭球形状,适应复杂几何(如薄片、管状结构)。

  2. ​梯度传播优化​​:通过可微分光栅化实现端到端训练,允许直接优化3D几何。

  3. ​自适应密度控制​​:动态分裂/克隆/修剪高斯,平衡细节与效率(如图1)。

    • ​分裂​​:高方差区域的大高斯分裂为小高斯。

    • ​修剪​​:透明度过低的高斯被剔除。


​6. 应用场景​

  • ​实时渲染​​:游戏/VR中的动态光照场景(比传统Mesh更易处理复杂拓扑)。

  • ​场景编辑​​:直接拖动高斯点修改物体形状(如GaussianEditor)。

  • ​稀疏视图重建​​:仅需20-50张图像即可生成高质量3D模型。