2. 计算一个相对分数minsocre:计算当前帧与其共视图中的帧的相似分数,取其中最小的那个作为minsocre。因为DBoW计算出的绝对分数不具有可比性,取当前帧与共视帧之间最小的相似度作为基准,如果大于这个基准才有可能是闭环帧。
3. 从上文中说的资料库中查找闭环候选帧。因为资料库中维护了Inverse Index,所以可以快速找到与当前帧有共同单词的关键帧。其中就会有一个关键帧具有的共同单词数最大,为maxcommonwords。根据这个设一个阈值,mincommons = 0.8 * maxcommonwords,据此去掉共同单词太少的候选关键。再加上minscore的要求干掉一部分关键帧。再再加上候选帧不能在当前帧的共视图中的条件,又干掉一部分。之后,把相连的的候选帧归为一组,每个组计算一个累加分数,可以找到一个最大分数bestAccScore。据此,设置一个阈值,minScoreToRetain = 0.75*bestAccScore。用这个阈值干掉一部分分组,这样可以干掉一些孤立的闭环帧候选帧(孤立的可能都是错误的闭环)。剩下的这些分组中的关键帧就是闭环候选帧啦。
4. 连续性检测。现在,进一步对候选关键帧进行筛选。闭环不仅仅是单帧对单帧的匹配,好的闭环应该是多帧对多帧的闭环。也就是形成连续闭环,如下图所示。这一步请参考[4]。