GS-SLAM论文阅读笔记-CG-SLAM

news2024/10/11 6:29:35

前言

这是一篇不是最新的工作,我之前没有阅读,但是我前几天阅读GLC-SLAM的时候,发现它的一部分内容参考了CG-SLAM,并且CG-SLAM最近被ECCV2024接收,说明这是一片值得参考的好文章,接下来就阅读一下吧!
在这里插入图片描述


文章目录

  • 前言
  • 1.背景介绍
  • 2.关键内容
    • 2.1快速栅格化渲染
    • 2.2 不确定性模型
    • 2.3 建图
    • 2.4 跟踪
    • 2.5总体流程
  • 3.文章贡献
  • 4.个人思考


1.背景介绍

  1. 现有的基于nerf的方法遵循差分体渲染管道,这是计算密集型和耗时的。因此,他们只能通过采样有限数量的相机光线来进行跟踪和建图,而忽略了图像中的自然结构信息。
  2. 在SLAM设置中合理地加入三维高斯场并非易事。作为一种真实感视图合成技术,三维高斯场由于具有较强的各向异性和缺乏明确的多视图约束,容易对输入图像进行过拟合。
  3. 一方面,三维高斯溅射不能保证三维曲面的精确建模;另一方面,由于高斯可能与环境表面不对齐,这将导致较差的外推能力,进一步降低相机跟踪。此外,建图过程中高斯基元的增加将不可避免地降低跟踪效率。

2.关键内容

2.1快速栅格化渲染

快速高斯飞溅光栅化实现了高效的逐像素并行渲染,并且是完全可微的,这提供了一个有用的gpu加速框架。对于输入帧,光栅化器可以按照从近到远的深度顺序对所有可见的高斯原语进行预排序。在显色性方面,高斯溅射光栅器采用α-blending解决方案,通过遍历上述深度队列,在给定像素上累积亮度c和不透明度值σ,如下所示:
在这里插入图片描述
其中,I是渲染颜色, T i T_i Ti是累积透过率, α i α_i αi是贡献给像素的不透明度, c i c_i ci是根据其SH系数计算的高斯原语的颜色。N是一个像素泼溅过程中涉及的高斯基元的数目。

在深度渲染方面,考虑到为几何一致性而设计的损失项,我们的光栅化器不仅提供α-混合深度 D a l p h a D_{alpha} Dalpha,还提供中位数深度 D m e d i a n D_{median} Dmedian:
在这里插入图片描述其中 d i d_i di是高斯原语的深度。对于像素,在其溅射过程中,我们将累积透过率T首次低于0.5的高斯作为“中值高斯”。其深度记为中位数。 T m e d i a n T_{median} Tmedian是中值高斯处的累积透过率。
在这里插入图片描述
代码定义如下:

			if (T > 0.5f && test_T < 0.5)
			{
			    float dep_median = depths[collected_id[j]];
				D_median = dep_median;
			}

此外,同样需要累积的不透明度值O来区分未观察到的区域,以产生高斯:
在这里插入图片描述

2.2 不确定性模型

不确定性在三维高斯场中对增加信息高斯原语的比例有积极的作用,这对SLAM系统的鲁棒性和简明性至关重要。因此,我们从渲染图像和高斯原语两个角度提出了适合RGB-D观测的数学不确定性模型。

不确定性的地图:α-blending渲染深度本质上是高斯椭球沿像素射线采样计算的期望值。在合理的正态分布假设下,我们认为不确定性地图与其方差 高度相关。我们可以像Eq.(10)那样从三维高斯场渲染一个不确定性值。
在这里插入图片描述
在代码中是这样写的:

atomicAdd(&(gau_uncertainty[collected_id[j]]), ((depths[collected_id[j]]-gt_px_depth)) * (depths[collected_id[j]]-gt_px_depth) * alpha * T);

