[论文阅读]词汇树 Scalable Recognition with a Vocabulary Tree

论文阅读,记录一下自己阅读论文的收获,如有谬误,希望能得到指正!

------------------------------------------------------------------------------------------------------------------------------------------------------------

        词汇树在图像检索领域用的比较多,而图像检索在计算机视觉中的3D重建中又是一个比较关键的问题。作者提出这个方法是受到了一个先前被提出的文本检索的方法。

        先从训练的图像中局部仿射不变的区域中提取局部描述子,然后对这些描述子进行K-means聚类,聚类中心成为visual words。 visual words的集合使用TD-IDF(Term Frenquency Inverse Document  Frenquency)打分,来评价查询图像和数据库图像的相关性。作者用这些visual words构造了一个词汇树(Vocabulary Tree),并提出了一种层次化的TF-IDF打分策略。词汇树的结构使我们可以使用大量的visual words,因为树的查询起来很快。

------------------------------------------------------------------------------------------------------------------------------------------------------------

        一、构造词汇树

        使用大量具有代表性的描述子矢量来进行树的无监督训练,在这里使用K-means聚类方法,不过K不是代表最终的聚类中心的数量,而是代表每一层的分类数。首先,对原始的训练数据进行K-means聚类,定义K个聚类中心。然后把训练数据按照聚类中心分为K个组,每个组的数据都有同样的聚类中心。然后同样的聚类过程应用到每个组中,把每个组再划分为K个组,不停地迭代,直到词汇树到达了预设的最大深度L。

        在线搜索阶段,每个描述子只用按照跟训练相似的步骤逐层地寻找聚类中心,直到叶结点。

       [论文阅读]词汇树 Scalable Recognition with a Vocabulary Tree_第1张图片

        图1.词汇树的生成过程。K=3,每一层都进行聚类,找到最近的类中心,再继续在该区域中聚类。

        

       二、打分的定义

     在进行查询的时候,要计算查询图像和数据库图像的相似程度,这是通过比较查询图像和数据库图像的特征在词汇树中的分布相似程度衡量的。一个图像往往会有很多个特征。

       [论文阅读]词汇树 Scalable Recognition with a Vocabulary Tree_第2张图片

            图2. K=10的3层词汇树,代表一个有400个特征的图像。


          总的来说,是根据熵来定义一个权重wi,给树中的每一个节点i。qi代表查询量,di代表数据库中的值。

       

         ni 和 mi 分别是查询图像和数据库图像的特征描述子中通过节点i的描述子个数。基于归一化的描述子的差得到一个数据库图像和查询图像的打分s:

                

       另外,作者发现上式中 L1-模的效果会比 L2-模的效果要好。

       

        N是数据中图像的总数量,Ni是至少有一个描述子通过节点i的数据库图像数量。


       三、打分的实现

        使用 Forward file 来记录在每一个图片中出现了哪些 visual words, 一个图片对应一个 Forward file。同样,每一个节点对应一个Inverted file 来存储每个节点中出现的图片的序号(id-number),以及每张图像出现的次数 mi(term-frenquency)。

        在实现中,只有叶结点有真正的 Inverted file,内部节点的 Inverted file 是根据叶结点计算出来的。如下图所示:

        [论文阅读]词汇树 Scalable Recognition with a Vocabulary Tree_第3张图片

        图3. K=2,L=2 的数据库结构。叶结点有真正的Inverted File,中间的节点只有Virtual inverted file,可以根据叶结点的Inverted file直接串联即可得到。

        表示数据库图像的矢量可以被预先计算好,并且归一化,同样,查询矢量也被归一化到单位大小。使用如下方式计算归一化的Lp-模差:

        [论文阅读]词汇树 Scalable Recognition with a Vocabulary Tree_第4张图片

        对于每一个非零的查询维度qi,inverted file 可以被用来遍历对应的非零数据库实体 di 并累计数量。


你可能感兴趣的:(computer-vision,vocabulary,tree)