一、图像检索的概述和原理
从20世纪70年代开始,有关图像检索的研究就已开始,当时主要是基于文本的图像检索技术(Text-based Image Retrieval,简称TBIR),利用文本描述的方式描述图像的特征,如绘画作品的作者、年代、流派、尺寸等。到90年代以后,出现了对图像的内容语义,如图像的颜色、纹理、布局等进行分析和检索的图像检索技术,即基于内容的图像检索(Content-based Image Retrieval,简称CBIR)技术。CBIR属于基于内容检索(Content-based Retrieval,简称CBR)的一种,CBR中还包括对动态视频、音频等其它形式多媒体信息的检索技术。
1.1 文本检索
基于文本的图像检索沿用了传统文本检索技术,回避对图像可视化元素的分析,而是从图像名称、图像尺寸、压缩类型、作者、年代等方面标引图像,一般以关键词形式的提问查询图像,或者是根据等级目录的形式浏览查找特定类目下的图像。
在图像数字化之前,档案管理者、图书管理员都是采用这种方式组织和管理图像。 图像所在页面的主题、图像的文件名称、与图像密切环绕的文字内容、图像的链接地址等都被用作图像分析的依据,根据这些文本分析结果推断其中图像的特征。
1.2 内容检索
基于内容的图像检索,即CBIR(Content-based image retrieval),是计算机视觉领域中关注大规模数字图像内容检索的研究分支。典型的CBIR系统,允许用户输入一张图片,以查找具有相同或相似内容的其他图片。而传统的图像检索是基于文本的,即通过图片的名称、文字信息和索引关系来实现查询功能。
1.2.1 矢量空间模型(BOW)
矢量空间模型 是一个用于表示和搜索文本文档的模型。它基本上可以应用于任何对象类型,包括图像。该名字来源于用矢量来表示文本文档,这些矢量是由文本词频直方图构成的。矢量包括了每个单词出现的次数,而且在其他别的地方包含很多 0 元素。由于其忽略了单词出现的顺序及位置,该模型也被称为 BOW 表示模型(Bag of Words)。
1.2.2 Bag-of-words应用于图像
类比Bag-of-words在文档中的应用,也可以将图片分成若干个图像块,构建“词库”,把每幅图像描述为一个局部区域/关键点(Patches/Key Points)特征的无序集合,即Bag-of-features。
1.3 Bag of features流程
- 特征提取
- 学习 “视觉词典(visual vocabulary)”
- 针对输入特征集,根据视觉词典进行量化
- 把输入图像转化成视觉单词(visual words)的频率直方图
1.3.1 特征提取
通过分割、密集或随机采集、关键点或稳定区域、显著区域等方式使图像形成不同的图像块,并获得各图像块处的特征。
特征必须具有较高的区分度,而且要满足旋转不变性以及尺寸不变性等,通常采用SIFT特征(也可以采用SUFT、Harrist等特征提取算法 )。SIFT会从图片上提取出很多特征点,每个特征点都是 128 维的向量,如果图片足够多的话,我们会提取出一个巨大的特征向量库。
1.3.2 学习 “视觉词典(visual vocabulary)”
提取完特征后,采取聚类算法对这些特征向量进行聚类。通才采用k-means聚类。
K-means算法流程:
- 随机初始化 K 个聚类中心
- 重复下述步骤直至算法收敛:
- (1)对应每个特征,根据距离关系赋值给某个中心/类别
(2) 对每个类别,根据其对应的特征集重新计算聚类中心
视觉单词数量即K一般取3000~10000, 即图像整体描述的直方图维度为3000~10000。
聚类是实现 visual vocabulary 即码本的关键
- 无监督学习策略
- k-means 算法获取的聚类中心作为 codevector
- 码本可以通过不同的训练集协同训练获得
- 一旦训练集准备足够充分, 训练出来的码本将具有普适性
聚类完成后,得到k个向量组成的字典,叫visual word。
1.3.3、针对输入特征集,根据视觉词典进行量化
(1)对于输入特征,量化的过程是将该特征映射到距离其最接近的 codevector ,并实现计数
码本=视觉词典
Codevector=视觉单词
视觉词典样例
(2)选择视觉词典/码本的规模可能存在的问题:
太少:视觉单词无法覆盖所有可能出现的情况
太多:计算量大,容易过拟合
1.3.4、把输入图像转化成视觉单词(visual words)的频率直方图
生成码本,即构造Bag-of-Features,也就是