一、概述
图像检索有基于文本的检索和基于内容的检索,如果是基于语义的检索的话,在检索之前需要对海量的图片进行语义属性的标注,这种标注有主观性偏差,时间成本很高,而且语义属性也不能完全表达图像中的包含的丰富的信息,检索效果是有限的。基于内容的检索(CBIR技术),“以图搜图”就有他独特的优势。(淘宝,京东,百度,google都已经支持用图搜图的形式)
二、基于深度学习的方法
通过对图像进行特征提取,获得特征表示,进行相似性度量,度量学习,根据相似性排序,得到检索结果。
(1)相似文本检索
相似文本检索可以分成构建词库、构建索引和检索三部分,如下图所示。
构建词库是离线操作,主要对目标数据集中的文本进行解析提取词干信息,建立当前数据集的词库,然后基于词库,对数据集中所有文档提取本文特征。构建词库在整个检索系统生命周期开始阶段实施,一般情况仅执行一次,是针对目标检索文本数据集进行的非频繁性操作。
构建索引和检索是在线操作。其中,构建索引是在检索服务启动时进行,负责将目标数据集的文本特征以某种方式组织到内存中,方便后续快速检索和距离计算。检索阶段查找目标库中与查询内容query相近的文本结果,该阶段提取query文档的文本特征,同目标库中的各文档的特征向量进行距离计算,对结果进行排序,返回距离最近特征向量对应的文档索引。
文本检索过程实际上可以理解为文本特征匹配的过程,以上过程文本使用词袋向量(Bag-of-Words,BoW)来表征文本内容。BoW是常用的一种文本特征表示,它通过统计单词在文档中出现的频次来表示一个文档,因其简单有效的优点得到了广泛应用。BoW特征提取过程包括以下几个步骤:
-
将文档中的文本解析成单词。
-
使用词干表示各单词,去掉常用词。
-
统计当前文档中每个单词(词干)出现的频次。
-
建立表示该文档的向量,向量的每次元素代表对应位置的单词出现的频次,向量长度等于词库内单词个数。在构建词向量时,通常会引入加权机制。常用的一种加权方式为采用tf-idf (term frequecy-inverse document frequency)。
(2)基于内容的图像检索流程
图像内容检索流程与文本检索流程类似,但二者信息表征方法不同。文本通过词频计算BoW来表征一段文本内容,而图像则使用视觉特征来表示。Google团队2003年[1]提出的视频内容检索方法借鉴文本检索流程,使用局部特征构建视觉词袋向量(Bag-of-Visual-Words,BoVW),也称BoF(Bag-of-Features),来表示图像。这里的视觉单词是指量化后的视觉特征。Video-Google[1]中检索系统也分为构建词库、构建索引和检索三部分。下图是视觉词库构建流程:
对图像提取若干个局部特征描述子,如sift,对这些描述子进行量化。量化器通常通过聚类得到:对特征描述子集合进行k-means聚类,聚类后得到的k个质心即为视觉单词。描述子desc的量化结果q(desc)为与desc最相近的质心的索引。所有质心构成了视觉词表。图像中的特征单词的词频构成了该图像的向量描述BoVW。假设视觉词表中的单词个数为N,那么BoVW向量的长度为N,向量中的元