摘要
论文介绍了 ORB-SLAM,这是一种基于特征的单目SLAM 系统,可在小型和大型室内外环境中实时运行。该系统对严重的运动噪声具有鲁棒性,允许宽基线循环闭合和重新定位,并包括全自动初始化。基于近年来的优秀算法,从零开始设计了一个新颖的系统,该系统对所有 SLAM 任务使用相同的功能:跟踪、映射、重新定位和闭环。选择重建的点和关键帧的适者生存策略可带来出色的鲁棒性,并生成紧凑且可跟踪的地图,该地图仅在场景内容发生变化时才会增长,从而允许终身操作。对来自最流行数据集的 27 个序列进行了详尽的评估。 ORB-SLAM 相对于其他最先进的单目 SLAM 方法实现了前所未有的性能。开源!
主要贡献
- 对所有任务使用相同的功能:跟踪、映射、重新定位和闭环。这使系统更加高效、简单和可靠。使用 ORB 特征 ,它允许在没有 GPU 的情况下实现实时性能,为视角和光照的变化提供良好的不变性。
- 大环境下的实时操作。由于使用了covisibility graph,跟踪和映射集中在局部covisible区域,与全局地图大小无关。
- 基于称为Essential Graph的位姿图优化的实时闭环。它是由系统维护的生成树、闭环连接和来自covisibility graph的强边构建的。
- 实时相机重定位,对视角和照明具有明显不变性。这允许从跟踪失败中恢复并且还增强了地图重用。
- 基于模型选择的新的自动和鲁棒初始化程序,允许创建平面和非平面场景的初始地图。
- 一种适者生存的地图点和关键帧选择方法,在生成时很宽松,但在剔除时非常严格。由于丢弃了冗余关键帧,该策略提高了跟踪鲁棒性并增强了长期操作。
关键帧之间的Covisibility information 在系统的多个任务中非常有用,表示为无向加权图。每个节点都是一个关键帧,如果两个关键帧共享相同地图点(至少15个)的观测值,则两个关键帧之间存在一条边,即边的权重θ和公共地图点的数量。
为了纠正闭环,执行了位姿图优化,该优化将循环闭合误差沿图分布。为了不包含covisibility graph提供的所有边(共视图可能非常密集),构建一个Essential Graph,该图保留所有节点(关键帧),但保留较少的边,仍然保留产生准确结果的强连接。系统从初始关键帧以增量方式构建生成树,该生成树提供具有最少边数的covisibility graph的连通子图。插入新关键帧时,它将包含在连接到共享大多数点观测的关键帧的树中,并且当通过剔除策略删除关键帧时,系统将更新受该关键帧影响的连接。基本图包含生成树、具有高共视性(θmin=100)的covisibility graph的边子集和循环闭合边,从而形成一个强大的摄像机网络。其中,covisibility graph和Essential Graph的理解也可以参见ORB-SLAM中两种图的理解。
系统框架
跟踪负责在每一帧中定位相机并决定何时插入新的关键帧。首先执行与前一帧匹配的初始特征,并使用仅运动 BA 优化姿势。如果跟踪丢失(例如,由于遮挡或突然移动),则使用位置识别模块执行全局重定位。一旦对相机位姿和特征匹配进行了初步估计,就可以使用系统维护的关键帧的covisibility graph检索局部可见地图 [见下图]。
局部地图处理新的关键帧并执行局部 BA,以在相机位姿周围实现最佳重建。在covisibility graph的连接关键帧中搜索新关键帧中未匹配 ORB 的新对应关系,以对新点进行三角测量。创建后的一段时间,根据跟踪期间收集的信息,应用紧急点剔除策略以仅保留高质量点。局部地图还负责剔除冗余关键帧。
环路闭合将搜索具有每个新关键帧的闭环。如果检测到一个闭环,我们计算一个相似性转换,将该转换通知循环中累积的漂移。然后,将回路的两侧对齐,并融合重叠的点。最后,在相似性约束上进行位姿图优化,以实现全局一致性。主要新颖之处在于对 Essential Graph进行了优化。使用g2o中实现的Levenberg–Marquardt算法来执行所有优化。
系统嵌入了一个基于DBoW2的字袋位置识别模块,用于执行循环检测和重新定位。视觉词汇只是描述空间的离散化,即视觉词汇。词汇表是使用从大量图像中提取的ORB描述符离线创建的。如果图像足够通用,相同的词汇表可以用于不同的环境以获得良好的性能。由于关键帧之间存在视觉重叠,因此在查询数据库时,不会存在唯一的高分关键帧。原始DBoW2考虑了这种重叠,将时间相近的图像的分数相加。这有一个限制,即不包括查看相同位置但在不同时间插入的关键帧。相反,将在covisibility graph中连接的关键帧进行分组。此外,数据库将返回分数高于最佳分数75%的所有关键帧匹配。
自动地图初始化
地图初始化的目标是计算两帧之间的相对位姿以对一组初始地图点进行三角测量。此方法应独立于场景(平面或一般),并且不应需要人工干预来选择良好的双视角配置,即具有明显视差的配置。提出并行计算两个几何模型:假设平面场景的单应矩阵和假设非平面场景的基本矩阵。然后,我们使用启发式方法来选择模型,并尝试使用所选模型的特定方法来恢复相对姿势。仅在确定双视图配置安全时才进行初始化,检测低视差情况和众所周知的双平面模糊性,避免初始化损坏的地图。
- 查找初始对应关系:提取当前帧Fc的ORB 特征,与参考帧Fr的ORB特征进行匹配,xc<->xr若匹配数量不足,则重置参考帧。
- 两个模型的并行计