ORB-SLAM2源码学习:⑥关键帧构成的图结构

前言

在ORB-SLAM2 中,由关键帧构成了几种非常重要的图结构,包括共视图、本质图和生成树

1.共视图

其中蓝色表示上面提到的关键帧,绿色表示当前相机的位置; 红色的点表示局部地图点; 红色的点和黑色的点组成了所有的地图点。共视图是无向加权图, 每个顶点都是关键帧。如果两个关键帧之间满足一定的共视关系(至少有15 个共视地图点),则它们就会连成一条边, 边的权重就是共视地图点数目。
作用

共视图贯穿在整个ORB-SLAM2 流程中,下面列举几个共视图在其中的应用。

1.在跟踪线程中。通过共视图构建当前帧的局部地图,增加了投影匹配的地图点数目, 增加了匹配点对。上图(a)中绿色表示当前帧, 未使用共视图时能够投影到它的地图点非常有限,而通过共视图构建的局部地图几乎占了整个地图的一半,大大增加了投影匹配的地图点数目。

2.在局部建图线程中。用当前关键帧与和它相邻的共视关键帧通过三角化产生更多新的地图点,使得跟踪更稳定。

3.在闭环线程中。寻找闭环候选关键帧及筛查满足连续性条件的闭环候选关键帧时,多次使用共视关系建立关键帧组,这样能够保证闭环候选关键帧足够可靠。

4. 在本质图优化中。将共视程度较高的关键帧之间的约束作为边加入优化。

2.本质图 

在闭环矫正环节,通常使用位姿图优化的方法将闭环时的误差沿着位姿图进行分摊。但由于共视图中关键帧之间的联系非常紧密,因此优化时速度会很慢。为了能够在加速优化的同时保证优化结果的精度,我们就构建了一种图结构——本质图(Essential Graph) 。本质图中保留了所有的顶点(关键帧),但是减少了顶点之间连接的边,它只保留了联系紧密的边,从而保证优化结果精度比较高。

本质图中边的连接关系如下:

1.生成树连接关系。

2.形成闭环的连接关系,闭环后地图点变动后新增加的连接关系。

3.共视关系非常好(至少有100 个共视地图点) 的连接关系。

本质图保留了最重要的边,去掉了相对不那么重要的边,优化时效率更高, 收敛更快。

3.生成树

生成树( Spanning tree) 由子关键帧和父关键帧构成。它是共视图的一个子图,具有最少的边。当新插入一个关键帧时, 它就和生成树中和它共视程度最高的关键帧建立了连接; 当需要删除一个关键帧时, 系统会更新受到该关键帧影响的连接关系。生成树的示意图如上图所示,其中箭头方向表示父节点指向子节点的连接关系。所有关键帧中父子关系构成的连接关系都称为生成树。非
父子关系之间的连接关系会被抛弃, 体现在上图中就变成了孤立的点(图中的蓝色点)。

结束语

以上就是我学习到的内容,如果对您有帮助请多多支持我,如果哪里有问题欢迎大家在评论区积极讨论,我看到会及时回复。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值