ORB-SLAM: a Versatile and Accurate Monocular SLAM system---阅读笔记(one)

ORB-SLAM: 一种多功能、高精度的单目SLAM系统

摘要 本文提出一种无论在大场景、小场景,室内、室外环境下都能实时运算的基于特征的单目SLAM系统。系统的优点 该系统对剧烈运动具有鲁棒性,支持宽基线的回环检测和重定位,以及全自动初始化。 在近年来优秀算法的基础上,我们从头开始设计了一个新的系统,它对所有SLAM任务都使用相同的特性: 跟踪、建图、重定位和回环检测。 采用了相同的特征,并选用适合的策略来选择特征点和关键帧,使最终系统具有很好的鲁棒性,生成精简、可追踪的地图。且只有当场景的内容改变时,这个地图内容才增加,因此可以支持在同一个场景下的持续定位。

Introduction介绍

束调整(BA)已知提供相机定位的精确估计以及稀疏几何重建 ,假定提供了强匹配网络和良好的初始猜测。描述BA缺点 无法为Visual SLAM提供实时应用。Visual SLAM的目标是重建环境的同时估计相机运动。现在我们知道,为了以不高的计算成本获得准确的结果,实时SLAM算法必须向BA提供:

  • 对所选帧(关键帧)中场景特征(点云)的观测信息;
  • 随着关键帧数量的增加,复杂度也随之增加,因此关键帧的选择应该避免不必要的冗余;即选择合适的关键帧
  • 一个强大的关键帧和点云的网络配置能产生精确结果,也就是说一组扩展良好的关键帧的特征点,需具有显著的视差和回环匹配。
  • 提供非线性优化的关键帧姿态和点云位置的初始估计。
  • 构建局部地图时优化的可扩展性。
  • 具备快速全局优化(位姿图)以实时闭环的能力。
    BA的第一个实时应用是视觉里程计,之后发展出并行跟踪和建图(PTAM----Parallel Tracking and Mapping)。BA 实时应用优点 该算法仅限于小范围的操作,为关键帧选择、特征匹配、点云三角化、每帧像机定位以及跟踪失败后的重新定位提供了简单而有效的方法。BA 实时应用优点 遗憾的是,有几个因素严重限制了它的应用 : 缺少回环缺少对遮挡的适当处理对重定位的视角不变性较低以及需要人为干预来进行地图引导
    本文,借鉴了PTAM的主要观点, 位置识别工作、尺度感知回环、大规模操作的共视信息的使用 ,建立一套新的单目SLAM系统,其主要贡献是:
    新建SLAM系统的优点
  • 对所有任务,如跟踪、地图构建、重定位、回环检测,使用相同的特征 (ORB) 。这使得系统更加有效、简单、可信赖。且ORB特征具有良好的实时性、旋转不变性和光照不变性;
  • 大场景的实时计算。由于使用了共视图(covisibility graph),特征点的跟踪和建图集中在局部共视区域中,与全局地图大小无关;
  • 基于位姿图优化的实时回环,我们称之为基本图。它由系统维护的生成树、相关回环和共视图的强边构成。
  • 实时像机重定位,具备旋转和光照不变性。 这允许从跟踪失败中恢复重定位,还增强了地图的重用。
    -提出了基于模型选择(平面和非平面场景)的自动初始化方法,创建初始地图。
  • 用宽选取、严剔除的方法选择关键帧和地图点。由于丢弃了冗余的关键帧,此策略提高了跟踪的鲁棒性,并增强了持续重定位。

广泛的数据集,多场景测试。值得注意的是,我们实现了比直接法更好的相机定位精度,直接法直接操作像素点强度,而不是特征重投影误差。我们在第 IX-B 节中讨论了可能导致基于特征的方法比直接方法更准确的原因。
文献 [11] 提供了回环检测和重定位的方法。文献 [12] 提供了系统了初始版本。本文,增加了初始化方法,基本图和优化所有涉及的方法。我们还详细描述了所有构建模块,并执行了详尽的实验验证。
开源链接:http://webdiis.unizar.es/~raulmur/orbslam/

