ORB-SLAM2重定位算法之DetectRelocalizationCandidates(Frame *F)函数

本文深入探讨ORB-SLAM2中的DetectRelocalizationCandidates函数,该函数在重定位过程中起关键作用,通过分析新帧与地图点的关系寻找重定位候选。内容涉及函数实现细节及在SLAM系统中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//输入为当前帧
//返回和当前帧相似的一组关键帧

vector<KeyFrame*> KeyFrameDatabase::DetectRelocalizationCandidates(Frame *F)
{
    list<KeyFrame*> lKFsSharingWords;//这个list用来存放和当前帧存在相同单词的关键帧

    // Search all keyframes that share a word with current frame
    {
        unique_lock<mutex> lock(mMutex);
        
        for(DBoW2::BowVector::const_iterator vit=F->mBowVec.begin(), vend=F->mBowVec.end(); vit != vend; vit++)//开始遍历当前帧的各个单词 逆向索引
        {
            
            list<KeyFrame*> &lKFs =   mvInvertedFile[vit->first];
            //找出包含本单词的所有关键帧
            

            for(list<KeyFrame*>::iterator lit=lKFs.begin(), lend= lKFs.end(); lit!=lend; lit++)
            {
                KeyFrame* pKFi=*lit;
                if(pKFi->mnRelocQuery!=F->mnId)
                {   
                    
                    pKFi->mnRelocWords=0;
                    pKFi->mnRelocQuery=F->mnId;
                 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值