图像特征提取方法:Bag-of-words

Bag-of-words简介

最初的Bag-of-words ,也叫做“词袋”,在信息检索中,Bag-of-words model假定对于一个文本,忽略其词序和语法,句法,将其仅仅看做是一个词集合,或者说是词的一个组合,文本中每个词的出现都是独立的,不依赖于其他词是否出现。
应用于文本的BoW简单实例
John likes to watch movies. Mary likes too.
John also likes to watch football games.
根据上述两句话中出现的单词, 我们能构建出一个字典
{"John": 1, "likes": 2, "to": 3, "watch": 4, "movies": 5, "also": 6, "football": 7, "games": 8, "Mary": 9, "too": 10}
该字典中包含10个单词, 每个单词有唯一索引. 根据这个字典, 我们能将上述两句话重新表达为下述两个向量:
[1, 2, 1, 1, 1, 0, 0, 0, 1, 1]
[1, 1, 1, 1, 0, 1, 1, 1, 0, 0]
这两个向量共包含10个元素,其中第i个元素表示字典中第i个单词在句子中出现的次数。因此BoW模型可认为是一种统计直方图。在文本检索和处理应用中, 可以通过该模型很方便的计算词频.

Bag-of-words应用于图像处理

背景知识

SIFT简介

SIFT,尺度不变特征转换(Scale-invariant feature transform,SIFT),是用于图像处理领域的一种描述子。这种描述具有尺度不变性,可在图像中检测出关键点。是一种局部描述子。

SIFT优势

SIFT特征不只具有尺度不变性,即使改变旋转角度,图像亮度或拍摄视角,仍然能够得到好的检测效果。所以应用于图像识别时,可以抑制图像尺度、角度、亮度等影响。

图像特征提取

图像可以类比为文档,图像中的单词可以定义为一个图像块的特征向量。那么图像的BoW模型即是 “图像中所有图像块的特征向量得到的直方图”。

1.特征提取

假设有N张图像,第i张图像图像可由n(i)个image patch组成, 也即可以由n(i)个特征向量表达。则总共能得sum(n(i))个特征向量(即单词)。
特征向量可以使用SIFT方法获取,每一个patch特征向量的维数是128。

2.生成词典/码本

假设词典的大小为100,即有100个词。用K-means算法对所有的patch进行聚类,k=100,当k-means收敛时,我们也得到了每一个聚类最后的质心,那么这100个质心(维数128)就是词典里的100个词了,词典构建完毕。

3.根据码本生成直方图

对每张图片,通过最近邻计算该图片的每个 “单词”应该属于聚类中的“哪一类”单词,从而得到该图片对应于该码本的BoW表示。

Bag-of-words模型构建完成,就可以进行分类、预测等训练

你可能感兴趣的:(学习笔记,机器学习)