3D Gaussian Splatting的原理分析
3D Gaussian Splatting使用3D高斯分布去形成对应的高斯椭球,构建三维模型,通过视角变化将所有椭球以相机角度进行渲染得到二维图像。
二维高斯
高斯表达
当$n=2$时,高斯中心(均值)为$\mathbf x=\left[\matrix{x \newline y}\right]$,协方差矩阵为$\Sigma=\left[\matrix{\sigma_{xx} & \sigma_{xy} \newline \sigma_{xy} & \sigma_{yy}} \right]$
协方差矩阵对角线上的元素为$x$、$y$的方差,反对角线上的元素表示$x$、$y$的线性相关程度。
保留的区域为置信区间大于99%的高斯部分(对应一维高斯分布中的$[\mu-3\sigma,\mu+3\sigma]$部分),对于二维的高斯分布,对应的边界记为$C$,则当$(\mathbf x-\mu)^T\Sigma^{-1}(\mathbf x-\mu)$位于$C$内部时,对应得到一个椭圆区域。
协方差矩阵可以通过特征值分解得到$\Sigma=Q\Lambda Q^T$。以仿射变换的角度理解,协方差矩阵可以分解为$\Sigma=RSS^TR^T$其中,缩放矩阵为:
旋转矩阵为:
渲染时,将图像划分为多个栅格,预处理过程中,每个高斯球记录覆盖的栅格索引,构建存储区副本,之后对副本中每个栅格,对其内部的高斯球按照深度进行排序,方便后续每个栅格并行渲染。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Eternity's Blog!