3D 高斯泼溅(Splatting)是用于实时辐射场渲染的 3D 高斯分布描述的一种光栅化技能,它许可实时渲染从小图像样本中学习到的逼真场景。
本文将详细先容它的事情事理以及它对图形学的未来意味着什么。

1、什么是 3D 高斯泼溅?

3D 高斯泼溅的核心是一种光栅化技能。
这意味着:

有描述场景的数据。
在屏幕上绘制数据。
类似于打算机图形学中的三角形光栅化,用于在屏幕上绘制许多三角形:

然而,它不是三角形,而是高斯分布。
这是一个栅格化的高斯函数,为了清晰起见,绘制了边框:

高斯泼溅由以下参数描述:

3D高斯泼溅光栅化图形学

位置:它所在的位置 (XYZ)协方差:如何拉伸/缩放(3x3 矩阵)颜色:它是什么颜色(RGB)Alpha:透明度如何 (α)

在实践中,会同时绘制多个高斯曲线:

这是三个高斯。
那么 700 万高斯呢?

这是每个高斯光栅化完备不透明的样子:

这是对 3D 高斯分布的非常简短的概述。
接下来,让我们逐步完本钱文中描述的完全过程。

1、3D高斯泼溅事理

3D高斯泼溅的实现事理分为一下几个部分:

运动构造规复:利用SfM得到点云点云转高斯分布模型演习光栅化1.1 运动构造规复

第一步是利用运动构造规复 (SfM: Structure from Motion) 方法从一组图像中估计点云。
这是一种从一组 2D 图像估计 3D 点云的方法。
这可以通过 COLMAP 库来完成。

1.2 转换为高斯分布

接下来,每个点都转换为高斯分布。
这对付光栅化来说已经足够了。
然而,只能从 SfM 数据推断位置和颜色。
为了学习产生高质量结果的表示,我们须要对其进行演习。

1.3 模型演习

演习过程利用随机梯度低落,类似于神经网络,但没有层。
演习步骤为:

利用可微分高斯光栅化将高斯光栅化为图像(稍后详细先容)根据光栅化图像和地面真实图像之间的差异打算丢失根据丢失调度高斯参数运用自动致密化和修剪

步骤 1-3 从观点上讲非常大略。
第 4 步涉及以下内容:

如果对付给定的高斯梯度很大(即它太缺点),则分割/克隆它如果高斯很小,则克隆它如果高斯很大,则将其分割如果高斯的 alpha 太低,请将其删除

此过程有助于高斯更好地拟合细粒度细节,同时修剪不必要的高斯。

1.4 可微分高斯光栅化

如前所述,3D 高斯分布是一种光栅化方法,它将数据绘制到屏幕上。
然而,一些主要的元素还包括:

快速可微分

光栅化器的原始实现可以在这里找到。
光栅化涉及:

从相机角度将每个高斯投影为 2D。
按深度对高斯进行排序。
对付每个像素,从前到后迭代每个高斯,将它们稠浊在一起。

这篇论文中描述了其他优化。

光栅化器是可微分的也很主要,这样就可以用随机梯度低落来演习它。
然而,这仅与演习干系 - 演习有素的高斯也可以用不可微的方法呈现。

2、谁关注3D高斯泼溅?

为什么 3D 高斯溅射受到如此多的关注? 显而易见的答案是结果不言自明 - 这是高质量的实时场景。
然而,故事可能还有更多。

关于高斯泼溅还能做什么还有很多未知数。
它们可以动画化吗? 即将揭橥的论文《动态 3D 高斯:通过持久动态视图合成进行跟踪》表明他们可以。
还有许多其他未知数。
他们能做反思吗? 可以在没有参考图像演习的情形下对它们进行建模吗?

末了,人们对嵌入式人工智能的研究兴趣日益浓厚。
这是人工智能研究的一个领域,最前辈的性能仍旧低于人类性能几个数量级,个中大部分寻衅在于表示 3D 空间。
鉴于 3D 高斯分布可以产生非常密集的 3D 空间表示,这对具身AI 研究有何影响?

这些问题须要把稳方法。
实际影响如何还有待不雅观察。

3、图形学的未来

那么这对图形学的未来意味着什么呢? 好吧,让我们将其分为优点/缺陷:

优点

高品质、逼真的场景快速、实时光栅化演习速率相对较快

缺陷

高 VRAM 利用率(4GB 用于查看,12GB 用于演习)大量磁盘占用(一个场景 1GB+)与现有渲染管道不兼容静态(暂时)

到目前为止,原始的 CUDA 实现尚未适应生产渲染管道,如 Vulkan、DirectX、WebGPU 等,因此还有待不雅观察会产生什么影响。

目前已经进行了以下适应性事情:

远程查看器WebGPU查看器WebGL 查看器Unity查看器优化的 WebGL 查看器

这些依赖于远程流传输 (1) 或传统的基于四元组的光栅化方法 (2-5)。
虽然基于四元组的方法与数十年的图形技能兼容,但它可能会导致质量/性能降落。
然而,查看器 #5 表明,只管采取基于四元组的方法,优化技巧仍可以带来高质量/性能。

那么我们会看到 3D 高斯泼溅在生产环境中完备重新实现吗? 答案可能是肯定的。
紧张瓶颈是对数百万个高斯进行排序,这在原始实现中利用 CUB 设备基数排序(一种仅在 CUDA 中可用的高度优化的排序)有效完成。
然而,只要付出足够的努力,在其他渲染管道中当然可以达到这种性能水平。

原文链接:http://www.bimant.com/blog/3d-gaussian-splatting/