学习笔记之——3D Gaussian Splatting及其在SLAM与自动驾驶上的应用调研

本文对3D Gaussian Splatting相关工作进行调研。介绍了3DGS概念,包括3D高斯和Splatting,还提及交叉优化等内容。阐述了其在SLAM领域的多个应用,如GS - SLAM等,以及在自动驾驶领域的应用,如Street Gaussians和DrivingGaussian,展示了相关实验效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前博客介绍了NeRF-SLAM,其中对于3D Gaussian Splatting没有太深入介绍。本博文对3D Gaussian Splatting相关的一些工作做调研。

学习笔记之——NeRF SLAM(基于神经辐射场的SLAM)-CSDN博客文章浏览阅读967次,点赞22次,收藏21次。NeRF 所做的任务是 Novel View Synthesis(新视角合成),即在若干已知视角下对场景进行一系列的观测(相机内外参、图像、Pose 等),合成任意新视角下的图像。传统方法中,通常这一任务采用三维重建再渲染的方式实现,NeRF 希望不进行显式的三维重建过程,仅根据内外参直接得到新视角渲染的图像。为了实现这一目的,NeRF 使用用神经网络作为一个 3D 场景的隐式表达,代替传统的点云、网格、体素、TSDF 等方式,通过这样的网络可以直接渲染任意角度任意位置的投影图像。https://blog.csdn.net/gwplovekimi/article/details/135083274?spm=1001.2014.3001.5501而下面博客中,本人也对3DGS进行了复现学习

实验笔记之——Gaussian Splatting-CSDN博客文章浏览阅读586次,点赞18次,收藏4次。之前博客对NeRF-SLAM进行了调研学习笔记之——NeRF SLAM(基于神经辐射场的SLAM)-CSDN博客NeRF 所做的任务是 Novel View Synthesis(新视角合成),即在若干已知视角下对场景进行一系列的观测(相机内外参、图像、Pose 等),合成任意新视角下的图像。传统方法中,通常这一任务采用三维重建再渲染的方式实现,NeRF 希望不进行显式的三维重建过程,仅根据内外参直接得到新视角渲染的图像。https://blog.csdn.net/gwplovekimi/article/details/135349210?spm=1001.2014.3001.5501而在下面博文中,也对Instan-NGT与3DGS的渲染效果进行了对比

实验笔记之——基于COLMAP的Instant-NGP与3D Gaussian Splatting的对比-CSDN博客文章浏览阅读1k次,点赞23次,收藏18次。之前博客进行了COLMAP在服务器下的测试实验笔记之——Linux实现COLMAP-CSDN博客学习笔记之——NeRF SLAM(基于神经辐射场的SLAM)-CSDN博客NeRF 所做的任务是 Novel View Synthesis(新视角合成),即在若干已知视角下对场景进行一系列的观测(相机内外参、图像、Pose 等),合成任意新视角下的图像。传统方法中,通常这一任务采用三维重建再渲染的方式实现,NeRF 希望不进行显式的三维重建过程,仅根据内外参直接得到新视角渲染的图像。https://blog.csdn.net/gwplovekimi/article/details/135406537?spm=1001.2014.3001.5501本博文,意在记录本人调研3D Gaussian Splatting的时候做的学习记录(同时也记录了与本人研究方向相关的两个主要领域SLAM与Autonomous Driving中3DGS的paper),部分资料来源于网络,本博文仅仅供本人学习记录用~

目录

什么是3D Gaussian Splatting

什么是3D高斯?

什么是Splatting?

交叉优化

自适应控制

快速可微光栅化

3DGS in SLAM

GS-SLAM: Dense Visual SLAM with 3D Gaussian Splatting

SplaTAM: Splat, Track & Map 3D Gaussians for Dense RGB-D SLAM

Gaussian Splatting SLAM

Gaussian-SLAM: Photo-realistic Dense SLAM with Gaussian Splatting

Photo-SLAM: Real-time Simultaneous Localization and Photorealistic Mapping for Monocular, Stereo, and RGB-D Cameras

3DGS in Autonomous Driving

Street Gaussians for Modeling Dynamic Urban Scenes

DrivingGaussian: Composite Gaussian Splatting for Surrounding Dynamic Autonomous Driving Scenes

参考资料


什么是3D Gaussian Splatting

3D Gaussian Splatting for Real-Time Radiance Field Rendering

