全部新闻提供最新行业动态,分享前沿设计理念
三维模型重建技术发展研究(三)-3DGaussianSplatting:连续三维场景实时渲染(上)
时间:2024-09-12 来源:朝夕友人 点击:

本资源均为通过网络等公开合法渠道获取的资料,转载文章旨在知识传递和学习,版权归原作者所有,不代表本平台观点;若未能找到作者和原始出处,还望谅解;如若侵权,请联系客服,我们会在第一时间删除。谢谢!

3D Gaussian Splatting是当前较火的一项三维渲染技术。本次以点云数据为引,拟说明3DGaussianSplatting的基本原理、技术特点、平台集成、应用场景等,不足之处请大家多多批评指正。

1 引言

三维模型重建大致分为传统利用点云、网格、体素栅格等进行显性表达和基于神经网络参数进行的隐性表达两种,其中应用最广的是Mesh网格表达,也就是三角形。该方法通常基于GPU进行栅格化,直接调用API的性能进行快速渲染,效果较好,该内容已在实景三维中国建设与发展(五)基于AIGC的三维重建初探1章节中进行了说明。

虽然三角形网格凭借与GPU的出色兼容性和高速渲染效率稳居现代游戏与3D建模的主流,但点云等非网格模型在3D数据表达与处理的中也占有一席之地。点云数据和高斯溅射技术的结合主要用于提升点云的可视化质量和渲染效率,特别是在创建平滑、连续的表面外观。

3D Gaussian Splatting (以下简称3DGS)能够更好地保留原始点云数据的细节信息,并且能够在较少的计算成本下实现连续表示,克服了传统方法在噪声和渲染质量方面的限制,极大地提高了渲染速度。在动态场景建模、实时渲染、视觉效果等方面具有优势,尤其适用于需要模拟复杂流体效果或动态环境的场景。

2 点云数据简介

为什么文章开始要先提点云数据呢,其实是因为目前实景三维成果已有很多了,仅利用2D图像进行三维重建精细度和成本方面还是有很多考虑的。

点云数据是一种广泛应用的数据形式,它以一系列的点的集合形式来表示三维空间中的对象或场景,每个点通常包含三维坐标(X, Y, Z),可能还包括颜色(RGB)、反射强度(Intensity)等属性信息。点云常用于表示物体表面或场景的几何形态,但直接渲染时可能会呈现出颗粒状或不连贯的效果。凭借着其直观简洁的特点,尤其契合人们对简单3D模型的认知直觉,目前已广泛应用在三维建模、场景重建、目标检测等领域。

获取

点云数据可以通过多种方式获取,常见的包括三维激光扫描仪(LiDAR)、RGBD相机、摄影测量法等

处理

点云数据处理技术通常包括滤波去除、数据配准、分割与分类、几何重建等传统的点云处理方法通常将点云中的点直接用于三维建模,业内对于渲染表达已探索过多种算法以填补点与点之间的空隙,力求生成连续表面;但高分辨率的点云数据体量非常庞大,处理和存储需要较高的计算资源;同时限于采集设备或环境条件点云数据可能会受到噪声和不完整性的的影响,导致数据的质量和可靠性出现问题;此外数据密度不均匀分布、数据配准和对齐不足、数据处理的复杂性使得点云数据未能成为三维建模的首选。

存储

点云数据常见的存储格式包括PTS、LAS(常用于存储LiDAR数据)、PCD、XYZ(文本格式,常用于存储点的坐标信息)等。

3 3D Gaussian Splatting技术

3.1 相关概念

高斯分布

高斯函数是 3D 高斯分布的基础,类似于钟形曲线,高斯分布(或称正态分布)是一种连续的概率分布,左右对称。高斯分布由两个参数完全确定,即均值(μ)和标准差(σ);有一个单峰,峰值位于均值(μ)处。标准差决定了曲线的宽度,曲线两侧无限延伸逐渐趋近于横轴但永不与之相交。

论文原文对3D GS的定义不太直观,可以这么说,1D高斯即正态分布,二维高斯分布的图形是一个椭圆,三维高斯分布的图形是一个椭球,这个椭球分别以xyz轴对称,即三元正态分布函数通常写成:

3D 高斯图使用它来表示位置 (XYZ)、协方差(3x3 矩阵)、颜色(RGB)、Alpha(a)透明度等属性。

再多数一句,在3D GS中每个高斯函数都具有位置属性(中心点)、权重属性(不透明度)、尺度(协方差矩阵)以及颜色属性。权重通常根据点云数据的密度或测量误差来确定。通过使用高斯核函数对每个点进行平滑处理,并累加其对周围点的影响,可以生成连续的3D表面。

光栅化

光栅化(Rasterization)是计算机图形学中一种将几何图形(如点、线、多边形等)转化为像素矩阵(即位图)的过程,是实现3D图形在二维屏幕上显示的关键步骤。它是实时渲染引擎的核心技术。光栅化的关键步骤包括投影、裁剪、屏幕映射、光栅化、着色、融合、输出等,与基于光线追踪的渲染相比光栅化通常更快,但可能不会产生与光线追踪相同的全局光照效果

