目录
2. 学习 “视觉词典(visual vocabulary)”
4. 把输入图像转化成视觉单词(visual words) 的频率直方图
前言
本次实验是基于Bag-of-words模型实现的简单图像检索操作。
一、基本原理
1.1 Bag-of-words模型
Bag-of-words词袋模型最初被用在信息检索领域,对于一篇文档来说,假定不考虑文档内的词的顺序关系和语法,只考虑该文档是否出现过这个单词。假设有5类主题,我们的任务是来了一篇文档,判断它属于哪个主题。在训练集中,我们有若干篇文档,它们的主题类型是已知的。我们从中选出一些文档,每篇文档内有一些词,我们利用这些词来构建词袋。我们的词袋可以是这种形式:{‘watch’,'sports','phone','like','roman',……},然后每篇文档都可以转化为以各个单词作为横坐标,以单词出现的次数为纵坐标的直方图,之后再进行归一化,将每个词出现的频数作为文档的特征。
1.2 Bag-of-features模型
Bag of Feature 也是借鉴了这种思路,只不过在图像中,我们抽出的不再是一个个word,而是图像的关键特征Feature,所以研究人员将它更名为Bag of Feature。
Bag of Feature在检索中的算法流程和分类几乎完全一样,唯一的区别在于,对于原始的 BOF 特征,也就是直方图向量,我们引入TF-IDF 权值。
1.3 Bag-of-features算法
Bag of Feature的本质是提出一种图像的特征表示方法
按照Bag of Feature算法的思想,首先我们要找到图像中的关键特征,而且这些关键特征必须具备较高的区分度。实际过程中,通常会采用SIFT特征。
有了特征之后,我们会将这些特征通过聚类算法得出很多聚类中心。这些聚类中心通常具有较高的代表性,比如,对于人脸来说,虽然不同人的眼睛、鼻子等特征都不尽相同,但它们往往具有共性,而这些聚类中心就代表了这类共性。我们将这些聚类中心组合在一起,形成一部视觉词典(visual vocabulary)。
对于图像中的每个SIFT特征,我们能够在字典中找到最相似的聚类中心,统计这些聚类中心出现的次数,可以得到一个向量表示(有些文章称之为直方图)这些向量就是所谓的Bag。这样,对于不同类别的图片,这个向量应该具有较大的区分度,基于此,我们可以训练出一些分类模型(SVM等),并用其对图片进行分类。
1.4 Bag-of-features基础流程
1. 特征提取
2. 学习 “视觉词典(visual vocabulary)”
如何选择视觉词典/码本的规模?
•太少:视觉单词无法覆盖所有可能出现的情况
•太多: 计算量大,容易过拟合
3. 针对输入特征集,根据视觉词典进行量化
这一步骤通过对图像特征提取,然后将提取出来的特征点,根据第三步,