Related work相关工作

A Place Recognition位置识别

引出用于位置识别的方法:基于外观的技术、ORB的位置识别器
比较几种位置识别的方法, 基于外观的技术,即图像到图像的匹配 ,在大场景下,比地图到地图或者图像到地图的匹配方法具有更好的可扩展性。在基于外观的方法中,词袋技术,例如概率方法FAB-MAP,由于其高效性而得到更多关注。DBOW2首次使用从BRIEF描述子获得的二进制词袋以及非常有效的FAST特征检测器。相比于至今被用在词袋方法中的SURF和SIFT特征,这将减少特征提取的时间至少一个数量级。尽管系统被证明是有效的和鲁棒的,BRIEF的使用,既不具备旋转不变型又不具备尺度不变型,限制系统从相似的观点进行平面轨迹和回环探测。先前的工作,提出一种基于带有 ORB的DBoW2的词袋位置识别器 。ORB是对旋转和尺度(在一定范围内)不变的二进制特征,从而产生对视角具有良好不变性的快速识别器。我们证实,在四个不同的数据集中识别器具有更好的回调和鲁棒性,并需要少于39ms(包括特征提取)从10K图像数据集中检索出回环候选项。在这项工作中,我们使用了位置识别器的改进版本,在查询数据库时使用了隐蔽性信息并返回了几个假设,而不仅仅是最佳匹配。

B Map Initialization地图初始化

由于深度信息无法从单个图像中获取,单目SLAM需要一段程序创建一个初始化地图。解决此问题的一个方法是初始化一个已知结构的跟踪。在滤波方法的背景下,可以使用反深度参数化以深度上的高度不确定性初始化点,希望该反深度参数化稍后将收敛到它们的实际位置。Engel遵循一个相似的方法以高方差初始化像素深度为一个随机值。
两视图初始化方法要么采用Faugeras方法假设局部场景的平面性,从单应图中恢复摄像机的相对姿态,要么采用Nister的五点算法计算一个基本矩阵来模拟平面和一般场景,Nister的五点算法需要处理多个解。这两种重建方法在低视差下都没有得到很好的约束,并且如果平面场景的所有点都靠近相机中心之一,则存在双重模糊度解。另一方面,如果带有视差观看非平面场景,唯一的基础矩阵可以利用八点算法计算得到,相关相机位姿可以无模糊地被恢复。
在第IV部分,提供一个新的基于平面场景的单应性和非平面场景的基本矩阵之间的模型选择的自动化方法。Torr提出了一种模型选择的统计方法。在类似的原理下,我们开发了一种启发式初始化算法,该算法考虑了在接近退化情况下(即平面、近平面和低视差)选择基本矩阵的风险,有利于单应性的选择。在平面情况下,为了安全操作,如果解决方案有双重模糊性,我们就不初始化,因为可能会选择损坏的解决方案。我们延迟初始化,直到该方法产生具有显著视差的唯一解。

C Monocular SLAM 单目SLAM

