一、什么是关键帧?
关键帧是目前是一种非常常用的方法,可以减少待优化的帧数,并且可以代表其附近的帧,关键帧相当于slam的骨架,是在局部一系列普通帧中选出一帧作为局部帧的代表,记录局部信息。如果摄像头放在原处不动,普通帧还是要记录的,但关键帧因为总看到原场景,所以不会增加。
可以简单理解为方阵里有10行10列,每一行的第一个人就是一个关键帧,他可以代表他所在一行的人的特征。但实际上并不是每一行第一个人,这就涉及到关键帧的选取策略了。
二、选取策略
本人结合源码及网上其他大佬的文章总结如下:
强判定条件(直接判定是否插入)
1.可直接插入的判断
- 如果是imu模式且未完成imu初始化,距离上一帧关键帧插入时间大于0.25s,直接插入。
2.三个不插入关键帧的判定(判定成功,直接返回false,不插入关键帧)
- 处于定位模式:不插入关键帧
理由:定位模式是只定位不建图,只利用已有的地图点对当前相机姿态进行估计,而不更新地图点,因此没有插入关键帧的必要。</