博主github:https://github.com/MichaelBeechan
博主CSDN:https://blog.csdn.net/u011344545
ORB-SLAM:一种通用的(全能的)精确的单目SLAM系统
ORB-SLAM: A Versatile and Accurate Monocular SLAM System
原作者:Raul Mur-Artal, J. M. M. Montiel, Member, IEEE, and Juan D. Tardos, Member, IEEE
翻译时间:2017.8.31
译者:Michael Beechan(陈兵) 重庆理工大学
引用:Mur-Artal R, Montiel J M M, Tardós J D. ORB-SLAM: A Versatile and Accurate Monocular SLAM System[J]. IEEE Transactions on Robotics, 2015, 31(5):1147-1163.
ORB-SLAM2:https://github.com/MichaelBeechan/ORB_SLAM2
ORB-SLAM: http://webdiis.unizar.es/~raulmur/orbslam/
摘要
本文提出了ORB-SLAM,在大小场景、室内室外环境下都可以实时操作的一种基于特征的单目SLAM系统。系统对复杂的剧烈运动具有鲁棒性,允许宽基线的闭环和重定位,且包含完整的自动初始化。基于最近几年的优秀算法之上,我们从头开始设计了一种新颖的系统,它对所有SLAM任务使用相同的特征:追踪、建图、重定位和闭环。合适策略的存在使得选择的重建点和关键帧具有很好的鲁棒性,并能够生成紧凑的可追踪的地图,只有当场景内容发生变化地图才改变,从而允许长时间操作。本文从最受欢迎的数据集中提供了27个序列的详尽评估。相对于其他最先进的单目SLAM方法,ORB-SLAM实现了前所未有的性能。为了社会的利益,我们将源代码公开。
关键字:Lifelong mapping, localization, monocular vision, recognition, simultaneous localization and mapping (SLAM).
1 引言
捆绑调整(BA)提供相机定位的精确估计以及稀疏几何重建[1,2],并且提供了强烈的匹配网络和良好的初始猜测。一段长的时间,这种方法被认为不符合实时性的应用,如在视觉SLAM上(Visual SLAM)。视觉SLAM估计相机轨迹的目标是重建环境。现在,我们知道为了不以过高的计算成本获得准确的结果,实时SLAM算法必须向BA提供以下信息。
1) 对场景特征(地图点)的相应观察是在候选帧(关键帧)的子集中。(匹配)
2) 随着关键帧复杂性的增大,它们的选择应该避免不必要的冗余。(筛选)
3) 关键帧和点的强大网络配置产生精确结果,那就是说,一系列关键帧的观察点,具有明显的视差和大量的闭环匹配。
4) 采用非线性优化初始化估计关键帧位姿和点位置。
5) 构建局部地图过程中,其优化集中在实现良好的稳定性。
6) 执行快速全局优化(例如,位姿图)和实时闭合循环的能力。
Mouragon等人[3]在视觉里程计上完成了BA的第一个实时应用,随后是Klein和Murray
[4]实现了里程碑性的工作,提出了PTAM(Parallel tracking and mapping)。这个算法虽然是有限的小尺度的操作,提供简单而且有效的对每一帧关键帧的选择,特征匹配,点三角测量,相机定位的方法,以及跟踪失败后重定位。遗憾的是,有不少因素限制了它的应用:缺少闭环和适当的处理遮挡,重定位视点的low不变性和需要人为干预地图引导。
在本研究中,我们依赖PTAM的主要观点,Galvez-Lopez和Tardos [5]的位置识别工作,Strasdat等人[6]的闭环尺度意识和[4,5]中使用共视信息进行大尺度操作,设计了ORB-SLAM。一个新颖的单目SLAM系统主要有以下贡献。
1) 对所有任务使用相同的特性:追踪、建图、重定位和闭环。这使得我们的系统更有效率,更简单,更可靠。使用ORB特征[9],允许没有GPUs的情况下可以应用于实时系统中,在视角和光照变化时提供良好的不变性。
2) 在大环境中实时操作。由于共视图(covisibility graph)的使用,跟踪和建图集中在一个与全局地图大小独立的局部共视区域。
3) 实时闭环基于位姿图的优化,我们称为本质图(Essential Graph)。它由系统维护的生成树构建,闭环链接和strong edges(强边缘)来自共视图。
4) 实时相机重定位,对视角和光照具有显着的不变性。这允许从跟踪失败中恢复,并且还增强了地图重用。
5) 一个基于模型选择的新的自动的鲁棒的初始化过程允许创建初始化一个平面和非平面的场景地图。
6) 一个优胜略汰的方法选择地图点和关键帧,generous in the spawning but very restrictive in the culling.这种策略提升了跟踪的鲁棒性,增强了永久操作性,因为冗余的关键帧被丢弃了。
我们对室内和室外环境的公共数据集进行了广泛的评估,包括手持式,汽车和机器人序
列。特别地,我们在直接方法[10]中实现了比现有技术更好的相机定位精度,其直接优于像素强度而不是特征重投影误差。我们在第IX-B节中讨论基于特征的方法比直接方法更准确的可能原因。
这里介绍的闭环和重定位方法是基于我们以前的工作[11]。在[12]中提出了系统的初步版本。在本文中,我们添加了初始化方法,本质图,并完善了所有涉及的方法。我们还详细描述了所有构建块,并进行了详尽的实验验证。
据我们所知,这是单目SLAM最完整可靠的解决方案,为了社区的利益,我们将源代码公开。示范视频和代码可以在我们的项目网页中找到。
2 相关工作
A . 位置识别
Williams等人[13]的综述比较了位置识别的一些方法并且得出了技术基于外观的结论,也就是说,在大环境中图像到图像的匹配比地图到地图或图像到地图的方法尺度更好。在基于外观(图像)的方法中,词袋技术[14],如概率方法FAB-MAP[15],由于他很高的效率是最好的选择。DBoW2 [5]首次使用从BRIEF描述符[16]获得的二进制单词包以及使用非常有效的FAST特征检测器[17]。与目前为止用在词袋方法的SURF [18]和SIFT [19]特征相比,特征提取所需的时间大大超过一个数量级。虽然系统证明是非常有效和鲁棒的,但使用的BRIEF,既没有旋转不变性也没有尺度不变性,从类似的角度将系统限制在平面轨迹和循环检测中。在我们以前的工作[11]中,我们提出了一个用ORB建立在DBoW2上的一个词袋识别器[9]。ORB是旋转和缩放(在一定范围内)不变的二进制特征,导致非常快的识别对场景具有良好的不变性。我们在四个不同的数据集中展现了识别器的高回调和鲁棒性,需要少于39 ms(包括特征提取)从10 K图像数据库中检索循环候选。在这项研究中,我们使用改进版本的识别器,使用共视信息,并在查询数据库时返回几个假设,而不仅仅是最佳匹配。
B.地图初始化
由于深度不能从单一的图像中恢复,单目SLAM需要一个创建初始地图的过程。一个解决此问题的方法是初始化跟踪一个知道的结构[20]。在过滤方法的上下文中,点可以使用反深度参数化[21],将点的深度不确定度初始化为很高,希望之后能够收敛到其实际位置。Engel等人[10]最近的半稠密工作遵循类似的方法将像素的深度初始化为具有高方差的随机值。
从两个视图的初始化方法可以假设局部场景平面度[4],[22],并使用Faugeras和Lustman [23]的方法从单应性上恢复相机相对姿态,或使用Nister [26]的五点法在[25] 模型平面和一般场景下计算一个本质矩阵[24],需要处理多种解决方案。这两种重建方法在低视差下都没有很好的约束,如果平面场景的所有点都更靠近其中一个摄像机的中心,则会遭受双重歧义解决方案[27]。另一方面,如果使用视差观察非平面场景,则可以使用八点算法[2]计算唯一的基本矩阵,并且可以无歧义地恢复相对相机姿态。
在第四节中,我们提出了一种基于平面场景的单应性和非平面场景的基本矩阵之间新的自动模型选择方法。Torr等人提出了模型选择的统计方法[28]。在类似的原理下,我们已经开发了一种启发式初始化算法,其考虑到接近退化情况(即,平面,近平面和低视差)选择基本矩阵的风险,有利于选择单应性。在平面情况下,为了安全起见,如果解决方案有二重歧义,我们不会初始化,因为可以选择损坏的解决方案。我们延迟初始化,直到该方法产生具有显着视差的唯一解。
C. 单目SLAM
单目SLAM最初是通过滤波解决的[20,21,29,30]。在该方法中,每个帧由滤波器处理以共同估计地图特征位置和相机姿态。它具有在处理连续帧中浪费计算的缺点,具有很少的新信息和线性化误差的累积。另一方面,基于关键帧的方法[3],[4]仅使用选择的帧(关键帧)估计地图,允许执行成本更高的但准确的BA优化,因为映射不与帧速率相关联。Strasdat等人[31]表明,基于关键帧的技术比同样计算成本的滤波更为准确。
最具代表性的基于关键帧的SLAM系统可能是Klein和Murray的PTAM [4]。这是在并行线程引入分割相机跟踪和地图创建想法的第一个工作,并证明在小环境中成功应用于增强现实。原始版本后来改进了边缘特征,跟踪期间的旋转估计步骤和更好的重定位方法[32]。PTAM的地图点与FAST角点通过补丁(patch)相关性匹配。这使得点仅对跟踪有用,但不适用于位置识别。实际上,PTAM没有检测到大的循环,重定位是基于低分辨率关键帧缩略图的相关性,产生了对视点的低不变性。
Strasdat等人[6]提出了一种在GPU上实现的基于光流的前端大尺度单目SLAM系统,其次是FAST特征匹配和仅运动的BA,以及基于滑动窗口BA的后端。通过具有相似约束(7自由度(DoF))的姿态图优化来解决闭环检测,其能够校正出现在单目SLAM中的尺度漂移。从这项工作,我们采取7自由度姿态图优化的闭环的想法,并将其应用于第III-D节中基本图的定义。
Strasdat等人[7]使用PTAM的前端,但仅在从共视图中检索到的局部地图中执行跟踪。 他们提出了一种双窗口优化后端,在内部窗口中持续执行BA,并在有限大小的外部窗口中构造图形。但是,只有在外部窗口的大小足够大可以包括整个环时,闭环才有效。在我们的系统中,我们利用了基于共视图使用局部地图的优秀想法,并从共视图中构建位姿图,但将其应用于完全重新设计的前端和后端。另一个区别是,我们不使用特定功能检测环路(SURF),而是在相同的跟踪和映射功能上进行位置识别,获得鲁棒的帧率重定位和环路检测。
Pirker等人[33]提出了CD-SLAM,即一个非常完整的系统,包括闭环,重定位,大尺度操作以及努力处理动态环境。但是,没有提到地图初始化。缺乏公共实施不允许我们对准确性,鲁棒性或大尺度能力进行比较。
宋等人的视觉里程计[34]使用ORB特征进行跟踪和一个时间滑动窗口BA后端。相比之下,我们的系统更全面,因为它们没有全局重定位,闭环,并且不重复使用地图。他们还使用从相机到地面的已知距离来限制单目尺度漂移。
Lim等人[25],在我们提交了这项工作的初步版本[12]后发表的工作,也使用相同的功能进行跟踪,映射和循环检测。然而,BRIEF的选择使得系统限制在平面轨迹上。他们的系统只跟踪最后一个关键帧的点数; 因此,如果重新访问(类似于视觉测距),并且无限制增长的问题,地图是不会重复使用的。我们在第VIII-E部分将我们的结果与这种方法进行了定性比较。
Engel等人最近的工作 [10],被称为LSD-SLAM,能够使用直接方法(即直接优于图像像素强度优化)而不是BA对特征构建大尺度的半稠密地图。它们的结果非常令人印象深刻,因为系统能够实时操作,无需GPU加速,构建半稠密地图,相比于产生稀疏输出的基于特征的SLAM,LSD-SLAM具有更多潜在的机器人应用。然而,它们仍然需要环路检测的特征,并且它们的相机定位精度显著低于我们的系统和PTAM,如我们在第VIII-B节中实验所示。这个令人惊讶的结果在第IX-B节中讨论。
在直接和基于特征的方法之间是Forster等人[22]的半直接视觉里程计SVO。无需在每个帧中提取特征,它们能够在四旋翼飞机上以高速率帧进行操作,从而获得令人印象深刻的结果。然而,不执行回环检测,目前的实现主要是向下看相机。
最后,我们要讨论关键帧选择。文献中所有视觉SLAM的作品都认为运行BA在所有点和所有框架是不可行的。Strasdat等人的工作 [31]表明,最具成本效益的方法是保持尽可能多的点,同时只保留非冗余关键帧。PTAM方法是非常谨慎地插入关键帧,以避免计算复杂度的过度增长。这种限制性关键帧插入策略使得跟踪在艰难的探索条件下失效。我们的测试策略的生存通过尽可能快地插入关键帧,在困难的情况下实现前所未有的鲁棒性,并且删除更多冗余的框架,以避免额外的成本。
3.系统概况
A.特征选择
我们系统的主要设计思想之一是使用映射和跟踪所使用的相同特征进行位置识别,以执行帧速率重定位和循环检测。这使得我们的系统有效,并避免了像以前的作品一样插入SLAM附近的深度特征识别[6],[7]。我们要求每张图像提取特征的时间少于33 ms,不包括流行的SIFT(〜300 ms)[19],SURF(〜300 ms)[18]或最近的A-KAZE(〜100 ms)[35]。为了获得一般的位置识别能力,我们要求旋转不变性,不包括BRIEF [16]和LDB [36]。
我们选择了ORB [9],它们是一个带有一个256位描述符关联的多尺度FAST角。他们非常快速的计算和匹配,而他们有很好的视角不变性。这使我们能够用比较宽的基线匹配,提高了BA的准确性。我们已经在[11]中展示了ORB在位置识别中的良好性能。虽然我们目前的实现使用ORB,但是所提出的技术不限于这些特征。
B.三线程:跟踪,局部建图和回环
我们的系统,见图1的概述,包含并行运行的三个线程:跟踪,局部建图(局部映射)和回环。跟踪负责每个帧相机的定位,并决定何时插入新的关键帧。我们首先执行与前一帧的初始特征匹配,并使用仅运动的(motion-only)BA优化位姿。如果跟踪丢失(例如,由于遮挡或突然移动),则使用位置识别模块来执行全局重定位。一旦有了相机姿态和特征匹配的初步估计,使用由系统维护的关键帧的共视图来检索局部可视图(参见图2(a)和(b))。然后,通过重新投影搜索与局部地图点的匹配,并且使用所有匹配再次优化相机姿态。最后,跟踪线程决定是否插入新的关键帧。所有跟踪步骤将在第五部分中详细介绍。创建初始映射的新颖过程见第四部分。
局部映射处理新的关键帧并执行局部BA以在相机姿态的周围实现最佳重建。新的对应策略就是,对于在新的关键帧中不匹配的ORB寻找共视图中关键帧到三角分解的新点的联系。创建后的一段时间,根据跟踪期间收集到的信息,应用紧急点选择策略,以保留高质量点。局部映射还负责剔除冗余关键帧。我们在第六节中详细说明所有局部映射步骤。
闭环搜索每个新关键帧的循环。如果检测到一个循环,我们计算一个相似变换,报告循环中的漂移积累。然后,循环的两侧对齐,并融合重复点。最后,对相似约束[6]进行位姿图优化,以实现全局一致性。主要的新颖之处在于我们对本质图进行优化,即第三部分D中解释的共视图的稀疏子图。循环检测和校正步骤在第七节中有详细的说明。
我们使用g2o [37]中实现的Levenberg-Marquardt算法进行所有优化。在附录中,我们描述了每个优化中涉及的错误项,成本函数和变量。
Fig. 1. ORB-SLAM system overview, showing all the steps performed by the tracking, local mapping, and loop closing threads. The main components of the place recognition module and the map are also shown.
C.地图点和关键帧的选择
每个地图点pi存储以下内容:
1)世界坐标系下的3D位置Xw,I;
2)视角方向ni,所有视角方向的平均单位矢量(通过点和关键帧光学中心的连线观察它);
3)一个代表性的ORB描述子Di,是 ORB相关描述符,其汉明距离相对于观察点的关键帧中的所有其他相关描述符最小;
4)根据ORB特征的尺度不变性约束,可以观测地图点的最大距离dmax和最小距离dmin。
每个关键帧Ki存储以下内容:
1)相机位姿Tiw,一种从世界坐标系到相机坐标系的刚体变换。
2)相机内参,包括焦距和主焦点。
3)所有被提取的ORB特征,和地图点关联或者没关联的,如果提供了一个失真模型,其坐标是不失真的。
地图点和关键帧用一种generous policy生成,后来非常紧急的剔除机制负责检测冗余关键帧和错误匹配或不可追踪的地图点。这允许在勘探期间灵活的地图扩展,其在硬条件(例如,旋转,快速移动)下提高跟踪鲁棒性,同时其大小被限制在连续重新访问相同的环境,即终身操作。此外,与PTAM相比,我们的地图包含非常少的离群值,而不包含较少的积分。 地图点和关键帧的剔除程序分别在第VI-B和VI-E节中进行了说明。
D. 共视图(Covisibility Graph)和本质图
关键帧之间的共视信息对于我们系统的的一些任务的非常有用的,被表示为无向加权图,如[7]。每个节点是一个关键帧,如果两个关键帧之间的边缘共享相同的地图点(至少15个)的观测值,那么它们之间存在边缘,即边缘的权重θ普通地图点的数量。
为了纠正一个循环,我们执行一个位姿图优化[6],它沿着图形分布循环闭合误差。为了不包括由共视图提供的所有边缘,可以非常密集,我们建议构建一个保留所有节点(关键帧)但是边缘较少的基本图,仍然保留强大的网络,从而产生准确的结果。该系统从初始关键帧增量生成生成树,其提供了具有最少边数的共视图的连接子图。当插入新的关键帧时,它被包含在链接到共享大多数观察点的关键帧的树中,并且当关键帧被剔除策略擦除时,系统更新受该关键帧影响的链接。本质图包含生成树,具有高共视性(θm in = 100)的共视图的边缘子集,以及循环闭合边缘,导致强大的相机网络。图2示出了共视图,生成树和相关联的基本图的示例。如第VIII-E节的实验所示,当执行位姿图优化时,解决方案非常精确,以至于附加的全BA优化几乎不能改善解决方案。第VIII-E部分的结尾显示了本质图的效率和θm的影响。
Fig. 2. Reconstruction and graphs in the sequence f r3 long of f ice household from the TUM RGB-D Benchmark [38]. (a) Keyframes (blue), current camera (green), map points (black, red), current local map points (red). (b) Covisibility graph. (c) Spanning tree (green) and loop closure (red). (d) Essential graph.
E. 词袋位置识别
基于DBoW2[5],系统嵌入一个词袋位置识别模型,来执行闭环检测和重定位。视觉单词仅仅是描述子空间的离散化,称为视觉词典。词典是从一大堆图像的ORB描述子特征中线下产生的。前期工作显示,如果图像足够多,相同的词典可以在不同的环境中得到好的性能[11]。系统逐渐建立一个包含反转索引的数据库,该索引存储词汇表中的每个视觉词,其中看到了关键帧,从而可以非常有效地完成查询数据库。当关键帧被剔除程序删除时,数据库也会被更新。
因为在关键帧之间存在视觉重叠,所以在查询数据库时,不存在高分的唯一关键帧。原来的DBoW2考虑到了这个重叠,加上了时间接近的图像得分。这具有不包括查看相同位置但在不同时间插入的关键帧的限制。相反,我们将在共视图中连接的关键帧进行分组。此外,我们的数据库返回所有关键帧匹配,其分数高于最佳分数的75%。
文献[5]报道了功能匹配的词表示的另外的好处。当我们想要计算两组ORB特征之间的对应关系时,我们可以将暴力匹配仅限于属于词汇树中同一个节点的某些特征(我们选择六分之二),加快搜索。当搜索匹配以对三分法新点进行循环检测和重新定位时,我们使用这个技巧。我们还通过定向一致性测试(参见[11]的细节)来改进对应关系,抛弃异常值,确保所有对应关系的连贯轮换。
4. 自动地图初始化
地图初始化的目的是计算两个帧之间的相对姿态,以对初始的一组地图点进行三角测量。该方法应与场景(平面或一般)无关,并且不需要人为干预来选择良好的双视图配置,即具有显着视差的配置。我们建议并行计算两个几何模型:假设平面场景的单应性和假设非平面场景的基本矩阵。然后,我们使用启发式选择一个模型,并尝试使用所选模型的特定方法恢复相对位姿。我们的方法只有在确定双视图配置安全,检测低视差情况和众所周知的双重平面模糊度时才初始化[27],避免初始化损坏地图。我们的算法步骤如下。
1)找初始对应(匹配):提取当前帧Fc的ORB特征(仅在最好的尺度下),并且寻找与参考帧Fr的匹配Xc<—>Xr。如果没能找到足够的匹配,重置参考帧。
2)两个模型的平行计算:计算平行线程单应矩阵Hcr和基本矩阵Fcr
用归一化的DLT和八点算法,分别在文献[2]中的一个RANSAC方案中被解释。为了使两个模型的过程均匀,迭代次数以及每次迭代使用的点数被置于两个模型的前面:八个基本矩阵,四个单应矩阵。在每次迭代中,我们计算每个模型M的一个评分 (H代表单应矩阵,F代表基本矩阵)
其中和表示从一帧到另一帧对称转移误差[2]。表示基于95 %的分布的异常值剔除阈值(TH=5.99,TF=3.84,假设测量误差的标准差为1像素点)。被定义等于TH,以至于在他们的内点区域中相同的d具有相等的模型得分,再一次使得过程齐次。
我们保持单应矩阵和基本矩阵具有最高的得分。如果没有模型能得到高分(没有足够的内点),重新第一步过程。
3)模型选择:如果场景是平面,几乎是平面或者又很低的视差,可以通过单应矩阵表示。然而,基本矩阵也能处理,但问题是没有好的约束[2],且任何从基本矩阵试图恢复的运动会产生错误的结果。我们应该选择单应性,因为重建方法可以从平面正确初始化,否则会检测到低视差情况,拒绝初始化。另一方面,具有足够视差的非平面场景只能由基本矩阵来解释,但如果它们位于平面上或者它们具有较低的视差(它们很远)来说明匹配的子集,也可以发现单应性。在这种情况下,我们应该选择基本矩阵。我们发现一个鲁棒的启发式来计算
如果,选择单应矩阵,可以适当的获得平面和低视差。否则选择基本矩阵。
4)运动和从运动中恢复结构:一旦一个模型被选择,我们检索相关的运动假设。单应矩阵的情况,我们用Faugeras and Lustman的方法检索八个运动假设[23]。该方法提出了方便性测试来选择有效的解决方案。然而,如果存在低视差,这种测试将失败,由于点容易在相机前后跑,这也可能会选择一种错误的解决方案。我们建议直接对八个解决方案进行三角测量,并检查是否有一个解决方案,具有视差的大多数点,在两个相机前面,并且具有低重投影错误。如果没有明确的解决方案,我们不会从步骤1初始化和继续。这种解决方案的方法使我们的初始化在低视差和双重歧义配置下是稳定的,并且可以被认为是我们方法鲁棒性的关键。
基本矩阵的情况,我们用标定矩阵K转换为一个本质矩阵:
然后用奇异值分解法检索四个运动假设[2]。我们对四种解决方案进行三角测量,并选择重建作为单应性。
5)BA(Bundle Adjustment):最后,我们执行完整的BA(详见附录),以改进初始重建。
户外New College机器人序列[39]中的一个具有挑战性的初始化的例子如图3所示。可以看出,PTAM和LSD-SLAM如何在平面上初始化所有点,而我们的方法已经等到有足够的视差,从基本矩阵正确初始化。
5. 跟踪
在本节中,我们将描述跟踪线程在相机每帧执行的步骤。在几个步骤中提到的相机姿态优化包括仅在运动中的BA,其在附录中描述。
A.ORB提取
我们在8层金字塔上提取FAST角点,尺度因子为1.2。对于从512×384到752×480像素的图像分辨率,我们发现适合提取1000个角,对于更高的分辨率,如KITTI数据集中的1241×376 [40],我们提取2000个角。为了确保均匀分布,我们用网格划分每一个层级,试图提取每个单元格至少五个角点。然后,我们检测每个单元格中的角点,如果没有找到足够的角点,则调整检测器阈值。如果某些单元格不含角点(无纹理或低对比度),则每个单元格保留的角点数也会适应。接着在保留的FAST角点上计算方向和ORB描述符。在所有特征匹配中使用ORB描述符,与PTAM中的补丁相关搜索相反。
B.从最后一帧初始化位姿估计
如果跟踪在最后一帧成功,我们使用匀速运动模型来预测相机姿态,并对最后一帧中观察到的地图点进行引导搜索。如果没有找到足够的匹配(即明显违反了运动模型),则我们在最后一帧中围绕其位置使用更广泛的地图点搜索。然后利用找到的对应关系优化位姿。
C.通过全局重定位初始化位姿估计
如果跟踪丢失,我们将帧转换成词袋,并将查询的识别数据库用于全局重定位的关键帧候选。我们在每个关键帧中计算与地图点相关联的ORB,如第III-E节所述。然后,我们对每个关键帧执行所选的RANSAC迭代,并尝试使用PnP算法找到相机姿态[41]。 如果我们找到具有足够内联的相机位姿,我们可以优化位姿,并对候选关键帧的地图点进行更多匹配的引导搜索。最后,再次优化相机姿态,如果支持足够的内联,跟踪过程将继续进行。
D.跟踪局部地图
一旦我们估计了摄像机姿态和一组初始的特征匹配,我们可以将地图投影到帧中,并搜索更多的地图对应点。为了限制大型地图的复杂性,我们只投影一个局部地图。该局部地图包含与当前帧共享地图点的关键帧K1和与共视图中的关键帧K1的邻近的集合K2。局部地图也有一个参考关键帧Kref∈K1,其与当前帧共享大多数地图点。现在,如下在K1和K2中搜索当前帧看到的每个地图点。
1)计算当前帧中地图点投影x,如果投影在图像外面则丢弃。
2)计算当前视线方向向量v与地图点云平均视线方向向量n的夹角,舍弃v*n 3)计算地图点到相机中心的距离d,如果不在地图点的尺度不变区域内则舍弃,即 4)计算帧的尺度因子,为。 5)将地图点的特征描述符D与还未匹配的ORB特征进行比较,找到在预测尺度范围内和x附近,与最佳匹配相关联的地图点。 相机姿态最终用帧中的所有映射点进行优化。 E.新关键帧的选择 最后一步是确定当前帧是否被生成为一个新的关键帧。由于局部建图(局部映射)中存在一种机制来剔除冗余关键帧,因此我们将尝试尽可能快地插入关键帧,因为这样可以使追踪更具鲁棒性,以适应挑战性的相机移动(通常是旋转)。要插入新的关键帧,必须满足以下所有条件。 1)从上一次全局重定位已经超过20帧。 2)局部建图(局部映射)是空闲的,或者从最后一个关键帧插入已经超过20帧。 3)当前帧至少跟踪50点。 4)当前帧跟踪Kref小于90%的点。 我们不是将其他关键帧的距离标准用作PTAM,而是施加最小视觉变化(条件4)。条件1确保良好的重新定位和条件3良好的跟踪。如果在局部建图(局部映射)繁忙(条件2的第二部分)中插入了一个关键帧,则发送一个信号来停止局部BA,以便它可以尽快处理新的关键帧。 参考文献: [1] B. Triggs, P. F. Mc Lauchlan, R. I. Hartley, and A. W. Fitzgibbon, “Bundle adjustment a modern synthesis,” in Vision Algorithms: Theory and Practice. New York, NY, USA: Springer, 2000, pp. 298–372. [2] R. Hartley and A. Zisserman, Multiple View Geometry in Computer Vision, 2nd ed., Cambridge, U.K.: Cambridge Univ. Press, 2004. [3] E. Mouragnon, M. Lhuillier, M. Dhome, F. Dekeyser, and P. Sayd, “Real time localization and 3D reconstruction,” in Proc. IEEE Comput. Soc. Conf. Comput. Vision Pattern Recog., 2006, vol. 1, pp. 363–370. [4] G. Klein and D. Murray, “Parallel tracking and mapping for small AR workspaces,” in Proc. IEEE ACM Int. Symp. Mixed Augmented Reality, Nara, Japan, Nov. 2007, pp. 225–234. [5] D. G´alvez-L ´opez and J. D. Tard ´os, “Bags of binary words for fast place recognition in image sequences,” IEEE Trans. Robot., vol. 28, no. 5, pp. 1188–1197, Oct. 2012. [6] H. Strasdat, J. M. M. Montiel, and A. J. Davison, “Scale drift-aware large scale monocular SLAM,” presented at the Proc. Robot.: Sci. Syst., Zaragoza, Spain, Jun. 2010. [7] H. Strasdat, A. J. Davison, J. M. M. Montiel, and K. Konolige, “Double window optimisation for constant time visual SLAM,” in Proc. IEEE Int. Conf. Comput. Vision, Barcelona, Spain, Nov. 2011, pp. 2352–2359. [8] C. Mei, G. Sibley, and P. Newman, “Closing loops without places,” in Proc. IEEE/RSJ Int. Conf. Intell. Robots Syst., Taipei, Taiwan, Oct. 2010, pp. 3738–3744. [9] E. Rublee, V. Rabaud, K. Konolige, and G. Bradski, “ORB: An efficient alternative to SIFT or SURF,” in Proc. IEEE Int. Conf. Comput. Vision, Barcelona, Spain, Nov. 2011, pp. 2564–2571. [10] J. Engel, T. Sch ¨ops, and D. Cremers, “LSD-SLAM: Large-scale direct monocular SLAM,” in Proc. Eur. Conf. Comput. Vision, Zurich, Switzerland, Sep. 2014, pp. 834–849. [11] R. Mur-Artal and J. D. Tard ´os, “Fast relocalisation and loop closing in keyframe-based SLAM,” in Proc. IEEE Int. Conf. Robot. Autom., Hong Kong, Jun. 2014, pp. 846–853. [12] R. Mur-Artal and J. D. Tard ´os, “ORB-SLAM: Tracking and mapping recognizable features,” presented at the MVIGRO Workshop Robot. Sci. Syst., Berkeley, CA, USA, Jul. 2014. [13] B. Williams, M. Cummins, J. Neira, P. Newman, I. Reid, and J. D. Tard ´os,“A comparison of loop closing techniques in monocular SLAM,” Robot. Auton. Syst., vol. 57, no. 12, pp. 1188–1197, 2009. [14] D. Nister and H. Stewenius, “Scalable recognition with a vocabulary tree,” in Proc. IEEE Comput. Soc. Conf. Comput. Vision Pattern Recog., New York, NY, USA, Jun. 2006, vol. 2, pp. 2161–2168. [15] M. Cummins and P. Newman, “Appearance-only SLAM at large scale with FAB-MAP 2.0,” Int. J. Robot. Res., vol. 30, no. 9, pp. 1100–1123,2011. [16] M. Calonder, V. Lepetit, C. Strecha, and P. Fua, “BRIEF: Binary robust independent elementary features,” in Proc. Eur. Conf. Comput. Vision, Hersonissos, Greece, Sep. 2010, pp. 778–792. [17] E. Rosten and T. Drummond, “Machine learning for high-speed corner detection,” in Proc. Eur. Conf. Comput. Vision, Graz, Austria, May 2006, pp. 430–443. [18] H. Bay, T. Tuytelaars, and L. Van Gool, “SURF: Speeded up robust features,” in Proc. Eur. Conf. Comput. Vision, Graz, Austria, May 2006, pp. 404–417. [19] D. G. Lowe, “Distinctive image features from scale-invariant keypoints,” Int. J. Comput. Vision, vol. 60, no. 2, pp. 91–110, 2004. [20] A. J. Davison, I. D. Reid, N. D. Molton, and O. Stasse, “Mono SLAM: Real-time single camera SLAM,” IEEE Trans. Pattern Anal. Mach. Intell., vol. 29, no. 6, pp. 1052–1067, Jun. 2007. [21] J. Civera, A. J. Davison, and J. M. M. Montiel, “Inverse depth parametrization for monocular SLAM,” IEEE Trans. Robot., vol. 24, no. 5, pp. 932–945, Oct. 2008. [22] C. Forster, M. Pizzoli, and D. Scaramuzza, “SVO: Fast semi-direct monocular visual odometry,” in Proc. IEEE Int. Conf. Robot. Autom., Hong Kong, Jun. 2014, pp. 15–22. [23] O. D. Faugeras and F. Lustman, “Motion and structure from motion in a piecewise planar environment,” Int. J. Pattern Recog. Artif. Intell., vol. 2, no. 03, pp. 485–508, 1988. [24] W. Tan, H. Liu, Z. Dong, G. Zhang, and H. Bao, “Robust monocular SLAM in dynamic environments,” in Proc. IEEE Int. Symp. Mixed Augmented Reality, Adelaide, Australia, Oct. 2013, pp. 209–218. [25] H. Lim, J. Lim, and H. J. Kim, “Real-time 6-DOF monocular visual SLAM in a large-scale environment,” in Proc. IEEE Int. Conf. Robot. Autom., Hong Kong, Jun. 2014, pp. 1532–1539. [26] D. Nist´er, “An efficient solution to the five-point relative pose problem,” IEEE Trans. Pattern Anal. Mach. Intell., vol. 26, no. 6, pp. 756–770, Jun. 2004. [27] H. Longuet-Higgins, “The reconstruction of a plane surface from two perspective projections,” Proc. Royal Soc. London Ser. B, Biol, Sci., vol. 227, no. 1249, pp. 399–410, 1986. [28] P. H. Torr, A. W. Fitzgibbon, and A. Zisserman, “The problem of degeneracy in structure and motion recovery from uncalibrated image sequences,” Int. J. Comput. Vision, vol. 32, no. 1, pp. 27–44, 1999. [29] A. Chiuso, P. Favaro, H. Jin, and S. Soatto, “Structure from motion causally integrated over time,” IEEE Trans. Pattern Anal. Mach. Intell., vol. 24, no. 4, pp. 523–535, Apr. 2002. [30] E. Eade and T. Drummond, “Scalable monocular SLAM,” in Proc. IEEE Comput. Soc. Conf. Comput. Vision Pattern Recog., New York, NY, USA, Jun. 2006, vol. 1, pp. 469–476. [31] H. Strasdat, J. M. M. Montiel, and A. J. Davison, “Visual SLAM: Why filter?” Image Vision Comput., vol. 30, no. 2, pp. 65–77, 2012. [32] G. Klein and D. Murray, “Improving the agility of keyframe-based SLAM,” in Proc. Eur. Conf. Comput. Vision, Marseille, France, Oct. 2008, pp. 802–815. [33] K. Pirker, M. Ruther, and H. Bischof, “CD SLAM-continuous localization and mapping in a dynamic world,” in Proc. IEEE/RSJ Int. Conf. Intell. Robots Syst., San Francisco, CA, USA, Sep. 2011, pp. 3990–3997. [34] S. Song, M. Chandraker, and C. C. Guest, “Parallel, real-time monocular visual odometry,” in Proc. IEEE Int. Conf. Robot. Autom., 2013, pp. 4698–4705. [35] P. F. Alcantarilla, J. Nuevo, and A. Bartoli, “Fast explicit diffusion for accelerated features in nonlinear scale spaces,” presented at the Brit. Mach. Vision Conf., Bristol, U.K., 2013. [36] X. Yang and K.-T. Cheng, “LDB: An ultra-fast feature for scalable augmented reality on mobile devices,” in Proc. IEEE Int. Symp. Mixed Augmented Reality, 2012, pp. 49–57. [37] R. Kuemmerle, G. Grisetti, H. Strasdat, K. Konolige, and W. Burgard, “g2o: A general framework for graph optimization,” in Proc. IEEE Int. Conf. Robot. Autom., Shanghai, China, May 2011, pp. 3607–3613. [38] J. Sturm, N. Engelhard, F. Endres, W. Burgard, and D. Cremers, “A benchmark for the evaluation of RGB-D SLAM systems,” in Proc. IEEE/RSJ Int. Conf. Intell. Robots Syst., Vilamoura, Portugal, Oct. 2012, pp. 573–580. [39] M. Smith, I. Baldwin, W. Churchill, R. Paul, and P. Newman, “The new college vision and laser data set,” Int. J. Robot. Res., vol. 28, no. 5, pp. 595–599, 2009. [40] A. Geiger, P. Lenz, C. Stiller, and R. Urtasun, “Vision meets robotics: The KITTI dataset,” Int. J. Robot. Res., vol. 32, no. 11, pp. 1231–1237, 2013. [41] V. Lepetit, F. Moreno-Noguer, and P. Fua, “EPn P: An accurate O(n) solution to the Pn P problem,” Int. J. Comput. Vision, vol. 81, no. 2, pp. 155–166, 2009. [42] B. K. P. Horn, “Closed-form solution of absolute orientation using unit quaternions,” J. Opt. Soc. Amer. A, vol. 4, no. 4, pp. 629–642, 1987. [43] F. Endres, J. Hess, J. Sturm, D. Cremers, and W. Burgard, “3-D mapping with an RGB-D camera,” IEEE Trans. Robot., vol. 30, no. 1, pp. 177–187, Feb. 2014. [44] R. A. Newcombe, S. J. Lovegrove, and A. J. Davison, “DTAM: Dense tracking and mapping in real-time,” in Proc. IEEE Int. Conf. Comput. Vision, Barcelona, Spain, Nov. 2011, pp. 2320–2327. [45] S. Lovegrove, A. J. Davison, and J. Ibanez-Guzm´an, “Accurate visual odometry from a rear parking camera,” in Proc. IEEE Intell. Vehicles Symp., 2011, pp. 788–793. [46] P. H. Torr and A. Zisserman, “Feature based methods for structure and motion estimation,” in Vision Algorithms: Theory and Practice. New York, NY, USA: Springer, 2000, pp. 278–294. [47] R. Mur-Artal and J. D. Tardos, “Probabilistic semi-dense mapping from highly accurate feature-based monocular SLAM,” presented at the Proc. Robot.: Sci. Syst., Rome, Italy, Jul. 2015. [48] H. Strasdat, “Local accuracy and global consistency for efficient visual SLAM,” Ph.D. dissertation, Imperial College London, London, U.K., Oct. 2012.