CMU&MIT最新突破!实现高速SLAM与实时3D渲染的全新方法

作者:韩立 | 来源:3DCV

1、导读

SLAM是一种同时进行定位和地图构建的技术,可以在没有先验地图的情况下,通过使用传感器数据(如RGB和深度图像)来实时估计相机的位置,并构建环境的三维地图。稠密SLAM是指在地图构建过程中,对环境的细节进行高精度的建模,包括对每个像素点的深度信息进行估计。 该研究提出了一种名为SplaTAM的新型SLAM系统,它利用3D高斯光滑函数作为地图的表示方法,实现了更快的渲染和优化速度,对地图的空间范围有明确的了解,并简化了地图的稠密化过程。

2、研究思路

探索如何使用显式的体积表示来设计一种SLAM解决方案。具体而言,本研究使用基于3D高斯函数的辐射场来进行Splat(渲染)、Track(跟踪)和Map(建图)操作。

3、研究内容

SplaTAM是一种用于稠密RGB-D SLAM的新型系统、它利用3D高斯光滑函数作为底层地图表示,实现了更快的渲染和优化、对地图空间范围的明确知识以及简化的地图密度化。同时SplaTAM在相机姿态估计、场景重建和新视角合成方面取得了最先进的结果。该方法通过将3D高斯光滑函数与SLAM相结合,不仅在SLAM和新视角合成领域树立了新的基准,还为进一步的探索和创新提供了一个稳健的框架.

4、方法

Gaussian Map Representation是一种用于表示场景的显式体素化地图表示方法。它使用一组3D高斯函数来表示场景的空间分布。每个高斯函数由其在三维空间中的位置、颜色和大小参数化。通过将这些高斯函数渲染成高保真度的颜色和深度图像,我们可以直接使用可微分渲染和基于梯度的优化来同时优化每个帧的相机姿态和场景的体素化地图。具体而言,Gaussian Map Representation的数学公式如下:

4.1、相机跟踪(Camera Tracking)

其中, <math xmlns="http://www.w3.org/1998/Math/MathML"> E t \mathbf{\mathit{{E}{t}}} </math>Et表示当前帧的相机姿态,sil 表示相机姿态的损失函数, <math xmlns="http://www.w3.org/1998/Math/MathML"> λ \lambda </math>λ是权衡参数,𝑅𝑒𝑛𝑑𝑒𝑟表示渲染操作, <math xmlns="http://www.w3.org/1998/Math/MathML"> G t − 1 \mathbf{\mathit{G{t-1}}} </math>Gt−1表示上一帧的高斯地图, <math xmlns="http://www.w3.org/1998/Math/MathML"> E ′ \mathbf{\mathit{{E}'}} </math>E′ 表示上一帧的相机姿态。

4.2、高斯密度化(Gaussian Densification)

其中, <math xmlns="http://www.w3.org/1998/Math/MathML"> G t \mathbf{\mathit{G_{t}}} </math>Gt表示当前帧的高斯地图,𝐷𝑒𝑛𝑠𝑖𝑓𝑦表示高斯地图的密度化操作,𝑆𝑖𝑙表示密度化的损失函数。

4.3、地图更新(Map Update)

其中, <math xmlns="http://www.w3.org/1998/Math/MathML"> G t \mathbf{\mathit{G_{t}}} </math>Gt表示更新后的高斯地图, <math xmlns="http://www.w3.org/1998/Math/MathML"> G ′ \mathbf{\mathit{{G}'}} </math>G′表示上一帧的高斯地图, <math xmlns="http://www.w3.org/1998/Math/MathML"> E k \mathbf{\mathit{E_{k}}} </math>Ek表示第 <math xmlns="http://www.w3.org/1998/Math/MathML"> 𝑘 𝑘 </math>k帧的相机姿态, <math xmlns="http://www.w3.org/1998/Math/MathML"> F k \mathbf{\mathit{F_{k}}} </math>Fk表示第 <math xmlns="http://www.w3.org/1998/Math/MathML"> 𝑘 𝑘 </math>k帧的输入图像。

这些公式描述了SplaTAM方法中的关键步骤,包括相机跟踪、高斯密度化和地图更新。通过迭代优化这些步骤,我们可以同时估计相机姿态和优化场景的高斯地图,从而实现稠密的RGB-D SLAM。

5、相比于现有的地图表示方法,SplaTAM有何优势

  • 快速渲染和优化:高斯函数的渲染速度可以达到每秒400帧,比隐式方法更快速地进行可视化和优化。快速优化的关键在于对3D基元进行光栅化。

  • 具有明确的空间范围的地图:通过仅在过去观察到的场景部分中添加高斯函数,可以轻松控制现有地图的空间边界。

  • 显式地图:我们可以通过简单地添加更多的高斯函数来任意增加地图容量。

  • 参数的直接梯度流动:因为相机运动可以被视为保持相机静止并移动场景,所以我们还可以直接将梯度传递到相机参数中,从而实现快速优化。而基于神经网络的表示方法则无法做到这一点,因为梯度需要通过(可能是多个)非线性神经网络层传递。

6、实验结果

以下是对实验结果的概述

相机姿态估计实验

  • 使用四个数据集(ScanNet++、Replica、TUM-RGBD和Orig-ScanNet)进行相机姿态估计的实验评估。
  • 与多个基线方法(包括Point-SLAM、ORB-SLAM3等)进行比较。
  • 使用平均绝对轨迹误差(ATE RMSE)作为评估指标。
  • 结果表明,SplaTAM在所有数据集上都表现出色,相对于其他基线方法具有更好的性能。

渲染质量实验

  • 使用ScanNet++数据集进行渲染质量的实验评估。
  • 评估训练视图和新视图的渲染效果。
  • 使用PSNR、SSIM、LPIPS和深度L1损失等指标来评估渲染质量。
  • 结果表明,SplaTAM在训练视图和新视图的渲染中都能提供高保真度的性能,相对于其他方法具有竞争力。

7、结论

Spla TAM是一种用于稠密RGB-D SLAM的新型系统。它使用3D高斯散列表示法实现密集的SLAM系统。该方法通过在线优化明确体积表示,使用可微分的渲染实现快速优化和优化,并具有确定哪些区域以前被映射以及具有结构化的地图扩展功能。实验结果表明,SplaTAM在相机姿态估计、地图构建和新视角合成方面取得了最先进的性能,超过了以往的方法。此外,SplaTAM还允许实时渲染高分辨率密集的3D地图。

相关推荐
肥猪猪爸1 小时前
使用卡尔曼滤波器估计pybullet中的机器人位置
数据结构·人工智能·python·算法·机器人·卡尔曼滤波·pybullet
readmancynn2 小时前
二分基本实现
数据结构·算法
萝卜兽编程2 小时前
优先级队列
c++·算法
盼海2 小时前
排序算法(四)--快速排序
数据结构·算法·排序算法
一直学习永不止步2 小时前
LeetCode题练习与总结:最长回文串--409
java·数据结构·算法·leetcode·字符串·贪心·哈希表
Rstln3 小时前
【DP】个人练习-Leetcode-2019. The Score of Students Solving Math Expression
算法·leetcode·职场和发展
芜湖_3 小时前
【山大909算法题】2014-T1
算法·c·单链表
珹洺3 小时前
C语言数据结构——详细讲解 双链表
c语言·开发语言·网络·数据结构·c++·算法·leetcode
几窗花鸢3 小时前
力扣面试经典 150(下)
数据结构·c++·算法·leetcode
.Cnn3 小时前
用邻接矩阵实现图的深度优先遍历
c语言·数据结构·算法·深度优先·图论