NTU发布即插即用的嵌入式SLAM新SOTA!

news2024/11/14 13:52:43

导读:

当前的SLAM技术正逐渐向轻量化和高效化发展,在保证定位精度的同时,研究者们越来越倾向于简化冗余的框架,以在效率和性能之间找到最佳平衡点。

一个优秀的SLAM系统不仅需要提供精确的定位数据,还必须能够在不同平台上实时运行,尤其是在低算力的平台上仍需表现出色。此外,SLAM的部署一直是个挑战,将复杂的框架从高算力的PC平台移植到嵌入式平台时,往往会遇到许多问题。

今天这篇AirSLAM提出的方法很好地解决了这些问题,不仅在效率和性能之间实现了良好的平衡,还显著简化了部署过程(可以达到即插即用),并且在低算力平台上,还能以40Hz的速度实时运行!©️【深蓝AI】编译

1. 问题引人

vSLAM在机器人导航中起着至关重要的作用,因为它在成本和精度之间实现了良好的平衡。与LiDAR SLAM相比,vSLAM使用更为经济且紧凑的传感器,能够实现精确定位,这使得它在各类应用中有着广泛的前景。此外,相机不仅能捕捉到丰富的视觉信息,还能为机器人提供更强的定位能力。

然而,尽管vSLAM技术近年来取得了显著进展,现有的系统在光照条件恶劣的环境下仍然表现不佳。主要有两个方面的挑战:一是由于光照剧烈变化或低光环境,特征检测和跟踪往往会失败,导致定位轨迹的质量下降;二是在重定位时,光照变化可能显著降低匹配成功率。AirSLAM将第一个问题称为短期光照挑战,它影响的是相邻帧之间的姿态估计;而第二个问题称为长期光照挑战,它影响的是查询帧与现有地图之间的匹配。总结一下,就是光照条件对于vSLAM的影响是很大的,光照的变化对于整体的定位和回环过程都造成不同程度的影响,如何处理好整体vSLAM系统在不同关照条件下的运行能力,是该SLAM系统是否优秀,鲁邦的关键。

现有的方法通常只关注这两个挑战之一。例如,一些图像增强和归一化算法能够在一定程度上改善特征跟踪,但它们往往难以应对各种复杂的光照条件。还有一些系统通过在包含各种光照条件的大型数据集上训练SLAM网络来提高鲁棒性,但这些方法在生成适合长期重定位的地图时仍然存在困难。

为了解决这些问题,AirSLAM系统应运而生。AirSLAM通过结合点和线特征来提升vSLAM系统的精度和鲁棒性,并在效率与性能之间找到了一个平衡。AirSLAM设计了一个混合系统,利用学习方法进行特征检测和匹配,同时使用传统的几何方法进行姿态和地图优化。此外,为了提高特征检测的效率,AirSLAM开发了一个能够同时检测点和线特征的统一模型。AirSLAM还引入了一种多阶段重定位策略,以应对长期光照挑战,使系统能够在不同光照条件下保持稳定的表现。这个框架的设计使得整个SLAM系统特别的轻量化,对于部署十分的友好,能够很轻松的部署在各种低算力的嵌入式平台。

通过实验验证,AirSLAM不仅在各种光照挑战条件下实现了准确且鲁棒的建图和重定位,还展示出了很高的运行效率,能够在PC上达到73Hz,在嵌入式平台上则达到40Hz。

2. 具体方法与实现

首先来总览一下全文的方法框架,如图一所示,主要由三个部分进行实现:立体视觉里程计,离线地图优化和轻量级重定位框架,笔者先来对这三个部分的内容进行一个简单的介绍,建立一个初步的印象,随后再对这三个部分进行详细介绍:

●立体视觉里程计(VO/VIO): AirSLAM提出了一种基于点线特征的视觉里程计,可以处理立体视觉和立体视觉惯性输入。

●离线地图优化: AirSLAM实现了几种常用的插件,如回环检测、姿态图优化和全局束调整。通过添加定制插件,系统易于扩展以实现其他地图处理目的。例如,AirSLAM实现了一个插件,用于利用线特征的端点训练场景相关的连接词汇表,该词汇表在AirSLAM的轻量级多阶段重定位中使用。

●轻量级重定位: AirSLAM提出了一种多阶段的重定位方法,在提高效率的同时保持效果。在第一阶段,使用提出的PLNet检测关键点和线特征,并使用在大数据集上训练的关键点词汇表检索几个候选者。在第二阶段,使用场景相关的连接词汇表和结构图快速过滤掉大多数错误候选者。在第三阶段,在查询帧和剩余候选者之间执行特征匹配,以找到最佳匹配并估计查询帧的姿态。由于第三阶段的特征匹配通常耗时较长,因此第二阶段的过滤过程提高了AirSLAM的系统相对于其他两阶段重定位系统的效率。

