ORB-SLAM:一个准确的多功能SLAM系统
概论:此文介绍了ORB-SLAM,一个基于特征点的单目实时SLAM系统,支持小型/大型,室内/室外环境。此系统对剧烈的运动噪声也具有鲁棒性,支持宽基线闭环检测与重定位,和全自动初始化。基于近年来的很棒的算法,我们从头设计了一个新的系统,使用特征点
去做SLAM所有的任务:跟踪,建图,重定位和回环检测。我们使用了一种较好的方法,选取重建过程中的关键点与关键帧,得到了很好的鲁棒性,生成了简洁而可用于追踪的地图,其只会在场景发生变化时才会增长,并且持久建图。我们使用最流行的数据集的27段
序列进行了透彻的测试。与其他最先进的单目SLAM相比,ORB-SLAM取得了空前的性能。为了社区的利益,我们将源码开源。
关键词:持久建图,定位,单目视觉,识别,SLAM
1.介绍
众所周知,光束平差法(BA)被用来优化相机定位与稀疏集合重建,前提是需要强大的匹配网络和好的初始猜测。很长时间以来,这方法被认为无法在实时程序中负担得起,,例如视觉SLAM。视觉SLAM的目标是在重建环境的同时估计相机轨迹。现在我们知道为了
实时获得精确结果又不要求过分的计算资源,一个实时SLAM算法需要给BA提供以下条件:
·在关键帧中与当前观测相关的场景特征点
·由于复杂度随着关键帧的数量而增长,关键帧的选取应避免冗余
·需要一个关键点与关键帧的强大的配置网络来产生精确的结果,即一套普遍的关键帧集合,观测到巨大视差变化和足够的闭环匹配。
·关键帧的初始位姿估计与点位置的非线性优化
·实时局部地图,使得优化能专注于scalability
·快速全局优化(例如位姿图)的能力做到实时闭环
BA的第一个实时应用是Mouragon et. al.的视觉里程计,基于Klein与Murray开创性的SLAM工作——并行跟踪与建图(PTAM)。此算法虽然仅限于小尺度操作,但提供了简单而高效的关键帧选取,特征点匹配,点云三角化,每帧的相机定位和追踪丢失后的重定位
方法。可惜一些因素严重限制了其应用:缺少闭环检测和对遮挡的恰当处理,重定位的视点的不稳定和需要人力介入才能启动的建图。
在本文的工作中我们基于PTAM的主要思想,Galvez-Lopez和Tardos的地区识别工作,Strasdat et. al的尺度敏感的闭环检测和利用共视信息进行大尺度操作的思想,去从头设计了ORB-SLAM,一个全新的单目SLAM系统。其主要贡献为:
·利用相同的特征点做所有任务:跟踪,建图,重定位和闭环检测。这使得我们的系统更高效,简单,可靠。我们使用ORB特征点,使得实时计算不需要GPU,视点,光照变化稳定。
·大型环境下的实时操作。要感谢共视图的使用,跟踪与建图在一个局部共视区域中,与全局地图独立。
·实时闭环检测基于一个位姿图(我们称为“本质图”)的优化。本质图由系统维护的树生长而来,闭环检测的链接和strong边从共视图中来。
·实时相机重定位,对视点与光照变化非常稳定。这点保证了跟踪失败后的恢复与加强了地图的重用。
·新的自动的,鲁棒的初始化流程,基于模型选择的,从平面/非平面场景的生成的初始地图。
·一种“适者生存”的方法选择地图点与关键帧,在生成时宽松但剪裁严格。这种策略提高了跟踪的鲁棒性加强了持久操作因为冗余的关键帧被丢弃了。
我们利用流行的公开数据库进行了广泛的测试,从室内到室外,包括手持,汽车和机器人的序列。值得一提的是,我们相比先进的直接法取得了更精确的相机位置,直接法使用像素灰度而不是特征点重投影来优化误差。我们会在IX-B节讨论其可能的原因。
此处的闭环检测和重定位方法基于我们之前的工作。一个雏形之前已展示。在本文中我们加入了初始化方法,“本质图”和perfect all methods。我们也细细描述了所有的构建模块,进行了全面的实验验证。
就我们所知,这是目前最完整,可靠的单目SLAM方案,为了社区的利益我们开放了源码。示例视频与代码可在我们的项目网站找到。
概论:此文介绍了ORB-SLAM,一个基于特征点的单目实时SLAM系统,支持小型/大型,室内/室外环境。此系统对剧烈的运动噪声也具有鲁棒性,支持宽基线闭环检测与重定位,和全自动初始化。基于近年来的很棒的算法,我们从头设计了一个新的系统,使用特征点
去做SLAM所有的任务:跟踪,建图,重定位和回环检测。我们使用了一种较好的方法,选取重建过程中的关键点与关键帧,得到了很好的鲁棒性,生成了简洁而可用于追踪的地图,其只会在场景发生变化时才会增长,并且持久建图。我们使用最流行的数据集的27段
序列进行了透彻的测试。与其他最先进的单目SLAM相比,ORB-SLAM取得了空前的性能。为了社区的利益,我们将源码开源。
关键词:持久建图,定位,单目视觉,识别,SLAM
1.介绍
众所周知,光束平差法(BA)被用来优化相机定位与稀疏集合重建,前提是需要强大的匹配网络和好的初始猜测。很长时间以来,这方法被认为无法在实时程序中负担得起,,例如视觉SLAM。视觉SLAM的目标是在重建环境的同时估计相机轨迹。现在我们知道为了
实时获得精确结果又不要求过分的计算资源,一个实时SLAM算法需要给BA提供以下条件:
·在关键帧中与当前观测相关的场景特征点
·由于复杂度随着关键帧的数量而增长,关键帧的选取应避免冗余
·需要一个关键点与关键帧的强大的配置网络来产生精确的结果,即一套普遍的关键帧集合,观测到巨大视差变化和足够的闭环匹配。
·关键帧的初始位姿估计与点位置的非线性优化
·实时局部地图,使得优化能专注于scalability
·快速全局优化(例如位姿图)的能力做到实时闭环
BA的第一个实时应用是Mouragon et. al.的视觉里程计,基于Klein与Murray开创性的SLAM工作——并行跟踪与建图(PTAM)。此算法虽然仅限于小尺度操作,但提供了简单而高效的关键帧选取,特征点匹配,点云三角化,每帧的相机定位和追踪丢失后的重定位
方法。可惜一些因素严重限制了其应用:缺少闭环检测和对遮挡的恰当处理,重定位的视点的不稳定和需要人力介入才能启动的建图。
在本文的工作中我们基于PTAM的主要思想,Galvez-Lopez和Tardos的地区识别工作,Strasdat et. al的尺度敏感的闭环检测和利用共视信息进行大尺度操作的思想,去从头设计了ORB-SLAM,一个全新的单目SLAM系统。其主要贡献为:
·利用相同的特征点做所有任务:跟踪,建图,重定位和闭环检测。这使得我们的系统更高效,简单,可靠。我们使用ORB特征点,使得实时计算不需要GPU,视点,光照变化稳定。
·大型环境下的实时操作。要感谢共视图的使用,跟踪与建图在一个局部共视区域中,与全局地图独立。
·实时闭环检测基于一个位姿图(我们称为“本质图”)的优化。本质图由系统维护的树生长而来,闭环检测的链接和strong边从共视图中来。
·实时相机重定位,对视点与光照变化非常稳定。这点保证了跟踪失败后的恢复与加强了地图的重用。
·新的自动的,鲁棒的初始化流程,基于模型选择的,从平面/非平面场景的生成的初始地图。
·一种“适者生存”的方法选择地图点与关键帧,在生成时宽松但剪裁严格。这种策略提高了跟踪的鲁棒性加强了持久操作因为冗余的关键帧被丢弃了。
我们利用流行的公开数据库进行了广泛的测试,从室内到室外,包括手持,汽车和机器人的序列。值得一提的是,我们相比先进的直接法取得了更精确的相机位置,直接法使用像素灰度而不是特征点重投影来优化误差。我们会在IX-B节讨论其可能的原因。
此处的闭环检测和重定位方法基于我们之前的工作。一个雏形之前已展示。在本文中我们加入了初始化方法,“本质图”和perfect all methods。我们也细细描述了所有的构建模块,进行了全面的实验验证。
就我们所知,这是目前最完整,可靠的单目SLAM方案,为了社区的利益我们开放了源码。示例视频与代码可在我们的项目网站找到。