对于3DGS的理解
形象理解
- 类似于要用一堆半透明的棉花糖拼成一个3D场景,它是用“会发光的高斯小球”拼出整个世界(其中的发光程度由高斯的概率分布来表示),每个高斯小球都有不同的大小、形状、颜色和透明度。最终,用数万到数百万个3D高斯函数(数学上的“小球”)表示3D场景,每个高斯函数有自己的位置、大小、旋转、颜色和透明度。
对3D高斯球的理解
-
3D高斯函数像一团“模糊的球”,中心最密,边缘逐渐变淡(类似雾滴或发光粒子)。它由四个参数组成:
- 均值(μ):小球中心的位置(XYZ坐标),通常由SFM得到的稀疏点云来初始化。
- 协方差矩阵(Σ):控制小球的拉伸、缩放和旋转(形状),通常根据相邻点直接的密度初始化 ,用于更好低拟合3D真实物体。
- 颜色(c)和透明度(α):决定小球的外观。
-
3D通过自适应控制和参数优化来拟合真实场景
- 如果某区域细节丰富(如树叶),机器学习会分裂更多小球填充细节。
- 如果某区域过于平滑(如墙面),会合并或删除多余的小球。
- 通过梯度下降调整每个小球的位置、形状、颜色,使得渲染结果和真实照片一致(通过可微的数学模型表示)
-
渲染:将3D高斯投影到2D屏幕上,变成一个个椭圆(类似把棉花糖按扁在玻璃上)。每个椭圆根据距离相机的远近决定叠加顺序(从后往前渲染)。椭圆的颜色和透明度按高斯权重(每个高斯小球对于该像素的贡献度)混合,形成最终像素颜色。
建模过程
-
- 首先,将3D高斯从世界坐标系变换到相机坐标系(视角空间), 包括位置和协方差矩阵在变化,T为世界到相机坐标系的转换矩阵(外参),J为转换矩阵的对于的雅可比矩阵。
- 首先,将3D高斯从世界坐标系变换到相机坐标系(视角空间), 包括位置和协方差矩阵在变化,T为世界到相机坐标系的转换矩阵(外参),J为转换矩阵的对于的雅可比矩阵。
-
- 投影到2D图像平面,通过透视投影将相机空间的高斯投影到2D屏幕空间,其中Π是投影矩阵(内参),J是投影矩阵对于的雅可比矩阵。
2D高斯的表达式,x 是投影到平面的像素坐标,Σ是控制椭圆的形状和方向的协方差矩阵
- 投影到2D图像平面,通过透视投影将相机空间的高斯投影到2D屏幕空间,其中Π是投影矩阵(内参),J是投影矩阵对于的雅可比矩阵。
-
- 进行排序、混合、渲染
- 深度排序,对所有投影到同一像素的2D高斯按深度(Z值)从远到近排序:
- 逐层混合颜色, 其中ci是第i个高斯的RGB颜色(SH函数表示)。G2D 是第i个高斯在像素x处的权重,用于描述该高斯球对于该像素的贡献(由于一个高斯球通常投影下来后对应对个像素点,这个像素点可能是该球的中心或边缘)。∏xxx表示前面所有高斯的累计透明度(遮挡关系)。
- 最后,将渲染得到的像素点与真实的图像像素点比对,以学习每个高随球的参数。