这三个部分保证了本文定位的精度,那么前文中笔者阐述的“即插即用”是如何实现的呢?如下所示!AirSLAM将一些耗时的过程(例如,回环检测、姿态图优化和全局束调整)转移到离线阶段。这提高了在线映射模块的效率。在许多实际应用中,如仓库机器人,通常由一个机器人构建地图,然后由其他机器人重复使用。作者设计的系统考虑了这些应用场景。轻量级映射和地图重用模块可以轻松部署在资源受限的机器人上,而离线优化模块可以在功能更强大的计算机上运行,以实现各种地图操作,如地图编辑和可视化。映射机器人将初始地图上传到计算机,然后计算机将优化后的地图分发给其他机器人,确保无漂移的重定位。

图1|全文方法纵览©️【深蓝AI】编译

■2.1 立体视觉里程计

AirSLAM的点线特征双目视觉里程计系统(如图2所示)结合了学习驱动的前端和传统优化的后端,提供了一种高效的混合VO系统。在处理每对双目图像时,AirSLAM首先利用其PLNet模型提取关键点和线特征。接着,系统使用图神经网络LightGlue对这些关键点进行匹配。同时,AirSLAM还将线特征与关键点关联起来,并基于关键点的匹配结果进行线特征匹配。完成这些步骤后,系统会进行初步的姿态估计并剔除异常值,然后对关键帧的二维特征进行三角化处理并将其插入地图中。最后,AirSLAM还会执行局部束调整,以优化点、线和关键帧的姿态。此外,如果配备了IMU(惯性测量单元),系统还会利用IMU预积分方法来处理测量数据,并将其纳入初步姿态估计和局部束调整中。

图2|特征点提取匹配示例©️【深蓝AI】编译

由于将学习驱动的特征检测和匹配方法应用于双目视觉里程计中需要耗费大量时间,为了提升效率,AirSLAM采取了三项关键措施:首先,对于关键帧,系统会在左右图像上提取特征并进行双目匹配以估算真实的比例尺,而非关键帧则仅处理左侧图像。此外,AirSLAM通过宽松的标准选择关键帧,使得关键帧数量相对稀少,从而将特征检测和匹配的时间和资源消耗控制在与单目系统相当的水平。其次,AirSLAM将CNN和GNN的推理代码从Python转换为C++,并通过ONNX和NVIDIA TensorRT进行部署,实现16位浮点运算,进一步提升运行效率。最后,AirSLAM采用了多线程管道设计,通过生产者-消费者模型将系统划分为前端线程和后端线程,前端负责特征提取和匹配,后端则进行初步姿态估计、关键帧插入和局部束调整,从而确保整个系统高效运转。

笔者总结一下,在立体里程计部分,作者主要使用了基于学习的策略来进行特征点的提取和匹配,主要针对的是空间中普遍存在的点特征和面特征,随着这段时间superpoint和superglue的兴起,相信大家对于这个过程已经不陌生了,这样做的好处在于最大程度上的简化了系统,因为比起传统的几何法计算特征点并进行匹配,基于学习的方法会使得整个框架更简洁,符合了作者当初想要AirSLAM比较容易部署的初心。

■2.2 离线地图优化

离线地图优化是本文的一个比较重要的部分,这部分的设计直接决定了本文具备着容易部署和能够在低算力的嵌入式平台实时运行的能力。而作者在文中将这个模块分成了好几个小模块分别介绍,如图3所示,笔者这里也延续作者的写法,将这个大模块进行拆分,并对每一个子模块进行介绍。

图3|离线地图优化pipeline©️【深蓝AI】编译

AirSLAM系统首先通过一系列插件处理由视觉里程计(VO)模块生成的初始地图,以输出用于无漂移重定位的优化地图。随后将这个优化地图按顺序嵌入到下面几个模块中:

1)回环检测:

与大多数现有的vSLAM系统类似,AirSLAM采用了由粗到精的流程来检测回环。首先,系统使用DBoW2(词袋模型)从关键帧集合中检索可能的回环候选,并利用LightGlue进行特征匹配。为了确保匹配的准确性,AirSLAM在一个包含35,000张图像的大型数据库上训练了特征词汇库,该数据库包括了多种室内和室外场景。回环检测过程包括粗选候选、精细匹配以及相对姿态估计,确保识别的回环是有效的。

2)地图合并:

