论文Review 3DGSSLAM GauS-SLAM: Dense RGB-D SLAM with Gaussian Surfels

基本信息

题目:GauS-SLAM: Dense RGB-D SLAM with Gaussian Surfels

来源:arXiv

学校:beihang、Northwestern Polytechnical University

是否开源:https://github.com/gaus-slam/gaus-slam

摘要:论文提出了一种名为 GauS-SLAM 的密集 RGB-D 同时定位与建图(SLAM)系统,利用 2D 高斯表面元素(Gaussian Surfels)实现鲁棒的跟踪和高保真的地图构建。论文指出了基于高斯的场景表示在新型视角下存在几何失真问题,影响跟踪精度,并提出了针对性的解决方案,包括基于 2D 高斯的增量式重建策略、表面感知的深度渲染机制以及动态局部地图设计。这些方法显著提高了几何精度、多视角一致性和计算效率。

Introduction

目前稠密SLAM仍是待研究的问题,目前的研究重点希望将点、体素、面元等传统3D特征结合,目前面对的问题仍是位姿估计、收敛困难,以及连续学习过程中的灾难性遗忘。

3DGS好!我们SLAM也要用它!但是以往算法的问题是:位姿估计不准、收敛慢。针对这个问题,有些方法[2, 3, 7, 9, 39]通过将里程计和3DGS过程解耦,用成熟的视觉里程计[ORBSLAM、DROID-SLAM]来提升定位精度。虽然解耦了可以提升定位实时性,但是天然丧失了紧耦合给定位和重建带来的提升(我以后也这么写,紧耦合的好处)。

本文提出的紧耦合高斯SLAM框架解决的就是几何不准问题,如图2。

**第一个问题是几何变形。**在大多数基于高斯的跟踪方法中,通过将观测与当前视点的渲染结果进行对齐来估计相机变换。在这个过程中,透视引起的几何畸变会导致帧与高斯模型之间的错位,从而降低跟踪精度。

  • 高斯深度表示模型的内在不一致性:3D 高斯基元(3D Gaussian Primitives)的深度模型采用中心深度(center depth model),在不同视角下会产生不一致的深度估计(如图 2(a1) 所示)。
  • 深度混合中的表面干扰:在深度渲染过程中,不同表面之间的相互干扰会导致深度混合失真。例如,图 2(a2) 展示了对椅子靠背进行重建时,远处的地板(具有较大深度值)干扰了深度渲染,导致不准确的深度图(ill-blended depth)。

但是2DGS[8]可以解决以上俩问题,那我们就用2DGS!

**第二个问题是离群帧的问题。**在帧与高斯模型对齐时,异常值(outliers)会显著影响跟踪精度。现有方法(如 SplaTAM )通过掩盖低累积不透明度(low accumulated opacity)的区域来移除异常值。然而,对于具有高累积不透明度的干扰区域(如图 2(b) 所示),特别是在相机绕物体移动时,这些区域难以被有效掩盖,导致跟踪性能下降。

提出了3个创新点:

  1. 基于 2D 高斯的增量式重建策略与表面感知深度渲染机制 解决几何失真问题,提高几何精度和多视角一致性。2D 高斯表面元素更适合表示平面几何特性,减少深度估计中的误差。相较于 3D 高斯基元,2D 高斯表面元素通过交叉深度模型(intersection depth model)计算深度,避免了 3D 高斯基元中心深度模型的多视角不一致性问题。系统采用增量式方法(incremental reconstruction),在每一帧 RGB-D 数据输入时,动态更新高斯表面参数(位置、形状、颜色等),而不是一次性构建全局模型。这种方法能够适应场景变化(如动态物体或光照变化),并通过逐步优化提高几何精度。表面感知深度渲染(Surface-aware Depth Rendering):针对深度混合中的表面干扰问题,提出了一种表面感知的深度渲染方案。该机制通过分析高斯表面的几何属性(如法向量、深度分布),动态调整深度渲染权重,优先考虑可见表面的贡献,抑制被遮挡或次要表面的干扰。具体实现可能包括分层渲染(layered rendering),将场景分解为多个表面层,减少深度混合时的失真。

  2. 动态局部地图设计。解决异常值移除问题,同时保持跟踪效率。局部地图隔离 :系统将相机跟踪限制在一个小型局部地图(local map)中,仅包含当前视角下的可见高斯表面元素,隔离全局地图中的干扰区域(如遮挡区域)。通过动态选择可见表面,系统避免了高累积不透明度区域对跟踪的干扰(如图 2(b) 所示)。周期性重置局部地图:局部地图会定期重置,基于当前的相机视角和深度信息重新构建,以确保跟踪始终在有限的高斯基元子集上进行。局部地图与全局地图动态同步,定期更新全局模型以保持一致性。

  3. 紧耦合前后端架构

