【ORB-SLAM3论文翻译】ORB-SLAM3:一个精确的视觉、视觉惯性和多地图SLAM的开源库(注:带着原文看,很多公式和变量不好输入)
前言(非论文部分)
个人理解+备注:
- 文中的session确实是翻译为“会话”,其实就是多地图,或者多序列,这样理解即可。
我就直接翻译为多段、多地图比较直观理解的名词了。 - 其实ORB-SLAM3中有四种数据关联类型:短期、中期、长期、多地图数据关联。
【2022年4月15日】重新优化地图合并与闭环章节的翻译,可私信互相指教。
摘要
本论文展示了ORB-SLAM3
,第一个可以使用针孔、鱼眼相机运行视觉、视觉惯性和多地图,且支持单目、双目和RGBD相机的SLAM系统。
第一个主要新颖的点是基于特征点高密度融合的视觉惯性导航系统完全依赖于最大后验概率估计,包括在IMU初始化阶段。故,此系统可以鲁棒地实时运行在不同大小的室内外环境下,并且精度与以前的解决方法相比提高了2~10倍。
第二个主要新颖的点是一个依赖于高召回率的位置识别方法的多地图系统。由于这个特点,ORB-SLAM3
可以长时间运行于视觉信息稀少的环境中:在跟踪丢失时,可以重新创建一个新的地图,并且可以在回到已建图区域时与之前创建的地图无缝合并。相比于只利用邻近几秒(地图)信息的视觉里程计(即,纯视觉)系统,ORB-SLAM3
是第一个能在算法的全阶段重新使用之前所有信息的系统。这使得该系统能在进行BA优化共视关键帧时,利用较大视差观测来提高求解的精度,即使这些视差观测间隔的时间较大或者来自于之前已经建立的地图。
经过实验表明,在所有传感器模式下,ORB-SLAM3与文献中所提及的最优SLAM系统一样鲁棒,且有更高的精度。显而易见地,我们的双目惯性SLAM系统在EuRoC数据集中(运行的)平均精度能达到3.5cm,在高速移动手持设备的室内TUM-VI数据集中平均精度能达到9mm,室内TUM-VI数据集是AR/VR经典代表场景之一。为了便于交流和发展,我们公开了源码。
1. 简介
在视觉即时定位与建图系统(VSLAM)和视觉里程计(VO)研究发展中,只使用相机或者与惯性传感器结合使用的方法在过去二十多年里已经有了优秀的(SLAM)系统,具有越来越高的精度和鲁棒性。现代的(SLAM)系统依赖于最大后验概率(MAP)估计,这在视觉传感器中相当于光束法平差(BA),在基于特征的方法中相当于几何BA,即最小重投影误差,在直接法中相当于光度BA,即最小化一组选定像素的光度误差。
最近出现的视觉(VO)系统都融合了闭环技术,VO与SLAM之间的界限变得更加模糊。VSLAM的目标是用在移动端上的传感器去构建环境的地图以及实时计算该移动端在这个环境中的位姿。相反,VO系统将关注点放在了计算移动端自身的位姿上,而不是建图。一张SLAM地图很大的优点就是它允许用先前的观测进行匹配和BA,并执行以下的三种数据关联([1]中使用的术语):
- 短期数据关联,仅和最近几秒内获取的地图元素进行匹配。这是大多数VO系统中唯一的数据关联类型,这种数据关联类型存在一个问题:一旦地图元素离开视觉里程计的视野,这个元素就会被丢弃,即使回到原来的地方,也会造成持续的估计漂移。
- 中期数据关联,匹配离相机较近且累积漂移较小的地图元素。与短期观测相比,这些信息可以加入BA优化,当视觉系统移动至已建图区域时可以实现零漂移。这是该系统与带闭环检测的VO系统相比精度更高的关键。
- 长期数据关联,使用位置识别技术将观测与之前到达过的区域中的元素进行匹配,不管是在闭环检测中产生的累积漂移,还是在跟踪丢失、重定位的情况下,都可以成功匹配。长期匹配允许使用位姿图优化(或者更准确的说,叫BA)来重置漂移和闭环矫正。 这是保证中、大型闭环场景中SLAM精度的关键。
在这项工作中,我们建立在ORB-SLAM和ORB-SLAM Visual-Inertial的基础上,这是第一个能够充分利用短、中、长期数据关联的VO和VIO系统,可以在建图区域中达到零漂移。在此,我们进一步提供了多地图数据关联,它允许我们使用来自之前已经建立的地图区域的地图元素进行匹配和BA优化,实现了一个SLAM系统的真正目的:建立一个地图,并使用它进行精确的定位。
这本质上是一篇(SLAM)系统的论文,其最重要的贡献是ORB-SLAM3库本身,这是至今为止最完整和准确的视觉、视觉惯性和多地图SLAM系统。其主要的创新点是:
- 单目、双目视觉惯性SLAM系统,这个系统完全依赖于最大后验概率(MAP)估计,包括在IMU初始化阶段。该系统的初始化方法在文献[6]中提出。在这里,我们将它(这系统)与ORB-SLAM视觉惯性结合,在公共数据集中进行的彻底评估。我们的结果表明,单目和双目视觉惯性系统是非常鲁棒的,且显著比其他视觉惯性方案更准确,即使是在序列(数据集)没有回环的情况下。
- 改进的召回位置识别技术,很多最近的VSLAM和VO系统用DBoW2词袋技术来解决位置识别问题。DBoW2要求时间一致性,在检查几何一致性之前,将三个连续的关键帧匹配到同一区域内,以牺牲召回率为代价而提高识别精度。结果,使用这种方法的系统在闭环和重用已建图区域方面速度太慢。我们提出了一种新的的位置识别算法,该算法首先检查候选关键帧的几何一致性,然后检查三个可视关键帧的局部一致性,在大多数情况下,这些关键帧已经在地图中。这种策略提高了召回率,增强了数据关联性,提高了建图的精度,但代价是计算的成本稍微提高了一点。
- ORB-SLAM地图集,第一个能够处理单目或者双目VO和VIO系统的完整多地图SLAM系统。该地图集可以表示一组互不关联的地图,并能顺利地运用于所有建图操作:位置识别、相机重定位、闭环和精确的无缝地图合并。这实现了(搭载该系统的移动端)可以自主使用和合并不同时间建立的地图,执行多段增量的SLAM。
- 一种抽象的相机表示形式,使得使用相机模型的SLAM代码具有不可知性,并允许通过投影、非投影和雅克比函数来添加新的模型。我们提供针孔和鱼眼模型来实现。
所有创新点,加上一些代码上的改进,使得ORB-SLAM3成为新的、可供参考的视觉和视觉惯性开放源码SLAM库,与参考文献中最好的系统一样强大,且更加精确,正如我们在第七部分的实验结果所显示的。我们还提供了单目、双目、单目惯性和双目惯性的SLAM结果之间的比较,这可能从业人员所感兴趣的。
2. 相关工作
表Ⅰ列出了最具代表性的视觉和视觉惯性系统的概要,展现了用于估计和数据关联的主要技术。表中定性的准确度和鲁棒性评估是基于第七部分的结果以及[2]中报告的PTAM、LSD-SLAM和ORB-SLAM之间的对比。
A. 视觉SLAM(VSLAM)
单目SLAM(问题)最初在MonoSLAM中使用扩展卡尔曼滤波(EKF)和ShiTomas点来解决,这些点在后续的图像中通过相关性来引导搜索(理解为“特征匹配”),从而进行跟踪。通过使用特征匹配技术,中期数据管理得到显著改善,实现了手持设备的视觉SLAM。
相反,基于关键帧的方法只选用少数特定的帧来估计地图,忽略来自过程帧的信息。这使得在关键帧等级下,可以进行(计算)成本更高但更精确的BA优化。(基于关键帧的方法)最具代表性的系统是PTAM,它将相机跟踪和建图拆分为两个并行的线程。基于关键帧的技术在相同的计算成本下比滤波更精确,该技术成为视觉SLAM和VO的黄金标准。在文献[56]中使用滑动窗口BA实现了大规模单目SLAM,而文献[57]中使用双窗口优化和共视图(covisibility graph)实现了大规模单目SLAM。
基于这些想法,ORB-SLAM使用ORB特征,其描述子提供短期和中期的数据关联,构建共视图来限制跟踪和建图的复杂性,并使用词包库DBoW2执行回环和重定位,实现长期数据关联。(这是)迄今为止唯一融合了三种数据关联的SLAM系统,我们认为(融合三种数据关联类型)是其出色准确性的关键。在这项工作(ORB-SLAM3系统)中,我们利用新的Atlas(多地图)系统提高了它在纯VSLAM中的鲁棒性,该系统在跟踪丢失时开始(创建)一个新的地图,以及利用改进的召回率新位置识别方法提高了它在模糊(复杂)场景中的准确性。
直接法不提取特征,而是直接使用图像中的像素强度,并通过最小化光度误差来估计运动和结构。LSD-SLAM能够利用高梯度像素构建大尺度半稠密地图。然而,地图估计降低到位姿图 (PG)优化层面,获得的精度低于PTAM和ORB-SLAM。混合系统SVO提取FAST特征,采用直接法跟踪特征和任意帧之间非零强度梯度的像素,利用重投影误差优化相机轨迹和三维结构。SVO是一种非常高效的方法,但作为一种纯粹的VO方法,它只进行短期的数据关联,限制了其准确性。直接稀疏里程法 DSO能够在点检测器性能较差(纹理特征较差,提取不到特征点)的情况下计算精确的相机姿态,增强了在低纹理区域或对模糊图像的鲁棒性。它引入了局部光度BA,同时优化了7个近期关键帧的窗口和点的逆深度。这项工作的扩展包括双目、使用特征和DBoW2词袋技术的闭环,以及视觉惯性里程计。直接稀疏建图法DSM在直接法中引入了地图复用的思想,说明了中期数据关联的重要性。在所有情况下,由于缺乏短期、中期和长期数据关联的集成,导致准确性低于我们的建议(见第7节)。
B. 视觉惯性SLAM
在较差的纹理、运动模糊和闭塞(的环境)中,视觉和惯性传感器的结合(为系统)提供了鲁棒性,并且在单目系统的情况下,使尺度可观测。
紧密耦合方法的研究可以追溯到MSCKF,其中通过特征边缘化避免了EKF在特征数量上的二次代价。初始系统在文献[34]中完善,在文献[35]、[36]中扩展到双目视觉。第一个基于关键帧和光束法平差(BA)的紧密耦合视觉里程车测量系统是OKVIS,它也能够使用单目和双目视觉。虽然这些系统依赖于特征,但ROVIO使用直接数据关联提供了带有光度误差的EFK。
ORB-SLAM-VI首次提出了一种能够复用具有短期、中期和长期数据关联地图的视觉惯性SLAM系统,将其用于基于IMU预积分的精确局部视觉惯性BA中。然而,其IMU初始化技术太慢,耗时15秒,影响了(系统的)鲁棒性和准确性。文献[62],[63]中提出了更快的IMU初始化技术,基于一个封闭的解来联合检索尺度、重力、加速度计偏差和初始速度和带有深度信息的视觉特征。至关重要的是,他们忽略了IMU的噪声特性,最小化了空间点的3D误差,而不是它们的重投影误差,(重投影误差)这是基于特征的计算机视觉的黄金标准。我们以前的工作表明,这将导致巨大的不可预测的错误。
VINS-Mono是一个非常精确和鲁棒的单目惯性里程计系统,闭环使用DBoW2和4自由度姿态图优化,以及地图合并。特征跟踪使用Lucas-Kanade跟踪器,比描述子匹配略稳定一些。在VINS-Fusion中,它已扩展到双目和双目惯性系统中。
VI-DSO将DSO扩展到视觉惯性里程计,提出了一种光束平差法,将惯性观测与选定的高梯度像素的光度误差相结合,从而实现非常高的精度。随着高梯度像素信息的成功利用,提高了纹理较差的场景区域的鲁棒性。他们的初始化方法依赖于视觉惯性BA,在20-30秒内收敛在1%的尺度误差内。
最新的BASALT是一个双目惯性里程计系统,从视觉惯性里程计中提取非线性因素,将它们用于BA,并闭合匹配的ORB特征,达到非常高的精确度。Kimera是一种新颖出色的可度量语义建图系统,但它的度量部分由带DBoW2位姿图优化的双目惯性里程计加回环和位姿图优化组成,实现了与VINS-Fusion相似的精度。
在本工作中,我们建立了ORB-SLAM-VI,并将其扩展到双目惯性SLAM。我们提出了一种基于最大后验概率(MAP)估计的快速初始化方法,该方法适当地考虑了视觉和惯性传感器的不确定性,在2秒内以5%的误差估计真实尺度,在15秒内收敛到1%的尺度误差。上面讨论的所有其他系统都是视觉-惯性里程计方法,其中一些扩展了闭环功能,且需要使用中期数据关联的能力。我们相信,这一点(应该是指:使用中期数据关联类型的能力),加上快速和精确的初始化,是我们的系统始终获得更高的精度的关键,即使在没有闭环序列的情况下。
C. 多地图SLAM
在滤波的方法中,文献[65]首次提出了通过地图创建和融合来增加跟踪损失的鲁棒性的想法。第一个基于关键帧的多地图系统是[66],但地图初始化是手动的,系统不能合并或关联不同的子地图。多地图功能是作为协同建图系统的一个组成部分而进行研究的,它具有多个建图代理和一个只接收信息的中心服务器,或者具有双向信息流,如C2TAM。MOARSLAM为协作式多设备SLAM提出了一种鲁棒的无状态客户机-服务器体系结构,但主要关注的是软件体系结构,没有报告准确性的结果。
最近,CCM-SLAM提出了一种基于ORB-SLAM的多无人机双向信息流分布式多地图系统。他们的重点是克服有限带宽和分布式处理的挑战,而我们的重点是准确性和鲁棒性,实现在EuRoC数据集上取得显著更好的结果。SLAMM也提出了ORB-SLAM2的多地图扩展,但保持子地图作为分离的实体,而我们进行无缝地图合并,构建更精确的全局地图。
VINS-Mono是一个视觉里程计系统,具有闭环和多地图功能,依赖于位置识别库DBoW2。我们的实验表明,由于能够使用中期数据关联,在EuRoc数据集上的单目惯性单地图操作中,ORB-SLAM3的精度是VINS-Mono的2.6倍。我们的Atlas系统也建立在DBoW2的基础上,但提出了一种新的高召回率的位置识别技术,并使用本地BA进行更详细和准确的地图合并,在EuRoC上的多段(地图)实验中,比VINS-Mono的准确率提高了3.2倍。
3. 系统概述
ORB-SLAM3是在ORB-SLAM2和ORBSLAM-VI上构建的。它是一个完整的多地图和多段(multi-session)系统,能够在纯视觉或视觉惯性模式下使用单、双目或RGB-D传感器,使用针孔和鱼眼相机模型。图1显示了主要的系统组件,它们与ORB-SLAM2的组件进行对标,具有一些明显的新颖之处,下面将对其进行总结:
- Atlas(多地图集)是由一组互不相连的地图组成的多地图集合。有一个活跃的地图,在这个地图中,跟踪线程定位传入的帧,并由本地建图线程不断优化和使用新产生的关键帧。我们将Atlas中的其他地图称为非活跃地图。该系统建立了一个独特的关键帧DBoW2数据库,用于重定位、闭环和地图合并。
- Tracking(跟踪)线程处理传感器信息,实时计算当前帧相对于活动地图的位姿,使匹配地图特征的重投影误差最小化。它还决定当前帧是否成为关键帧。在视觉-惯性模式下,**通过在优化过程中考虑惯性残差来估计物体的速度和IMU偏差。当跟踪丢失时,跟踪线程尝试在所有Atlas的地图中重新定位当前帧。**如果实现了重定位,则将继续跟踪,并在需要时更换活跃地图(按对于全文的理解是:将当前跟踪丢失所在的地图更换为重定位到当前帧的地图)。否则,一段时间后,活跃地图将被存储为非活跃地图,并重新创建一个新的活跃地图。
- Local mapping(局部建图)线程添加关键帧和地图点到活跃地图,删除冗余的关键帧和地图点,并使用视觉或视觉惯性BA优化地图,操作关键帧的本地窗口接近当前帧。此外,在惯性情况下,通过使用建图线程运用我们的新MAP估计技术实现IMU参数的初始化和精细化。
- Loop and map merging(回环和地图融合)线程以关键帧等级检测活跃地图和整个Atlas之间的公共区域。如果公共区域属于活跃地图,则执行回环矫正;如果公共区域属于不同的地图,两个地图就会无缝地合并成一个单独的地图,这就成为活跃地图。在闭环矫正后,全局BA将在一个独立的线程中启动,在不影响实时性能的情况下进一步完善地图。
4. 相机模型
ORB-SLAM假设所有系统组件都是针孔摄像机模型。我们的目标是通过将所有与相机模型相关的属性和函数(投影和非投影函数、雅可比矩阵等)提取到单独的模块中,从整个SLAM管道中抽象出相机模型。这允许我们的系统通过提供相应的相机模块来使用任何相机模型。在ORB-SLAM3库中,除了针孔模型外,我们还提供了Kannala-Brandt鱼眼模型。
由于大多数流行的计算机视觉算法采用针孔摄像机模型,许多SLAM系统要么对整个图像进行校正,要么对特征坐标进行校正,以在理想的平面视网膜(可理解为:成像平面)上工作。然而,这种方法对于鱼眼镜头是有问题的,因为鱼眼镜头可以达到或超过180度的视场(FOV)。由于边缘物体放大,中心物体分辨率较低,影响特征匹配,不能进行图像校正。特征坐标的校正需要使用小于180°的视场,这给许多计算机视觉算法带来了麻烦,这些算法假设沿图像的均匀重投影误差,而在校正鱼眼图像中,这远远不是真实的(误差)。这迫使裁剪图像的外缘的部分,失去了大视场的优势:更快的环境建图和更好的遮挡鲁棒性。接下来,我们讨论如何克服这些困难。
A. 重定位
一个健壮鲁棒的SLAM系统需要在跟踪失败时重新定位相机的能力。ORB-SLAM通过设置一个基于ePnP算法的Perspective-n-Points求解器来解决重定位问题,该算法假设在其所有公式中都有一个校准的针孔摄像机。为了接着我们的方法,我们需要一个独立于所使用的相机模型的PnP算法。为此,我们采用了最大似然Perspective-n-Points算法(MLPnP),该算法完全与相机模型解耦,因为它使用射影光线作为输入。相机模型只需要提供一个从像素到投影射线的非投影,就可以使用重新定位。
B. 无矫正的双目SLAM
大多数双目SLAM系统假定双目框架是被矫正过的,即图像都转化为使用相同焦距的针孔预测,图像平面共面,并与水平极线对齐,这样一个图像中的特征可以通过查看另一个图像中同一行(中的特征)而轻松地实现匹配。然而,矫正双目图像的假设非常有限,在许多应用中既不合适也不可行。例如,矫正发散的双目图像对或双目鱼眼相机需要严重的图像裁剪,从而失去大视场的优势。
因此,我们的系统不依赖图像矫正,将双目装置视为两个单目相机,具有:
1)它们之间的恒定相对SE(3)
变换,
以及
2)可选地观察场景相同部分的公共图像区域。
这些约束允许我们在三角化新地标和光束法平差优化时,通过引入这些信息来有效地估计地图的比例。根据这一想法,我们的SLAM系统估计6自由度刚体姿态,其参考系可以位于其中任意一个相机或IMU传感器中,并表示相机相对于刚体姿态的位姿。
如果两台相机都有一个重叠区域,我们可以在第一次看到真实比例的地标时对其进行三角化。这两幅图像的其余部分仍然有很多相关信息,在SLAM系统中用作单目信息。首先在这些区域中看到的特征是从多个视图进行三角化的得到的,如同使用单目相机的情况。
5. 视觉惯性SLAM(重点)
ORB-SLAM-VI是第一个能够重用地图的真正视觉惯性SLAM系统。然而,它仅限于针孔单目相机,初始化速度太慢,在一些具有挑战性的场景中失败。在这项工作中,我们以ORB-SLAM-VI为基础,提供了一种快速、准确的IMU初始化技术,以及一个开源的SLAM库,能够使用针孔、鱼眼相机进行单目惯性和双目惯性SLAM。
A. 基本原理
在纯视觉SLAM中,估计状态只包括当前相机姿态,在视觉惯性SLAM中,需要计算其它变量。这些(其它变量)是指:主体的位姿Ti = [Ri,pi]∈SE(3)和在世界坐标系下的速度vi,以及陀螺仪和加速计偏差,bg和ba,假设它们按照布朗运动演化,这将使状态向量:
对于视觉惯性SLAM,我们在连续的视觉帧 i 和 i +1之间对IMU的测量值进行预积分,遵循文献[60]中发展的理论,并在[61]中的流形(manifolds,这个词不知道怎么翻译比较准确)上进行公式化。我们得到预积分的旋转,速度和位置测量值(平移量),以及整个测量值向量的协方差矩阵。给定这些预积分项和状态Si和Si+1,我们采用文献[61]中惯性残余量的定义:
其中Log:SO(3)→R3(这个是三维列向量,打不出来,凑合看一下吧,下同)表示从李群到向量空间(李代数)的映射。再加上惯性残差,我们也使用位置xj处相机帧i与三维地图点j的重投影误差值:
其中∏:R3→Rn是指相应相机模型的重投影方程,uij是指在图像i上的点j的观测,还有一个协方差矩阵,从矫正中可知,TCB∈SE(3)表示从主体-IMU到相机(左或右,应该指的是其一)的刚性变换,且⊕是李群SE(3)到三维空间上的变换运算。
结合惯性和视觉残差项,视觉惯性SLAM可以作为基于关键帧的最小化问题。给定一组k+1关键帧和它们的状态值:
并且给定一组l的三维点和它们的状态值:
视觉惯性最优化(最小化残差)问题可以表示为:
其中,Kj是指观测到三维点j的一组关键帧。这种优化可以用图2a 所示的因子图来概括。注意,对于重投影误差,我们使用了鲁棒核函数 ρHub 来降低虚假(错误)匹配的影响,而对于惯性残差,则不需要这样做,因为错误跟踪并不存在。这种优化需要在跟踪和制图过程中适应效率,但更重要的是,它需要良好的初始种子(初始值)收敛到精确的解决方案。
图2:系统中,不同优化方式的因子图
B. IMU 初始化
这一步的目的是为惯性变量获得良好的初始值:主体速度、重力方向和IMU偏差。像VI-DSO这样的系统尝试从零开始解决视觉惯性BA,避开特定的初始化过程,获得惯性参数的缓慢收敛(长达30秒)。
在这项工作中,我们基于以下三个关键的观点,提出了一个快速和准确的初始化方法:
- 纯粹的单目SLAM可以提供非常精确的初始地图,其主要问题是未知尺度。首先解决视觉问题将提升IMU的初始化。
- 从文献[56]所知,当尺度(scale)被显式地表达成一个优化变量时,而不是使用隐式的BA表述时,尺度会收敛得更快。
- 在IMU初始化过程中,忽略传感器的不确定性会产生庞大且不可预知的误差。
因此,正确地考虑到传感器的不确定性,我们将IMU的初始化定义为一个最大后验概率估计问题,分为三个步骤:
1)纯视觉最大后验概率估计:我们初始化纯单目视觉并在2秒内运行它,在4Hz时插入关键帧。在这段时间后,我们得到一个由 k = 10个相机的姿态和数百个点组成的高比例地图,该地图使用纯视觉BA进行优化(图2b)。这些位姿转换到主体坐标系下,得到轨迹,其中杆表示单目情况下的最大尺度变量。
2)纯惯性最大后验概率估计:在这一步,我们的目标是获得惯性变量的最佳估计值。在最大后验概率估计中,只使用0-k关键帧单目最大尺度变量下的位姿T和这些关键帧之间的惯性测量值。将它们与纯惯性状态矢量叠加:
其中,s是初始视觉求解的尺度因子;Rwg是旋转矩阵,用来计算在世界参考坐标系下的重力矢量g,G是重力大小;b是加速度计和陀螺仪的偏移,它们在初始化过程中被认为是恒定的;v0:k是从第一个关键帧到最后一个关键帧的最大主体速度,初始估计是从T0:k开始。此时,我们只考虑惯性测量值的集合:
因此,我们可以声明一个最大后验概率估计问题,其中最大化的后验概率是:
其中,右边两个分别表示在*Yk下发生这些惯性观测值的概率、发生Yk*状态的概率,最大后验概率与它们的乘积成正比。考虑到测量值的独立性,惯性最大后验概率估计问题可以写成:
取负对数,并假设IMU预积分和先验分布的高斯误差,这最终产生最优化问题:
这种优化的表现形式在图2c,不同于等式(4)的点在于没有加入视觉残差,因为在最大尺度的轨迹估计的VSLAM中(视觉残差)被视为常数,且由IMU偏差给出先验残差rp应该趋近于0。协方差矩阵∑b代表关于先验IMU偏差可能采取的取值范围。关于IMU协方差预积分的详细信息可以在文献[61]中找到。
当我们在一个优化的流形,我们需要定义一个回缩以更新在优化期间Rwg。因为围绕重力方向的自转并没有假设重力的变化,这个更新是以两个角度参数化的(δαg,δβg) :
Exp(.)表示李代数R3到李群SO(3)的指数映射。为了保证尺度因子在优化过程中保持正值,我们将其更新定义为:
一旦惯性优化完成,框架姿态、速度和三维地图点与估计的比例因子进行比例缩放和旋转,以调整 z 轴与估计的重力方向。更新偏差和重复IMU预积分,以减少未来的线性化误差。
3)视觉惯性最大后验概率估计:
一旦我们有了一个良好估计的惯性和视觉参数,我们可以执行联合视觉惯性的优化,进一步精炼解决方案。这种优化可以表示为图2a,对于所有关键帧具有共同的偏置,且包含与纯惯性步骤相同的先验信息。
我们在 Euroc 数据集上的详尽初始化实验表明,这个初始化是非常有效的,在2秒的轨迹中实现了5% 的尺度缩放误差。为了改进初始估计值,在初始化后5秒和15秒进行视觉惯性 BA,使尺度误差收敛到1% ,如第七节所示。在这些BA优化之后,我们认为地图是成熟的,这意味着尺度,IMU参数和重力方向已经被精确估计。
我们的初始化比联合初始化方法要精确得多,联合初始化方法解决一组代数方程;比ORB-SLAM-VI中的初始化要快得多,其需要15秒才能得到第一个尺度估计值,或者VI-DSO中的初始化需要20-30秒才能收敛到1% 的误差。不同的初始化方法之间的比较可以在[6]中找到。
在某些特定情况下,当慢动作不能提供良好的惯性参数观测性时,初始化可能会在15秒内难以收敛到精确的结果。为了有足够的鲁棒性去应对这种情况,我们提出了一种新的尺度精细化(优化)策略,这基于一个改进的纯惯性优化,包括所有插入的关键帧,但只有尺度和重力方向将被作为估计(或,优化)参数(图2d)。请注意,在这种情况下,偏移常量的假设是不正确的。取而代之的是,我们使用从地图上估计出来的值,然后修正它们。这种优化计算效率非常高,每10秒在局部建图线程中执行一次,直到地图有超过100个关键帧,或者从初始化到现在已经超过75秒。
最后,我们将单目惯性初始化方法简单地扩展到双目惯性初始化方法,将尺度因子固定为1,并从纯惯性优化变量中剔除它,增强了尺度估计值的收敛性。
C. 跟踪和建图
我们采用文献[4]所建议的方案进行跟踪和建图。跟踪解决了一个简化的视觉惯性优化,其中只有最后两帧的状态被优化,而地图点保持不变。
对于建图,尝试从方程(4)解决大型场景地图的整个优化问题是非常困难的。我们使用一个滑动窗口的关键帧及其地图点作为优化变量,包括其共视的关键帧,但保持它们的位姿固定。
D. 对跟踪丢失的鲁棒性
在纯视觉SLAM或视觉里程计系统中,暂时性的相机遮挡和快速运动会导致视觉元素的丢失,使系统(跟踪)丢失。ORB-SLAM 首创了基于词包位置识别的快速重定位技术,但是这些技术不足以解决 Euroc 数据集中的困难序列。当跟踪到少于15个地图点时,我们的视觉惯性系统就会进入视觉丢失状态时,此时系统将在两个阶段中提高鲁棒性:
- 短期丢失:当前的主体的状态是根据IMU读数估计得到的,地图点被投影在估计的相机位姿中,并在一个大的图像窗口中搜索匹配点。匹配结果包含在视觉惯性优化中。在大多数情况下,这样是可以恢复视觉跟踪的。否则5秒钟后,我们就进入下一阶段。
- 长期丢失:重新创建一个新的视觉惯性地图,并将它作为活跃地图。
如果系统在IMU初始化后15秒内丢失,地图将被丢弃。这样可以防止积累不准确和无意义的地图。
6. 地图合并与闭环
跟踪和建图线程通过将地图点投影到估计的相机位姿中,并在仅有少数像素的图像窗口中进行搜索匹配,这样通常可以找到图像帧和活跃地图之间的短期和中期数据关联。为了实现重定位和闭环检测的长期数据关联,ORB-SLAM使用DBoW2单词袋位置识别系统。这种方法也被最新的VO和SLAM系统采用,这些系统实现了闭环(表1)。
与跟踪不同,位置识别并不是从相机位姿的初始估计开始的。相反,DBoW2使用关键帧的词包矢量构建了一个关键帧数据库,并且给定一个查询图像(块),这能够根据它们的词包有效地提供最相似的关键帧。仅使用第一个候选项,原始DBoW2查询就可以实现50-80%的精度和召回率。为了避免误报损坏地图,DBoW2实施了时间和几何一致性检查,将工作点移动到100%精度和30-40%召回率。关键的是,时间一致性检查至少在3个关键帧期间延迟位置识别。当我们尝试在Atlas系统中使用它时,我们发现这种延迟和低召回率导致在相同或不同的地图中经常出现重复区域。
在这项工作(ORB-SLAM3)中,我们提出了一种新的位置识别算法,改进召回长期和多地图数据关联。每当建图线程创建新的关键帧时,就会启动位置识别,尝试检测与Atlas中已存在的任何关键帧的匹配。如果找到的匹配关键帧属于活跃地图,则执行闭环。否则,它仅是一个多地图数据关联,然后将活跃地图和匹配地图合并。作为我们方法中的第二个新颖之处,一旦估计了新关键帧和匹配地图之间的相对位姿,我们定义了一个局部窗口,其中包含匹配关键帧及其在共视图中的相邻关键帧。在这个窗口中,我们集中搜索中期数据关联,提高闭环和地图合并的准确性。这两个新特性解释了,在EuRoC实验中,ORB-SLAM3比ORB-SLAM2获得更好的精度。下面将解释不同操作的细节。
A 位置识别
为了获得更高的召回率,对于每个新的活动关键帧,我们在DBoW2数据库中查询Atlas中的几个类似关键帧。为了达到100%的精度,每个候选关键帧都要经过几个几何验证步骤。所有几何验证步骤的基本操作包括:检查图像窗口内是否存在与地图点的映射后ORB描述子相匹配的ORB特征点,使用描述子判断他们之间的汉明距离阈值。如果搜索窗口中有多个候选项,为了放弃不明确的匹配项,我们检查与第二个最接近匹配项的距离比。我们位置识别算法的步骤如下:
1)DBoW2候选关键帧。我们使用活动关键帧(被检测关键帧)Ka检索地图集DBoW2数据库中三个最相似的关键帧,排除与Ka(相连)共视的关键帧。我们将位置识别到的每个匹配的候选关键帧记为Km。
2)局部窗口。对于每个Km,我们定义一个局部窗口,这里面包括了Km,其最佳共视关键帧以及所有这些关键帧所能观测到的地图点。DBoW2直接索引提供了一组Ka中的特征点与局部窗口关键帧之间的假定匹配。对于每一个2D-2D匹配,我们还提供了它们相应地图点之间的3D-3D匹配。
【简而言之,对于Km上的局部窗口,通过DBow词袋,得到了一组Ka中的特征点与局部窗口关键帧(上的特征点)之间的假定匹配。】
3)三维对齐变换。我们使用RANSAC计算变换矩阵Tam,它可以更好地将局部窗口中的地图点与Ka中的地图点对齐。
在纯单目或单目惯性中,当地图还未成熟时,我们计算Tam∈Sim(3),或者Tam∈SE(3)。在这两种情况下,我们使用Horn算法,使用三对3D-3D匹配的最小集合来找到Tam的每个假设。某个假设中,在将地图点通过Tam变换到Ka后,若能够实现在Ka中重投影误差低于某一阈值,则给假设投赞成票。如果票数超过阈值的前提下,则选择票数较多的假设。
4)引导匹配优化。使用Tam对局部窗口中的所有地图点进行位姿变换,以找到更多与Ka中特征点相匹配的。搜索也会反向进行,在局部窗口的所有关键帧中查找与Ka匹配的地图点。利用找到的所有匹配,通过非线性优化对Tam进行细化,其中目标函数为双向重投影误差,使用Huber影响函数保证对伪匹配的鲁棒性。如果优化后的内点(inliner)数量超过阈值,则使用较小的图像搜索窗口进行引导匹配和非线性优化的第二次迭代。
【简而言之,将Km局部窗口中的地图点,投影到Ka中进行匹配,寻找更多与Ka特征点匹配的Km地图点,这个记为正向;当然也会进行反向,即把Ka中的地图点与Km中的关键帧进行投影匹配。找到所有匹配后,对Tam进行优化。】
5)在三个共视关键帧中验证。为了避免误匹配,DBoW2在三个连续的关键帧中等待位置识别触发,以延迟或丢失位置识别。我们重要的观点是,大多数时候,验证所需的信息已经在地图上。为了验证位置识别,ORBSLAM3系统在活跃地图中搜索两个Ka的共视关键帧(以满足连续三个的要求),其中与局部窗口中的地图点匹配的数量超过阈值。如果未找到这些关键帧,则将使用新传入的关键帧进一步尝试验证,而无需再次触发词袋模型。验证将继续,直到三个关键帧验证Tam,或两个连续的新关键帧无法验证Tam为止。
【简而言之:连续三次及以上检测到连续,即相互之间有公共区域,才会认为是“位置识别”成功】
6)VI系统重力方向验证。在视觉惯性(地图尺度恢复成功,即VI模式)的情况下,如果活动地图是成熟的,则我们估计Tam∈SE(3)。我们进一步检查俯仰角(pitch)和翻滚角(roll)是否低于阈值,以确定是否接受位置识别的假设。
B. (纯)视觉地图合并
当位置识别成功后,在活动地图Ma的关键帧Ka和地图集(非活跃地图)Mm中不同地图存储的匹配关键帧Km之间产生多地图数据关联时,使用对齐变换Tam进行地图合并操作。在此过程中,必须特别注意确保跟踪线程可以及时重用Mm中的信息,以避免地图冗余。为此,我们提出将Ma地图引入Mm参考坐标系。由于Ma地图包含许多元素,合并它们可能需要很长时间,故合并分为两个步骤。
首先,在共视图,在Ka和Km的邻域中定义的缝合窗口里执行合并;在第二阶段,通过位姿图优化将矫正量传播到其余的合并地图中。
合并算法的详细步骤如下:
1)融合窗口集合。将Ka及其共视关键帧、Km及其共视关键帧,以及它们观察到的所有地图点组合成一个局部地图,即融合窗口。在将关键帧和地图点包含在融合窗口中之前,通过Tma变换这些属于Ma的关键帧和地图点,使它们与Mm对齐。
2)合并地图。地图Ma和地图Mm融合在一起,成为新的活动地图。为删除重复的点,在 Mm 关键帧中主动搜索 Ma 中的地图点。对于每组匹配,从Ma中删除(与Mm关键帧匹配的)地图点,并在 Mm 中的点不断累积(是否理解为“更新”好一点)被删除地图点的所有观测。共视图和本质图通过添加将Mm和Ma中的关键帧连接到新发现的中期点关联的边来更新(简而言之,将重复点进行删除,但保留被删除点的共视关系)。
3)融合BA。执行局部BA,优化融合窗口中Ma和Mm的所有关键帧以及它们所观测到的地图点(图3a)。为了保证固定测量自由度(尺度一致性),BA中包含不属于融合窗口但能观测到任何局部地图点的Mm关键帧(就是所有有共视关系的关键帧),使其保持固定。优化完成后,融合区域中包含的所有关键帧都可以用于相机跟踪,从而实现Mm地图的快速准确重用。
下图为视觉融合BA的因子图表示:具有重投影误差项(蓝色)
4)本质图优化。保持融合区域中的关键帧固定,使用整个合并地图的本质图执行位姿图的优化。此优化将矫正从融合窗口传播到地图的其余部分。
C. 视觉惯性地图合并
视觉惯性合并算法遵循与纯视觉情况类似的步骤。修改步骤1)和3)以更好地利用惯导信息:
1)VI系统融合窗口集合:如果活动地图成熟,我们将应用有效的Tma∈SE(3)于地图Ma,然后将其(地图Ma)包含在融合窗口中。
如果活跃地图并未成熟,我们将使用有效的Tma∈Sim(3)与地图Ma进行对齐。
2)VI融合BA:关键帧Ka和Km及它们最后5个关键帧的位姿、速度和偏移都是可优化的。
这些变量由IMU预积分项关联,如图3b所示。对于地图Mm,包含但固定了紧靠在局部窗口之前的关键帧;而对于地图Ma,包含与Mm相似的关键帧,但其位姿是可优化的。上述关键帧观测到的所有地图点,以及Km和Ka的共视关键帧(观测到这些地图点的关键帧)的位姿都经过了优化。
所有关键帧和地图点都通过重投影误差进行关联的。
下图为VI融合BA的因子图:具有重投影误差项(蓝色)、IMU预积分项(黄色)和偏差随机游走(紫色).
D. 闭环
循环闭合校正算法类似于地图合并,但在位置识别匹配的两个关键帧都属于活动地图。匹配的关键帧组成融合窗口,检测并融合重复点,并在共视图和本质图中创建新的连接。下一步是位姿图优化,将闭环校正传播到地图的其余部分。最后一步是全局BA,在结合闭环的中、长期匹配后,找到最大后验概率估计值。在视觉惯性的情况下,全局BA只在关键帧数低于阈值时执行,以避免巨大的计算成本。
7. 实验结果
整个系统的评估分为:
- EuRoC中的单段(地图)实验:通过四种传感器配置:单目、单目、双目立体和双目立体惯性,对11个序列中的每一个进行处理,生成一张地图。
- 在具有挑战性的TUM VI标准测试中,测试使用鱼眼相机的单目和双目立体视觉惯性SLAM的性能。
- 在两个数据集都进行多段(地图)实验。
如本领域中的通常情况,我们使用RMS ATE测量精度,在纯单目情况下使用Sim(3)变换,在其余传感器配置中使用SE(3)变换,将估计轨迹与地面真实值对齐。尺度误差使用Sim(3)校准计算,如 | 1−s | 。所有实验都是在英特尔核心i7-7700处理器,3.6GHz,32 GB内存(的系统)上运行的,仅使用CPU。
A. 在EuRoC中的单段(地图)SLAM
表二比较了ORB-SLAM3使用四种传感器配置与最先进的相关系统的性能。我们报告的数值是10次实验后的中值。如表所示,ORB-SLAM3在所有传感器配置中都比文献中提供的最佳系统获得更准确的结果,在大多数情况下相差很大。
在单目和双目立体配置中,**我们的系统比ORB-SLAM2更精确,因为更好的位置识别算法可以更早地实现闭环,并提供更多的中期匹配。**有趣的是,第二个最好的结果是DSM获得的,它也使用中期匹配,即使它不关闭循环。
在单目惯性配置中,ORB-SLAM3的精度是MCSKF、OKVIS和ROVIO的五到十倍,并且将VI-DSO和VINSMono的精确度提高了一倍多,再次显示了中长期数据关联的优势。与ORB-SLAM VI相比,我们新颖的快速IMU初始化使ORB-SLAM3在几秒钟内校准惯性传感器,并从一开始就使用它,能够完成所有EuRoC序列,并获得更好的精度。
在双目立体惯性配置中,ORB-SLAM3的精度是和Kimera及VINS-Fusion的三到四倍。它的精度只有最近的BASALT才能达到,因为它是一个本地立体惯性系统,无法完成序列V203,其中一个相机的一些帧丢失。我们的单目惯性系统和双目立体惯性系统相比而言,双目立体惯性配置在大多数情况下性能更好。只有两个机器围墙(MH)序列的精度较低。我们猜想是因为:MH序列的景深越深,立体三角测量的精度可能会越低,因此尺度的精度也会越低。
为了总结性能,我们给出了每个传感器配置的10次实验的中位数。对于一个稳健的系统,中值准确地表示系统的性能。但是,非鲁棒系统的结果会表现出很大的差异。这可以使用图4进行分析,图4用颜色显示了在10次执行中每次获得的误差。与[46]中公布的DSO、ROVIO和VI-DSO的数字进行比较,证实了我们方法的优越性。
在纯视觉配置中,多地图系统通过在跟踪丢失时创建新地图(稍后与全局地图合并),为快速运动增加了一些鲁棒性。这可以在V103单目序列和V203双目序列中看到,ORB-SLAM2无法解决这一问题。我们的系统在大多数实验中都成功地解决了这一问题。正如预期的那样,由于其更快的功能初始化,双目比单目更健壮,并且具有估计真实比例的额外优势。
然而,我们的新型视觉惯性SLAM系统在单目和双目配置下都在鲁棒性上实现了飞跃。双目惯性系统与单目惯性系统相比具有非常微小的优势,尤其是在最具挑战性的V203序列中。
我们可以得出这样的结论:与纯视觉解决方案相比,惯性融合不仅提高了精度,降低了平均ATE误差,而且还赋予了系统极好的鲁棒性,具有更稳定的性能。
B. 在TUM-VI上视觉惯性SLAM
TUM-VI数据集由6种不同环境中的28个序列组成,使用手持式鱼眼立体惯性装置记录。轨迹的地面真值仅在序列的开始和结束时可用,对于大多数序列来说,这代表了整个轨迹的一小部分。数据集中的许多序列不包含循环。即使起点和终点在同一房间内,视点方向也是相反的,位置识别也无法检测到任何公共区域。使用该地面真实值进行评估相当于测量沿整个轨迹的累积漂移。
在应用CLAHE均衡来解决数据集中发现的曝光不足和曝光过度问题后,我们在单目惯性配置的每张图像帧中提取1500个ORB特征点,在双目惯性配置的每张图像帧中提取1000个ORB点。对于户外序列,我们的系统与来自多云天空中非常远的点进行斗争,这在鱼眼相机中非常明显。这些点可能具有慢运动,这可能会在相机姿势中引入漂移。为了防止出现这种情况,我们将丢弃距离当前相机姿势20米以外的点,仅用于室外序列。一个更复杂的解决方案是使用图像分割算法来检测和丢弃天空。
所得结果与表III中文献中最相关的系统进行了比较,这清楚地显示了ORB-SLAM3在单目惯性和双目立体惯性的优势。最接近的系统是VINS Mono和BASALT,它们基本上是带环路闭合的视觉惯性里程计系统,并且缺少中期数据关联。
更详细地分析我们系统的性能,它在中小型室内环境、房间和走廊中的误差最小,大多数误差小于10厘米。在这些轨迹中,系统不断地重新访问和重用先前已建的区域,这是ORB-SLAM3的主要优势之一。此外,被跟踪的点通常在5m范围内,这使得惯性参数更容易估计,防止它们发散。
在长达900米的MAGISTRALE INDORS序列中,大多数追踪点相对较近,ORB-SLAM3获得的误差约为1米,只有一个层序接近5米。相比之下,在一些户外序列中,缺少近距离视觉特征可能会导致惯性参数漂移,尤其是尺度和加速计偏差,从而导致10到70米的误差。尽管如此,ORB-SLAM3是室外序列中性能最好的系统。
该数据集还包含三个真正具有挑战性的片序列,使用者在几乎完全缺乏视觉特征的黑暗管状幻灯片中下降。在这种情况下,一个纯粹的视觉系统将丢失,但我们的视觉惯性系统能够处理整个序列,即使无法检测到回路闭合,也会产生竞争性错误。有趣的是,VINS-Mono和BASALT使用lukas - kanade跟踪特征,在某些序列中获得了比ORB- slam3更好的准确性,这与ORB描述子相匹配。
最后,Room 序列可以代表典型的AR/VR应用,其中用户在小型环境中使用手持式或头戴式设备移动。对于这些序列,整个轨迹都有地面真实值。表三显示,ORB-SLAM3比其他方法准确得多。使用我们的四个传感器配置获得的结果在表IV中进行了比较。与双目相比,纯单目视觉的精度只是表面上更高:单目视觉解决方案达到了最优解,并以7个自由度与地面真实度对齐,而双目视觉提供了真实尺度,并以6个自由度对齐。使用单目惯性,我们进一步将平均RMS ATE误差减小到1厘米,也得到了真实的尺度。最后,我们的双目惯性SLAM带来的误差低于1cm,使其成为AR/VR应用的最佳选择。
C. 多段(地图)SLAM
EuRoC数据集包含三种环境,每种环境中的都包含几段(地图):5个在机房,3个在Vicon1,3个在Vicon2。为了测试ORB-SLAM3的多段(地图)性能,我们按顺序执行每个环境对应的所有地图。同一环境中的每条轨迹都具有相同世界参考的地面真值,这允许执行单个全局对齐以计算ATE。
每个房间中的第一个序列提供了一个初始地图。处理接下来的序列首先要创建一个新的活动地图,该地图将与以前建立的地图快速合并,从此刻开始,ORB-SLAM3将从重用以前的地图中获益。
表V表明了三个房间中四个传感器配置的全局多段(地图)RMS ATE,与EuRoC数据集中仅公布的两个多段(地图)结果进行了比较:CCM-SLAM报告了MH01-MH03中的纯单目结果,VINS Mono报告了五个机房序列中的单目惯性。在这两种情况下,ORBSLAM3比其他方法的准确度提高了一倍以上。对于VIN Mono,ORB-SLAM3在单个地图场景中的准确度提高了2.6倍,在多场景中的优势提高到了3倍,显示了我们地图合并操作的优越性。
将这些多段(地图)性能与表II中报告的单地图结果进行比较,最显著的区别在于:由于利用了之前的地图,多地图单目和双目立体SLAM可以稳健地处理困难序列V103和V203。
我们还在TUM-VI数据集上进行了一些多段(地图)实验。图5显示了在TUM building1中处理多个序列后的结果。在本例中,small room 序列提供了较长序列所没有的闭环,(ORB-SLAM3系统)所有误差都带到厘米级。虽然在房间外无法获得地面真实数据,但将数据与发表的数据进行对比清楚地表明了我们的要点:我们的多地图SLAM系统获得了比现有的视觉惯性里程计系统更好的精度。图6进一步举例说明了这一点。尽管ORB-SLAM3在户外1的双目惯性单地图场地处理中排名较高,但仍然存在显著的漂移(大约60米)。相比之下,如果在magistrale2之后以多地图的方式处理outdoors1,则此漂移会显著减少,最终地图会更加精确。
D. 计算时间
表6总结了跟踪和建图线程中执行主要操作的运行时间,表明我们的系统能够以每秒30-40帧和3-6个关键帧的速度实时运行。惯性部分在跟踪过程中花费的时间可以忽略不计,事实上,由于可以安全地降低帧速率,因此可以提高系统的效率。在建图线程中,通过在惯性局部BA中较少的关键帧来补偿每个关键帧中较高的变量数目,从而在运行时间相近的情况下获得较高的精度。由于跟踪和建图线程始终在活动地图中工作,因此多地图不会引入大量开销(时间成本)。
表7总结了环路闭合和地图合并的主要步骤的运行时间。新的位置识别方法只需要10毫秒每关键帧。合并和闭环的时间保持在1秒以下,仅运行位姿图优化。对于闭环,根据相关地图的大小,执行全局BA可能会增加最多几秒钟的时间。在任何情况下,由于两个操作都在单独的线程中执行(图1),因此它们不会干扰系统其余部分的实时性能。视觉惯性系统仅执行两次地图合并以连接三个序列,而视觉系统执行一些附加的地图合并以从跟踪损失中恢复。由于其较低的漂移,与纯视觉系统相比,视觉惯性系统运行闭环的时间较短。
虽然这会很有趣,但我们不会将运行时间与其他系统进行比较,因为这将需要大量的工作,这超出了本工作的范围。
8. 结论
在[2]–[4]的基础上,我们推出了ORB-SLAM3,这是针对视觉、视觉惯性和多会话SLAM的最完整的开源库,具有单目、双目、RGB-D、针孔和鱼眼摄像头。除了集成库本身,我们的主要贡献是快速和准确的IMU初始化技术,以及多段地图合并功能,这依赖于一种新的位置识别技术,提高了召回率。
我们的实验结果表明,ORB-SLAM3是第一个能够有效利用短期、中期、长期和多地图数据关联的视觉和视觉惯性系统,达到了现有系统无法达到的精度水平。我们的结果还表明,关于准确性,使用所有这些类型的数据关联的能力胜过其他选择,例如使用直接方法而不是特征,或者对局部BA执行关键帧边缘化,而不是像我们这样假设外部静态关键帧集。
ORB-SLAM3的主要失效情况是低纹理环境。直接法对低纹理更为稳健,但仅限于短期和中期数据关联。另一方面,匹配特征描述子成功地解决了长期和多地图数据关联问题,但与使用光度信息的Lucas Kanade相比,其跟踪稳定性似乎较差。一个有趣的研究方向可能是开发适合四个数据关联问题的光度技术。我们目前正在探索利用人体内窥镜图像来绘制地图的想法。
关于四种不同的传感器配置,毫无疑问,双目惯性SLAM提供了最稳健和准确的解决方案。此外,惯性传感器允许以IMU速率估计姿态,IMU速率比帧速率高几个数量级,这是某些例子的关键特性。对于因体积、成本或处理要求较高而不需要双目相机的应用,您可以使用单目惯性相机,不会在稳健性和准确性方面损失太多。请记住,探索期间的纯旋转不允许估计深度。
在缓慢运动或没有侧倾和俯仰旋转的应用中,例如在平坦区域的汽车,IMU传感器可能难以初始化。在这些情况下,如果可能的话,使用双目SLAM。除此之外,利用CNN从单个图像进行深度估计的最新进展为可靠和真实的单目SLAM提供了良好的前景,至少在训练CNN的同一类型环境中是如此。
REFERENCES(略)
更多推荐
所有评论(0)