单目SLAM最初通过过滤来解决。在该方法中,每帧由滤波器处理,以联合估计地图特征位置和相机位姿。该算法在处理新信息较少的连续帧时存在计算量大、线性化误差积累等缺点。另一方面,基于关键帧的方法仅使用所选帧(关键帧)来估计映射,这允许执行更消耗资源(计算时间长)但更精确的束调整优化,因为映射不与帧速率相关联。Strasdat证明了基于关键帧的技术在相同的计算代价下比滤波更精确。
最具代表性的基于关键帧的SLAM系统可能是Klein和Murray提出的PTAM(Parallel Tracking and Mapping)。这是首次引入在并行线程中分割相机跟踪和建图的思想,并被证明在小型环境中的实时增强现实应用中是成功的。原始版本后来改进了边缘特征、跟踪期间的旋转估计步骤和更好的重新定位方法。PTAM的映射点对应于通过图像片相关匹配的快速角点。这使得这些点只用于跟踪,而不适用于位置识别。事实上,PTAM不能检测大回环,并且重新定位是基于关键帧的低分辨率缩略图的相关性,从而产生对视角的低不变性。
Strasdat [6] 提出了一种大规模单目SLAM系统,该系统的前端应用在GPU上的光流,然后是FAST特征匹配和纯运动BA,后端基于滑动窗口BA。采用具有相似约束的位姿图优化方法(7DOF)求解闭环系统,能够校正单目SLAM中出现的尺度漂移。在这篇文章中,我们提出了用七自由度(7DoF)位姿图优化的回环闭环的思想,并将其应用于 III-D 节中定义的基本图中。
Strasdat使用PTAM的前端,但只在从共视图检索到的局部地图中执行跟踪。他们提出了一种双窗口优化后端,该后端在内部窗口中连续执行BA和有限大小的外部窗口中的位姿图。但是,只有当外部窗口的大小足够大以包含整个回环时,闭环才有效。在我们的系统中,我们利用了基于共视图的局部地图和从共视图中构建位姿图的优秀思想,并将它们应用于一个完全重新设计的前端和后端。另一个不同之处在于,取代使用特定特征进行环路检测(SURF),而是对相同的跟踪和地图特征执行位置识别,从而获得鲁棒的帧率重定位和环路检测。
Pirker提出了CD-SLAM,这是一个非常完整的系统,包括回环检测、重定位、大规模操作和在动态环境中有效的工作。然而,地图初始化没有被提到。由于缺乏公共实现,我们无法对准确性、健壮性或大规模能力进行比较。
Song的视觉里程计使用ORB特征进行跟踪,并使用时间滑动窗口BA后端。相比之下,我们的系统更通用,因为它们不具有全局重定位、回环闭环,并不重复使用地图。他们还利用摄像机到地面的已知距离来限制单目尺度漂移。
在我们提交这些工作的初始版本之后,Lim的工作也被公布,其也使用相同的特征,用于跟踪、建图和回环检测。然而,BRIEF的选择限制系统到平面轨迹。他们的系统只跟踪最后一个关键帧中的点,因此地图被重新访问时不会被重用(类似于视觉里程计),并且存在无限增长的问题。在 VIII-E 节中我们从质量上比较了和这个方法的结果。
Engel最近研究了LSD-SLAM,使用直接法(例如,对图像像素强度的直接优化)取代基于特征的束调整(BA),可建立大规模半稠密地图。他们的成果令人印象深刻,因为该系统能够实时运行,无需GPU加速,构建半致密地图,比基于特征的SLAM生成的稀疏输出更有可能应用于机器人技术。然而,他们仍然需要特征用于回环检测,如我们在第 VIII-B 节中实验所示,并且它们的相机定位精度显著低于我们的系统和PTAM。这个结果在第 IX-B节中讨论。
介于直接和特征之间的方法是Forster的半直接视觉里程计。不需要在每个帧中提取特征,它们能够以高的帧速率工作,在四旋翼中获得令人印象深刻的结果。然而,没有执行回环检测,并且当前的实现主要被认为是用于向下看的相机。
最后,我们要讨论的是关键帧的选择。文献中所有的视觉SLAM工作一致认为,运行所有点和所有帧的BA是不可行的。Strasdat的工作表明,最具成本效益的方法是保留尽可能多的点,而只保留非冗余的关键帧。PTAM方法是非常谨慎地插入关键帧,以避免计算复杂度的过度增长。在难以探测的情况下,这种限制性的关键帧插入策略使得跟踪失败。合适的策略是,通过尽可能快地插入关键帧,然后移除冗余的关键帧,避免了额外的成本,从而在困难的场景中获得了前所未有的鲁棒性。

System Overview系统概述

A Feature Choice特征选择