论文主页

3D Gaussian Splatting for Real-Time Radiance Field Rendering

3D Gaussian Splatting是最近NeRF方面的突破性工作,它的特点在于重建质量高的情况下还能接入传统光栅化,优化速度也快(能够在较少的训练时间,实现SOTA级别的NeRF的实时渲染效果,且可以以 1080p 分辨率进行高质量的实时(≥ 30 fps)新视图合成)。开山之作就是论文“3D Gaussian Splatting for Real-Time Radiance Field Rendering”是2023年SIGGRAPH最佳论文。

首先,3DGS可以认为是NeRF的一种,做的任务也是新视图的合成。

对于NeRF而言,它属于隐式几何表达(Implicit Geometry ,顾名思义,不表达点的具体位置,而表示点与点的关系。通过选取空间坐标作为采样点输入,隐式场景将输出这些点的几何密度是多少,颜色是什么。而所谓的神经隐式几何则是用神经网络转换上述输入输出的方法(输入三维空间坐标和观测视角,输出对应点的几何密度和颜色)。把光线上的一系列采样点加权积起来就渲染得到一个像素颜色,这便是NeRF神经辐射场渲染的流程。

此外,何的隐式表达可以分为体积类表达和表面类表达两种:

  • 体积类表达:NeRF 属于体积类表达,通过几何密度决定采样点颜色的贡献度。
  • 表面类表达:在表面类表达方式中,输入采样点,符号距离函数 SDF 输出空间中距离该点最近的表面的距离,正值表示表面外,负值表示表面内,表面类方法判定越靠近表面的采样点颜色贡献度越高。

既然有隐式,那么就有显式几何表达( Explicit geometry,就是类似点云、三角mesh这类可以沿着存储空间遍历所有元素。(通过某些方式,真正的把物体上的点都表示出来)

  • 对于渲染,NeRF是非常典型的backward mapping过程,即计算出每个像素点受到每个体素影响的方式来生成最终图像,对每个像素,投出一条视线,并累积其颜色和不透明度
  • 而3DGaussian Splatting是forward mapping的过程,将每个体素视作一个模糊的球,投影到屏幕上。在Splatting中,我们计算出每个体素如何影响每个像素点

什么是3D高斯?

对于高常说的高斯函数,其实是1D的高斯,也就是正态分布:

它所表达的图像就是一条对称曲线,如下图所示。均值控制对称轴进而控制图形位置,标准差  控制密度集中程度。

对于一段x区间,进行积分可以得到分布中的数据落在这一区间的概率,其中绝大多数落在区域(概率是0.9974)。因此,一组可以确定一个1D高斯分布函数,进而确定一条1D线段,通过改变这两个值就可以表达1D数轴上的一根线段。

类似地,将这个思路从1D拓展到3D,那么就可以确定一个椭球的图形,这个椭球分别以xyz轴对称,从对称轴的垂直面切出来的横截面都是椭圆(或圆)。不过由于这个椭球可以旋转移动,所以它的xyz对称轴不一定和世界坐标系重叠。对于标准的3D Gaussians标准形式,是:

它能涵盖空间中任意形状的椭球(包括平移旋转)。其中是三维列向量坐标,是椭球中心(控制世界空间位置平移),至于协方差矩阵则是控制椭球在3轴向的伸缩和旋转(模型空间),其中协方差矩阵的特征向量就是椭球对称轴。

但是论文中的3D Gaussians表达却不一样:

和标准形式对比可以看到去掉了指数部分前面的尺度系数(不影响椭球几何);默认模型坐标中心在原点,方便旋转放缩,放入世界空间时再加上平移。那么对于初始化这个高斯椭球,目前就只有协方差矩阵这一个参数了。论文给出了初始化的方法如下表达

其中的S是放缩变换(沿着坐标轴的3D向量s);R是旋转变换(可以用四元数q来表达)。这是因为椭球是可以通过将圆球按轴向放缩再旋转。而在使用梯度下降对参数进行优化的时候,就是将梯度传递到s和q中进行优化的。

什么是Splatting?

Splatting(抛雪球(splatting):是计算机图形学中用三维点进行渲染的方法,该方法将三维点视作雪球往图像平面上抛,雪球在图像平面上会留下扩散痕迹,这些点的扩散痕迹叠加在一起就构成了最后的图像,是一种针对点云的渲染方法)的方法进行渲染。

传统光栅化(rasterization)的主要内容之一是将三维三角形映射到投影平面并像素化(将图形或图像的矢量数据转换为像素数据,从而能够在计算机屏幕上显示的过程。通过将图形转换为像素级别,计算机可以更容易地处理和显示图形,同时确保图像在屏幕上以高速率绘制)。光栅化是实现计算机屏幕上图形显示和渲染的关键步骤,能够以非常高的速度生成图像,适用于实时渲染,例如视频游戏和模拟器。

  • 光栅化就是把顶点数据转换为片元的过程。片元中的每一个元素对应于帧缓冲区中的一个像素。光栅化其实是一种将几何图元变为二维图像的过程。该过程包含了两部分的工作。第一部分工作:决定窗口坐标中的哪些整型栅格区域被基本图元占用;第二部分工作:分配一个颜色值和一个深度值到各个区域。光栅化过程产生的是片元。
  • 之所以是三角形是因为它在图形学中可以看做是几何体的基本形状。三角形在图形学中有很多很好的性质:(1)三角形是最基本的多边形,并且任何其他的多边形都可以拆分为三角形。(2)三个点可以保证他在一个平面如果是四边形四个点就不能保证。(3)它可以很好地用叉积判断一个点是不是在三角形内部(三角形的内外定义特别清晰)。

而对于椭球(就是上面3D高斯获得的表达)的光栅化则需要开发者自己用GPU实现,其中把椭球投影到投影平面后得到的2D图形称为Splatting。Splatting算法与光线投射法不同,是反复对体素的投影叠加效果进行运算。它用一个称为足迹的函数计算每一体素投影的影响范围,用高斯函数定义点或者小区域像素的强度分布,从而计算出其对图像的总体贡献,并加以合成,形成最后的图像。由于这个方法模仿了雪球被抛到墙壁上所留下的一个扩散状痕迹的现象,因而取名为“抛雪球法”。所以,所谓的Splatting就是对高斯进行光栅化~

对于3D高斯的分布函数,在模型空间原点用协方差矩阵确定了形状与旋转,然后用椭球的中心确定平移到世界空间。为了渲染到画布上需要先view变换(视角的变换)到相机空间,再project变换(透视投影模型?)将透视空间变得和像素对齐才能进行光栅化。而所谓的栅格化可以理解伟将三维投射到平面并进行像素化。论文把这个过程用下面公式

### 3DGS-Enhancer 使用方法概述 对于希望深入了解或使用3DGS-Enhancer的技术人员而言,掌握该工具的具体操作流程至关重要。然而,在提供的参考资料中并未直接提及名为“3DGS-Enhancer”的具体项目或库[^1][^2][^3][^4]。 尽管如此,考虑到3DGS(3D Gaussian Splatting)作为核心技术被广泛应用于多个领域,可以推测所谓的3DGS-Enhancer可能是指增强或改进3D高斯喷射效果的相关技术和实践。为了更好地理解和利用这类技术,建议关注以下几个方面: #### 获取源码资源 如果存在特定于3DGS-Enhancer的开源项目,则可以从官方仓库获取最新版本的源代码。例如,类似的XV3DGS-UEPlugin项目已经托管在一个公开平台上,开发者可以通过访问该项目主页来下载所需文件并查看详细的安装指南。 ```bash git clone https://gitcode.com/gh_mirrors/xv/XV3DGS-UEPlugin.git cd XV3DGS-UEPlugin/ ``` #### 安装依赖环境 确保本地开发环境中已正确设置必要的软件包和库。这通常涉及Python解释器及相关扩展模块的安装,以及其他可能影响程序运行的支持组件。具体的依赖项列表应当由所使用的实际框架决定,并可以在README.md或其他形式的说明文档中找到指导信息。 #### 学习核心概念和技术细节 深入研究有关3D高斯喷射的基础理论及其在不同应用场景下的变体实现方式。ARAH论文介绍了如何构建具有动画功能的角色模型;而关于3DGS-SLAM的研究则探讨了这一技术在即时定位地图构建中的潜力。 #### 实践案例分析 参考现有成功案例的学习笔记,特别是那些专注于解析复杂系统的内部机制的文章。CSDN博客上有一篇详尽描述了多种基于3DGS SLAM解决方案的实际部署经验分享,这对于理解整个工作流非常有帮助。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值