加载ORB词典

参考

[1].回环检测之DBoW2_半不闲居士的博客-CSDN博客_dbow2

一. DBoW2词典里面存储的是什么数据

可以通过DBow2的源码进行解读,这也不是太难。

 只要熟悉DBoW 里面k叉树的意义,就不难理解上表。

关系如上所示,其中的描述子是根据kmeans++算法进行依次选取,并且最后迭代收敛的结果。

 

二. ORB词典的理论依据

2.1 ORB词典主要用于回环检测

回环检测的目的:构建全局一致的轨迹和地图,减小累积误差

回环检测是一个独立的模块,主流视觉slam中检测回环的方式:词袋模型

依赖的库:DBow库

2.2 回环检测的方法

有以下两类:

(1)基于里程计的几何关系(odometry based)

仍然存在累积误差较大的问题,除非使用高精度传感器

(2)基于外观(Appearance based)

核心问题:计算图像之间的相似性

实现手段:设计一种方法,计算它们之间相似性评分:s(A,B)

评价相似程度的好与不好,对于图像来说是非常困难的,下面先引入感知偏差和感知变异的概念

2.3 准确率和回召率

 False Positive称为感知偏差

False Negative称为感知变异

准确率:(算法检测出来的所有回环是真实回环的概率)

 Precision=\frac{TP}{TP+FP}

召回率:(所有真实回环被检测出来的概率)

Recall=\frac{TP}{TP+FN}

二者是矛盾的,例如,某个阈值提高,使得算法检测变严格,那么准确率变高,但是同时检测出来的数量变少,也意味着漏掉了许多真实的回环,召回率变低了;算法更宽松,那么就与之相反。

以上另一种理解手段是,如下,无叉红框是回环,有叉红框不是回环,蓝色勾叉代表算法对回环的判断,算法严格,勾很少,基本都集中在无叉红框,准确率高,但是召回率低;算法宽松,勾很多,基本把无叉红框都覆盖了,但是也包含了许多有叉红框,召回率高,但是准确率也低了。


但在slam中,对准确率的要求高一点,对召回率反而还没那么高。


经过以上分析,我们要明确我们的目标是寻求一种方式来描述两幅图像的相似性,要考虑效率和合理性等因素。接下来就来说明为什么词袋模型是合理的。


2.4 词袋(bag of Words(BoW))模型

以一张图片来说,涉及的基础概念:单词(图片中的人、车、狗),字典(单词组合在一起形成字典),向量(描述一张图片,用单词出现的数量组成的vector)

强调单词的有无,无关其顺序;

接下来引申出来的问题:

(1)字典怎么来

(2)以上面的向量来描述图像,然后通过向量之差的范数,是否足够判断回环

2.5 字典

(1)字典的生成

聚类问题(clustering),使用经典的K-means算法解决。

字典的通用性是一个很重要的点,要保证当前环境中的图像特征都曾在字典里面出现过。

描述字典的方式有很多:k叉树,chou-liu tree

这里只介绍k叉树

(2)k叉树的定义(更具体的方式待详细书写)

分支为k,深度为d的树,第一层是k,第二层是k^2,第三层是k^3,依次类推,第d层是k^d

中间的节点供快速查找使用

(3)具体的字典创建方式(结合代码)

总结起来就是:

1)把需要经历的所有环境图像,提取ORB特征点

2)再计算对应的描述子

3)使用DBoW3::Vocabulary中的create函数,利用2)中的描述子,生成词典(保存为.yml.zip文件)

(4)具体的对比图像相似度的方式(结合代码的总结)

总结起来就是:

1)计算两幅图像的ORB特征点和描述子

2)利用DBoW3::Vocabulary中的transform,针对上文的ORB描述子,在字典里面查找并计算Bow向量

3)通过score函数进行打分(即计算相似度)

3. DBoW2的使用

3.1 下载代码

GitHub - dorian3d/DBoW2: Enhanced hierarchical bag-of-word library for C++

这不是一个ros包,而仅仅是一个cmake工程包

mkdir build
cd build
cmake ..
make

以上即可编译完成,运行demo即可。

3.2 DBoW2词典

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值