ORB-SLAM3论文阅读笔记

ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM
开源代码链接: https://github.com/UZ-SLAMLab/ORB_SLAM3
论文原文链接: https://arxiv.org/pdf/2007.11898.pdf

第一个可以使用单目、立体视觉和RGB-D相机,使用针孔和鱼眼相机执行视觉,视觉惯导和多地图的SLAM系统。第一个创新:基于特征的紧耦合视觉惯导SLAM系统,即使在IMU初始化阶段,也完全依赖于最大后验估计(MAP)。第二个创新:多地图系统,依赖于一个新的位置识别方法伴随着高的召回率。

短期数据关联:匹配最近几秒获得的地图元素,这也是大多数VO系统唯一使用的数据关联类型,一旦环境元素离开视野就会忘记,即使系统在同一区域移动,也会导致持续的估计漂移。
中期数据关联:匹配靠近相机累计漂移依然很小的地图元素。
长期数据关联:使用地点识别技术将观测值与先前访问过的区域中的元素进行匹配,长期匹配允许使用位姿图优化或者使用BA来重置漂移并校正地图。

第一个视觉和视觉惯导系统充分利用短期,中期,长期数据关联,在地图中达到零偏。

主要的四点创新
1.单目和双目视觉惯导系统完全依赖于最大后验估计,即使是IMU初始化阶段也是如此。
2.提高系统位置识别的召回率,现在的很多视觉和视觉惯导系统都使用DBoW2词袋来解决位置识别问题,DBoW2需要时间一致性,在检查几何一致性之前需要将三个连续的关键帧匹配到同一区域,以牺牲召回率为代价来提高准确度,导致系统在闭环检测和重用之前地图区域时很慢。作者提出了一种新的位置识别算法,首先检查候选关键帧的几何一致性,然后使用三个可见关键帧进行局部一致性检查,这种策略增加了召回率并加强了数据关联,从而提高了地图的准确性,但是代价是计算成本变高了。
3.Atlas地图集,该地图集能够表示一系列断开的地图,并将他们应用于位置识别,相机重定位,闭环检测和精确的地图合并。这允许使用和组合在不同时间构建的地图。
4.一种抽象的相机表示,使SLAM代码和所使用的相机模型无关,并允许通过提供投影、非投影和雅可比矩阵来添加新的模型。

相关工作:主要从视觉SLAM,视觉惯导SLAM和多地图SLAM三个方面进行说明
在这里插入图片描述

系统概述:一个完整的多地图和多会话系统能够在纯视觉和视觉惯导上运行,主要包括Atlas地图集跟踪线程局部建图线程回环和地图合并线程
在这里插入图片描述
Atlas地图集:是由一组不连续的地图组成的多地图表示,活动地图传入跟踪线程定位的帧,并通过局部建图线程持续优化和添加新的关键帧。将其他地图称non-active地图,该系统建立一个独特的DBoW2关键帧数据库用于重定位,回环和地图合并。
跟踪线程:处理传感器信息,计算当前帧相对于active地图的位姿,最大限度减少匹配地图特征的重投影误差,他还决定是否当前帧为关键帧。在视觉惯导模式下用过在优化下包含惯性残差来估计体速度和IMU偏差。当跟踪丢失的时候,跟踪线程会尝试重定位在Atlas地图集中的当前帧。如果重定位成功,跟踪线程恢复,并在需要时切换活动地图。然而,在一段时间之后,active地图会被存储为non-active地图,并从头开始初始化一个新的active地图。
局部建图线程:添加关键帧和点到active地图中,并删除冗余的,使用视觉或者视觉惯导BA来细化地图,执行一个关键帧的局部来靠近当前帧。在惯性条件下,IMU参数被初始化和定义通过建图线程使用了我们新颖的MAP估计技术。
闭环和地图和平线程:以关键帧速率检测active地图和整个Atlas地图集公共区域,如果公共的区域属于active地图,则执行回环修正,如果他属于不同的地图,则将连个地图合并,成为一个active地图。回环矫正之后,在独立线程中启动完整的BA,在不影响实时性能的情况下进一步细化地图。

相机模型:通过将与相机模型相关的所有属性和函数(投影和非投影函数,雅可比矩阵)提取到单独的模块中,从整个SLAM中抽象出相机模型,可以使系统通过提供相应的相机模块来使用任何相机型号。
1.重定位:使用MLPnP算法,由于使用了投影光线作为输入该算法与相机模型完全解耦合。
2.未矫正的双目SLAM:系统不依赖于图像矫正,将双目相机视为两个单目相机,(1)在两个单目相机之间存在一个恒定的SE(3)变换,(2)可选的,观察场景相同部分的公共图像区域。