ORB特征 :具有256位BRIEF描述子的带方向的多尺度的FAST角点,对视角具有旋转不变性,对每张图像的特征提取少于33毫秒。
Oriented FAST关键点 :尺度不变性由构建图像金字塔,并在每一层上检测角点实现;旋转不变性由灰度质心法表示特征的旋转。
BRIEF-256 :二进制描述子,在特征点附近的256次像素比较。需要用汉明距离(不同位的个数)度量。

系统的主要设计思想之一是利用建图和跟踪所使用的相同特征进行位置识别,进行帧率重定位和回环检测。这使得我们的系统高效,并且避免了像在先前的工作中那样需要从近SLAM特征中插入识别特征的深度。我们要求每个图像的特征提取需要远小于33ms,这不包括流行的SIFT(300ms)、SURF(300ms)或最近的A-Kaze(100ms)。为了获得通用的位置识别能力,我们需要旋转不变性,这不包括BRIEF和LDB。
我们选择ORB,它们是面向多尺度的FAST角点,并且具有256位关联描述子。它们计算和匹配速度极快,同时对视角具有良好的不变性。这允许从宽基线匹配它们,提高BA的精度。我们已经在文献 [11] 中展示了ORB用于位置识别的良好性能。虽然我们当前的实现使用ORB,但是所提出的技术并不局限于这些特性。

B Three Threads : Tracking , Local Mapping and Loop Closing 三线程:跟踪,局部建图和回环检测

在这里插入图片描述
系统如图,由三线程组成,并行运算:跟踪,局部建图和回环检测。

跟踪(Tracking)线程: 对每帧图像提取ORB特征点,通过局部共视地图的重投影优化当前相机位姿,并决定什么时候插入新的关键帧。
局部地图(Local Mapping)线程: 对周围相机位姿求解BA问题进行优化,包括局部空间内的特征点和相机位姿;
回环检测和全局优化(Loop Closing (and Full BA))线程: 对每个新的关键帧进行回环检测,消除累计误差。利用相似性约束对只有相机位姿组成的位姿图(Essential Graph)进行优化。

跟踪 负责利用每一帧图像定位相机,并决定何时插入新的关键帧。
首先 ,执行与先前帧匹配的初始化特征,利用唯一运动BA优化位姿。如果跟踪丢失(例如,由于遮挡或者突然移动),位置识别模块被用于执行全局重定位。一旦有相机位姿和特征匹配的初始估计,使用在系统中被提到的关键帧的共视图可恢复局部共视地图,如图Fig. 2(a) and Fig. 2(b)。
然后 通过重投影搜索与局部地图点的匹配,对所有匹配点再次进行相机位姿优化。
最终 ,跟踪线程决定新的关键帧是否被插入。所有跟踪步骤在第 V 五部分被解释。创新的步骤是创建初始地图,在第 IV 四部分被提到。
在这里插入图片描述
局部建图 处理新的关键帧并执行局部BA以实现相机姿态周围的最优重建。在共视图中相关的关键帧中搜索在新的关键帧中对于未匹配的ORB建立新的对应关系,三角化新的点。在三角化之后,基于跟踪期间搜集到的信息,应用紧急点剔除策略以仅保留高质量点。局部建图也负责剔除冗余的关键帧。在第 VI 六节详细解释所有局部建图步骤。
回环检测 用每个新的关键帧搜索回环。
首先 如果检测到回环,我们计算一个相似度变换,该变换通知回环中累积的漂移。
然后 ,循环的两边对齐,重复的点被融合。
最后 ,在相似度约束下对位姿图进行优化,以实现全局一致性。
主要的创新之处在于,我们对基本图进行了优化,基本图是共视图的稀疏子图,这在第 III-D 节中进行了说明。回环检测和校正步骤在第 VII 七节中详细说明。
我们使用在G2O中实现的Levenberg-Marquardt算法来执行所有优化。在附录中,我们描述了每个优化中涉及的误差项、代价函数和变量。

C Map Points, KeyFrames and their Selection 地图点云,关键帧和其选择

