GS-SLAM论文阅读--RGBDS-SLAM
前言
最近GS-SLAM领域的工作层出不穷,有很多不错的工作出现。接下来慢慢写一下相关博客。

文章目录
- 前言
- 1.背景介绍
- 2.关键内容
- 2.1 3D多层次金字塔高斯喷溅
- 2.2 紧密耦合多特征重构优化
- 2.3总体流程
- 3.文章贡献
- 4.个人思考
1.背景介绍
- 高保真重建是密集SLAM的关键。最近流行的方法利用3D高斯溅射(3D GS)技术进行场景的RGB、深度和语义重建。然而,这些方法忽略了场景不同部分的细节和一致性问题。
- 3D GS技术以其高效的优化框架和实时渲染能力,弥补了NeRF的不足。因此,出现了许多基于3D gis的SLAM解决方案。然而,这些方法通常只使用原始图像特征进行训练,这些特征不足以完全捕获某些场景部分的细粒度细节,导致重建一致性差。而且,这些方法在进行多特征重构时,没有通过合理的约束进行有效的特征融合和优化,无法相互增强。
- 大部分的相机跟踪模块都依赖于图像损失的梯度优化,因此系统的实时性相对较差PhotoSLAM引入ORB-SLAM3作为基本框架来改善这个问题。
2.关键内容
2.1 3D多层次金字塔高斯喷溅
与标准的三维高斯溅射过程不同,我们参考[26]-[30]中提出的渐进式训练过程,并引入三维多层次金字塔高斯溅射。在这个过程中,各种特征图像(RGB、深度、语义图像)的分辨率在训练过程中逐渐提高。这不仅减少了训练时间和难度,而且可以在不同分辨率下逐步重建不同特征的多尺度信息。

因此,我们为RGB、深度和语义图像构建了一个n层图像金字塔。
RGB金字塔图像的第i层可以表示为:

深度金字塔图像的第i层可以表示为:

语义金字塔图像的第i层可以表示为:

在训练过程中,为了保证对图像金字塔的每个视点和每一层进行全面的训练,在每次迭代中,我们随机选取一组多特征图像{ I r g t ( I ) I^{gt}_r (I) Irgt(I), I d g t ( I ) I^{gt}_d(I) Idgt(I), I s g t ( I ) I^{gt}_s (I) Isgt(I)}。我们提取该视点的所有相关信息(如姿态、图像大小等),并基于这些信息,参照渲染公式,对RGB、深度和语义图像执行渲染操作。通过我们提出的MLP-GS渐进式训练过程,我们可以最大程度地逐步还原场景细节。
2.2 紧密耦合多特征重构优化
在上一节中,我们对地图中的3D高斯基元执行MLP-GS操作,得到一组渲染图像{ I r r d ( I ) I^{rd}_r (I) Irrd(I), I d r d ( I ) I^{rd}_d(I) Idrd(I), I s r d ( I ) I^{rd}_s (I) Isrd(I)}。这是高斯喷溅的前向渲染过程。我们现在需要计算渲染图像和真实地面图像之间的损失,并执行反向传播来优化地图中的3D高斯原语。
参考上文中渲染图像和groundtruth图像的L1损耗和SSIM损耗的计算,我们对上一节获得的第I个金字塔视角的渲染图像{ I r g t ( I ) I^{gt}_r (I) Irgt(I), I d g t ( I ) I^{gt}_d(I) Idgt(I), I s g t ( I ) I^{gt}_s (I) Isgt(I)}进行类似的损耗计算:
对于RGB图像,我们考虑L1和SSIM损失:

对于深度图像,我们只考虑L1损耗:

对于语义图像,我们同样考虑L1和SSIM损失:

最后,我们将多个特征紧密耦合到一个重构优化框架中进行联合优化:

2.3总体流程

