【计算机视觉】基于BOW的图像检索
文章目录
1. 实验原理
BoW(Bag-of-Features)算法是由Csurka等在2004年提出并应用于图像处理领域的,该算法广泛应用于目标识别和图像检索。算法主要思想借鉴了文本检索的思想。在检索文本的过程中,文本由一系列的基本单元组成,这个单元通常是单词;同理,一副图像也可以看成是由一系列的基本单元组成,这些图像中的基本单元称为视觉单词(visual words)
1.1 Bag of Features模型
- Bag-of-words模型是信息检索领域常用的文档表示方法。在信息检索中,BOW模型假定对于一个文档,忽略它的单词顺序和语法、句法等要素,将其仅仅看作是若干个词汇的集合,文档中每个单词的出现都是独立的,不依赖于其它单词是否出现。也就是说,文档中任意一个位置出现的任何单词,都不受该文档语意影响而独立选择的。
- 图像能够视为一种文档对象,图像中不同的局部区域或其特征可看做构成图像的词汇,当中相近的区域或其特征能够视作为一个词,所以将Bag-of-words模型应用于图像的检索中即为Bag of Features模型。
1.2 Bag of Features算法流程
1.特征提取:通过sift算法提取图像特征
- 在Bag of Features算法中我们通过sift算法来提取图像的特征点。类似Bag of Features模型,这里将图像看成一个由各种图像块组成的集合,通过特征提取,获得图像的关键图像特征点集合。
2.学习“视觉词典”
-
通过特征提取将获得多张图像的特征点。但这些特征提取出来时并没有通过分类处理,其中有的特征点之间是极其相似,所以学习“视觉词典”通过K-means聚类算法,对提取出来的特征点进行分类处理。
-
K-means聚类算法的流程:
(1)随机初始化 K 个聚类中心
(2)重复下述步骤直至算法收敛:
(3)对应每个特征,根据距离关系赋值给某个中心/类别
(4)对每个类别,根据其对应的特征集重新计算聚类中心
聚类是学习视觉词典的重点操作。将聚类出来的聚类中心称为视觉单词(codevector)。而将视觉单词组成的集合称为视觉词典/码本(codebook) -
码本:
例如,这张图像表示通过特征提取出来的特征集合,涵盖了所有的特征:
通过学习“视觉词典”之后,就剩下了几个特征作为视觉单词: