二进制数据还原图片_深度学习二进制哈希码用于快速检索图像

c4c960870f9077bf6bba31cc03e9a762.png

摘要

近似近邻搜索是一种有效的大规模图像检索策略。针对卷积神经网络(CNNs)的最新进展,我们提出了一种有效的深度学习框架来生成二进制哈希码,用于快速图像检索。当数据标签可用时,通过利用隐层表示控制类别标签的潜在概念,可以学习到一个二进制码。CNN的利用也可以学习到图像表示,不同于其他监督策略需要成对的输入来学习二进制码,本文的方法通过“点对”的方式学习哈希码和图像表示,使其更适用于大规模的数据库。实验结果表明本文策略在CIFAR10和MNIST数据库上优于state-of-the-art的哈希算法。

  1. 介绍

基于内容的图像检索旨在通过分析图像内容来寻找相似图像,因此图像表示和相似度度量方法成为此课题的关键。因循这样的研究路线,最有挑战性的问题是联系像素级别的信息和来自于人类感知的语义信息。尽管一些手工制作的特征被用来表征图像,但这些视觉描述符仍然有所局限,一直到深度学习的突破。近来的研究表明深度CNN在许多课题上显著提升了性能,例如目标检测,图像分类,分割。这些成果都归功于深度CNN学习了丰富的中层图像表示。

因为深度CNN学习了丰富的图像的中层特征描述符,Krizhevsky等人将CNN第七层的特征向量用于图像检索,在ImageNet上得到了不错的效果。但也因为CNN特征维度较高,直接计算4096维向量之间的相似性效率很低,Babenko等人提出采用PCA降维的方法,取得了不错的效果。

在CBIR(content based image retrieval ,基于内容的图像检索)中,图像表示和计算代价都起着至关重要的作用。随着可视化内容的不断增长,在大型数据库中进行快速搜索成为一种新兴的需求。多研究致力于解决怎样在大规模数据库上有效地检索出相关数据。因为大量的计算开销,传统的线性搜索(或者穷举搜索)不再适用于大规模的数据搜索。取而代之的是ANN(Approximate Nearest Neighbor ,近似最近邻)和基于散列(hashing)的方法来提高速度。这些方法将高维特征投射到低维空间中,生成紧凑的二进制码。利用所产生的二进制码,可以通过二值模式匹配或汉明距离测量进行快速图像搜索,极大地降低了计算成本,进一步优化了搜索效率。这些策略一部分属于“配对”策略,使用相似矩阵(包含成对数据的相似度)来描述图像对或数据对之间的关系,并利用这些相似信息来学习哈希函数。然而,在处理大规模数据集时,需要构造矩阵和生成代码。

从深度学习的进步中得到启发,我们提出了一个问题,我们可以利用深度CNN来实现哈希吗? 我们可以直接从深度CNN生成二进制压缩码而不是使用成对学习方法吗? 为了解决这些问题,我们提出了一个深度CNN模型,该模型可以同时学习图像表示和二进制代码,假设数据是有标签的。也就是说,我们的方法是专门为监督学习设计的。此外,我们认为当一个强大的学习模型如深度CNN被使用,数据标签可用,通过使用一些隐层来表示潜在概念(使用sigmoid等二进制激活函数)来学习二进制代码,这些潜在的概念主导体系结构中的类别标签。这与其他监督方法(如[30])不同,后者考虑到数据标签,但在准备好的学习过程中需要成对输入。

换句话说,我们的方法利用deep CNN的增量学习特性(通过随机梯度下降),以点对方式学习二进制哈希码。深度架构的使用也允许高效的检索特征学习。与传统方法相比,我们的方法适用于大型数据集。

本文方法具有以下特性:

(1)引入了一种简单有效的监督学习框架适用于图像检索。

(2)通过网络模型的微调,能够同时学习区域特定的图像表示和一系列类似哈希函数。

(3)提出的方法超过了现有的baseline。

(4)本文方法通过“点对”的方式学习hashing编码,相比于传统的“成对”策略更易于扩展

2.相关工作

已经提出了几种哈希算法来近似识别与查询相关的数据。这些方法可分为两大类:无监督方法和监督方法。