3.文章贡献
- 本文介绍了一种三维多层次金字塔高斯喷溅(MLP-GS)方法,该方法提取多层次图像金字塔进行高斯喷溅训练,恢复场景细节,并保证重建过程中的一致性。
- 设计了一种紧密耦合多特征重构优化(TCMF-RO)机制,在优化绘制过程中促进RGB、深度和语义图重构精度的相互提高。
4.个人思考
本文应该是在Photo-SLAM的基础上添加了语义信息。至于多层金字塔,我记得原始的Photo-SLAM代码应该也有,只不过本文金字塔层数更多。我个人的观点,觉得本文的创新点不是那么强,但是能实现语义的添加,也是很不错的工作。但是他的实验结果非常的好,在Replica代码上可以达到38.85。然后我看了实验相关部分,从下面的消融实验可以看出,其中提升最大的应该是加上深度损失后。

相关文章:
GS-SLAM论文阅读--RGBDS-SLAM
前言 最近GS-SLAM领域的工作层出不穷,有很多不错的工作出现。接下来慢慢写一下相关博客。 文章目录 前言1.背景介绍2.关键内容2.1 3D多层次金字塔高斯喷溅2.2 紧密耦合多特征重构优化2.3总体流程 3.文章贡献4.个人思考 1.背景介绍 高保真重建是密集SLAM的关键。最…...
条件编译->enable_if和 if constexpr使用区别
enable_if 和 if constexpr 是 C 中用于控制编译或运行时条件的重要工具,它们各有不同的用途和使用场景。以下是它们的主要区别: 1. enable_if std::enable_if 是一个类型特征,用于在编译时根据条件选择类型。常用于模板元编程,…...
介绍一下CSS中伪类和伪元素的概念
一、伪类(Pseudo - Classes) 1. 定义 伪类是添加到选择器的关键字,用于定义元素的特殊状态。这些状态不是由文档树中的结构或属性来表示,而是基于用户行为(如鼠标悬停)、元素状态(如被选中&am…...
【橘子ES】熔断器Circuit breaker
一、相关概念 我们在日常的开发中,关于服务之间的熔断操作似乎很常见,当请求超过了我们服务所认为可以承受的一个上限阈值的时候,我们为了保护服务不会被进一步的高负载压崩溃,我们有时候会选择熔断请求,此时服务不再…...
6.4 CPU性能分析--Intel处理器跟踪技术
Intel处理器跟踪PT技术是记录程序执行过程的技术,它把记录信息编码报文存到高压缩率的二进制文件中。该二进制文件结合每条指令的时间戳重建执行流。PT技术覆盖度大,开销小,有关开销的信息详见,主要用于性能问题的事后分析和根因定…...
期权懂|如何用第三方平台开通期权?
期权小懂每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 如何用第三方平台开通期权? 如果不能满足常规的期权开户条件,可以考虑以下几种方法来尝试开户: 一、选择第三方平台: 通过网络搜…...
JS中const有没有变量提升
在JavaScript中,const 关键字用于声明一个只读的常量,其值在初始化后不能被重新赋值。关于变量提升(Hoisting),它是JavaScript中一个重要的概念,指的是无论变量或函数声明在何处,它们都会被“提…...
Axure RP全面介绍:功能、应用与中文替代方案
Axure RP是一款功能强大的原型设计工具,它被广泛应用于网页和移动应用的设计领域。Axure RP集成了设计、原型制作和文档管理,为产品管理人员、设计师和开发人员提供了一个综合的平台。让我们一步步了解Axure的基本功能、使用技巧以及中文支持平台——“在…...
WordPress用户首次登录强制修改密码
有些企业网站要求很高,比如用户首次登录强制要求修改密码,这里提供一段代码,用于实现强制修改密码供参考。 通过代码可以实现,用户正常注册或者管理员在后台添加用户时,会添加首次登录标记,用户首次登录后会…...
AI开源南京分享会回顾录
AI 开源南京分享会,已于2024年11月30日下午在国浩律师(南京)事务所5楼会议厅成功举办。此次活动由 KCC南京、PowerData、RISC-Verse 联合主办,国浩律师(南京)事务所协办。 活动以“开源视角的 AI 对话”为主…...
基于事件驱动的websocket简单实现
websocket的实现 什么是websocket? WebSocket 是一种网络通信协议,旨在为客户端和服务器之间提供全双工、实时的通信通道。它是在 HTML5 规范中引入的,可以让浏览器与服务器进行持久化连接,以便实现低延迟的数据交换。 WebSock…...
【leetcode100】反转链表
1、题目描述 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 2、初始思路 2.1 思路 # Definition for singly-linked list. # class ListNode: # …...
禅道Bug的一次迁移
一、场景 平时工作记录在公司禅道上的问题想备份一份到本地,但是又没有公司禅道的数据库信息,有时候出测试报告想批量调整数据方便截图很困难,同时也为了学习禅道数据流转过程,所以有了把缺陷保存到本地一份的想法。 实际上禅道支…...
c段和旁站讲解(附查询网址)
1. C段(C类子网段) C段就是一个IP地址的小范围。比如,假设你有一个家庭Wi-Fi网络,Wi-Fi会分配给你一组IP地址(每个设备一个IP地址)。如果你的网络分配的是类似 192.168.1.0 这样的IP地址,那么这…...
Linux编译Kernel时的文件zImage、文件dtb(dtbs)、核心模块分别是什么东西?
zImage文件的介绍 在编译Linux内核时,zImage 是一种内核映像文件,它是内核的压缩版本,通常用于引导嵌入式设备或其他资源有限的环境。 zImage 的具体含义 zImage 是 “Compressed Kernel Image” 的缩写。它是通过压缩原始的内核映像&…...
【深度学习】深刻理解“变形金刚”——Transformer
Transformer 是一种用于处理序列数据的深度学习模型架构,最初由 Vaswani 等人在 2017 年的论文《Attention is All You Need》中提出。它彻底改变了自然语言处理(NLP)领域,成为许多高级任务(如机器翻译、文本生成、问答…...
75_pandas.DataFrame 中查看和复制
75_pandas.DataFrame 中查看和复制 与pandas的DataFrame与NumPy数组ndarray类似,也有视图(view)和拷贝(copy)。 当使用loc[]或iloc[]等选择DataFrame的一部分以生成新的DataFrame时,与原对象共享内存的对…...
打电话玩手机识别-支持YOLO,COCO,VOC格式的标记,超高识别率可检测到手持打电话, 非接触式打电话,玩手机自拍等
打电话玩手机识别-支持YOLO,COCO,VOC格式的标记,超高识别率可检测到手持打电话, 非接触式打电话,玩手机自拍等1275个图片。 手持打电话: 非接触打电话 玩手机 数据集下载 yolov11:https://download.csdn…...
生产慎用之调试日志对空间矢量数据批量插入的性能影响-以MybatisPlus为例
目录 前言 一、一些缘由 1、性能分析 二、插入方式调整 1、批量插入的实现 2、MP的批量插入实现 3、日志的配置 三、默认处理方式 1、基础程序代码 2、执行情况 四、提升调试日志等级 1、在logback中进行设置 2、提升后的效果 五、总结 前言 在现代软件开发中,性能优…...
单片机:实现倒计时(附带源码)
使用单片机实现倒计时功能是一个常见的嵌入式应用,它能帮助你更好地理解如何进行时间控制和如何通过定时器实现精确的倒计时。通过该项目,你将学习如何使用单片机的定时器来进行时间计算,并通过LED或LCD显示倒计时的结果。 1. 项目概述 倒计…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...
从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...
elementUI点击浏览table所选行数据查看文档
项目场景: table按照要求特定的数据变成按钮可以点击 解决方案: <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...
FFmpeg avformat_open_input函数分析
函数内部的总体流程如下: avformat_open_input 精简后的代码如下: int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...
在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例
目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码:冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...
