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。

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

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

二、打分的定义

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

在这里插入图片描述
图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 是根据叶结点计算出来的。如下图所示:

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

表示数据库图像的矢量可以被预先计算好,并且归一化,同样,查询矢量也被归一化到单位大小。使用如下方式计算归一化的Lp-模差:
在这里插入图片描述
对于每一个非零的查询维度qi,inverted file 可以被用来遍历对应的非零数据库实体 di 并累计数量。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值