GS-SLAM Dense Visual SLAM with 3D Gaussian Splatt 论文阅读

项目主页

2024 CVPR (highlight)
https://gs-slam.github.io/
在这里插入图片描述

摘要

本文提出了一种基于3D Gaussian Splatting方法的视觉同步定位与地图构建方法。
与最近采用神经隐式表达的SLAM方法相比,本文的方法利用实时可微分泼溅渲染管道,显著加速了地图优化和RGB-D渲染。

贡献

本文提出了一种自适应扩展策略,添加新的或删除噪声 3D 高斯,以便有效地重建新观察到的场景几何形状并改进先前观察到的区域。
此外,在姿态跟踪过程中,设计了一种有效的从粗到精的技术来选择可靠的3D高斯表示来优化相机姿态,从而减少运行时间和鲁棒估计。

简介

传统SLAM方法

  1. 同步定位与建图 (SLAM) 已成为机器人 [6]、虚拟现实 [10] 和增强现实 [25, 39] 等领域的关键技术。
  2. SLAM 的目标是构建未知环境的密集/稀疏地图,同时跟踪相机姿态。
  3. 传统的SLAM方法采用点/面元云[20,32,42,46],网格表示[26],体素散列[12,18,23]或体素网格[21]作为场景表示来构造稠密映射,并且已经在定位精度上取得了长足进步。

神经隐式表达方法

  1. 最近,神经辐射场 (NeRF) [19] 已被探索用于增强 SLAM 方法,并在生成低内存消耗的高质量、密集地图方面展现出优势 [35]。
  2. iMAP [35] 使用单个多层感知器(MLP)来表示整个场景,该场景通过体积渲染 RGB-D 图像和地面实况观测之间的损失进行全局更新。
  3. NICE-SLAM [55]利用分层神经隐式网格作为场景地图表示,以允许局部更新来重建大场景。
  4. ESLAM[11]、CoSLAM[41]和EN-SLAM[24]利用轴对齐特征平面和联合坐标参数编码来提高场景表示能力,实现高效、高质量的表面地图重建。

最近的工作[13,17,47]使用3D高斯表示和基于图块的泼溅技术在高分辨率图像渲染的效率方面表现出了巨大的优越性。它用于合成静态物体的新视角 RGB 图像,以实时速度实现 1080p 分辨率的最先进的视觉质量。受此启发,本文将3D高斯场景表示和实时可微喷射渲染管道的渲染优势扩展到密集RGB-D SLAM任务,并共同提升基于NeRF的密集SLAM的速度和精度。

相关工作

密集视觉SLAM
现有的实时密集视觉 SLAM 系统通常基于离散的手工特征或深度学习嵌入,并遵循[16]中的映射和跟踪架构。

  1. DTAM [22] 首先引入了密集 SLAM 系统,该系统使用光度一致性来跟踪手持相机并将场景表示为成本量。
  2. KinectFusion [44] 通过迭代最近点执行相机跟踪,并通过 TSDF-Fusion 更新场景。
  3. BAD-SLAM [29] 提出通过直接束调整 (BA) 技术联合优化关键帧姿势和 3D 场景几何。
  4. 相比之下,最近的工作将深度学习与传统几何框架相结合,以实现更准确、更鲁棒的相机跟踪和建图,例如 DROID-SLAM [37]、CodeSLAM [1]、SceneCode [54] 和 NodeSLAM [34],在该领域取得了重大进展,实现了更准确、更强大的相机跟踪和地图性能。

基于神经隐式辐射场的 SLAM

对于基于NeRF的SLAM,现有的方法可以分为三种主要类型:基于MLP的方法(MLP-based methods)、混合表示方法(Hybrid representation methods)和显式方法(Explicit methods)。

  1. 基于 MLP 的方法 iMAP [35] 提供了可扩展且内存高效的地图表示,但在较大场景中面临灾难性遗忘的挑战。
  2. 混合表示方法结合了隐式 MLP 和结构特征的优点,显着增强了场景的可扩展性和精度。例如,NICE-SLAM [55]将MLP与多分辨率体素网格集成,从而实现大场景重建,Vox-Fusion [48]采用八叉树扩展来实现动态地图可扩展性,而ESLAM [11]和Point-SLAM [27]则利用三叉树扩展分别使用平面和神经点云来提高建图能力。
  3. 至于[38]中提出的显式方法,它将地图特征直接存储在体素中,没有任何MLP,从而实现更快的优化。 GS-SLAM 不是用隐式特征来表示地图,而是利用 3D 高斯表示,使用基于泼溅的光栅化有效地渲染图像,并通过反向传播直接优化参数。