其中D表示相机传感器的深度观测值,也就是深度先验。为了减轻优化过程中高斯基元位置的剧烈变化,我们提出了基于H × W不确定性地图的几何方差损失项(Eq.(11)),以迫使它们接近地面真值深度。
在这里插入图片描述
高斯原语的不确定性:从几何一致性的角度出发,我们设计了一个损失项 L a l i g n L_{align} Lalign,如Eq.(12)所示,用于对齐α-混合深度和中值深度。
在这里插入图片描述
像素的α-混合深度由权值最大的高斯基元决定。我们称这个像素为最大权值高斯基元的“支配像素”。我们的对齐损失迫使 D a l p h a D_{alpha} Dalpha D m e d i a n D_{median} Dmedian中值相似,这使得这个最大权值高斯原语总是出现在中值处。
在这里插入图片描述
因此,如Eq.(13)所示,第i个高斯原语的不确定性 v i v_i vi由来自于关键帧窗口内的所有支配像素F = { f 1 , f 2 , … f k f_1, f_2,…f_k f1,f2fk}的深度与深度观测值之差决定。下图进一步可视化了高斯原语在多个视点中从其主导像素接收深度差值。

在这里插入图片描述
在一个关键帧 f k 中, α i k , p f_k中, α^{k, p}_i fk中,αik,p T i k , p T^{k,p}_i Tik,p表示像素p上第i个高斯基元的不透明度和透射率。 D p k D^k_p Dpk表示 f k f_k fk中像素p上的深度观测值。 d i k d^k_i dik是第i个高斯基元在 f k f_k fk处的深度值。

{1,…, Mk}是第i个高斯在不同关键帧中的支配像素数。利用不确定性建模,我们可以定期检测和去除不确定度超过阈值τ=0.025的不可靠高斯原语。具体而言,在建图优化过程中, v i > τ v_i > τ vi>τ的原语将被人工降低到低不透明度水平。这些低不透明度的高斯原语可以再次优化,去除真正不可逆的原语,这是一种适应性更强、更合理的策略。

2.3 建图

我们使用各种损失函数来更新高斯性质,目的是得到一个一致和稳定的高斯场。除了原始3D高斯泼溅中的颜色和SSIM损失外,NeRF-SLAM先前的工作经验表明几何损失是必要的一部分。为了克服各向异性干扰(箭头形高斯基元),我们在映射过程中添加了软尺度正则化损失。请注意,我们的系统以稍高的代价执行初始化,即更多的优化操作。

在这里插入图片描述
其中 I n I_n In D n D_n Dn表示颜色和深度,λ =1.0是控制各向异性水平的超参数,G表示当前视图下所有可见的高斯分布。
在这里插入图片描述
这些针对SLAM任务定制的损失函数可以加快建图的收敛速度,为后续跟踪奠定坚实的基础。

高斯的管理:在初始化中,我们基于第一帧的深度观测,将高斯基元密集投影到三维空间中。在随后的建图中,我们设置了一个经验阈值ψ = 0.5来提取未观察到的或未构建的像素,其中 O < ψ。然后,我们利用这些像素的颜色和深度信息来生成新的高斯基元。此外,我们还继承了高斯致密化的原始分裂、克隆和去除策略。

2.4 跟踪

在我们的系统中,我们首次提出了三维高斯溅射框架中导数位姿的综合数学理论,并通过经验发现李代数表示更有利于相机跟踪,特别是在高斯场中旋转。摄像机姿态优化,即旋转平移{so(3)|T},主要包括连续跟踪和滑动BA两部分。

连续跟踪:给定固定场景表示,相机姿态最初通过恒定速度假设猜测,其中最后一个姿态由最后一个相对变换变换,然后我们使用相似的光度和几何损失λ = {λ1, λ2}加权来改进这个粗略姿态。

在这里插入图片描述
滑动BA:累积误差是SLAM和基于高斯的SLAM系统的典型问题。为了解决这个问题,我们建立了一个包含k个共可见关键帧的滑动窗口F,并在该窗口中共同优化相机外观和场景表示。考虑到效率,我们使用预训练的NetVLAD模型将关键帧编码到描述符池中,通过余弦相似度分数来确定共可见性,而不是之前工作中的视锥重叠方法。除了来自NetVLAD[2]的关键帧外,考虑到时间关联,我们还在滑动窗口中添加了当前帧和最近的关键帧。我们仍然在滑动束调整中使用 L m a p p i n g L_{mapping} Lmapping,其中Ψ是所有可优化的高斯属性的集合。
在这里插入图片描述

2.5总体流程

在由RGB-D序列构建的3D高斯场中,我们可以通过gpu加速光栅器渲染 颜色,深度,不透明度和不确定性地图。此外,我们为每个高斯原语附加一个新的不确定性属性来过滤信息原语。在建图过程中,我们利用多个渲染结果来设计有效的损失函数,以获得一致且稳定的高斯场。随后,我们采用外观和几何线索来执行准确有效的跟踪。
在这里插入图片描述