地图点云 p i p_i

  • 在世界坐标系中其3D三维坐标 X w , i X_{w,i}
  • 视图方向 n i n_i ,它是其所有视图方向的主单位向量(将点与观察它的关键帧的光学中心连接的射线)。
  • 代表ORB特征描述子 D i D_i ,是汉明距离相对于可视点的关键帧中的所有其他相关描述符最小的关联ORB描述符。
  • 根据ORB特征的尺度不变性约束,可观测点云的最大 D m a x D_{max} 和最小 D m i n D_{min} 距离。

关键帧 K i K_i

  • 相机位姿 T i w T_{iw} ,即世界坐标系转换到相机坐标系的变换矩阵。
  • 相机内参,包括焦距和焦点。
  • 所有在从图像帧中提取的ORB特征,无论是否与地图点相关联,如果提供了失真模型,则其坐标不失真。
    地图点云和关键帧是用一个宽松的策略创建的,之后会通过删选机制检测冗余关键帧和匹配错误或不可跟踪的点云进行删除。
    优势: 地图在构建过程中具有一定弹性,在外界条件比较困难的情况下(比如:旋转,快速运动),算法仍然可以实现鲁棒的跟踪。同时当相机对同一个环境重访问时,地图的尺度大小是可控的,利于该系统的长期工作。此外,与PTAM相比,我们的地图包含的异常值非常少,代价是包含的点更少。
    地图点云和关键帧的剔除过程分别在第 VI-B 节和第 VI-E 节中说明。

D Covisibility Gragh and Essential Gragh 共视图和基本图

共视图(Covisibility Graph):
关键帧之间的共视信息在我们的多个系统任务中非常有用,并且如文献 [7] 中所示表示为无向加权图。每个节点代表一个关键帧,如果两个关键帧能同时观测到地图点云中至少15个点,则在这两个关键帧之间用一条边相连,同时权重θ表示两个关键帧能共同观测到的点云数量。
生成树: 一个边数量最少的covisibility graph的子图。当插入新关键帧时,判断其与树上的关键帧能共同观测到多少点云,然后将其与共同观测点最多的关键帧相连;反之当一个关键帧被删除时,系统会重新更新与其相关的连接。
为了修正一个回环,我们执行一个姿态图优化,沿图分配回环闭环误差。为了不包含共视图所提供的可能非常稠密的所有边,我们建议构建一个基本图,它保留所有节点(关键帧),但是边较少,仍然保留一个产生精确结果的强网络。该系统从初始关键帧中构建增量性生成树,生成树提供具有最少边数的共视图的相关子图。当插入新的关键帧时,共享最多点云的关键帧被包含在数中,当通过剔除策略删除关键帧时,系统更新与其相关的连接。
基本图(Essential Graph): 包含了一个生成树,一个高共视关系(θmin=100)的covisibility graph边的子集,以及回环边。
基础图包含生成树,来自带有高共视关系( θ m i n = 100 \theta_{min}=100 )的共视图边的子集和回环边,导致一个强相机网络。Fig. 2显示了可视图,生成树和相关基本图的例子。如第 VIII-E 部分的试验显示,当执行位姿图优化时,该解决方案是如此精确,以至于附加的全BA优化几乎不能改进该解决方案。基本图的有效性和 θ m i n \theta_{min} 的影响在 VIII-E 部分被介绍。

E Bags of Words Place Recognition基于词袋的位置识别