无监督哈希方法使用未标记的数据来学习一组哈希函数。最具代表性的一种是对位置敏感的哈希(LSH),它的目标是最大限度地将相似的数据映射到相似的二进制代码。LSH通过将数据点投射到具有随机阈值的随机超平面来生成二进制码。谱哈希(SH)是另一种有代表性的方法,它通过对给定数据的PCA方向上的非线性函数进行阈值化产生紧凑的二进制码。

最近的研究表明,使用监督信息可以提高二进制哈希码的学习性能。有监督的方法在学习过程中加入标签信息。这些监督哈希方法通常使用成对的标签来生成有效的哈希函数。然而,这些算法通常需要一个大的稀疏矩阵来描述训练集中数据点之间的相似性。

除了哈希的研究之外,图像表征在CBIR中也起着至关重要的作用。近年来,基于cnn的可视化描述符在图像检索中得到了广泛的应用。Krizhevsky等人的首先利用CNN第七层提取的特征向量来检索图像,在ImageNet上取得了令人印象深刻的性能。Babenko等人着重于CNN特征的降维,并通过压缩CNN特征提高检索性能。虽然这些近期的工作在图像检索任务上取得了较好的结果,但是在欧氏空间中直接进行模式匹配,将学习到的CNN特征用于检索,效率较低。

深度架构已被用于散列学习。然而,它们大多数是无监督的,其中使用深度自动编码器来学习表示。Xia等人提出了一种监督哈希方法来学习二进制哈希码,通过深度学习实现快速图像检索,并展示了公共数据集的最新检索性能。然而,在预处理阶段,使用矩阵分解算法来学习数据的表示代码。因此,它需要数据的成对相似矩阵的输入,并且在数据量很大的情况下是不利的(例如,在我们的实验中是1M),因为它消耗了大量的存储和计算时间。

相比之下,我们提出了一种简单而有效的深度学习方法来学习一组有效的散列式函数,并在公开可用的数据集上获得了更好的结果。我们进一步将我们的方法应用于一百万幅服装图像的大型数据集,以证明我们的方法的可扩展性。我们将在下一节介绍所提出的方法。

3.方法

图1显示了建议的框架。我们的方法包括三个主要部分。第一个组件是对大型ImageNet数据集的有监督的预训练。第二个组件是对具有潜在层的网络进行微调,以同时学习领域特定的特征表示和一组散列式函数。(利用隐层进行fine-tune,同时学习特定区域的特征表示和hash-like函数)第三个通过提出的层次深度搜索来检索与查询相似的图像。(通过分层深度搜索进行图片检索)

a5e16bcfdf193b786c8d24c0eb5a1fe1.png

图注:本文通过分层的深度搜索提出图片检索框架.首先在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[32]对深度CNN进行了分析,发现浅层学习局部视觉描述符,而深度CNN则获取适合识别的语义信息。我们采用由粗到精的搜索策略来快速准确地检索图像。首先通过相似的高层语义检索出一系列的候选图片,他们在隐层H上具有相似的二进制激活;随后进一步筛选在中层特征上具有相似性的图片。

