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. 核心创新点
-
各向异性高斯建模:通过协方差矩阵控制椭球形状,适应复杂几何(如薄片、管状结构)。
-
梯度传播优化:通过可微分光栅化实现端到端训练,允许直接优化3D几何。
-
自适应密度控制:动态分裂/克隆/修剪高斯,平衡细节与效率(如图1)。
-
分裂:高方差区域的大高斯分裂为小高斯。
-
修剪:透明度过低的高斯被剔除。
-
6. 应用场景
-
实时渲染:游戏/VR中的动态光照场景(比传统Mesh更易处理复杂拓扑)。
-
场景编辑:直接拖动高斯点修改物体形状(如GaussianEditor)。
-
稀疏视图重建:仅需20-50张图像即可生成高质量3D模型。