3D高斯表示
最近的几种方法使用 3D 高斯进行形状重建,例如 Fuzzy Metaballs [14, 15]、VoGE [40]、3DGS [13]。

3DGS [13] 在高质量实时新视图合成方面表现出巨大的优势。本文工作用 3D 高斯表示场景,并开发了 NeRFstyle 快速渲染算法来支持各向异性泼溅,实现了 SOTA 视觉质量和快速高分辨率渲染性能。除了渲染优势之外,高斯泼溅还拥有明确的几何场景结构和外观,这得益于场景表示的精确建模[50]。这项有前景的技术已迅速应用于多个领域,包括 3D 生成 [3,36,51]、动态场景建模 [17][47][49] 和逼真的可驾驶化身 [56]。然而,由于主要管道[13]的固有局限性,即初始化点云或相机位姿输入的先决条件[28],目前还没有使用3D高斯模型解决相机位姿估计或实时映射的研究。相比之下,本文推导了高斯表示中姿态估计的解析导数方程,并实现了高效的 CUDA 优化。

方法

3D 高斯场景表示

与3DGS论文中的方法一样,将场景建模为一组带有不透明度和球谐函数的3D 高斯函数。
每个 3D 高斯场景表示 G i G_i Gi 由位置 X i ∈ R 3 x 3 X_i \in R^{3x3} XiR3x3 协方差矩阵 ∑ i ∈ R 3 × 3 \sum_i \in R^{3×3} iR3×3、不透明度 Λ i ∈ R Λ_i \in R ΛiR 和每个颜色通道的 1 度球谐函数 (Y ) 定义, Y i ∈ R 12 Y_i \in R^{12} YiR12 总共有 12 个系数。

然后为了便于优化,将3D高斯协方差表达为一个尺度向量和旋转矩阵的公式。

这里的一系列操作和3DGS论文的处理是一样的。

自适应的3D高斯扩展映射

为了实现稳定的映射,只在给定的关键帧上进行优化和更新。
对于给定的关键帧和对应的估计姿势,首先应用自适应扩展策略从整个场景中添加3D高斯或删除噪声3D高斯,然后用现有的3D高斯渲染一张分辨率为 H ∗ W H*W HW的RGB-D图像,通过最小化几何深度 L d L_d Ld到传感器观察深度D和光度颜色 L c L_c Lc到传感器观察颜色的损失。
自适应的3D 高斯扩展策略
初始化:用RGB-D图像序列第一帧来初始化高斯场景。均匀采样图像分辨率一半的像素,将其分别反向映射到3D空间中对应的点。每一个点除了有位置信息之外还有初始化的3D高斯函数的参数。
剩下的一半像素用于进行高斯自适应密度控制。

添加高斯点步骤:
在每个关键帧,使用历史 3D 高斯添加第一个渲染的 RGB-D 图像,并计算每个像素的累积不透明度。如果这个不透明度低于一定阈值或者,这个像素的渲染深度和观察深度差距大于一定阈值,认为这个像素是不可靠像素,标记为" x u n x^{un} xun"。这些不可靠像素大多用来捕获新的观察区域。将这些不可靠像素反投影到3D空间的对应点 P u n P^{un} Pun,并初始化这个点的高斯函数参数。

删除高斯点步骤:
用前面设计的损失函数优化的高斯场景会有很多多余的高斯点。检查当前相机视椎体中所有可见3D高斯,降低位置不在场景表面附近的3D高斯的不透明度。
具体是这样操作的,对于每个可见的 3D 高斯,从相机原点 o 及其位置 X i = ( x i , y i , z i ) X_i = (x_i, y_i, z_i) Xi=(xi,yi,zi) 绘制一条射线 r ( t ) r(t) r(t),即 r ( t ) = o + t ( X i − o ) r(t) = o + t(X_i − o) r(t)=o+t(Xio)。然后,可以找到该射线与图像平面相交的坐标为 (u, v) 的像素以及相应的观测深度 D。相当于计算一个渲染深度和观测深度的差值,根据这个差值,计算对应高斯点的透明度。

跟踪和捆绑调整

