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

发布于:2025-08-31 ⋅ 阅读:(21) ⋅ 点赞:(0)

 ​​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模型。