当回环检测到之后,系统会将来自回环对的3D特征进行合并,以消除重复的点和线特征。例如,两个不同地图点关联到同一匹配特征时,系统将其合并为一个。此外,系统还会更新2D关键点与3D地图点之间的对应关系,以及共视图的连接信息。

3)全局束调整:

在合并重复特征后,系统会进行全局束调整(GBA)。这一步优化所有关键帧和特征的位置信息。对于较大的地图,在执行全局束调整前,系统会先进行姿态图优化,以确保优化过程的初始条件足够好。这一步主要调整的是关键帧的姿态,并在调整后相应更新地图点和3D线的位置。

4)场景依赖词汇:

为了更好地进行重定位,系统会为关键帧中的交叉点训练一个场景依赖的词汇表。这个词汇表体积小巧,适用于特定场景,能有效支持后续的重定位任务。

5)优化后的地图:

系统会保存优化后的地图,以便后续的地图重用。与初始地图相比,优化后的地图中保存了更多的信息,例如关键帧的词袋模型、全局共视图以及场景依赖词汇表。此外,由于重复地图点和3D线的融合,优化后的地图占用的内存与初始地图相似。

通过这些步骤,AirSLAM能够生成一个优化的地图,该地图不仅占用更少的内存,还能更好地支持后续的无漂移重定位和高效的机器人导航。

■2.3 轻量级重定位

为了增强系统在不同光照条件下的鲁棒性,作者引入了一种使用优化后的地图进行重定位的方法。在大多数视觉SLAM(vSLAM)系统中,识别已经访问过的地点通常包括两个主要步骤:

●检索一组关键帧候选者;
●执行特征匹配并估计相对位姿。

第二步通常非常耗时,因此找到适当的关键帧候选者数量非常重要。选择太多候选者会降低系统的效率,而选择太少可能会导致正确的候选者未被识别。例如,在ORB-SLAM3的回环闭合模块中,仅检索三个最相似的关键帧以确保效率,这在光照条件相似时效果很好,但在更具挑战性的场景(如昼夜重定位)中可能表现不佳。

为了解决这个问题,作者提出了一种高效的多阶段重定位方法,使得优化后的地图在不同光照条件下仍然有效。关键思想是快速过滤掉大多数错误的候选者,从而在提高效率的同时,保持甚至提高重定位的召回率。这种方法在通常的两步流程中增加了一个额外的步骤。

1)检索相似的关键帧:

在第一步中,作者使用PLNet在查询帧中检测关键点、交点和线特征。然后,类似于之前的候选者选择过程,作者从地图中检索与查询帧相似的关键帧。与标准方法不同,作者不使用共视图图对候选者进行过滤,因为查询帧不在图中,并且作者保留所有候选者以供进一步处理。

2)过滤候选者:

第二步使用交点和线特征过滤掉第一步中大多数候选者。对于查询帧和每个候选者,作者使用预训练的交点词汇表来匹配它们的交点。然后,作者为查询帧和每个候选者构建结构图,其中顶点代表匹配的交点,边表示如果它们是同一条线的端点之间的连接。作者根据这些连接的一致性计算查询帧和候选者之间的图相似度,并将此图相似度与关键点和交点相似度结合起来,为每个候选者评分。只有得分最高的前三个候选者会进入下一步。由于交点数量少于关键点,且交点词汇表非常紧凑,这一步的额外过滤非常高效。实验显示,这一步可以在不到一毫秒的时间内完成。

3)估计位姿:

在最后一步中,作者使用LightGlue来匹配查询帧和保留的候选者之间的特征。具有最多匹配内点的候选者被选为最佳匹配。然后,作者基于这些匹配结果,将查询帧中的关键点与地图点关联起来,并使用带有RANSAC的PnP(透视-n-点)算法解决位姿估计问题。如果内点数量超过某个阈值,该位姿就会被认为是有效的。

这种多阶段的方法使得作者的系统能够在具有挑战性的光照条件下高效地进行重定位,确保了在实际应用场景中的鲁棒性能,也是这个过程让本系统在高效和性能之间取得了不错的平衡。

3. 实验效果

本文的实验部分作者主要验证了方法中的里程计精度,离线地图优化的效果还有重定位的能力,主要通过大量的对比数值实验和可视化实验体现,我们先来看数值实验。

图4|对比数值试验结果©️【深蓝AI】编译

作者用一张大表体现了本文方法的定位精度,从表上来看,这个数据集上本文的平均表现领先于其他的SOTA,能够很好的说明本文方法的有效性。随后作者通过图5的表格体现了本文方法在实时运行上的优势,在PC平台,AirSLAM的运行速度达到了恐怖的79.4FPS,并且各项定位数据也十分出色。

图5|运行时间分析©️【深蓝AI】编译