3.文章贡献

  1. 首先对EWA(椭圆加权平均)溅射过程中相机姿态的导数进行了全面的数学分析,并为SLAM任务开发了一个专门的CUDA框架,该框架有效地解耦了跟踪和建图组件。
  2. 为了减少固有的过拟合问题,我们提出了一个尺度正则化项,适当地鼓励高斯椭球近似高斯球体,以减少各向异性,并在跟踪精度和渲染真实感之间实现良好的权衡。
  3. 提出了一种新的深度不确定性模型,帮助我们的系统在优化过程中选择更有价值的高斯原语,从而提高跟踪效率和精度。

4.个人思考

  1. 本文主要的工作量在于开发了一个适用于SLAM任务的CUDA框架,做的工作也是非常的完善。首先通过增加CUDA的输出,额外获取@深度,中值深度,不透明度权值等信息,之后利用这些信息进行损失函数的设计与约束,从而更好实现建图。
  2. 此外,本文提出的深度不确定性模型想法很新颖,从而对齐中值深度和@深度,从而更好优化高斯。
  3. 作者在文章末尾提到该工作的限制:相当大的内存使用是基于高斯的系统的一个限制。我们期望在SLAM任务中可以采用更紧凑的高斯场。此外,基于高斯的方法对未观测区域的预测能力较弱。此外,我们的系统不能处理环境中的动态对象。我们相信这是未来工作的一个非常有趣的方向。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库——表格之间的关系(表格之间的连接和处理)

数据库表格之间经常存在各种关系&#xff1a; 一对一、一对多、多对多 1.一对一 —— 丈夫表&#xff0c;妻子表为例 连接方式一&#xff1a;合并为一张表 这种方式对于一对一来说最优 连接方式二&#xff1a;在其中一张表内加入一个外键&#xff0c;连接另一张表 连…

Windows搭建Java开发环境(Building a Java development environment on Windows)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

开发日志:IIS安全配置

为了解决IIS文件路径泄漏问题&#xff0c;可以采取以下措施&#xff1a; 一. 详细操作 1. CMD关闭NTFS 8.3文件格式的支持 命令行&#xff1a;fsutil 8dot3name set 1 2. 修改注册表禁用短文件名功能 CMD输入regedit回车&#xff0c;在注册表中找到HKEY_LOCAL_MACHINE\SYSTEM\C…

003 Springboot操作RabbitMQ

Springboot整合RabbitMQ 文章目录 Springboot整合RabbitMQ1.pom依赖2.yml配置3.配置队列、交换机方式一&#xff1a;直接通过配置类配置bean方式二&#xff1a;消息监听通过注解配置 4.编写消息监听发送测试5.其他类型交换机配置1.FanoutExchange2.TopicExchange3.HeadersExcha…

6. 继承、重写、super、final

文章目录 一、重新定义需求二、继承1. 继续分析2. 概念3. 代码① 父类② 子类③ 测试结果 4. 饿狼传说之多层继承① 概念② 代码 5. 多继承 三、方法的重写1. 情境2. 代码① 吃什么② 怎么叫(Override重写) 3. 小结 四、super1. 啃老2. 啃老啃到底 五、final1. 用途及特征2. 举…

【Python爬虫系列】_025.关于互斥锁(Lock)

课 程 推 荐我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)教程合集 👈👈

Vue使用@别名替换后端ip地址

1. 安装 types/node types/node 包允许您在TypeScript项目中使用Node.js的核心模块和API&#xff0c;并提供了对它们的类型检查和智能提示的支持。 npm install types/node --save-dev 比如安装之后&#xff0c;就可以导入nodejs的 path模块&#xff0c;在下面代码 import path…

【SEO】什么是SEO?

什么是SEO&#xff08;搜索引擎优化&#xff09;&#xff1f;为什么SEO对于⼀个⽹站⾄关重要&#xff1f; SEO 全称是搜索引擎优化&#xff08;Search Engine Optimization&#xff09; 因为我们目前开发的网址&#xff0c;需要人看到&#xff0c;除了通过宣传营销的方式展现…

C++ | Leetcode C++题解之第468题验证IP地址

题目&#xff1a; 题解&#xff1a; class Solution { public:string validIPAddress(string queryIP) {if (queryIP.find(.) ! string::npos) {// IPv4int last -1;for (int i 0; i < 4; i) {int cur (i 3 ? queryIP.size() : queryIP.find(., last 1));if (cur st…

