3DGS

3D 高斯椭球(捏雪球)

  • 椭球是实心的
  • 椭球的中心点: 3D高斯的均值 (x,y,z)
  • 椭球的形状: 3D高斯的协方差矩阵 $\Sigma = RS S^T R^T$ (包含了旋转矩阵R 和 轴缩放矩阵S)

球谐函数

定义了3D高斯椭球的颜色

类似于傅立叶级数,由一组能代表球面上不同位置(不同颜色值)的值基函数, 阶数越高表达能力越强

球谐函数只和 $\theta$ (z 轴夹角), $\phi$ (点在x-y平面上的投影与x-轴正方向的夹角) 有关: $r = f(\theta,\phi)$

球谐函数如下:

\[f(t) \approx \sum_{l} \sum_{m=-l}^{l} c_l^m Y_l^m(\theta, \phi) = c_0^0 Y_0^0 + \left(c_1^{-1} Y_1^{-1} + c_1^0 Y_1^0 + c_1^1 Y_1^1\right) + \left(c_2^{-2} Y_2^{-2} + c_2^{-1} Y_2^{-1} + c_2^0 Y_2^0 + c_2^1 Y_2^1 + c_2^2 Y_2^2\right) + c_3^{-3} Y_3^{-3} + \dots\]
  • l: 控制阶数
  • c: 可训练参数

参数量是阶数的平方

球谐函数用于表达不同角度的颜色表达

通过球谐函数来表达, 使3D高斯椭球在不同角度呈现不同颜色

原文中采用4阶:

参数量为 $3(4^2) = 316 = 3+45 = 48$

迭代参数

每个3D高斯椭球的参数包括:

  • 中心点位置: (x, y, z)
  • 协方差矩阵: R, S
  • 球谐函数系数: 16 x 3
  • 透明度: $\alpha$

投影矩阵(抛雪球)

物理坐标系 → 相机坐标系:

  1. 均值变化 $u_k = Wt_k + d$
  2. 协方差矩阵变换 $\Sigma’ = W \Sigma W^T$

投影变换(非线性):

$x = m(t)$

  1. 协方差变换是非线性变化, 所以需要雅可比矩阵进行转化: $\Sigma’ = JW \Sigma W^T J^T$
    • J is the Jacobian of the affine approximation of the projective transformation
    • W is the viewing transformation
  2. 均值可以直接应用: $x_k = m(u_k)$

透视投影 → 正交投影

渲染(砸雪球)

渲染方式比Nerf的快:

  • Splatting 没有找粒子的过程
  • 需要对高斯球按照深度z排序

Adaptive Density Control

比如每隔100个epoch会判断点云分布是否合理

  1. Pruning (减少伪影的出现): 透明度低于阈值 或者离相机近的点会被删除
  2. Densification (过度重构或者欠采样)(基于梯度变化来判断):
    1. Under-reconstruction: 方差小 → 克隆高斯来适应
    2. Over-Reconstruction: 方差很大 → 分裂成两个高斯



    Enjoy Reading This Article?

    Here are some more articles you might like to read next:

  • Terminal Command
  • Computer Environment
  • NeRF
  • SDS
  • Pretrain Diffusion