ORB-SLAM2之KeyFrameDataBase

这个类是关键帧的数据库,主要用于计算闭环检测和重定位时的候选帧,类中维护一个每个元素都是链表的vector容器,容器的每个元素是预先训练好的特征词汇,然后对应的连表上放的都是关键帧,包含这个词汇的关键帧。
类中public的函数及其含义

项目Value
KeyFrameDatabase(const ORBVocabulary &voc);构造函数
void add(KeyFrame* pKF);根据关键帧的词包,更新数据库的倒排索引
void erase(KeyFrame* pKF);关键帧被删除后,更新数据库的倒排索引
void clear();清空关键帧数据库
变量含义
std::vector<KeyFrame > DetectLoopCandidates(KeyFrame pKF, float minScore);在闭环检测中找到与该关键帧可能闭环的关键帧
std::vector<KeyFrame*> DetectRelocalizationCandidates(Frame* F);在重定位中找到与该帧相似的关键帧

protected的相关变量及其定义

变量含义
const ORBVocabulary* mpVoc;预先训练好的词典
std::vector<list<KeyFrame*> > mvInvertedFile;倒排索引,mvInvertedFile[i]表示包含了第i个word id的所有关键帧
std::mutex mMutex;Mutex, 多用途的

计算闭环候选帧的过程和计算重定位候选帧的过程几乎类似,两者区别在于:计算闭环候选帧时参考的是关键帧,而重定位时参考的是普通帧,因此也就没有像闭环那样剔除关键帧的局部图中的帧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值