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

前言

这是一篇不是最新的工作,我之前没有阅读,但是我前几天阅读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.mzph.cn/pingmian/55819.shtml

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

相关文章

QUUID 使用详解

UUID 通常由 128 位&#xff08;16 字节&#xff09;组成&#xff0c;通常表示为 32 个十六进制数字&#xff0c;分为五个部分&#xff0c;格式如下&#xff1a; QUuid 是 Qt 框架中用于生成和处理 UUID&#xff08;通用唯一标识符&#xff09;的类。UUID 是一种标准的标识符格…

sklearn机器学习实战——随机森林回归与特征重要性分析全过程(附完整代码和结果图)

sklearn机器学习实战——随机森林回归与特征重要性分析全过程&#xff08;附完整代码和结果图&#xff09; 关于作者 作者&#xff1a;小白熊 作者简介&#xff1a;精通python、matlab、c#语言&#xff0c;擅长机器学习&#xff0c;深度学习&#xff0c;机器视觉&#xff0c;目…

Oracle 12201非PDBS模式单机部署(静默安装)

一、创建Oracle数据库的用户 groupadd oinstall groupadd dba groupadd asmadmin groupadd asmdba useradd -g oinstall -G dba,asmdba oracle -d /home/oracle passwd oracle二、配置Linux 服务器参数 cat /home/oracle/.bash_profile export ORACLE_HOSTNAMEH_orcle01 expo…

知识图谱入门——7:阶段案例:使用 Protégé、Jupyter Notebook 中的 spaCy 和 Neo4j Desktop 搭建知识图谱

在 Windows 环境中结合使用 Protg、Jupyter Notebook 中的 spaCy 和 Neo4j Desktop&#xff0c;可以高效地实现从自然语言处理&#xff08;NLP&#xff09;到知识图谱构建的全过程。本案例将详细论述环境配置、步骤实现以及一些扩展和不足之处。 源文件已上传我的资源区。 文章…

【VScode】如何使用详细步骤【笔记】、配置 C / C ++【笔记】

2024 - 10 - 10 - 笔记 - 24 作者(Author)&#xff1a;郑龙浩(仟濹) 该笔记写于 2024-07-02 摘抄到博客上的时间是 2024-10-10 VScode配置 C / C 笔记 我是看了下方链接的视频后为了方便后期复习做的笔记: B站某UP主的视频如下&#xff1a; VScode配置C/C开发环境&#xff…

DevExpress WPF中文教程:如何解决数据更新的常见问题?

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

使用docsify搭建github pages页面

文章目录 初始化相关配置index.htmlreadme.md_sidebar.md docsify 可以快速帮你生成文档网站。不同于 GitBook、Hexo 的地方是它不会生成静态的 .html 文件&#xff0c; 所有转换工作都是在运行时。如果你想要开始使用它&#xff0c;只需要创建一个 index.html 就可以开始编写文…

机器学习与神经网络:新时代的科学革命与物理学的融合

方向一&#xff1a;机器学习与神经网络的发展前景 引言 在21世纪的科技浪潮中&#xff0c;机器学习与神经网络无疑是最为耀眼的明星之一。它们不仅在学术界引发了广泛的研究热潮&#xff0c;更在商业、医疗、金融等多个领域展现出了巨大的应用潜力。2024年诺贝尔物理学奖的颁…

VMware桥接模式无法连接网络

windows下打开控制面板&#xff0c;找到WLAN&#xff0c;记住下面的名称&#xff08;带有VMware的都是虚拟机的网卡&#xff0c;要找到物理主机的网卡&#xff09; 回到VMware&#xff0c;编辑——打开虚拟网络编辑器 桥接选择上面的WLAN下的网络名称&#xff0c;确定即可。&…

需求9——通过一个小需求来体会service层的作用

昨天在完成了睿哥的需求验收之后&#xff0c;暂时没有其他任务&#xff0c;因此今天可能会比较有空闲时间。趁着这个机会&#xff0c;我打算把之前完成的一些需求进行总结&#xff0c;方便以后复习和参考。 在8月份的时候&#xff0c;我负责了一个需求&#xff0c;该需求的具体…