图6是作者对里程计的特征点提取能力测试,可以看到本文方法的特征点提取效果十分毕竟GT,能够最大程度的提取到图中应该提取到的点线特征,这一能力进一步可以在图7中的特征点匹配可视化实验中进一步体现。

图6|里程计特征点提取可视化©️【深蓝AI】编译

图7|特征点匹配可视化©️【深蓝AI】编译

如图7所示,对于提取的特征点,本文基本上能够很好的将其进行配准,哪怕在光照条件出现了变化的场景里,依旧保持的很高的匹配成功率。

4. 总结

在这项工作中,作者提出了一种高效且对光照变化具有鲁棒性的混合视觉SLAM系统。为了在具有挑战性的光照条件下保持鲁棒性,系统使用CNN检测关键点和结构线,然后通过GNN将这些特征关联并跟踪。为了提高系统效率,作者提出了基于PLNet的立体视觉里程计,这是第一个能够同时检测点和线特征的统一模型。

此外,AirSLAM还提出了一种基于外观和几何信息的多阶段重定位方法,用于高效的地图复用。系统设计采用了包括在线建图、离线优化和在线重定位的架构,使其更易于在实际机器人上部署。大量实验表明,所提出的系统在精度、效率和鲁棒性方面优于其他最新的vSLAM系统,能够达到“即插即用”,在嵌入式平台也能够很好的实时运行。
©️【深蓝AI】
Ref:
irSLAM: An Efficient and Illumination-Robust Point-Line Visual SLAM System

编译|阿豹
审核|Los

本文首发于微信公众号【深蓝AI】,移步公众号【深蓝AI】,第一时间获取自动驾驶、人工智能与机器人行业最新最前沿论文和科技动态👇
深蓝AI·赋能自动驾驶+机器人+AI

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

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

相关文章

【PyQt】切换界面的实现

前言一、介绍二、代码2.1 QStackedWidget2.1.1 代码2.1.2 运行结果展示 2.2 QTabWidget2.2.1 代码2.2.2 运行结果展示 2.3 QDockWidget2.3.1 代码2.3.2 运行结果展示 PULSE结果 总结 前言 实现几个界面的切换展示的效果。 一、介绍 在 PyQt 中实现一个主界面包含其他子界面的…

#mark# ViteSvgIconsPlugin svgoOptions选项

svgoOptions 设置为false时 , 矢量svg图标 stroke线条不正常 找了半天 哪影响的 , 线条异常图如下 svgoOptions 改为true后 ,显示正常了

并查集优化策略及其正确性证明:基于路径压缩与按秩合并

并查集优化策略及其正确性证明:基于路径压缩与按秩合并 前言优化策略算法伪代码C语言实现归纳法证明基础情况归纳步骤结论前言 引理:对于所有的结点x, 有 x.rank≤x.p.rank, 如 果x≠x.p, 则此式是严格不等 式。x.rank 的初始值为0,并且随时间而增加,直到x≠x.p; 从此以后,…

安卓13 背光反向 亮度反向 android13 backlight reverse

总纲 android13 rom 开发总纲说明 目录 1.前言 2.问题分析 3.代码分析 4.代码修改 5.彩蛋 1.前言 有些设备,在调整背光的时候,会发现,背光调大,显示亮度反而变暗,背光调小,亮度变亮。这是由于PWM背光本身并没有一个标准去决定怎么样算是高亮度,怎么算是低亮度。因…

C语言-02 算法-程序的灵魂

算法-程序的灵魂 1、程序=算法数据结构2、什么是算法3、简单的算法举例4、算法的特性5、怎样表示一个算法5.1 用自然语言表示算法5.2 用流程图表示算法5.3 三种基本结构和改进的流程图5.4 用N-S流程图表示算法5.5 用伪代码表示算法5.6 用计算机语言表示算法 6、结构…

秋冬春夏,纪念在CSDN的第365天

目录 时光 收获 工作 生活 憧憬 时光 再次收到创作纪念日的消息时,已在CSDN创作和度过了一年的时光。创作,成了自己的第二工作空间,成为了日常的一种习惯。 每当看到第1篇文章的提醒消息,都会想起当时创作的初衷和情景。是一…

学了PMP能给我们带来什么变化?

一、PMP是什么 PMP(Project Management Professional)是一个在项目管理领域具有高级认证的资格。该认证由PMI在全球200多个国家和地区广泛推广,被认为是项目管理领域内最具含金量的认证之一。 持有PMP证书的项目经理不仅可以提升其项目管理能力,同时也…

LLaMA代码笔记 --基于lit-llama