基于DBoW2,系统插入词袋位置识别模块去执行回环检测和重定位。视觉单词是描述子空间的离散化,被作为视觉词典。这个词汇表被从大量图片中提取的ORB描述子离线创建。如果这些图片普遍够大,相同的词汇表被用于不同的环境,获得更好的性能,这在先前的工作 文献**[11]** 中被显示。系统建立一个增量式的包括反向指针的数据库,用于存储每个视觉词典里的单词,并且在其中关键帧是可见的,因此查询数据库是很高效的。当关键帧被剔除程序删除时,数据库也会相应更新。
因为关键帧之间存在视觉重叠,所以在查询数据库时将不存在唯一得分较高的关键帧。最初的DBOW2考虑到了这种重叠,将时间上接近的图像得分相加。其具有不包括查看相同位置但在不同时刻被插入的关键帧的限制。取而代之,我们对在共视图中相关的关键帧进行分组。此外,我们的数据库返回得分高于最佳得分的75%的所有关键帧匹配。
词袋用于特征匹配的另一个优点。当我们想要计算两组ORB特征之间的关系时,我们可以仅仅对在词汇树中的某一层次(从六个特征中选取第二个)属于同一节点的特征限制为强制匹配,以加速搜索。在回环检测和重定位中,当搜索匹配点用于三角化新的点时,使用上述技巧。我们还使用方向一致性测试提炼这个对应匹配点,丢弃异常点,以确保对于所有对应匹配点旋转方向一致。
改进:

  • 将返回的在共视图中相连的关键帧进行分类;
  • 数据库返回的分值高于最好分值75%的所有关键帧数据库返回的分值高于最好分值75%的所有关键帧;
  • 强制匹配视觉字典树上某一层的相同节点(关键帧)里的特征,以加快搜索速度;
  • 引入一个方向一致性测试来改进匹配点,以保证所有对应匹配点旋转方向一致。

Automatic Map Initialization 自动地图初始化

地图初始化的目的 是计算两帧图像之间的相对位姿,以三角化一组初始的地图点云。该方法应该独立于场景(平面或一般),并且不需要人工干预来选择良好的双视图配置,即具有显著视差的配置。我们提出并行计算两个几何模型,一个假设为平面场景的单应性和一个假设为非平面场景的基本矩阵。然后,我们使用一个启发式算法(即比较评分)来选择一个模型,并尝试用一种特定的方法来恢复所选模型的相对姿态。我们的方法只在确定两视图配置是安全的情况下初始化,检测低视差情况和众所周知的双重平面模糊度,避免初始化损坏的映射。
算法步骤如下:
1) 查找初始化对应关系:
在当前帧 F c F_c 中提取ORB特征(仅仅在最佳范围内)并在参考帧 F r F_r 中搜索匹配 x c x r x_c \leftrightarrow x_r
如果没有足够的匹配被找到,重置参考帧。
2) 两个模型的并行计算:
在并行线程中计算单应性 H c r H_{cr} 和基础矩阵 F c r F_{cr}
x c = H c r x r x_c = H_{cr}x_r x c T F c r x r = 0 x^T_cF_{cr}x_r = 0
分别使用归一化DLT和8点算法,如在RANSAC方案内解释的。为了平均两个模型的计算过程,对于两个模型迭代次数是预设的且相同的,在每个迭代中使用的点,其中8个用于基础矩阵,4个用于单应性。每次迭代为每个模型 M M 计算一个分数 S M S_M H H 是单应性, F F 是基础矩阵):
在这里插入图片描述
其中 d c r 2 d^2_{cr} d r c 2 d^2_{rc} 是从一帧到另一帧的对称转移误差。 T M T_M 是基于95%的 χ 2 \chi^2 测试的异常抑制阈值( T H = 5.99 , T F = 3.84 T_H = 5.99, T_F = 3.84 ,假设在测量误差中的标准偏差为1个像素)。 Γ \Gamma 被定义等于 T H T_H ,以便两个模型在其内部区域中对相同的 d d 得分相等,又一次使该过程被平均。
我们保持单应性和基础矩阵的高得分。如果找不到任何模型(没有足够的内部区域),我们将从步骤1重新启动该进程。
3) 模型选择
如果场景是平面的,几乎是平面的,或者存在低视差,则可以用单应性来解释。然而,也可以找到一个基本矩阵,但是问题没有被很好地约束,任何从基本矩阵恢复运动的尝试都将产生错误的结果。我们应该选择单应性,因为重建方法将从一个平面正确初始化,或者它将检测低视差情况,并拒绝初始化。另一方面,具有足够视差的非平面场景只能由基本矩阵来解释,但是如果匹配位于平面上或者具有低视差(它们距离较远),也可以找到单应性来解释匹配的子集。在这种情况下,我们应该选择基本矩阵。我们发现一个鲁棒的启发式方法去计算:
R H = S H S H + S F R_H = \frac{S_H}{S_H + S_F}
如果 R H > 0.45 R_H > 0.45 选择单应性,它充分地捕捉平面和低视差情况。否则,选择基础矩阵。
4) Motion and Structure from Motion recovery从运动恢复得到运动和结构:
一旦模型被选择,我们就检索相关的运动假设。
单应性情况我们利用Faugeras方法 [23] 检索8个运动假设。该方法提出了策略性测试来选择有效的解决方案。然而,由于点很容易走到相机的前面或后面,因此有低视差,则这些测试失败,这可能导致选择错误的解决方案。我们提议直接三角化这8个点,检查是否有一个大多数点是视差可见的,并在相机前面以及具有低重投影误差的解。如果没有明确的最优方案,将不初始化,并继续步骤1)。这种解模糊技术使我们的初始化在低视差和双重模糊配置下具有很强的鲁棒性,是我们方法鲁棒性的关键。
基础矩阵情况,我们使用校准矩阵 K K 将其转换为本质矩阵:
E r c = K T F r c K E_{rc} = K^TF_{rc}K
然后利用文献 [2] 奇异值分解法检索4个运动假设。三角化这四个解,根据单应性选择重建方案。
5) Bundle adjustment 束调整
最终,执行完整BA,细节见附录,提炼初始化重建方案。

