ORBSLAM3 --- 检测闭环及融合关键帧KeyFrameDatabase::DetectNBestCandidates函数解析

目录

1.函数用处

2.ORB-SLAM2与ORB-SLAM3的筛选候选关键帧的不同之处与原理解析

3.代码解析


1.函数用处

        在闭环及地图合并线程调用:

mpKeyFrameDB->DetectNBestCandidates(mpCurrentKF, vpLoopBowCand, vpMergeBowCand,3);

        分别找到3个最好的候选帧,3个回环候选帧放在vpLoopBowCand中,3个融合候选帧放在vpMergeBowCand中。

        函数的参数如下:

/**
 * @brief 找到N个融合候选N个回环候选
 *
 * @param[in] pKF 当前关键帧(我们要寻找这个关键帧的回环候选帧和融合候选帧)
 * @param[out] vpLoopCand 记录找到的回环候选帧
 * @param[out] vpMergeCand 记录找到的融合候选帧
 * @param[in] nNumCandidates 期望的候选数目,即回环和候选分别应该有多少个
 */
void KeyFrameDatabase::DetectNBestCandidates(KeyFrame *pKF, vector<KeyFrame *> &vpLoopCand, vector<KeyFrame *> &vpMergeCand, int nNumCandidates)

2.ORB-SLAM2与ORB-SLAM3的筛选候选关键帧的不同之处与原理解析

闭环和地图合并示意图

        找到和当前关键帧K_a对应的最佳的3个回环候选帧和融合候选帧,统一称为K_m
        我们先回顾下ORB-SLAM2函数中如何做的,对应函数KeyFrameDatabase::DetectLoopCandidates(),如果想详细了解的话详见我的博客:

ORB-SLAM2 --- KeyFrameDatabase::DetectLoopCandidates函数解析icon-default.png?t=N176https://blog.csdn.net/qq_41694024/article/details/128574571        阈值1:minCommonWords,最大共同单词的0.8倍。
        阈值2:minScore,当前关键帧与它的共视关键帧的最低相似度。
        阈值3:minScoreToRetain,统计符合上述条件的回环候选帧的共视关系最好的10帧中总相似度最高的组࿰

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

APS2023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值