代码来自:lit-llama modelscope模型下载 :llama-7b 下载后的模型需要转换为lit-llama使用的格式,详见 howto 文件夹下的 download_weights.md 文中代码为了方便说明,删减了一些内容,详细代码请查看源码。 generate …

磁场强度H和磁感应强度B,磁化强度M和磁极化强度J

磁场强度H、磁感应强度B、磁化强度M和磁极化强度J是四个非常重要的磁学基本概念,他们之间关联但有时又很容易混淆。分清这四个概念对于磁材行业从业者是非常重要的,今天我们就为大家细说一下它们的概念和关系。 磁场强度H 磁场强度H其实是一个没有实际…

自动化巨头施耐德电气,部分业务被其供应商收购:之前还收购过霍尼韦尔

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》 供应商逆袭:小鱼吃大鱼的商业奇迹 英国电气行业掀起一阵惊涛骇浪。斯塔福德郡的中型企业Goodfish Group竟然收购了全球巨头施耐德电气…

AppInventor2 现已全面支持安卓14!

//重磅升级:支持安卓14// MIT于2024/08/19升级Android SDK至34(安卓14),因为在 2024 年 8 月 31 日之后,在 Google Play 商店中添加或更新应用时必须执行此更新。 国内估计也会跟进,因此使用最新版本的 s…

CleanMyMac如何帮助用户清空DNS缓存,Mac清除dns缓存命令

什么是DNS缓存?这个缓存有什么危害?相信大家平时使用浏览器时,有时候会遇到一个很奇怪的问题,就是Mac打开许多网站如百度网站,都是可以访问的,但是在打开某个特定网站时,却发现浏览器提示检测不…

网上商城|基于SprinBoot+vue的分布式架构网上商城系统(源码+数据库+文档)

分布式架构网上商城系统 目录 基于SprinBootvue的分布式架构网上商城系统 一、前言 二、系统设计 三、系统功能设计 5.1系统功能模块 5.2管理员功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍…

Halcon根据灰度特征值选择区域

Halcon根据灰度特征值选择区域 与select_shape算子类似,灰度值图像也可以快捷地根据特征值选择符合设定条件的区域。select_gray算子用于实现这一功能,该算子能接受一组区域作为输入,然后根据选定的特征计算其是否满足特定的条件。当所有区域…

网络安全 DVWA通关指南 DVWA File Upload(文件上传)

DVWA File Upload(文件上传) 文章目录 DVWA File Upload(文件上传)修复建议 LowMediumHighImpossible 修复建议 1、使用白名单限制可以上传的文件扩展名 2、注意0x00截断攻击(PHP更新到最新版本) 3、对上传…

【系统安全】Kernel Streaming WOW Thunk 服务驱动程序特权提升漏洞(CVE-2024-38054)

文章目录 前言一、漏洞概述二、影响范围三、漏洞复现四、修复方法前言 安全研究员 “Frost” 发布了CVE-2024-38054漏洞的概念验证漏洞利用代码,这加剧了人们对最近修补的 Windows 安全漏洞的担忧。内核流 WOW Thunk 服务驱动程序中的这个高严重性漏洞可能使本地攻击者能够通…

【赵渝强老师】使用Docker Machine远程管理Docker

Docker Machine是Docker官方提供的一个远程管理工具。通过使用Docker Machine,可以帮助开发人员在远程主机上安装Docker;或者在远程的虚拟主机上直接安装虚拟机并在虚拟机中安装Docker。Docker Machine还提供了相应的命令来管理这些远程的Docker环境和虚…

四川财谷通信息技术有限公司引领新风尚

在数字经济蓬勃发展的今天,电子商务已成为推动经济增长的重要引擎之一。而在这股浪潮中,短视频平台抖音凭借其庞大的用户基数和高度活跃的社区氛围,为无数小微企业和个人创业者提供了前所未有的发展机遇。四川财谷通信息技术有限公司&#xf…

如何防止图纸外泄?图纸安全管理措施有哪些(必备清单)

当今数字化和信息化的时代,图纸作为企业设计、制造等环节中的重要资料,其安全性尤为重要。图纸的泄露不仅可能导致企业的技术秘密被竞争对手获取,还可能造成巨大的经济损失和法律纠纷。因此,建立健全的图纸安全管理措施是每个企业…

虚幻5|音效设置—环境音效,低血量和恢复血量音效,音效衰减,脚步音效

一,环境音效——学习使用SoundCue 1.打开主界面 拖入一个环境音效 2.选择一个音效,但这个音效围绕整个环境的,设置听听就行了 听完后删掉,我们要设置一个有一定范围的音效 3.找到存放音效的文件,创建一个音频SoundC…