ORB-SLAM: a Versatile and Accurate Monocular SLAM System
2022/1/19 23:55:59
本文主要是介绍ORB-SLAM: a Versatile and Accurate Monocular SLAM System,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
论文翻译
论文讲解
三、系统总览
在这部分中简单介绍了一下整个系统的流程。
A特征选择
制图和追踪过程中的特征点在重定位和回环检测的时候也会使用,从而实现一个更加高效的系统。在ORBSLAM中使用的特征描述子是ORB描述子,这种描述子计算和匹配的速度很快,同时具有旋转不变性,从而让BA优化的结果精度更高。
B三个线程:追踪、局部建图和回环检测
图中所示的是整个系统的流程,可以看见整个系统包括三个线程。
跟踪线程主要负责随着每一帧的增加,一帧一帧地计算相机的位姿,并且根据计算出来的位姿,来确定什么时候将一个帧作为新的关键帧,在这个过程中我们首先使用匀速模型去进行估计,不合适则是用上一帧的数据,再不行则使用全局重定位。这个线程相当于在不断获得每一帧的位姿信息。
局部地图线程是负责进行新的关键帧的处理,并且要进行局部的BA优化。同时这个线程也会维护关键帧的数目,从而起到一个限制计算量的作用。
最后的回环检测线程看名字就能知道意思了,就是对新来的关键帧进行检测,看是否出现了回环的信息,如果出现就利用回环信息去校正累积误差,从而对全局的地图进行一次优化。
C地图点、关键帧以及他们的选择
地图点是恢复了3d信息的点,对应的是真实场景下的一个点的坐标,每个地图点要存储下面的一系列信息:
而关键帧没什么好说的,需要保存下面的信息:
地图点和关键帧都通过一些选择和删除机制去维持,从而保证维护的局部场景是有限大小的,不至于过大导致计算过于复杂。
D共视图和关键图
共视信息指的是一个点可以被两个帧同时看见,而共视图是基于这个共视关系,用节点表示关键帧,关键帧之间如果存在至少十五个点满足共视关系,就给这两个点增加一条边,并用共视关系的点的数目来表示边的权重。可见共视图描述了帧与帧之间特征的联系,在后面的优化过程中会用到这个图。
关键图则是用于回环检测的相关操作。关键图保留了所有的关键帧,每个关键帧都存储为一个节点,但是在关键图中节点的数目会更少,这主要是为了保持一个比较强的网络,从而获得精准的结果。它的边包含生成树的连接关系、形成闭环的连接关系、共视关系非常好的关键帧连接关系
此外,系统还增量式地维护一个生成树,从第一个关键帧开始,它连接了边缘数量最少的共视图的子图像,也就是关键帧与附近共视关系最好的关键帧,也是一种父子关系。
共视图、关键图和生成树讲解
也就是说,共视图是内容最丰富的,只要满足十五个点的共视关系就有一条边,而生成树是内容最简单的,一个节点只选择共视关系最大的点作为父节点,关键图介于二者之间,只保留了共视关系很好的边以及一些额外的信息。
E基于图像词袋模型的位置识别
在进行回环检测过程中,使用词袋模型进行回环的检测,关于词袋模型的内容前面SLAM十四讲里面有,这里不多赘述了。
四、自动地图初始化
五、跟踪
六、局部制图
七、回环检测
这篇关于ORB-SLAM: a Versatile and Accurate Monocular SLAM System的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27Rocket消息队列资料:新手入门指南
- 2024-11-27rocket消息队资料详解与入门指南
- 2024-11-27RocketMQ底层原理资料详解入门教程
- 2024-11-27RocketMQ项目开发资料:新手入门教程
- 2024-11-27RocketMQ项目开发资料详解
- 2024-11-27RocketMQ消息中间件资料入门教程
- 2024-11-27初学者指南:深入了解RocketMQ源码资料
- 2024-11-27Rocket消息队列学习入门指南
- 2024-11-26Rocket消息中间件教程:新手入门详解
- 2024-11-26RocketMQ项目开发教程:新手入门指南