是由文档分析推广到计算机视觉的,文档分析的词袋的用途,将一篇篇文档看成一个个词汇的集合,统计词汇在字典中出现的次数构成直方图。
example: 1:Bob likes to play basketball, Jim likes too.
2:Bob also likes to play football games.
基于这两个文本文档,构造一个词典:
Dictionary = {1:”Bob”, 2. “like”, 3. “to”, 4. “play”, 5. “basketball”, 6. “also”, 7. “football”, 8. “games”, 9. “Jim”, 10. “too”}。
这个词典一共包含10个不同的单词,利用词典的索引号,上面两个文档每一个都可以用一个10维向量表示(用整数数字0~n(n为正整数)表示某个单词在文档中出现的次数):1:[1, 2, 1, 1, 1, 0, 0, 0, 1, 1]
2:[1, 1, 1, 1 ,0, 1, 1, 1, 0, 0]
实现的过程:把M个文档通过某种技术构成N个单词的词典,然后每个文档就用这N个单词来表示,比如某个单词在文档中出现了i次,相应字典中单词的位置就为i,于是文档就转换成一个N维向量。
推广至图像:从M个图像中提取N个视觉词汇构成词典,然后将图片表示成N个向量的矢量。其中构成词典的模型即bag of visual word;
如何构成词典及表示:利用SIFT(是否可以利用其他算法)从多类图像中提取视觉词汇就是对每幅图像计算SIFT特征(n*128,n代表特征点个数),
将所有图像的特征聚合在一起,通过k_means算法聚类成N个集合(簇)构成字典,对于每幅图像计算SIFT特征构成单词,每个单词用字典中相似的代替,统计每个SIFT特征在字典中出现的次数,构成直方图。
problems:
如果把特征改成网格特征,每个特征点就用一个值表示,聚类,直方图?
怎么实现?