**Neural based dense SLAM:**前朝遗老Nerf挺好,Di-fusion、Neuralfusion、Vox-fusion、iSDF、iMap。有一些nerfSLAM,像ESLAM、Nice-slam、Nerfslam、Point-slam。

3DGS based dense SLAM: 当红炸子鸡3DGS真好,一些GS-SLAM:G2-mapping、Gaussian splatting slam [14]、Gs-slam [31]、Gaussian-slam、Rp-slam、Photo-slam、Rtg-slam、Hi-slam2(review到了论文粗略Review HI-SLAM2: Geometry-Aware Gaussian SLAM for Fast Monocular Scene Reconstruction-CSDN博客)、Splat - SLAM 、GS-ICP(这玩意竟然也能ICP?)

还有些纯3DGS的工作:2DGS、GOF、Rade-gs。都是侧重估计平面(平面深度估计真的重要啊,这一定是建图和定位的钥匙)

Method

3.1 Gaussian Surfel-based Representation

2D面元比3D高斯球好!2D高斯面元(Gaussian Surfels)通过附着在场景表面的切平面(tangent planes)上,利用几何变换和渲染技术实现高效的场景表示和渲染。这种表示方法在密集RGB-D SLAM中能够提高跟踪精度和重建质量。2D高斯表面元素是附着在场景表面切平面上的二维高斯基元。切平面由中心点 μ 和两个切向向量 eu​ 和 ev​ 定义,分别表示平面上的两个正交方向。

尺度变换S沿第3维的尺度因子为0。然后,在点p处的二维高斯的值可以通过下面的公式来评估:

按照3DGS的表示方法,一个场景可以表示为一组具有几何Σ i、中心点μ i、不透明度oi和颜色ci的二维高斯面元:

给定从观测角度采样的射线和一组2D高斯基元,可以求解射线与第i个基元的交集p′i。利用α-blending,通过依次累加交点处的高斯值,可以得到射线对应的颜色,可以表示为:

其中r是对应于一个像素的采样射线,wi表示第i个高斯的混合权重。我们还绘制了累积不透明度图A,它表示沿每条射线的混合权重之和。当累积不透明度趋近于1时,表明场景得到了很好的优化。

3.2. Surface-aware Depth Rendering

  • Unbiased depth:

2D高斯面元通过计算光线与切平面的交点深度(intersection depth)取代3D高斯的EWA splatting方法,提供更精确的几何表示。相较于3D高斯的中心深度模型,2D高斯的交叉深度模型减少了多视角不一致性。

  • Depth adjustment:

在α混合过程中,后方表面(具有较大深度值)可能干扰前景表面的深度估计。论文提出了一种基于权重的深度调整方法,通过引入权重 β​i 控制每个高斯基元的深度贡献。

其中,中值深度dm定义为在射线穿过高斯序列时,当累积不透明度首次超过0.5时,第m个高斯所对应的深度。具体来说,如果射线没有达到第m个高斯,我们设定β i = 1,因为第i个高斯的深度不会对混合深度产生负面影响。否则,β i根据di和dm之间的距离以及距离的方差计算:

其中B作为一个超参数,控制着权重对距离和方差的敏感性。如图3所示,当高斯与深度中值之间的距离增大时,权重β i减小,导致第i个高斯对深度图绘制的影响减小。

  • Depth Normalizatoin

在α-blending 过程中,沿不同视角光线的累积权重的微小差异会导致渲染深度的显著低估。为了解决这个问题,我们在深度图绘制过程中对所有高斯深度的权重进行了归一化:

3.3. Camera Tracking

采用帧到模型(frame-to-model)跟踪方法,通过优化相机位姿最小化渲染图像与真实图像的差异。

