zoukankan      html  css  js  c++  java
  • DBoW2 词袋模型笔记

    DBoW算法用于解决Place Recognition问题,ORB-SLAM,VINS-Mono等SLAM系统中的闭环检测模块均采用了该算法。来源于西班牙的Juan D. Tardos课题组。

    主要是基于词袋模型(BoW)https://en.wikipedia.org/wiki/Bag-of-words_model_in_computer_vision。在10000张train image图像数据库中找到query image的匹配图像耗时<39ms,并有较高的召回率和较低的false positive。

    理解词袋模型最重要的是要明白什么叫特征向量?什么叫一个视觉单词?又是什么叫词袋向量?

    特征向量 - 单个视觉特征描述子

    视觉单词 - 词典中的聚类中心,带有权重的单个视觉特征描述子

    词袋向量 - 一张图片用词袋中每个单词是否出现(+ 出现的次数 + TF-DF)组合而成的向量(体现多个视觉特征描述子)

    没看懂?请看下面

    一. 主要步骤:

    构建字典(Vocabulary):将图像数据库转换为索引图(k叉树)

    template<class TDescriptor, class F>
    class TemplatedDatabase
    {
      ...
    };

    近似最近邻(ANN)搜索:将一张图片中特征的描述子通过在k叉树种搜索转换为视觉单词(visual word),多个视觉单词组成词袋向量(BoW Vector)

    template<class TDescriptor, class F>
    class TemplatedVocabulary
    {
      ...
    };

    二. 具体算法:

    1. 离线步骤 - 构建字典(聚类问题,也称为无监督分类):

    • 主要采用K-means算法,将用于训练的图像数据库中的视觉特征(DBoW3中支持ORB和BRIEF两种二进制描述子)归入k个簇(cluster)中,每一个簇通过其质心(centroid)来描述,聚类的质量通常可以用同一个簇的误差平方和(Sum of Squared Error,SSE)来表示,SSE越小表示同一个簇的数据点越接近于其质心,聚类效果也越好。这里的“接近”是使用距离度量方法来实现的,不同的距离度量方法也会对聚类效果造成影响(后面会提到)。K-means优点是容易实现,缺点是在大规模数据集上收敛较慢,并且可能收敛到局部最小,造成该簇没有代表性。对于描述子这种高维空间的大规模聚类,粗暴使用K-means会有问题。因此会使用其变种Hierarchical K-means或者K-means++。

    将训练图像数据库中所有N个描述子分散在一个k分支,d深度的k叉树的叶子节点上,如下图,分支数为3,深度为Lw,这样一个树结构有叶子结点3Lw个。可以根据场景大小,需要达到的效果修改k和d的数值。这样query image进来检索时,可以通过对数时间的复杂度(d次 = logN)找到其对应的聚类中心,而不是使用O(n)的时间复杂度的暴力检索。

    然后,为了提高检索时的效率、成功率以及准确率,还采用了下述算法

    • 倒排索引(Inverse Index)
    • 正排索引(Direct Index)
    • TF-IDF(Term Frequency - Inverse Document Frequency)

    2. 在线步骤 - 近似最近邻检索(ANN Retrieval)

    由于ORB和BRIEF描述子均为二进制,因此距离度量采用汉明距离(二进制异或计算)。query image的描述子通过在字典的树上检索(找到最近邻的叶子节点)视觉单词,组成一个词袋向量(BoW vector),然后进行词袋向量之间的相似度计算,得到可能匹配的ranking images。最后还需要利用几何验证等方法选出正确(只是概率最大。。。)的那张图片。

  • 相关阅读:
    LA 2038 Strategic game(最小点覆盖,树形dp,二分匹配)
    UVA 10564 Paths through the Hourglass(背包)
    Codeforces Round #323 (Div. 2) D 582B Once Again...(快速幂)
    UVALive 3530 Martian Mining(贪心,dp)
    UVALive 4727 Jump(约瑟夫环,递推)
    UVALive 4731 Cellular Network(贪心,dp)
    UVA Mega Man's Mission(状压dp)
    Aizu 2456 Usoperanto (贪心)
    UVA 11404 Plalidromic Subsquence (回文子序列,LCS)
    Aizu 2304 Reverse Roads(无向流)
  • 原文地址:https://www.cnblogs.com/shang-slam/p/9677973.html
Copyright © 2011-2022 走看看