问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

3D Gaussian Splatting:一种高效的3D场景表示与渲染方法

创作时间:
作者:
@小白创作中心

3D Gaussian Splatting:一种高效的3D场景表示与渲染方法

引用
CSDN
1.
https://m.blog.csdn.net/CV_Autobot/article/details/142892435

3D Gaussian Splatting(3DGS)是一种先进的视图合成方法,通过优化3D高斯函数来实现高质量的3D场景表示。与传统的NeRF方法相比,3DGS在训练速度和渲染质量上都有显著优势。本文将深入解析3DGS的核心原理和实现细节。

3D Gaussian的基本概念

在传统的光栅化方法中,场景通常由多个三角形面片组成。而在3DGS算法中,渲染的基本图元变成了3D高斯函数(可以想象成一个三维空间的椭球体)。多个3D高斯函数会相互重叠,共同构成复杂的场景结构。

3D高斯函数的参数包括:

  • 位置(均值μ):确定椭球体在空间中的位置
  • 协方差矩阵(Σ):控制椭球体的形状、大小和方向
  • 不透明度(α):控制透明度
  • 颜色(RGB)或球谐系数(SH):定义颜色信息

值得注意的是,协方差矩阵必须保持正半定性。为了确保这一点,3DGS采用了一种特征值分解的方法,将协方差矩阵分解为旋转矩阵(R)和缩放矩阵(S),从而避免了传统梯度下降方法中可能破坏正半定性的风险。

Splatting和Rasterization技术

要将3D高斯函数投影到2D图像上,3DGS采用了Splatting技术。具体来说,通过替换协方差矩阵,将3D高斯函数从模型空间转换到世界空间,再通过视图变换矩阵(W)转换到相机空间,最后使用雅可比矩阵(J)近似投影变换。

为了加速渲染过程,3DGS采用了基于Tile的栅格化方法,将图像分割成多个16x16的Tile,每个Tile独立计算颜色值。当一个3D高斯函数投影到多个Tile时,会实例化多次,并根据视图空间深度和Tile ID生成键值,然后使用快速GPU基数排序进行排序。

初始化和优化过程

3DGS的初始化过程依赖于Structure from Motion(SfM)算法,从输入图像中获取一组点云。然后将这些点云转换为3D高斯函数,作为模型训练的初始状态。

在优化阶段,3DGS使用随机梯度下降(SGD)对各个参数进行优化,损失函数结合了L1和D-SSIM(结构差异指数)。此外,还采用了自适应细化(Adaptive Densification)策略,通过克隆小高斯函数和分离大高斯函数来动态调整3D场景的密度。

总结

3D Gaussian Splatting通过优化3D高斯函数,实现了高质量的3D场景表示和实时渲染。这种方法在训练速度和渲染质量上都优于传统的NeRF方法,为3D场景重建和渲染提供了新的解决方案。

参考资料

  1. Kerbl, B., Kopanas, G., Leimkühler, T., & Drettakis, G. 3D Gaussian Splatting for Real-Time Radiance Field Rendering. ACM Trans. Graph. (SIGGRAPH) 2023.
  2. Understanding and Exploring 3D Gaussian Splatting: A Comprehensive Overview
  3. Introduction to 3D Gaussian Splatting
  4. A Guide to 3D Gaussian Splatting & How to Create One
  5. 3D生成: 3D Gaussian Splatting(3DGS)
  6. Introduction to 3D Gaussian Splatting(与Ref2不一样)
  7. [NeRF坑浮沉记]3D Gaussian Splatting入门:如何表达几何
  8. 一文带你入门 3D Gaussian Splatting
  9. 3D Gaussian Splatting中的数学推导
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号