目录
Bag of Feature 是一种图像特征提取方法,它借鉴了文本分类的思路(Bag of Words),从图像抽象出很多具有代表性的「关键词」,形成一个字典,再统计每张图片中出现的「关键词」数量,得到图片的特征向量。
一、Bag of Feature介绍
1.1 Bag of Words 模型
「Bag of Words」 是文本分类中一种通俗易懂的策略。一般来讲,如果我们要了解一段文本的主要内容,最行之有效的策略是抓取文本中的关键词,根据关键词出现的频率确定这段文本的中心思想。比如:如果一则新闻中经常出现「iraq」、「terrorists」,那么,我们可以认为这则新闻应该跟伊拉克的恐怖主义有关。而如果一则新闻中出现较多的关键词是「soviet」、「cuba」,我们又可以猜测这则新闻是关于冷战的。
这里所说的关键词,就是「Bag of words」中的 words ,它们是区分度较高的单词。根据这些 words ,我们可以很快地识别出文章的内容,并快速地对文章进行分类。
而「Bag of Feature」也是借鉴了这种思路,只不过在图像中,我们抽出的不再是一个个「word」,而是图像的关键特征「Feature」,所以研究人员将它更名为「Bag of Feature」。
1.2 Bag of Feature算法
从对Bag of Words的介绍中,我们也可以看到,「Bag of Feature」的本质是提出一种图像的特征表示方法。
按照「Bag of Feature」算法的思想,首先我们要找到图像中的关键词,而且这些关键词必须具备较高的区分度。实际过程中,通常会采用「SIFT」特征。
有了特征之后,我们会将这些特征通过聚类算法得出很多聚类中心。这些聚类中心通常具有较高的代表性,比如,对于人脸来说,虽然不同人的眼睛、鼻子等特征都不尽相同,但它们往往具有共性,而这些聚类中心就代表了这类共性。我们将这些聚类中心组合在一起,形成一部字典(CodeBook)。
对于图像中的每个「SIFT」特征,我们能够在字典中找到最相似的聚类中心,统计这些聚类中心出现的次数,可以得到一个向量表示(或直方图表示),如下面的图片所示。这些向量就是所谓的「Bag」。这样,对于不同类别的图片,这个向量应该具有较大的区分度,在此基础上,我们可以训练出一些分类模型,并用其对图片进行分类。
1.3 Bag of Feature 算法步骤
Bag of Feature用于图像检索的步骤:
- 对数据集做SIFT特征提取
- 根据SIFT特征提取结果,采用k-means算法对图像库中的特征点进行训练,生成类心,构造单词表。
- 根据IDF原理,计算每个视觉单词的权,生成Bof
- 对图像进行检索
1.3.1 特征提取
对数据集里的图像进行SITF特征提取,SIFT原理和之前的文章有详细讲解,这里不再介绍。这些典型实例可以通 过分析训练图像集确定,并被视为视觉单词。所有这些视觉单词构成的集合称为视觉词汇,有时也称为视觉码本。对于给定的问题、图像类型,或在通常情况下仅需 呈现视觉内容,可以创建特定的词汇。
实验第一步是提取所有图像的特征,称之为“视觉词汇”,将他们聚集在一起,此时他们还是未分类的。
1.3.2 构造“视觉单词”
“视觉词典(visual vocabulary)”的构造的过程就是一个图像分类的过程。这里我们用的图像分类方法是K-means聚类方法。
K