经典论文 3D Gaussian Splatting 解读及实验进行
备注
引言
场景三维重建技术经历了从离线到实时、从被动到主动的不断演进。早期的三维重建依赖于静态图像和离线计算,主要通过立体视觉和结构光方法(如结构从运动 SfM)来从多个视角的静态图像中提取三维信息。这些方法通常计算量巨大,且需要在所有图像采集完成后才能进行处理,因此无法实现实时重建。MVS(多视角立体重建)是这一时期的代表技术,开源软件 Colmap 便是一个典型的解决方案。
随着技术的发展,三维重建逐步向实时环境过渡,目标是能够在实时估计相机运动轨迹的同时构建环境地图,用于定位和导航。这一进展主要通过 SLAM(同步定位与建图)技术实现,它可以达到每秒 30 帧以上的实时性能。
进入到主动时代,场景重建开始使用神经辐射场(NeRF)等光场方法,通过神经网络实现高质量的三维重建。NeRF 通过连续的场景表示并优化多层感知器(MLP)来捕捉场景的新视角。这类方法通常利用体素[Fridovich-Keil 和 Yu 等,2022]、哈希网格[Müller 等,2022]或点云[Xu 等,2022]等结构来存储连续场景表示,尽管这些方法能够优化渲染效果,但随机采样的过程非常昂贵,且容易导致噪声。
2023 年,3D 高斯作为一种新的场景表示方法被提出,提供了更高的灵活性和表现力。其与 NeRF 类似,采用 SfM(结构从运动)校准的相机,并基于 SfM 过程中产生的稀疏点云来初始化 3D 高斯集。与依赖于多视图立体匹配(MVS)数据的点云方法不同,其只需要使用 SfM 生成的稀疏点云,就能够获得高质量的三维重建结果。
其主要有三个关键部分:
- 使用 3D 高斯作为表征,因为它们不仅可以作为可微分的体积表示,还可以通过投影到二维并应用标准的 𝛼 混合方法实现高效的光栅化,与 NeRF 使用的图像生成模型类似。
- 对 3D 高斯属性的优化。通过与自适应密度控制的步骤交错进行,在优化过程中会动态地添加和移除 3D 高斯点,从而产生一个相对紧凑、非结构化且精确的场景表示。对于所有测试场景,最终的高斯点数量一般在 1 百万至 5 百万之间。
- 提出了一种实时渲染解决方案。该方案采用了一种快速的 GPU 排序算法,并遵循了最近的研究[例如 Lassner 和 Zollhofer,2021]。得益于 3D 高斯表示,我们能够进行各向异性的 splatting,通过可见性排序、排序和 𝛼 混合技术,实现高效且精确的反向传播。
核心理论
3D 高斯函数沿某一轴进行积分后等同于 2D 高斯函数,这是由于高斯函数的一些性质决定的。
- 高斯函数是可以分离的,即多维高斯函数可以表示为各个维度上的一维高斯函数的乘积。这意味着,多维高斯函数沿某一维度进行积分,就相当于将这一维度的一维高斯函数积分到 1,剩下的就是其他维度的高斯函数,即一个低一维的高斯函数。
- 高斯函数的边缘分布也是高斯的。多维高斯函数的边缘分布就是将某一维度积掉,得到的结果仍然是高斯的。这再次证明了 3D 高斯函数沿某一轴进行积分后等同于 2D 高斯函数。