首先采用常见的简单的恒定速度假设来初始化新的姿势。该假设基于倒数第二个姿势和最后一个姿势之间的相对变换来变换最后一个已知姿势。然后,通过最小化渲染颜色损失来优化准确的相机位姿 P。
可微的姿态估计
这里推导了相机位姿的解析式,简化了结果,便于进行对相机位姿进行优化。
由粗到细的相机追踪
不能用所有图像像素对相机姿势进行优化,因为图像中可能存在伪影(我理解是像素的颜色或者深度不准确)。本文首先用图像规律性仅渲染系数像素集并优化跟踪损失获得粗略的相机姿态,这样能减轻细节伪影的影响。然后用粗略的相机姿态和深度观察来选择可靠的3D高斯,通过进一步优化新渲染像素上的跟踪损失来细化粗略的相机姿态。
捆绑调整
在捆绑调整(BA)阶段,联合优化相机位姿 P 和 3D 高斯场景表示 S。本文从关键帧数据库中随机选择K个关键帧进行优化,使用与映射部分类似的损失函数。为了姿势优化稳定性,仅在迭代的前半部分优化场景表示 S。在迭代的另一半中,同时优化地图和姿势。然后,通过最小化渲染颜色损失来优化准确的相机位姿P。
在这里插入图片描述

实验部分

数据集
用得是Replica和TUM-RGBD
基线
将本文的方法与现有的基于 SOTA NeRF 的密集视觉 SLAM:NICE-SLAM [55]、VoxFusion [48]、CoSLAM [41]、ESLAM [11] 和 PointSLAM [27] 进行比较。
CoSLAM [41]和ESLAM [11]的渲染性能是根据[27]文章中具有相同配置的开源代码进行的。
指标
网格重建:
2D Depth L1
Precision 精确度
Recall 召回率
F-score F分数以 1 厘米为阈值来测量场景几何形状。
对于定位:
absolute trajectory (ATE, cm) error [33] 绝对轨迹误差
对于渲染性能:
peak signal-to-noise ratio (PSNR) 峰值信噪比
SSIM 结构衡量指标
LPIPS 可学习感知图像块相似度
实验结果和细节
参考论文即可,不再赘述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/902085.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一天工作量压缩成半天!5个ChatGPT高效工作法则!

在信息爆炸的时代,高效的生活方式成为了许多人的追求。如何利用科技手段提升效率,成为了一个热门话题。ChatGPT,作为一款强大的语言模型,为我们提供了全新的解决方案。本文将深入探讨如何利用 ChatGPT 改变你的生活,助…

【SSM详细教程】-13-SpringMVC详解

精品专题: 01.《C语言从不挂科到高绩点》课程详细笔记 https://blog.csdn.net/yueyehuguang/category_12753294.html?spm1001.2014.3001.5482 02. 《SpringBoot详细教程》课程详细笔记 https://blog.csdn.net/yueyehuguang/category_12789841.html?spm1001.20…

SQL实战训练之,力扣:1532最近的三笔订单

目录 一、力扣原题链接 二、题目描述 三、建表语句 四、题目分析 五、SQL解答 六、最终答案 七、验证 八、知识点 一、力扣原题链接 1532. 最近的三笔订单 二、题目描述 客户表:Customers ------------------------ | Column Name | Type | --------…

Redis进阶:Spring框架中利用Redis实现对象的序列化存储

前言 由于Redis只能提供基于字符串型的操作,而Java中使用的却以类对象为主,所以需要Redis存储的字符串和Java对象相互转换。如果我们自己编写这些规则,工作量是比较大的,因此本文介绍如何使用Spring框架快速实现Java数据类型在Red…

Flask-SocketIO 简单示例

用于服务端和客户端通信,服务端主动给客户端发送消息 前提: 确保安装了socket库: pip install flask-socketio python-socketio服务端代码 from flask import Flask from flask_socketio import SocketIO import threading import timeap…

计算机网络:网络层 —— IPv4 地址的应用规划

文章目录 IPv4地址的应用规划定长的子网掩码变长的子网掩码 IPv4地址的应用规划 IPv4地址的应用规划是指将给定的 IPv4地址块 (或分类网络)划分成若干个更小的地址块(或子网),并将这些地址块(或子网)分配给互联网中的不同网络,进而可以给各网络中的主机…

2023IKCEST第五届“一带一路”国际大数据竞赛--社交网络中多模态虚假 媒体内容核查top11

比赛链接:https://aistudio.baidu.com/competition/detail/1030/0/introduction PPT链接:https://www.ikcest.org/bigdata2024/zlxz/list/page.html 赛题 社交网络中多模态虚假媒体内容核查 背景 随着新媒体时代信息媒介的多元化发展,各种内容…

Handler、Looper、message进阶知识

Android Handler、Looper、Message的进阶知识 在Android开发中,Handler、Looper和Message机制是多线程通信的核心。为了深入理解并优化它们的使用,尤其是在高并发和UI性能优化中,可以利用一些高级特性。 1. Handler的高阶知识 Handler在基本…

基于SpringBoot的“心灵治愈交流平台”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“心灵治愈交流平台”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能界面图 登录、用户注册界面图 心灵专…

从“摸黑”到“透视”:AORO A23热成像防爆手机如何改变工业检测?

