基于BOF图像检索

一、相关及基本原理

1、BOW(Back of Word)与BOF(Back of Feature)

(1)BOW
①背景介绍

BoW模型最初是为解决文档建模问题而提出的,因为文本本身就是由单词组成的。它忽略文本的词序,语法,句法,仅仅将文本当作一个个词的集合,并且假设每个词彼此都是独立的。这样就可以使用文本中词出现的频率来对文档进行描述,将一个文档表示成一个一维的向量。

将BoW引入到计算机视觉中,就是将一幅图像看着文本对象,图像中的不同特征可以看着构成图像的不同词汇。和文本的BoW类似,这样就可以使用图像特征在图像中出现的频率,使用一个一维的向量来描述图像。

要将图像表示为BoW的向量,首先就是要得到图像的“词汇”。通常需要在整个图像库中提取图像的局部特征(例如,sift,orb等),然后使用聚类的方法,合并相近的特征,聚类的中心可以看着一个个的视觉词汇(visual word),视觉词汇的集合构成视觉词典(visual vocabulary) 。 得到视觉词汇集合后,统计图像中各个视觉词汇出现的频率,就得到了图像的BoW表示。

总结起来就是:
提取图像库中所有图像的局部特征,例如sift,得到特征集合F
对特征集合F进行聚类,得到k个聚类中心{Ci|i=1,…,k},每一个聚类中心Ci代表着一个视觉词汇。聚类中心的集合就是视觉词典vocabulary={Ci|i=1,…,k}

② 一幅图像的BoW表示

提取图像的局部特征,得到特征集合f={fi|i=1,…,n}
计算特征fi属于那个词汇Ci(到该中心的距离最近)
统计每个词汇Ci在图像中出现的频数,得到一个一维的向量,该向量就是图像的BoW表示。

③基本流程

1.构建图像库的视觉词典Vocabulary
2.提取图像库中所有图像的局部特征,如SIFT.
3.对提取到的图像特征进行聚类,如k-means,得到聚类中心就是图像库的视觉词汇词典Vocabulary
4.计算一幅图像的BoW向量
5.提取图像的局部特征
6.统计Vocabulay中的每个视觉词汇visual word ,在图像中出现的频率。
在这里插入图片描述

(2)BOF

Bag-of-Features模型来源于文本检索中的Bag of Words模型,图像也是由很多视觉单词组成,描述一幅图像的内容通过计算图像映射到对应视觉单词上的频率来表达。

①基本流程

1、提取图像特征
2、对特征进行聚类(K-means方法),学习"视觉字典"
3、根据TF-IDF把输入图像转化成视觉单词( visual words)的频率直方图
4、构造特征到图像的倒排表,快速索引相关图像
5、根据索引结果进行直方图匹配

②流程涉及相关方法概念
a.K-means方法

最小化每个特征xi与其相对应的聚类中心mk之间的欧式距离
在这里插入图片描述
算法流程:
随机初始化 K 个聚类中心
重复下述步骤直至算法收敛:
对应每个特征,根据距离关系赋值给某个中心/类别
对每个类别,根据其对应的特征集重新计算聚类中心

由聚类中心代表的视觉词汇形成视觉词典
在这里插入图片描述

b.TF-IDF

TF-IDF是一种用于信息检索的经常使用加权技术,在文本检索中。用以评估词语对于一个文件数据库中的当中一份文件的重要程度。词语的重要性随着它在文件里出现的频率成正比添加,但同一时候会随着它在文件数据库中出现的频率成反比下降。

计算公式:
在这里插入图片描述
在这里插入图片描述

c.倒排表

倒排索引(英语:Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。通过倒排索引,可以根据单词快速获取包含这个单词的文档列表。

倒排列表用来记录有哪些文档包含了某个单词。一般在文档集合里会有很多文档包含某个单词,每个文档会记录文档编号(DocID),单词在这个文档中出现的次数(TF)及单词在文档中哪些位置出现过等信息,这样与一个文档相关的信息被称做倒排索引项(Posting),包含这个单词的一系列倒排索引项形成了列表结构,这就是某个单词对应的倒排列表。

二、实现代码及结果分析

1.实现代码

(1)生成sift文件和词汇字典
import pickle
from PCV.imagesearch import vocabulary
from PCV.tools.imtools import get_imlist
from PCV.localdescriptors import sift



#获取图像列表
imlist = get_imlist('D:/pythonCode/test/BagOfFeature/bof/bof/')
nbr_images = len(imlist)
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值