Splatting是一种传统的3D向2D转换的光栅化渲染方式 ,可替代传统扫描线渲染或三角形光栅化方法,特别适用于处理具有大量微小、复杂几何细节(如粒子系统、毛发、草地等)的场景。Splatting的主要思想是将3D空间中的每个元素(如点、粒子、体素等)“涂抹”(splat)到二维屏幕空间,形成最终的像素颜色由于Splatting在像素级别累积颜色和权重,它可以轻松处理透明和半透明对象,这使得它在处理雾、玻璃、水面等透明或半透明材质时表现出色。此外,Splatting生成的是中间结果(颜色和权重缓冲区),可以方便地进行后期处理操作,如景深效果、运动模糊、色调映射等。但在通用场景渲染中由于其需要对每个样本点进行投影和累加,计算量较大,且对硬件要求较高导致Splatting更多作为传统光栅化的补充

体渲染

体渲染(Volume Rendering)是一种用于将三维空间中的离散采样数据集转化为二维可视化的图像的技术,体渲染的基础是体数据,它通常以体素网格的形式存在。体素是三维空间中的基本单元,相当于二维图像中的像素。每个体素包含有关该体积单元内物质的属性信息,如密度、温度、速度、浓度、RGB颜色值等。

基于点的渲染技术

基于点的渲染(Point-Based Rendering)一种使用点而非传统多边形来可视化3D场景的技术。该方法特别适用于渲染复杂、非结构化或稀疏的几何数据。点可以通过添加额外属性,如可学习的神经描述符来进行增强,并且可以高效地进行渲染,尽管基于点的渲染有许多优点,但在点密度较低的区域可能会出现渲染不连贯的现象及混叠效应。

辐射场

辐射场(Radiance Field)特指一种用于表示三维场景中光的分布和强度的方法。它通常用于模拟光线在场景中的传播,以及从不同视角观察时的光照效果,辐射场的核心概念是将光的辐射强度作为空间位置和观察方向的函数来表示辐射场有显示表达和隐式表达,可用于场景表示和渲染。

3.2 基本原理

3D Gaussian Splatting (以下简称3DGS)是2023年Siggraph发表的一项创新性技术,聚焦于实时、高质量的3D场景重建与渲染。3DGS研究首篇综述是《A Survey on 3D Gaussian Splatting》论述了3D GS部分原理。

文章地址 https://arxiv.org/abs/2401.03890

3.2.1 新视角生成

为了生成特定视角下的相机图像,3D GS首先将空间中的3D高斯投影到基于像素的图像平面上,这个过程被称为泼溅(splatting)。随后3D GS对这些高斯进行排序并计算每个像素的值。

3DGS 渲染示意图 (a) 泼溅步骤将 3D 高斯投射到图像空间。(b) 3D高斯将图像划分为多个不重叠的块(tiles)。(c) 3D GS复制覆盖多个块的高斯,为每个副本分配一个标识符 ID。(d) 通过渲染有序高斯,我们可以获得所有像素的值。渲染过程相互独立。

以下内容摘自知乎@自难忘  3D Gaussian Splatting 原理和源码解读

3.2.2 优化

3D GS的核心优化程序是通过构建大量的3D高斯集合来精确捕捉场景的细节。一方面需要通过可微渲染来使高斯符合场景纹理,另一方面表达场景需要的高斯数量是未知的。这分别对应参数优化与密度控制两步,这两步在优化过程中交替进行在实际操作中,由于存在许多需要手动设置的超参数,这些参数的具体设置可能会影响优化的结果和效率通过这种方法3DGS能够实现对三维场景的有效表示同时保持实时渲染的能力。

参数优化

每个3D高斯的属性,包括位置、不透明度、颜色和协方差矩阵等,都可以通过可微分渲染进行优化。优化的目的是让这些属性更好地适应场景的纹理和外观,从而在新视角下合成高质量的图像

密度控制

在3D GS中,表示场景所需的3D高斯的数量通常是未知的。为了解决这个问题可以利用神经网络来自动学习场景中3D高斯的密度。这涉及到在优化过程中添加或移除高斯点,以此来精确地表示场景的细节。

(我们的自适应高斯加密方案。顶行(重建中):当小规模的几何体(黑色轮廓)覆盖不够充分时,我们克隆相应的高斯。底行(过度重建):如果小规模几何体由一个大拼板表示,则将其一分为二。)

1)初始化

3D GS 是从 structure-from-motion (SfM) 或随机初始化的初始稀疏点集开始的。然后,采用点密集化和剪枝来控制场景中 3D 高斯的密度。

2)点密集化

在点密集化阶段,3D GS 自适应地增加高斯的密度,以更好地捕捉场景的细节。这一过程尤其侧重于几何特征缺失的区域或高斯过于分散的区域。经过一定次数的迭代后,高斯的密度就会增加,其目标是显示出较大视图空间位置梯度的高斯。这涉及到在重建不足的区域克隆小高斯,或者在重建过度的区域拆分大高斯。克隆时,创建一个高斯的副本,并向位置梯度移动。对于分割,则是用两个较小的高斯替换一个较大的高斯,将其比例缩小一个特定的系数。这一步骤旨在优化高斯在三维空间中的分布和表现,从而提高重建的整体质量。

3)点的剪枝

该阶段涉及剔除多余的或影响较小的高斯,这在某种程度上可以看作是一个正则化过程。这一步骤通过剔除几乎透明的高斯和在世界空间或视图空间中过大的高斯来完成。此外,为了防止输入摄像头附近的高斯密度出现不合理的增加,在迭代一定次数后,高斯的 

如果您也有此需求,欢迎咨询我们立即咨询