在工业检测领域,传统的检测手段常因效率低下、精度不足和潜在的安全风险而受到诟病。随着科技的不断进步,一种新兴的检测技术——红外热成像技术,正逐渐在该领域崭露头角。近期,小编对一款集成红外热成像技术的AORO A23防爆手机进…

FineReport 分栏报表

将报表中的数据根据所需要的展示的样式将数据进行分栏展示列分栏 报表中数据是横向扩展的,超过一页的数据会显示在下一页,而每页下面会有很大的一片空白区域,不美观且浪费纸张。希望在一页中第一行扩展满后自动到下一行继续扩展 1、新建数据集 SELECT * FROM 公司股票2、内…

C++游戏开发中的多线程处理是否真的能够显著提高游戏性能?如果多个线程同时访问同一资源,会发生什么?如何避免数据竞争?|多线程|游戏开发|性能优化

目录 1. 多线程处理的基本概念 1.1 多线程的定义 1.2 线程的创建与管理 2. 多线程在游戏开发中的应用 2.1 渲染与物理计算 3. 多线程处理的性能提升 3.1 性能评估 3.2 任务分配策略 4. 多线程中的数据竞争 4.1 数据竞争的定义 4.2 多线程访问同一资源的后果 4.3 避…

交换机:端口安全与访问控制指南

为了实现端口安全和访问控制,交换机通常通过以下几种机制和配置来保护网络,防止未经授权的访问和恶意攻击。 01-端口安全 定义及功能 端口安全功能允许管理员限制每个交换机端口可以学习的MAC地址数量。 通过绑定特定的MAC地址到交换机的某一端口上&a…

微信小程序的日期区间选择组件的封装和使用

组件化开发是一种将大型软件系统分解为更小、更易于管理和复用的独立模块或组件的方法。这种方法在现代软件开发中越来越受到重视&#xff0c;尤其是在前端开发领域。微信小程序的日期区间选择组件的使用 wxml 代码 <view><view bind:tap"chooseData">…

【K8S系列】Kubernetes Pod节点CrashLoopBackOff 状态及解决方案详解【已解决】

在 Kubernetes 中&#xff0c;Pod 的状态为 CrashLoopBackOff 表示某个容器在启动后崩溃&#xff0c;Kubernetes 尝试重启该容器&#xff0c;但由于持续崩溃&#xff0c;重启的间隔时间逐渐增加。下面将详细介绍 CrashLoopBackOff 状态的原因、解决方案及相关命令的输出解释。 …

水轮发电机油压自动化控制系统解决方案介绍

在现代水电工程中&#xff0c;水轮机组油压自动化控制系统&#xff0c;不仅直接关系到水轮发电机组的安全稳定运行&#xff0c;还影响着整个水电站的生产效率和经济效益。 一、系统概述 国科JSF油压自动控制系统&#xff0c;适用于水轮发电机组调速器油压及主阀&#xff08;蝶…

论文笔记(五十一)Challenges for Monocular 6-D Object Pose Estimation in Robotics

Challenges for Monocular 6-D Object Pose Estimation in Robotics 文章概括摘要I. 介绍II. 正在进行的研究和常见数据集A. 数据集B. 正在进行的研究问题 III. 未来挑战A. 物体本体B. 可变形和关节物体C. 场景级一致性D. 基准现实性E. 环境影响F. 通用物体操控 IV. 结论 Estim…

HeterGCL 论文写作分析

HeterGCL 论文写作分析 这篇文章&#xff0c;由于理论证明较少&#xff0c;因此写作风格了polygcl是两种风格的。polygcl偏向理论的写作风格&#xff0c;而hetergcl就是实践派的风格 首先看标题&#xff0c;其的重点是Graph contrastive learning Framework。其重点是framewo…

C语言初阶:十.结构体基础

♥感谢您阅读本篇文章&#xff0c;文章内容为个人对所学内容的整理总结&#xff0c;欢迎大佬在评论区指点一二。♥ ♥个人主页&#xff1a;折枝寄北-CSDN博客折枝寄北擅长C语言初阶,等方面的知识,折枝寄北关注python,c,java,qt,c语言领域.https://blog.csdn.net/2303_80170533?…

QT仿QQ聊天项目,第一节,创建项目并布置编辑登录界面

目录 一&#xff0c;创建项目 二&#xff0c;编辑登录界面 1&#xff0c;登录界面整体构造 2&#xff0c;登录界面的宽高 3&#xff0c;登录界面使用到的控件 4&#xff0c;登录界面中的控件所在的位置和大小 &#xff08;1&#xff09;qq图标label位置和大小 &#xff0…