在这里插入图片描述
在户外New College机器人序列中一个挑战性的初始化例子,如Fig. 3。可以看出,PTAM和LSD-SLAM是如何初始化平面上的所有点的,而我们的方法一直等到有足够的视差,从基本矩阵正确初始化。
*地图初始化总结:

  • 从当前帧和参考帧中查找初始匹配点对;
  • 并行计算两种几何模型:面向平面视图的homography(单应性矩阵)和面向非平面视图的fundamental matrix(基础矩阵);
  • 通过启发式算法(即比较评分)选择模型:对于平面、近平面或低视差情况采用单应性矩阵,反之采用基础矩阵;
  • 从运动中恢复结构,三角化特征点并选择正解;
  • 全局BA优化重构得到初始点云地图

[2] R. Hartley and A. Zisserman, Multiple View Geometry in Computer Vision, 2nd ed. Cambridge University Press, 2004.
[6] H. Strasdat, J. M. M. Montiel, and A. J. Davison, “Scale drift-aware large scale monocular SLAM.” in Robotics: Science and Systems (RSS), Zaragoza, Spain, June 2010.
[7] H. Strasdat, A. J. Davison, J. M. M. Montiel, and K. Konolige, “Double window optimisation for constant time visual SLAM,” in IEEE International Conference on Computer Vision (ICCV), Barcelona, Spain, November 2011, pp. 2352–2359.
[11] R. Mur-Artal and J. D. Tard´os, “Fast relocalisation and loop closing in keyframe-based SLAM,” in IEEE International Conference on Robotics and Automation (ICRA), Hong Kong, China, June 2014, pp. 846–853.
[12] “ORB-SLAM: Tracking and mapping recognizable features,” in MVIGRO Workshop at Robotics Science and Systems (RSS), Berkeley, USA, July 2014.
[23] O. D. Faugeras and F. Lustman, “Motion and structure from motion in a piecewise planar environment,” International Journal of Pattern Recognition and Artificial Intelligence, vol. 2, no. 03, pp. 485–508, 1988.

参考链接:https://blog.csdn.net/qq_41839222/article/details/87919672

发布了44 篇原创文章 · 获赞 8 · 访问量 6734

猜你喜欢

转载自blog.csdn.net/zhaodeming000/article/details/100587445
今日推荐