视觉惯导SLAM
提出一个快速的准确的IMU初始化算法,一个开源的SLAM库,能够进行单目惯导,双目惯导,带有鱼眼和针孔相机。
A.基础
Ti为在世界坐标系下的本体位姿,Vi为在世界坐标系下的速度,后面两个分别为陀螺仪和加速度计偏差。状态向量:
在这里插入图片描述
获得预积分的旋转、速度和位置测量值,测量的协方差矩阵,以及预积分项和状态。惯性残差:
在这里插入图片描述
对应相机模型的投影参数,uij为图像i上点j的观测值,具有协方差矩阵,重投影误差rij:
在这里插入图片描述
结合惯性和视觉残差项,视觉惯导SLAM可以被视为基于关键帧的最小化问题,给定一组k+1关键帧及其状态,以及一组3D点及其状态。视觉惯导优化问题可以表示为:
在这里插入图片描述
在这里插入图片描述
B.IMU初始化
基于三个关键见解提出了一种快速准确的初始化方法:
1.纯单目SLAM可以提供非常准确的初始地图,其主要问题在于尺度未知,首先解决仅视觉问题将增强IMU初始化。
2.当规模显示表示为优化变量时,它的收敛速度要快的多,而不是使用BA的隐式表达。
3.在IMU初始化阶段忽略传感器的不确定性会产生较大的不可预测误差。
将IMU初始化描述为MAP估计问题,分为三个步骤:
1.仅视觉的MAP估计:初始化纯单目SLAM在两秒内运行,以4Hz的速度插入关键帧,在这段时间之后,我们有一个k=10的相机位姿和数百个点组成的按比例放大的地图,该地图仅使用视觉BA进行优化。
2.仅惯导的MAP估计:获得惯性变量的最佳估计。
s为仅视觉解决方案的比例因子,Rwg是一个旋转矩阵,b为加速度计和陀螺仪偏置在初始化期间假定为常数,最后一个参数是从第一个关键帧到最后一个关键帧的按比例缩放的本体速度。加速度计和惯性变量可以堆叠在仅惯性的状态向量:
在这里插入图片描述
左边的表达式代表似然,最右边的表达式代表先验,描述一个MAP估计问题,最大化的后验分布为:
在这里插入图片描述
考虑到测量的独立性,只有惯性的MAP估计问题可以写成:
在这里插入图片描述
协方差矩阵表示关于IMU偏差可能采用的值范围的先验,最终的优化问题:
在这里插入图片描述
更新使用两个角度进行参数化:
在这里插入图片描述
为了保证优化过程中比例因子为正数,将其更新定义为:
在这里插入图片描述
3.视觉惯导的MAP估计:在对惯导和视觉的参数有了很好的估计之后,就可以执行联合视觉惯导优化。

C.跟踪和建图:跟踪解决了简化的视觉惯导优化,其中仅优化最后两帧的状态,而地图点保持固定。建图使用关键帧及其点的滑动窗口作为可优化的变量,还包括从可见关键帧对这些点的观察,但是保持它们的位姿固定。

D.跟踪丢失的鲁棒性
在跟踪的地图点少于15个时,视觉惯性系统进入视觉丢失状态,并在两个阶段实现鲁棒性。
1.短期丢失:根据IMU读数估计当前状态,并将地图点投影到相机位姿中,并在大图像 窗口中搜索匹配项,结果匹配包含在视觉惯导优化中。在大多数情况下允许恢复视觉跟踪,否者五秒之后进入下一个阶段。
2.长期丢失:初始化一个新的视觉惯导地图,成为active地图,如果系统在IMU初始化之后的15秒内丢失,那么地图将会被丢弃,这可以防止累计不准确和无意义的地图。

地图融合和回环检测
提出了一种新的位置识别算法,具有改进的长期和多地图数据关联的召回率。当建图线程创建新的关键帧时,就会启动位置识别,尝试检测与Atlas中已有的任何关键帧的匹配项,如果找到了匹配关键帧属于active地图,则执行回环检测。否则,这是一个多地图数据关联,将active地图和匹配地图合并,一旦估计了新的关键帧和匹配地图之间的相对位姿,就定义一个具有匹配关键帧及其在共视图中相邻的局部窗口,在这个窗口中,集中搜索中期数据关联,提高闭环和地图合并的准确性。