ctf.bugku-eval

题目来源&#xff1a;eval - Bugku CTF 访问页面&#xff0c; 代码解释 <?phpinclude "flag.php"; //包含"flag.php"文件$a $_REQUEST[hello]; //从请求参数hello中获取值并赋给变量$a。 eval( "var_dump($a);"); //…

SQLAlchemy模型定义:映射数据库表到Python类

SQLAlchemy是一个流行的Python SQL工具包和对象关系映射&#xff08;ORM&#xff09;框架&#xff0c;它提供了一个高层的ORM以及底层的SQL表达式语言。使用SQLAlchemy&#xff0c;开发者可以以面向对象的方式来操作数据库&#xff0c;而不必编写复杂的SQL语句。本文将详细介绍…

【spring ai】java 实现RAG检索增强,超快速入门

rag 需求产生的背景介绍&#xff1a; 在使用大模型时&#xff0c;一个常见的问题是模型会产生幻觉&#xff08;即生成的内容与事实不符&#xff09;&#xff0c;同时由于缺乏企业内部数据的支持&#xff0c;导致其回答往往不够精准和具体&#xff0c;偏向于泛泛而谈。这些问题…

如何利用wsl-Ubuntu里conda用来给Windows的PyCharm开发

前提&#xff1a;咱们在wsl-Ubuntu上&#xff0c;有conda的虚拟环境 咱们直接打开PyCharm,打开Settings 更换Python Interpreter即可 当然一开始可能没有下面的选项&#xff0c;需要我们点击右边的Add Interpreter 这里选择wsl 点击next 将这两步进行修改 可以看出来&#xff0…

计算机视觉之OpenCV vs YOLO

好多开发者希望搞明白OpenCV 和YOLO区别&#xff0c;实际上&#xff0c;二者在计算机视觉领域都有广泛应用&#xff0c;但它们有很大的不同。 一、OpenCV 概述 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习软件库。它…

继承--C++

文章目录 一、继承的概念及定义1、继承的概念 二、继承定义1、定义格式2、继承基类成员访问方式的变化3、继承类模板 三、基类和派生类间的转换1、继承中的作用域2、隐藏规则&#xff1a; 四、派生类的默认成员函数1、4个常见默认成员函数2、实现⼀个不能被继承的类 五、继承与…

(八)Proteus仿真STM32单片机GPIO驱动数码管

1&#xff0c;参考上篇&#xff0c;将LED点阵屏更换成数码管如下图 2&#xff0c;修改驱动函数&#xff0c;数组seg[14]前10个是0-9数字的编码&#xff0c;后四个是空格&#xff0c;点&#xff0c;横线&#xff0c;下划线 char seg_decode(char num)//数字解码 {const char se…

【华为欧拉】国产OpenEuler服务器系统安装以及图形界面

openEuler下载 | openEuler ISO镜像 | openEuler社区官网 下载安装iso 本次选择4G的社区版本 安装&#xff0c;复制到光盘&#xff0c;光盘引导安装。虚拟机安装&#xff0c;准备好iso文件引用&#xff0c;指定好安装源&#xff0c;安装界面和centOS基本一样。选择最小安装就…

JVM系列(二) -类的加载过程介绍

一、背景介绍 我们知道 Java 是先通过编译器将.java类文件转成.class字节码文件&#xff0c;然后再通过虚拟机将.class字节码文件加载到内存中来实现应用程序的运行。 那么虚拟机是什么时候加载class文件&#xff1f;如何加载class文件&#xff1f;class文件进入到虚拟机后发…

彻底理解TypeScript函数语法

目录 参数类型基本声明默认参数剩余参数可选只读匿名函数回调函数 返回值类型函数类型表达式调用签名构造签名 函数的重载this可推导的编译选项this类型内置工具 函数是JavaScript非常重要的组成部分&#xff0c;TypeScript中也是如此&#xff0c;TypeScript 提供了强大的类型系…

网关在不同行业自动化生产线的应用

网关在不同行业自动化生产线的应用&#xff0c;展示了其作为信息与物理世界交汇点的广泛影响力&#xff0c;尤其在推动行业智能化、自动化方面发挥了不可估量的作用。以下是网关技术在污水处理、智慧农业、智慧工厂、电力改造及自动化控制等领域的深入应用剖析。 1. 污水处理 …