Abstract
最近邻检索是一个适用于大规模图像检索的有效策略。基于最近CNNs网络的流行,本文提出一个有效的深度学习框架去生成二值哈希码,运用于快速图像检索。文章的想法是,当数据标签可用时,通过利用隐层表示控制类别标签的潜在概念,可以学习到一个二进制码。CNN的利用也可以学习到图像表示,不同于其他监督策略需要成对的输入来学习二进制码,本文的方法通过“点对”的方式学习哈希码和图像表示,使其更适用于大规模的数据库。实验结果表明本文策略在CIFAR10和MNIST数据库上优于state-of-the-art的哈希算法。
1.Introduction
基于内容的图像检索旨在通过分析图像内容来寻找相似图像,因此图像表示和相似度度量方法成为此课题的关键。因循这样的研究路线,最有挑战性的问题是联系像素级别的信息和来自于人类感知的语义信息。尽管一些手工制作的特征被用来表征图像,但这些视觉描述自仍然有所局限,一直到深度学习的突破。进来的研究表明深度CNN在许多课题上显著提升了性能,例如目标检测,图像分类,分割。这些成果都归功于深度CNN学习了丰富的中层图像表示。
因为深度CNN学习了丰富的图像的中层特征描述子,Krizhevsky等人将CNN第七个layer的特征向量用于图像检索,在ImageNet上得到了不错的效果。但也因为CNN特征维度较高,直接计算4096维向量之间的相似性效率很低,Babenko等人提出采用PCA降维的方法,取得了不错的效果。
在CBIR(content based image retrieval ,基于内容的图像检索)中,图像表示和计算开销骑着额至关重要的作用,由于近来视觉内容的增长,基于大规模数据库的快速搜索成为迫切需要。许多研究致力于解决怎样在大规模数据库上有效地检索出相关数据。因为大量的计算开销,传统的线性搜索(或者穷举搜索)不再适用于大规模的数据搜索。取而代之的是ANN(Approximate Nearest Neighbor ,近似最近邻)和基于散列(hashing)的方法来提高速度。这种方法将高维特征映射到地位空间,产生简洁的二进制码。通过这些二进制码,快速图像搜索能够通过二进制模式匹配或者汉明距离来进行,显著降低计算开销并且优化搜索效率。这些策略一部分属于“配对”策略,通过利用相似矩阵描述图像对(或者数据对)之间的关系,利用这种相似信息取学习hash函数。但当处理一个大规模数据库时,需要构建矩阵和码。
本文利用CNN来实现hashing的想法,通过深度CNN产生简洁的二进制codes。在数据被标记的前提下,设计CNN模型能够同时产生图像藐视和二进制码,也就是有监督的学习。我们认为深度CNN能够学习并且数据标签可用,二进制编码能够通过利用一些隐层所代表的决定了结构中的类别标签的潜在概念实现学习(通过sigmoid等二进制激活函数)。这和其他一些监督策略不同,其他策略需要成对的输入以考虑数据标签来实现学习。也就是说本文以“点对”的方式学习哈希编码,利用了CNN的增量学习性质(随机梯度下降)。深度框架的采用也实现了高效率的检索特征的学习。适用于大规模的数据集。
本文方法具有以下特性:
`引入了一种简单有效的监督学习框架适用于图像检索
`通过网络模型的微调,能够同时学习区域特定的图像表示和一系列hashing-like函数
`提出的方法超过了现有的baseline
`本文方法通过“点对”的方式学习hashing编码,相比于传统的“成对”策略更易于扩展
3.Method
下图是本文提出的框架。3个主要部分。
1.在ImageNet上进行有监督的预训练
2.利用隐层进行fine-tune,同时学习特定区域的特征表示和hash-like函数
3.通过分层深度搜索进行图片检索
图注:本文通过分层的深度搜索提出图片检索框架.首先在ImageNet上预训练CNN以学习到丰富的中层图像表示;其次在通过添加隐层并在隐层中设置神经元,在目标数据库上fine-tune时学习到hashes-like表示;最后基于由粗到细的策略,利用学习到的hashes-like二进制码和F7层特征,实现图片检索。
3.1 Learning Hash-like Binary Codes
近来研究表明,由输入图片引入的F6-F8的特征激活可以当做视觉特征。这些中层图像表示可以提高图像分类、检索的精度。然而这些特征维度较高,不适用于大规模的图像检索。为了提高图片检索的效率,一个降低运算量的有效方法是将特征向量转化为二进制码。这种精巧的二进制码能够通过hashing或者汉明距离很快比较。
本文试图同时学习特定区域的图像表示和一系列的hash-like函数。假设最后一个F8层的输出依赖一系列隐藏的有on和off状态的属性h。即是说,图片诱导相似的二进制激活有同样的label(标签)。为了实现该想法,在F7和F8之间部署一个隐层H,H是一个全连接层,受后面编码语义特征和实现分类的F8层的调整。H层不仅提供对F7层丰富特征的抽象,也是中层特征和高层语义的桥梁(承上启 下)。H层的神经元通过Sigmoid函数激活近似到{0,1}。
为了实现领域适应,通过在目标数据集上反向传播fine-tune。CNN的初始化权重为ImageNet的预训练模型,H层和F8层的权重随机初始化。H层的初始化随机权重类似与LSH,在构建hashing位时使用随机映射。在监督学习下,编码能够从LSH(局部敏感度哈希)调整为更好匹配数据的形式。不用通过大规模的网络模型修改,该模型能够同时学习特定区域的视觉表示和hashing-like函数以用于图片检索。
3.2 Image Retrieval via Hierarchical Deep Search
Zeiler和Fergus研究过CNN的浅层学习局部视觉表示,高层捕捉语义信息能更好地用于识别。采用由粗到细的搜索策略以满足图片检索的速度和精度。首先通过相似的高层语义检索出一系列的候选图片,他们在隐层H上具有相似的二进制激活;随后进一步筛选在中层特征上具有相似性的图片。
Coarse-level Search.给定图片I,首先提取隐层H的输出作为图片标签,用Out(H)表示。隐层的激活通过一个门限,二进制化,得到二进制码。对于每一个位j=1```h(h是隐层节点的个数),输出隐层H的二进制编码如下:
假设有n幅待选图片{I 1 , I 2 , . . . , I n },相关联的二进制码{H 1 , H 2 , . . . , H n }。H i ∈ {0, 1} 。给定一个查询图像Iq和它的二进制码Hq,能是别处它的m个候选图片{I 1 c , I 2 c , . . . , I mc},如果Hq和{H 1 , H 2 , . . . , H n }中的汉明距离小于某一个门限。
Fine-level Search.给定一个待检索图片Iq和候选集P,通过F7层的特征提取找出前k个最相似的图片,Vq表示带检索图片的F7层特征,Vip表示候选集的F7层特征,是通过比较待检索图片和候选集中的图片的欧氏距离得到相似性。距离越小越相似。
s i = ∥V q − V i P ∥.
4. Experimental Results
作者在MNIST Dataset、CIFAR-10 Dataset、Yahoo-1M Dataset上进行了实验。分别是0-9的手写体数据库、包含10类的数据库、包含116类衣物的数据库。
MNIST Dataset
CIFAR-10 Dataset
Yahoo-1M Dataset
Yahoo-1M上的检索示例
PS:文中的hashing-like function可以理解为一种得到二值检索向量的方式。通过对图片的二进制编码实现对图片高层语义特征的表达。