Loop closing 线程:
回环检测loop detection
- 计算当前关键帧和与其相邻的关键帧的最低得分Smin,查询recognition database,丢弃所有得分超过Smin的关键帧,注意所有与当前关键帧直接相邻的关键帧都应丢弃。
- 检测候选回环关键帧的连续性,
通过上述过程得到一系列的候选回环关键帧。
计算相似变换矩阵
位移,旋转以及尺度总共有7个自由度,故需要计算相似变换矩阵。
优化Essential Graph
通过Essential Graph优化位姿图,校正尺度漂移;
- 通过bow匹配当前关键帧以及候选回环关键帧;
- 通过ransac迭代计算出相似变换矩阵并优化(计算重投影误差,计算损失函数);
- 回环融合loop correction
- 在共视图中融合重复的地图点并插入新的边;
- 使用相似变换矩阵修正当前关键帧的位姿,并扩展到其所有的相邻帧;
- 融合相关的地图点;
在orb-slam2中,回环检测优化位姿图后,会启动一个单独的全局BA优化线程,由于这个BA优化耗时比较长,在执行过程中若探测到新的回环,则会停止该全局优化,优化后通过生成树将更新的关键帧位姿和地图点与未更新的关键帧和地图点融合(传递更新的位姿信息);
由于能力有限,以上笔记主要是记录备忘所用,如有不准确的地方,烦请指出,共同学习!