本文主要是介绍3D高斯溅射:面向三维场景的实时渲染技术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. 前言
高斯溅射技术【1】一经推出,立刻引起学术界和工业界的广泛关注。相比传统的隐式神经散射场渲染技术,高斯溅射依托椭球空间,显性地表示多目图像的三维空间关系,其计算效率和综合性能均有较大的提升,且更容易理解。可以预见,未来2年针对高斯溅射的应用研究将会迎来爆炸式发展。通过本篇博文,我和大家来一起了解高斯溅射技术,希望对有需要的同学提供一点帮助。
2. 简介
高斯溅射3D Guassian Splatting是2023年Siggraph发表的一项创新性技术,其基本的思路为利用运动结构恢复SfM【2】,从一组多目图像中估计一个显性的稀疏点云。对于该点云中的每一个点,构造一个类似散射场的高斯椭球概率预测模型,通过神经网络完成学习,获得每一个椭球的对应参数,进而得到一个类似体像素的离散表示,以支持多角度的体渲染和光栅化。
高斯椭球 起初,图形学几何表达并不局限于三角面片。基于椭球的三维几何表示一度被工程化,例如1994年发售的魔城迷踪ecstatica:知乎:3D Gaussian Splatting入门
实际的现实世界是离散的,面片的位置是确定的,即“空白”区域就是没有数据,可以用标量0表示,有实物的区域或者一个实体表面,就是有数据的,可以用标量1表示。针对现实世界,数据显然是不可微的,因为从无到有是一个标量从0到1的跳变。由于不可微,导致不能直接套用基于微分的优化方法。而神经散射场技术的成功之处在于针对三维世界建立了一个可微的体渲染方式已解决该问题。简单解释,就是对三维世界进行渲染时,一个区域是否有物体,不是一个非0即1的二值判断,而是一个概率的预测。即空间的每一个位置都有一个基于概率的数值。这样,从0到1的跳变就转换成了一个连续的概率变换。优点是使渲染或三维表示变得可微,缺点是不能准确的确定一个几何结构。由于对整个空间建立体概率预测,训练效率较低,即使使用了GPU并行加速和类似八叉树的结构优化,依然不能获得实时的渲染性能。这时,高斯椭球被重新采用。
神经散射场的问题在于无法将概率预测控制在一个可控的区域。高斯椭球提供了一个有效的解决方案,该技术将概率预测压缩在一个基于稀疏点云的多个高斯分布中。即每一个概率预测的计算都是以稀疏点云中的一个点为标定,一个特定的作用范围作为概率预测的界限。这样,体渲染面对的不是全局场景,而是椭球限定的一组小区域。全局优化被拆解为一组局部优化,对应的计算效率自然会有所提升。高斯溅射技术就是基于上述思路提出,以平衡渲染效率和精度。
3. 算法流程
算法输入为一个静态场景的一组多目视图。首先通过SfM技术产生一组稀疏点云。基于该点云的每一个点建立一个3D高斯模型,伴随一组参数,包括位置,协方差矩阵(变换),透明度还有颜色。由于每一个局部的高斯模型对应不同的参数,那么这种体渲染是各向异性的,具有比较好的灵活性。散射场的颜色对应一个球谐函数的解。在完成优化后,高斯模型的对应参数被学习获得,体渲染需要的信息被获知,即可通过光栅化实现三维渲染的可视化。
可微分的3D高斯溅射 使用一组3D高斯模型来表示几何,优点在于不需要精确估计法向量。高斯模型由一个定义在世界坐标系下的满秩3D协方差矩阵Σ,由中点𝜇定位:
上面的高斯模型经由透明度α累加合成。3D高斯是一个事实上的三维表达,同时也是一种概率散射场体渲染表示,最终通过2D光栅化呈现。协方差矩阵Σ可由缩放矩阵S和旋转矩阵R表示:
3D高斯的自适应优化 基于高斯模型,高斯溅射的核心技术为对模型内参数的优化,以获得一组显性的高斯椭球估计。由于高斯溅射需要考虑从3D到2D的映射,错误的几何估计是不可避免的。这时需要在优化过程删除错误的几何估计。作者使用了一个随机梯度下降技术,借助标准GPU加速结构,实现对高斯模型参数的高效优化。注:这里有一部分参数选择的介绍,以及当高斯覆盖区域过大而误差显著时,需要进行分割的实现细节,我并没有搞清楚,需要研究代码后再看。
基于高斯的光栅化 高斯溅射的目标是提供任意角度的2D渲染。从一组高斯模型中实现到图像的光栅化是一个需要面对的挑战。作者采用一种基于瓷砖的光栅化(tile-based rasterizer,是计算机图形学中的一种渲染技术。它将屏幕划分为小的矩形区域,称为瓷砖。每个瓷砖都独立处理,以减少冗余计算和内存访问)。首先将屏幕分成16*16个瓷砖,基于视锥体区域剔除域外高斯。利用估计的透明度α,对瓷砖进行排序,并为每一个瓷砖分配一个线程。对于一个像素,按照光栅化步骤,在视锥体中,逐个检索瓷砖,结合透明度与颜色,确定像素的具体信息。到此,整个高斯溅射的核心技术都已经做了简要的介绍。确实是一个非常巧妙且便于理解的体渲染方法。
实验结果:
可以看到,对场景种的一些细节,高斯溅射技术(第二列)能够获得更精确的结果。
参考文献:
[1] Kerbl B, Kopanas G, Leimkühler T, et al. 3D Gaussian Splatting for Real-Time Radiance Field Rendering[J]. ACM Transactions on Graphics, 2023, 42(4).
[2] Snavely N, Seitz S M, Szeliski R. Photo tourism: exploring photo collections in 3D[M]. ACM siggraph 2006 papers. 2006: 835-846.
[3] Lassner C, Zollhofer M. Pulsar: Efficient sphere-based neural rendering[C]. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021: 1440-1449.
这篇关于3D高斯溅射:面向三维场景的实时渲染技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!