给定场景中的2D高斯表面元素集合 和初始相机位姿 {R,t},通过迭代优化 R(旋转)和 t(平移)对齐渲染图像和真实图像。优化过程等价于在固定相机视角下优化场景中高斯基元的相对位姿。过程类似于Gaussian-SLAM。具体来说,将高斯基元集合转换到相机坐标系中,可以形式化为:

下面将使用损失函数对{ R,t }进行联合优化,使得渲染的深度和彩色图与真实图对齐。

为了减轻新观测场景和异常值的影响,我们将损失函数应用于累积不透明度超过0.9的像素。

3.4 Incremental Mapping

本节描述了GauS-SLAM的增量式建图(Incremental Mapping) 模块,提出了一种基于表面附着(Surfel Attachment) 的初始化方法,结合**边缘生长(Edge Growth)**策略加速场景重建。

在映射过程中,3DGS中基于克隆和分裂的稠密化策略通常需要大量的迭代次数和广泛的多视图约束来实现令人满意的场景覆盖。受SplaTAM [12]启发,系统通过像素反投影直接初始化2D高斯表面元素,加速重建过程。初始化区域基于累积不透明度阈值(0.4至0.6)。具体来说,2D高斯面元将直接定位在累积不透明度小于0.6的像素的未投影处。初始尺度S和方向R由下面的方程确定:

Dgt,ngt为像元的真值深度和法线。在部分重建区域(不透明度0.4至0.6),使用渲染深度作为真实深度,扩展高斯基元至物体边界。由于这些区域已经被部分重建,因此渲染深度可以作为真实深度用于初始化高斯。这个过程有利于高斯模型沿着物体边界进行扩展,我们称之为Edge Growth

在映射过程中,前端从局部地图中随机选取一帧,利用如下损失函数优化高斯模型进行局部重建。使用损失函数(公式(16))优化局部高斯模型,包含深度、颜色和正则化项。

Lreg项通过最小化射线上每个高斯的所有固定深度与中值深度dm之间的加权MSE来降低沿射线的深度不确定性。

3.5. GauS-SLAM System

  • 前端:

在前端,所有的优化过程都在local map中执行。局部地图的第一帧作为参考关键帧( RKF )。在处理新帧时,前端首先进行相机跟踪,估计其相对于RKF的位姿。然后根据新观察到的场景超过预先定义的阈值τ k的比例来评估该帧是否符合关键帧( KF )的条件。incremental mapping是在KF上进行的。如果局部地图中高斯基元的数量超过指定的阈值τ l,前端将帧和局部高斯地图发送给后端,并重新初始化新的局部地图以继续跟踪和建图。此时,当前帧在新的local map内被标记为新的RKF。

总结:

  • 在局部地图中进行相机跟踪和增量式建图。
  • 使用参考关键帧(RKF)和关键帧选择机制(基于新观测场景比例阈值 τk\tau_kτk)。
  • 当高斯基元数量超过阈值 τl\tau_lτl,将局部地图发送至后端并重新初始化。
  • 后端:

后端。系统的后端主要负责合并local map和优化global map。在接收到局部地图后,后端将局部地图中的帧作为子地图存储在数据库中,并将局部高斯地图整合到全局地图中。具体来说,局部地图中的高斯基元首先根据不透明度重置为0.01,然后根据它们的RKF姿势添加到全局地图中。随后,联合选择当前子图及其共可视子图进行局部映射。为了确定子地图之间的可视性,我们使用NetVLAD(回环检测算法)从每个子地图的首帧和最后一帧中提取视觉特征。映射过程结束后,对不透明度低于0.05的高斯基元进行剪枝。该步骤有效地去除局部地图和全局地图之间的重叠部分,从而防止高斯基元的不断累积。

为了减少轨迹误差的累积,采用光束法平差( Bundle Adjusting,BA )对共视子地图和全局地图中的位姿进行位姿优化。在BA过程中,从共可视子图中随机选择帧,并通过最小化下面的公式进行优化。

当后端不忙时,从数据库中的子地图中随机选择一帧来优化全局地图,我们称之为随机优化。该过程有效地缓解了遗忘问题,增强了高斯场景的全局一致性。在前端和后端重建完成后,随机优化继续运行一个额外的周期,以减少浮动高斯,确保全局地图得到均匀优化。我们称之为这个过程为Final Refinement。

