EN-SLAM:Implicit Event-RGBD Neural SLAM解读

news2024/11/13 9:29:50

论文路径:https://arxiv.org/pdf/2311.11013.pdf

目录

1 论文背景

2 论文概述

2.1 神经辐射场(NeRF)

2.2 事件相机(Event Camera)

2.3 事件时间聚合优化策略(ETA)

2.4 可微分的CRF渲染技术

3 EN-SLAM模型

3.1 统一的隐式场景表示

3.2 辐射场分解

3.3 可微分CRF渲染

3.4 追踪与捆绑调整

3.5 损失函数

4 数据集

5 实验

5.1对比实验

5.2 消融实验

5.3 全场景建图的对比

6 未来工作

6.1大规模室外场景

6.2 依赖深度信息

6.3 长距离轨迹


论文背景

       EN-SLAM出自今年CVPR的Highlight名单,由上海AI Lab等机构联合提出的首个事件-RGBD隐式神经SLAM框架。EN-SLAM通过共享可微的相机响应函数(CRF)渲染技术,基于事件和RGBD监督学习,进行相机位姿和地图的体渲染优化,有效解决运动模糊或光照变化等非理想场景中,SLAM算法产生的定位漂移、地图失真等问题。

论文概述

2.神经辐射场(NeRF

        论文中建立在NeRF-SLAM框架上,引入最新的场景重建技术NeRF,通过神经辐射场提高建图质量。相较于传统SLAM框架在单目深度估计中深度特征图的参数难以使用来恢复几何和光度优良的3D map,使用单目稠密SLAM来提供位姿,深度特征图和概率分布,而将NeRF框架用作建图工作,可以实时构建环境辐射场,利用NeRF中提出的基于不确定性的深度估计损失来实现良好的光线和几何恢复。

        下图来自于NeRF-SLAM的损失函数,在原有RGB传感器颜色损失基础上(L2范数),引入光照和几何参数。

λD:平衡颜色和深度监督参数

LD:计算深度图和不确定性深度图的损失(L2范数)

2.事件相机(Event Camera

        对于以往的SLAM框架,甚至是最新的NeRF-SLAM仍然没有解决的问题,大多数是为光线优良的情况场景而设计,在低光照条件,或受到运动模糊或光照变化等问题,往往容易导致收敛失败。主要原因在于单一的使用了RGB传感器。

        而本文中基于RGB和事件相机结合的NeRF结构进行重建。

        为什么引入了事件相机?事件相机较于RGB相机(传统快门相机)的优势?

        事件相机:使用了一种高动态范围(HDR)传感器,它不会捕捉整个图像帧,而是仅捕捉场景中发生变化的像素点。这些变化被称为“事件”,每个事件包含像素位置、时间戳和光强度变化的信息。

       相较于传统相机,事件相机的优势:

(1)高时间分辨率和低延迟:事件相机能够以微秒级的时间分辨率捕捉场景变化,响应速度非常快,适用于高速运动场景,大大改善运动模糊问题。

(2)高动态范围:事件相机能够捕捉高对比度场景中的细节信息,避免了过曝或欠曝的问题。

(3)鲁棒性:事件相机对光照变化和运动模糊等环境因素更加鲁棒,在恶劣环境下仍能保持良好的性能。

2.事件时间聚合优化策略(ETA

       对于传统使用事件相机的SLAM中,并没有很好的将事件数据与RGB数据高度融合,传统方法引入了基于特征的方法(如USLAM)、直接方法(如EDS),运动补偿方法(如InteriorNet)均存在一些问题。

基于特征的方法:存在运动模糊和光照变化的复杂环境中,缺乏足够的视觉特征,导致跟踪和重建性能下降。

直接方法:对于精确的相机姿态和细致的优化要求较高,难以与事件数据和RGB-D数据有效集成。

运动补偿方法:无法充分利用事件数据的时间差异特性,无法提供高效的连续差异约束,从而限制了性能的提升。

        相较于传统方法,本文EN-SLAM引入了事件时间聚合优化策略,有效利用了事件数据的时间差异特性,大幅提高了跟踪和重建的性能。

2.可微分的CRF渲染技术

        Differentiable CRF是EN-SLAM模型用于融合事件数据和RGB数据的一种技术,本文先建模RGB颜色场,并使用事件生成模型推导事件亮度场,并将统一的神经辐射场分解成的RGB场和事件亮度场两个可微分的色调映射过程,再依据这两个场利用CRF技术重新渲染最终的3D建图的亮度、深度、RGB。

        这一方法,也有效地解决了事件和RGB数据之间的差异,并在真实场景和黑暗场景下均可以渲染出HDR的亮度结果和更准确的网格结构,提高系统的鲁棒性和性能。

3 EN-SLAM模型

      EN-SLAM模型(the first event-RGBD implicit neural SLAM framework),该模型输入RGB图像、RGBD深度图像和事件数据,最终输出Depth、RGB、Luminance三个图,并根据这三个图计算损失函数反馈模型,优化参数。生成模型的输出为三个特征图的融合得到的高质量的三维重建结果以及相机姿态估计。

3.统一的隐式场景表示

        本文由于面临两个挑战(事件数据稀疏性和不同相机成像物理原理不同),EN-SLAM学习了一个共享的统一的隐式场景表示。首先使用多分辨率的几何特征和颜色网格特征描述辐射场,并利用Geometry Decoder将几何关系和颜色映射到几何隐藏向量、辐射场和TSDF(三维点阵距离场)中。

3.辐射场分解

        对于传统NeRF工作,简化了成像过程,而导致渲染图像与真实图像之间的偏差,而在本文工作同时使用RGB-D与事件数据多模态情况下偏差问题进一步放大,而造成视图不一致(即伪影产生),动态范围低(暗区和过曝区信息丢失,而造成跟踪漂移和映射失真)。

        另外由于事件数据捕获对数亮度变化,事件数据的预测无法很好的表示出差异性,本文建模了事件数据的亮度场、辐射、曝光的关系,并将神经辐射场分解为RGB和事件数据两个可微分方向用于后续的CRF渲染。

3.可微分CRF渲染

        根据上面得到的两个可微分的数据流沿着光线方向进行不同的积分操作,得到最终生成图像的颜色、光强、深度信息。

        并将第一步计算的TSDF通过钟形模型生成上式的权重wi。

3.追踪与捆绑调整

        利用事件相机的HDR和时间差异特性,针对追踪与全局BA问题提出ETA策略。

        针对追踪问题:

        使用自适应的事件前向窗口选择策略,即利用前向窗口进行邻域搜索,计算事件损失最小的帧为前向帧,来约束参与优化帧之间的局部稳定性。

        采用概率加权的采样策略,将RGB图像划分为若干patch,并从中随机采样若干射线来计算采样点损失,并将单一patch的平均损失投影到下采样的mini平面来引导事件相机的整体射线采样的反馈操作,最终通过最小化目标函数来调整位姿,这也有利于降低计算成本。

针对全局BA问题:

什么是全局BA

        捆绑调整(Bundle Adjustment)使用最小化重投影误差,可以进行多次迭代,使重构点足够拟合真实值,可以应用于欧式结构、仿射结构和透视结构多种情况,是一个恢复结构和运动的非线性方法。

        在本模型中计算RGBD摄像机与事件相机之间的最小重构化误差,使用固定的迭代次数,相较于传统方法在训练途中增加迭代次数的崩溃问题,这样做仍能在高帧率情况下,保持较高的跟踪精度和鲁棒性。

3.损失函数

损失函数包含五个损失的叠加,分别是Lev,Lrgb,Ld,Lsdf,Lfs。

Lev:事件重建损失,计算事件流域渲染亮度差异(对数亮度)的均方误差。

Lrgb:颜色渲染损失,表示渲染颜色与观测颜色之间的均方误差。

Ld:深度损失,表征渲染的深度与观测深度间的均方误差。

Lsdf:符号距离场(SDF)损失,表征采样点与SDF间的距离平方和。

Lfs:自由空间损失,表示采样点与相机射线之间的距离平方和。

数据集

        相较于以往的SLAM数据集没有令人强运动模糊和亮度变化的挑战,或者缺乏深度信息,本文提出新的数据集DEV-Reals和DEV-Indoors,来进行针对事件相机以及运动模糊与亮度问题场景的评估。

        DEV-Reals数据集:包含LiDAR、Realsense D435I RGBD相机和DAVIS346事件相机等多传感器数据,包含三个场景办公室、车库、宿舍,涵盖不同的照明条件与相机运动速度,这也包含了深度信息和事件相机带来的噪声,更适合评估鲁棒性。

        DEV-Indoors数据集:使用Blender合成的事件相机SLAM数据集,用于评估算法运动模糊和亮度变化下的性能。

5 实验

5.1对比实验

        基于BEV-Indoors数据集、Bev-Reals数据集针对不同的SLAM框架在重建和跟踪性能上进行了比较。由于针对光照影响和运动模糊数据集,在引入事件相机的EN-SLAM模型中高动态范围的提升优势还是相对明显的。

        另外,EN-SLAM相较于其他SLAM框架在运行时间、参数量方面进行了比较,在参数量近似的情况下,FPS提升最为明显达到了惊人的17FPS。

5.消融实验

        分别测试了RGB和事件相机的影响以及CRF和加权采样(PWS)的影响。通过事件相机得到了较低的跟踪误差,并获得了更精确的渲染细节。并证明了CRF渲染和PWS对于事件数据融合的HDR影响较为明显。

        另外,也做了关于ETA策略、迭代设置在多数据集上的消融实验。

5.3 全场景建图的对比

        下图为在不同SLAM框架中,基于BEV-Indoors数据集的不同场景下的不同运动模糊、光照情况下的场景建图。

6 未来工作

6.1大规模室外场景

        该模型目前主要针对室内场景,在大规模户外环境中可能会面临挑战。未来可以考虑扩展模型的适用范围,增强其在户外环境下的泛化能力。

6.2 依赖深度信息

        由于一些数据集中缺失深度信息,或者在某些场景中就难以获得深度信息,考虑未来可以不依赖深度的输入,或建立新的损失函数来反馈系统,并建立弱深度信息数据集来优化模型。

6.3 长距离轨迹

        在实验中我们看到在长距离轨迹问题下,虽然FPS有所提升,但误差整体高于ESLAM模型,考虑到优化运动模糊和光照变化性能而丧失了一部分长距离理解性能。

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

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

相关文章

Netty 启动源码阅读

文章目录 1. 入门2. Netty 代码实例3. Netty bind3.1 initAndRegister3.1.1 newChannel, 创建 NioServerSocketChannel3.1.2 init(channel); 初始化 NioServerSocketChannel3.1.3 register 注册channel 3.2 doBind0 绑定端口3.3 ServerBootstrapAcceptor 1. 入门 主从Reactor模…

不是哥们?你怎么抖成这样了?求你进来学学防抖吧!全方位深入剖析防抖的奥秘

前言 古有猴哥三打白骨精,白骨精 > 噶 今有用户疯狂点请求,服务器 > 噶 所以这防抖咱必须得学会!!! 本文就来讲解一下Web前端中防抖的奥秘吧!!!! 为什么要做防…

2-27 基于matlab的一种混凝土骨料三维随机投放模型

基于matlab的一种混凝土骨料三维随机投放模型,为混凝土细观力学研究提供一种快捷的三维建模源代码。可设置骨料数量,边界距离、骨料大小等参数。程序已调通,可直接运行。 2-27 matlab 混凝土骨料三维随机投放模型 - 小红书 (xiaohongshu.com)…

盘点8款国内顶尖局域网监控软件(2024年国产局域网监控软件排名)

局域网监控软件对于企业网络管理至关重要,它们可以帮助IT部门维护网络安全,优化网络性能,同时监控和控制内部员工的网络使用行为。以下是八款备受推崇的局域网监控软件,每一款都有其独特的优势和适用场景。 1.安企神软件 试用版领…

CompletionService

必备知识: 三种创建线程的方式 java线程池 CompletionService是Java并发库中的一个接口,用于简化处理一组异步任务的执行和结果收集。它结合了Executor和BlockingQueue的功能,帮助管理任务的提交和完成。CompletionService的主要实现类是Exe…

python破解字母已知但大小写未知密码

python穷举已知字符串中某个或多个字符为大写的所有情况 可以使用递归函数来实现这个功能。以下是一个示例代码: def generate_uppercase_combinations(s, index0, current):if index len(s):print(current)returngenerate_uppercase_combinations(s, index 1, …

如何保证接口幂等性

如何保证接口幂等性 1、幂等性是什么? 接口幂等性是指用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了不同的结果。 2、使用幂等性的场景有哪些? 页面点击保存按钮时,不小心快速点了两次…

BUUCTF[PWN][fastbin attack]

fastbin_attack例题 题目:[BUUCTF在线评测 (buuoj.cn)](https://buuoj.cn/challenges#[ZJCTF 2019]EasyHeap) 整体思路:利用编辑时edit_heap函数的栈溢出漏洞,覆盖heaparray中的栈指针指向free的got表,将其改为system的plt表&…

Bert入门-使用BERT(transformers库)对推特灾难文本二分类

Kaggle入门竞赛-对推特灾难文本二分类 这个是二月份学习的,最近整理资料所以上传到博客备份一下 数据在这里:https://www.kaggle.com/competitions/nlp-getting-started/data github(jupyter notebook):https://gith…

C语言指针函数指针

跟着这篇文章重新理解了一下:彻底攻克C语言指针 有一个例子感觉可以拿出来看看: char *(*c[10])(int **p); * 这段声明定义了一个长度为10的数组c,数组中的每个元素都是指向函数的指针。每个函数接受一个类型为int **(指向指向…

【SpringCloud应用框架】Nacos集群架构说明

第六章 Spring Cloud Alibaba Nacos之集群架构说明 文章目录 前言一、Nacos支持三种部署模式二、集群部署说明三、预备环境 前言 到目前为止,已经完成了对Nacos的一些基本使用和配置,接下来还需要了解一个非常重要的点,就是Nacos的集群相关的…

用PlantUML和语雀画UML类图

概述 首先阐述一下几个简单概念: UML:是统一建模语言(Unified Modeling Language)的缩写,它是一种用于软件工程的标准化建模语言,旨在提供一种通用的方式来可视化软件系统的结构、行为和交互。UML由Grady…

一.7.(2)基本运算电路,包括比例运算电路、加减运算电路、积分运算电路、微分电路等常见电路的分析、计算及应用;(未完待续)

what id the 虚短虚断虚地? 虚短:运放的正相输入端和反相输入端貌似连在一起了,所以两端的电压相等,即UU- 虚断:输入端输入阻抗无穷大 虚地:运放正相输入端接地,导致U=U-=0。 虚…

远心镜头简介

一、远心镜头 大家都有这种印象,一个物体在人眼看来,会有近大远小的现象。这是因为物体近的时候,在视网膜上投影大,小的时候,投影小。镜头也是一样,因为近大远小的原因,会产生误差。特别是在做尺…

通信协议_Modbus协议简介

概念介绍 Modbus协议:一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(De f…

Java里的Arrary详解

DK 中提供了一个专门用于操作数组的工具类,即Arrays 类,位于java.util 包中。该类提供了一些列方法来操作数组,如排序、复制、比较、填充等,用户直接调用这些方法即可不需要自己编码实现,降低了开发难度。 java.util.…

DC-DC充放电原理

文章目录 前言1. 电子器件1.1 电容1.2 电感 2. 升压电路3. 降压电路4. 电压均衡电路4.1 被动均衡4.2 主动均衡 5. 我的疑问5.1 对于升压电路,怎么设计升压到多少V后,停止升压?5.2 什么是等效电阻?5.3 快充是如何实现的&#xff1f…

探索InitializingBean:Spring框架中的隐藏宝藏

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》《MYSQL》 💪🏻 制定明确可量化的目标,坚持默默的做事。 ✨欢迎加入探索MYSQL索引数据结构之旅✨ 👋 Spring框架的浩瀚海洋中&#x…

ISP和IAP原理解释

ISP和IAP ISP ISP的全称是:In System Programming,即在系统编程,该操作是通过MCU厂商出厂BootLoader来实现,通过ISP可以对主flash区域进行擦除、编程操作,还可以修改芯片的选项字节等。例如,GD32F30x用户…

Failed to get D-Bus connection: Operation not permitted

最近使用wsl安装了centOS7镜像,在系统中安装了docker服务,但是在执行systemctl start docker的时候遇到了:Failed to get D-Bus connection: Operation not permitted问题,查阅了很多资料都没有效果,最终找到了一种解决…