Coarse-level Search.(粗粒度)给定图片I,首先提取隐层H的输出作为图片标签,用Out(H)表示。隐层的激活通过一个门限,二进制化,得到二进制码。对于每一个位j=1```h(h是隐层节点的个数),输出隐层H的二进制编码如下:

e590bfc83f2f6c282e0150feb854f19d.png

假设有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层特征,

表示候选集的F7层特征,是通过比较待检索图片和候选集中的图片的欧氏距离得到相似性。距离越小越相似。

7546caa90118ef065632513a5ce607cd.png

欧氏距离越小,两幅图像的相似度越高。各候选图片按相似度升序排列;因此,排名前k的图像被识别。4.实验结果
在本节中,我们将演示我们的方法的好处。我们首先介绍数据集,然后将我们的实验结果与公共数据集、MNIST和CIFAR-10数据集的性能进行比较。最后,我们验证了我们的方法在大型Yahoo-1M数据集上的可伸缩性和有效性。

4.1数据集

  • MNIST Dataset - 10类手写数字,0~9,共 60000张训练图片,10000测试图片,每张数字图片都归一化为 28×2828×2828×28 的灰度图片.
  • CIFAR-10 Dataset - 10类物体,每一类有 6000 张图片,一共60000张图片,其中50000张作训练,10000张作测试.
  • Yahoo-1M Dataset - 一共1124087张商品图片,116类服装类别,如 TOP,Dress,Skirt等. 如Figure2.

在MNIST和CIFAR-10的实验中,为了与其他哈希算法进行比较,我们使用所学习的二进制码来检索相关的图像。在yaho - 1m数据集的实验中,我们通过层次搜索从整个数据集中检索相似的图像。

4.2评价指标

我们使用基于排名的标准进行评估。给定一个查询图像q和一个相似度度量,可以为每个数据集图像分配一个等级。我们通过一个查询图像q的精度函数来评估前k个图像的排名:

2b809c480ab9e1d3a5f7de6a65e15475.png

其中,Rel(i)表示查询q与第i个排名图像之间的基本事实相关性。在这里,我们只考虑类别标签来度量相关性,因此对于查询,Rel(i)∈{0,1}使用1,对于具有相同标签的第i个图像,否则使用0。

4.3 MNIST数据集上的结果

abe62e51b6c3333e527d4bc56320d415.png

4656145e286c8b405fba5975f27aa325.png

图像分类性能为了使我们的深层CNN适应新域,我们将F8层修改为10-way softmax,以预测10位数字的类。为了测量嵌入在深CNN中的潜在层的效果,我们将潜在层中的神经元h数分别设置为48和128。然后,我们应用随机梯度下降(SGD)训练MNIST数据集上的CNN。该网络经过50,000次迭代的训练,学习率为0.001。

我们将结果与表1中的几种最新技术进行了比较,0.47%表现最佳。值得注意的是,我们的模型专为图像检索而设计,而其他模型则通过修改网络来针对分类任务进行优化。还要注意,我们的具有48个潜在节点的方法产生的错误率低于具有128个潜在节点的模型。这可能是由于很少有潜在节点能够表示潜在概念以进行分类,而添加更多神经元可能会导致过拟合。

f752b81fb095ebd7ef2ebc8741a7ba90.png

图像检索性能在本实验中,我们统一使用48位二进制代码和汉明距离测度检索相关图像的检索评估。检索是通过从系统的测试集中随机选择1,000个查询图像以从训练集中检索相关的图像来执行的。

为了评估检索性能,我们将建议的方法与几种最新的哈希方法进行了比较,包括监督的(KSH,MLH,BRE,CNNH和CNNH +)和非监督方法(LSH,SH和ITQ)。图4显示了针对不同数量的检索图像的不同方法的检索精度。可以看出,我们的方法证明了稳定的性能(98.2+ -0.3%的检索精度),无论检索到多少图像。此外,我们的方法将精度从CNNH +的97.5%提高到98.5%,该方法通过分解成对的相似性信息来学习哈希函数。这一改进表明,我们只需类标签的point-wised方法是有效的。

我们进一步分析了分别为h = 48和h = 128的学习的类似哈希的代码的质量,如图3所示。可以看出,这两种设置都可以学习信息丰富的二进制代码以进行图像检索。

4.4 CIFAR-10数据集上的结果

图像分类性能要将深层CNN转移到CIFAR-10的域,我们将F8修改为10way softmax以预测10个对象类别,并且h也设置为48和128。

然后,我们在CIFAR-10数据集上微调我们的网络模型,并在经过50,000次训练迭代后最终达到了约89%的测试准确性。如表2所示,所提出的方法比大多数方法更有利,这表明在深CNN中嵌入二进制潜层不会严重影响性能。

56d2338ed585f27ce2a3ae3575cf3827.png

cc4541f299323d56682c50e81690b9f0.png

图像检索性能为了与其他哈希算法公平比较,我们统一了评估方法,该评估方法通过48位二进制代码和汉明距离来检索相关图像。与其他无监督和受监督的方法相比,我们的方法具有更好的性能。而且,它在改变检索图像数量的同时达到89%的精度,与CNNH +相比,性能提高了30%。这些结果表明,使用潜在层来表示隐藏的概念是学习有效二进制代码的实用方法。

34323bde6dfae804d436adecb8cabf5c.png

图5显示了我们的检索结果。所提出的潜在二进制代码成功地检索了具有相关类别,相似外观和/或两者的图像。根据我们的经验性眼球检查,将位数从h = 48增加到h = 128可以检索更多与外观相关的图像。例如,在图5中,使用h = 128位二进制代码倾向于检索比h = 48位更相关的马头图像(而不是整个马匹)。

4.5 Yahoo-1M数据集上的结果

图像分类性能为了展示我们方法的可扩展性和有效性,我们在大规模的Yahoo-1M数据集上对其进行了进一步测试。该数据集包含丰富的产品图像,这些图像是异构的,并且在背景嘈杂中的人体姿势会有所不同。

我们将分类层中的神经元数设置为116,将潜在层中的h数设置为128。然后,我们使用整个Yahoo-1M数据集对网络进行微调。经过750,000次训练迭代后,我们提出的方法在116种服装分类任务上达到了83.75%的准确性(由最后一层获得)。如图7所示,尽管服装图像是无背景的或有噪声的背景,有或没有人,但所提出的方法都表现出良好的分类性能。请注意,某些图像被误测了因为产品在某些特定类别之间可能不明确。例如,可能很难区分Mary Janes和Flats,如图7所示。但是,我们的方法仍然可以检索类似于查询图像的图像。

97f73b3fecaeaa84a4bc6d23e82065ec.png

图像检索性能在这个实验中,我们证明了我们的方法可以为百万个数据集学习高效的深层二进制代码。由于时间长且存储复杂,因此需要使用以前的成对数据方法来实现。

因为图像表示对于图像检索至关重要,所以我们比较了来自不同网络模型的特征所获得的检索结果:1)AlexNet:来自预训练的CNN的F7特征; (2)Ours-ES:来自我们网络的F7特征; (3)Ours-BCS:来自我们网络的潜在二进制代码; (4)Ours-HDS:来自我们网络的F7特征和潜在的二进制代码。

使用F7特征进行检索时,我们基于L2-范数距离进行详尽搜索(或线性搜索);当使用潜在层的二进制码时,基于汉明距离进行哈希处理;通过使用潜在层代码和F7特征时进行从粗到细的分层搜索以检索相关图像。我们从Yahoo1M数据集中随机选择1000张图像,并从同一数据集中检索相关图像。

fc457df069b18edd3b4a58e3c389cf81.png

图8显示了针对不同数量的检索图像的不同方法的检索精度所提出的方法相对于原始AlexNet功能更有利。显然,微调过程成功将深层CNN转移到了新的域(衣服图像)。在经过微调的模型中,Our-ES和Our-HDS首先显示出良好的检索精度。但是,当检索到12张以上的图像时,Ours-BCS的检索精度更高且更稳定,胜过Ours-ES。这表明学习到的二进制代码具有参考价值,并且具有较高的判别能力。 Ours-HDS是Ours-BCS和Ours-ES的补充,并在总体上实现了最佳的检索精度。

2bc47886c645d5ff3dc8b45e61b26549.png

图9显示了通过不同特征检索的前5张图像。可以看出,AlexNet检索的图像具有很大的多样性。经过微调的模型比AlexNet检索更多带有与查询相同标签的图像。 Ours-HDS,Ours-BCS和Ours-ES表现出良好的性能,并成功检索了类似产品。然而,得益于二进制代码,Ours-BCS在所比较的方法中实现了最快的搜索。在配备Geforce GTX 780 GPU和3 GB内存的计算机上,提取CNN功能大约需要60毫秒(ms)。使用C / C ++实现在CPU模式下进行搜索。在两个4096维向量之间执行欧式距离测量需要109.767毫秒。相反,计算两个128位二进制码之间的汉明距离需要0.113 ms。因此,Ours-BCS比具有4096维特征的传统详尽搜索快971.3倍

5.结论

我们提出了一个简单而有效的深度学习框架,以创建类似于哈希的二进制代码来进行快速图像检索。我们在深层CNN中添加了一个潜在属性层,以同时学习领域特定的图像表示形式和一组类似哈希的函数。我们的方法不依赖于数据的成对相似性,并且可以高度扩展到数据集的大小。实验结果表明,仅对深层CNN进行简单的修改,我们的方法就可以分别以MNIST和CIFAR-10数据集的1%和30%的检索精度提高以前的最佳检索结果。我们进一步证明了该方法在100万张购物图像的大规模数据集上的可扩展性和有效性。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值