总结:

  • 合并局部地图,优化全局地图。
  • 使用NetVLAD [1] 提取视觉特征确定共视关系。
  • 通过束调整(BA)和随机优化(Random Optimization)优化全局地图。
  • 最终精化(Final Refinement)减少浮动高斯基元,提高渲染质量。

实验

实验是在Intel Core i9-14900K处理器和NVIDIA GeForce A6000 GPU上进行的(难道是autoDL?)

数据集:Replica, TUMRGBD, ScanNet, and ScanNet++(S1(b20a261fdf), S2(8b5caf3398)) .

追踪精度实验:表1表2

渲染和重建实验:表1,图5和图4

几何一致性:图5

耗时实验:

消融实验就不看啦

初体验

TODO

以后跑一下代码

参考文献

2\] Lizhi Bai, Chunqi Tian, Jun Yang, Siyu Zhang, Masanori Suganuma, and Takayuki Okatani. Rp-slam: Real-time photorealistic slam with efficient 3d gaussian splatting, 2024. 2, 3 \[3\] Lin Chen, Boni Hu, Jvboxi Wang, Shuhui Bu, Guangming Wang, Pengcheng Han, and Jian Chen. G2-mapping: General gaussian mapping for monocular, rgb-d, and lidarinertial-visual systems. IEEE Transactions on Automation Science and Engineering, pages 1--1, 2025. 2, 3 \[7\] Christian Homeyer, Leon Begiristain, and Christoph Schn ̈orr. Droid-splat: Combining end-to-end slam with 3d gaussian splatting. ArXiv, abs/2411.17660, 2024. 2, 3 \[8\] Binbin Huang, Zehao Yu, Anpei Chen, Andreas Geiger, and Shenghua Gao. 2d gaussian splatting for geometrically accurate radiance fields. In SIGGRAPH 2024 Conference Papers. Association for Computing Machinery, 2024. 1, 2, 3, 4, 6, 7, 8 \[9\] Huajian Huang, Longwei Li, Cheng Hui, and Sai-Kit Yeung. Photo-slam: Real-time simultaneous localization and photorealistic mapping for monocular, stereo, and rgb-d cameras. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, 2024. 2, 3 \[14\] Hidenobu Matsuki, Riku Murai, Paul H. J. Kelly, and Andrew J. Davison. Gaussian splatting slam. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, 2024. 1, 3, 6, 7, 2, 4 \[31\] Chi Yan, Delin Qu, Dan Xu, Bin Zhao, Zhigang Wang, Dong Wang, and Xuelong Li. Gs-slam: Dense visual slam with 3d gaussian splatting. In CVPR, 2024. 1, 3 \[39\] Wei Zhang, Qing Cheng, David Skuddis, Niclas Zeller, Daniel Cremers, and Norbert Haala. Hi-slam2: Geometryaware gaussian slam for fast monocular scene reconstruction, 2024. 2, 3

相关推荐
千宇宙航几秒前
闲庭信步使用图像验证平台加速FPGA的开发:第十二课——图像增强的FPGA实现
图像处理·计算机视觉·fpga开发
莱茶荼菜1 分钟前
虚拟项目[3D物体测量]
数码相机·计算机视觉·3d
lxsy9 分钟前
spring-ai-alibaba 1.0.0.2 学习(十六)——多模态
人工智能·学习·ai-alibaba
深度学习机器25 分钟前
OCRFlux-3B:开源 OCR + LLM 模型的新标杆,支持跨页表格合并
人工智能·机器学习·语言模型·ocr
AI人工智能+40 分钟前
应用药品经营许可证OCR,提升医药行业的信息化水平与监管效率
人工智能·ocr·文字识别
倔强青铜三1 小时前
苦练Python第16天:Python模块与import魔法
人工智能·python·面试
子时不睡1 小时前
【Datawhale AI 夏令营】 用AI做带货视频评论分析(一)
人工智能·深度学习·音视频
阿里云大数据AI技术1 小时前
云上AI推理平台全掌握 (3):服务接入与全球调度
大数据·人工智能·深度学习
京东零售技术1 小时前
告别传统拍摄,京点点 AI 试衣一键搞定爆款服装主图!
人工智能