A.位置识别
在DBoW2数据库中查询Atlas中几个相似的关键帧,所有几何验证步骤的基本操作包括使用它们之间的汉明距离阈值检查图像窗口内是否存在其描述符与地图点的 ORB 描述符匹配的 ORB 关键点。如果搜索窗口中有多个候选者,为了丢弃不明确的匹配,检查与第二个最近匹配的距离比。位置识别算法的步骤是:
1.DBoW2 候选关键帧:使用活动关键帧 Ka 查询Atlas DBoW2数据库以检索三个最相似的关键帧,不包括与Ka可见的关键帧,将每个匹配的地点识别候选者称为Km。
2.局部窗口:对于每个Km,定义一个局部窗口,其中包括Km,最佳可见关键帧以及所有这些关键帧所观察到的地图点。DBoW2直接索引提供了Ka中的关键点和局部窗口关键帧中的一组假定匹配。对于这些2D-2D匹配中的每一个,还提供了它们相应地图点之间的3D-3D匹配。
3.3D对齐变换:使用RANSAC计算变换Tam,可以更好的将Km局部窗口中的地图和地图点与Ka的地图点对齐。
4.引导匹配细化:局部窗口中的所有地图点都用Tam进行变换,以找到更多与Ka中的关键点匹配。
5.在三个可见关键帧中进行验证:在地图的活动部分搜索与Ka可见的两个关键帧,其中与局部窗口中的点匹配的数量超过阈值,如果未找到,则使用新传入的关键帧进一步尝试验证,而无需再次触发词袋,验证一直持续到三个关键帧验证Tam,或者两个连续的新关键帧都无法验证它。
6.VI重力方向验证

B.视觉地图融合
当成功的地点识别在active地图中的关键帧与来自存储在Atlas中的不同地图的匹配关键帧之间产生多地图数据关联,使用对齐变换启动地图合并操作。合并分为两个阶段:第一阶段,合并是由共视图中相邻定义的welding窗口中执行的,在第二阶段,通过位姿图优化将校正传播到合并图的其余部分,合并算法的具体步骤为:1.welding窗口集合;2.地图融合;3.welding BA;4.本质图优化。
在这里插入图片描述
C.视觉惯导地图融合:视觉惯性融合算法遵循与纯视觉方法相似,1.VI welding窗口集合,2.VI welding BA。

D.回环检测:闭环校正算法类似于地图合并,但在位置识别匹配的两个关键帧都属于active地图的情况下,welding窗口由匹配的关键帧组装而成,并检测和融合点重复项,从而在共视性和基本图形中创建新链接,下一步是姿态图优化,以将回环校正传播到地图的其余部分,最后一步是在考虑闭环中期和长期匹配后找到MAP估计的全局BA。

实验结果
A.在EuRoC数据集上的Single-session SLAM实验:初始化速度快,精度好。与纯视觉的方案相比,加入惯导不仅提高了准确性,减少了中值ATE误差,还赋予系统出色的鲁棒性,具有更稳定的性能。
表2是其四种传感器配置下与最先进的系统的性能比较。
在这里插入图片描述
图4用颜色显示了在十次执行中的每一次执行中获得的错误,与DSO,ROVIO和VI-DSO比较。
在这里插入图片描述
B.在TUM-VI数据集上的视觉惯导SLAM实验
在单目惯导中提取毎幅图像1500个ORB点,在立体惯导中提取毎幅图像1000个点,在户外的序列中,丢弃建立当前相机位姿超过20米的点。在中小型室内环境,房间和走廊序列中的误差低于10厘米。
表三显示了在TUM-VI数据集上实验的RMS ATE误差,最接近系统性能的是VINS-Mono和BASALT。
在这里插入图片描述
使用的四种传感器配置获得的结果比较如表4所示,与立体视觉相比,纯视觉的精度更高,平均的RMS ATE误差降到1厘米。
在这里插入图片描述
C.Multi-session SLAM
表5显示了三个房间中四种传感器配置的RMS ATE误差,显示了系统地图融合操作的优越性。
在这里插入图片描述
在TUM-VI数据集上进行一些Multi-session实验,图5显示了在数据集上实验的结果,实验表明:在multi-session系统获得比现有视觉惯导里程计系统更好的精度。
在这里插入图片描述
图6进一步说明multi-session系统的优越性。
在这里插入图片描述
D.计算时间
表6总结了在跟踪和映射中执行的主要操作的运行时间,ORB-SLAM3系统能够以每秒30-40帧和3-6个关键帧的速度实时运行。
在这里插入图片描述
表7总结了在闭环和地图融合方面的主要步骤的运行时间,新的地点识别方法每个关键帧只需要10毫秒,融合和回环关闭保持在1秒以内,仅仅运行位姿图优化。
在这里插入图片描述
结论
ORB-SLAM3主要失败案例是低纹理环境,直接法对低纹理环境更加稳健,但仅限于短期和中期数据关联。在匹配特征描述符成功解决了长期和多地图数据关联,但是不如使用光度信息的LK光流法跟踪鲁班。之后的研究方向是开发适用于四个数据关联问题的光度测量技术。
关于不同的传感器配置,立体惯导SLAM提供了最稳健和准确的解决方案。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值