苏宁商品详情接口技术解析与实战代码示例

引言 苏宁作为国内领先的电商平台&#xff0c;为商家和消费者提供了丰富的商品信息和便捷的购物体验。对于开发者而言&#xff0c;苏宁提供的商品详情接口是获取商品详细信息的重要工具。通过调用该接口&#xff0c;开发者可以获取商品的标题、价格、库存、图片等关键信息&…

基于xml配置文件的Spring事务

在项目中对事务属性通常传播属性&#xff0c;回滚属性&#xff0c;隔离级别&#xff0c;超时属性都取默认值&#xff0c;只有只读属性会如下的配置&#xff1a; 什么意思&#xff1a;Service层你的类里的方法&#xff0c;以get&#xff0c;find&#xff0c;select等开头的方法是…

Robust多模态模型的开发

本文所涉及所有资源均在 传知代码平台 可获取。 目录 Robust 多模态模型&#xff1a;寻找遗失的模态&#xff01; 一、研究背景 二、模型结构和代码 三、数据集介绍 六、性能展示 六、实现过程 七、运行过程 Robust 多模态模型&#xff1a;寻找遗失的模态&#xff01; 近年来&a…

threejs-基础材质设置

一、介绍 主要内容&#xff1a;基础材质(贴图、高光、透明、环境、光照、环境遮蔽贴图) 主要属性&#xff1a; side: three.DoubleSide, //设置双面 color: 0xffffff, //颜色 map: texture, //纹理 transparent: true, // 透明度 aoMap: aoTexture, //ao贴图 aoMapIntensity: 1…

Linux下载安装MySQL8.4

这里写目录标题 一、准备工作查看系统环境查看系统架构卸载已安装的版本 二、下载MySQL安装包官网地址 三、安装过程上传到服务器目录解压缩&#xff0c;设置目录及权限配置my.cnf文件初始化数据库配置MySQL开放端口 一、准备工作 查看系统环境 确认Linux系统的版本和架构&am…

Redis: 集群高可用之故障转移和集群迁移

故障转移 故障转移&#xff0c;包括自动故障转移和手动故障转移 1 &#xff09;自动故障转移 Redis 集群&#xff0c;主节点挂了&#xff0c;从节点可以顶上来继续提供服务常用制造故障的两种方式 第一&#xff0c;对其中一个节点进行 SHUTDOWN 操作第二&#xff0c;kill 掉…

Java之方法

方法&#xff08;函数&#xff09; Java中的方法必须定义在类或接口中。 package day2;import java.util.Scanner;public class way {public static void main(String[] args) {int arr[] new int[5];Scanner sc new Scanner(System.in);for (int i 0; i < arr.length;…

五、创建型(建造者模式)

建造者模式 概念 建造者模式是一种创建型设计模式&#xff0c;通过使用多个简单的对象一步步构建一个复杂的对象。它将一个复杂对象的构建过程与其表示分离&#xff0c;从而使同样的构建过程可以创建不同的表示。 应用场景 复杂对象构建&#xff1a;当一个对象有多个属性&…

vue2项目的路由使用history模式,刷新会导致页面404的问题

在vue2项目中&#xff0c;如果我们使用的路由是history模式&#xff0c;刷新会导致页面404&#xff0c;解决方法很简单&#xff0c;在vue.config.js文件中的devServer下增加historyApiFallback: true; 代码如下: module.exports {devServer: {historyApiFallback: true,} }

【js逆向学习】极志愿 javascript+python+rpc

JSRPC使用方式 逆向目标逆向过程逆向分析1、什么是 websocket2、websocket的原理3、总体过程3.1 环境说明3.2 python服务端代码3.3 python客户端代码 4、Sekiro-RPC4.1 执行方式4.2 客户端环境4.3 参数说明4.4 SK API4.5 python代码调试4.6 代码注入流程 逆向总结 逆向目标 网…