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模型构建完毕,就能够进行分类、预測等训练