本文为作者对论文《Deep Learning of Binary Hash Codes for Fast Image Retrieval》的翻译。
摘要
近似最近邻搜索是大规模图像检索的有效策略。受卷积神经网络(CNNs)进展的鼓舞,我们提出了一种有效的深度学习框架来生成用于快速图像检索的二进制散列码。
我们的想法是,当数据标签可用时,可以通过使用隐藏层来表示支配类标签的潜在概念来学习二进制代码。 CNN的使用还允许学习图像表示。与其他监督方法不同,这些方法需要二进制代码学习的双对齐输入,我们的方法以点表方式学习散列代码和图像表示,使其适用于大规模数据集。
实验结果表明,我们的方法胜过了CIFAR-10和MNIST数据集上的几种的哈希算法。我们进一步展示其在100万个服装图像的大规模数据集上的可扩展性和功效。
1 前言
基于内容的图像检索旨在通过分析图像内容来搜索相似的图像; 因此图像表示和相似性测量对于这样的任务变得至关重要。
沿着这一研究轨道,最具挑战性的问题之一是将像素级信息与人类感知的语义联系起来[25,27]。尽管已经提出了几个手工特征来表示图像[19,2,22],但这些视觉描述符的表现仍然有限,直到最近深度学习的突破。
最近的研究[14,7,21,23]表明,深度CNN显着提高了各种视觉任务的性能,如对象检测,图像分类和分割。这些成就归功于深度CNN学习丰富的中级图像表示的能力。
由于深CNN学习丰富的中级图像描述符,Krizhevsky等人 [14]在图像检索中使用了来自第7层的特征向量,并在ImageNet上展现了出色的性能。 然而,由于CNN特征是高维的并且直接计算两个4096维向量之间的相似性效率不高,Babenko等人 [1]提出使用主成分分析和区分降维压缩CNN特征,并取得了良好的性能。
在CBIR中,图像表示和计算成本都起着至关重要的作用。由于近来视觉内容的增长,大型数据库中的快速搜索成为新兴需求。许多研究旨在回答如何有效地从大型数据库中检索相关数据的问题。
由于计算成本高,传统的线性搜索(或穷举搜索)不适合在大型语料库中搜索。取而代之的是线性搜索,一个实用的策略是使用近似最近邻(ANN)或基于哈希的方法[6,29,18,20,15,30]来加速技术。
这些方法将高维特征投影到较低维空间,然后生成紧凑二进制代码。受益于所产生的二进制码,可以通过二进制模式匹配或海明距离测量来进行快速图像搜索,这显着降低了计算成本并进一步优化了搜索效率。
这些方法中的一些属于使用相似性矩阵(包含数据的成对相似性)来描述图像对或数据对的关系并使用这种相似性信息来学习哈希函数的成对方法。然而,在处理大规模数据集时,要求构造矩阵并生成代码。
受深度学习的推动,我们提出一个问题,我们可以利用深度CNN来实现哈希?我们是否可以直接从深层CNN生成二元紧凑码,而不是使用双重学习方法?
为了解决这些问题,我们提出了一个深度CNN模型,可以同时学习图像表示和二进制代码,假设数据被标记。也就是说,我们的方法是专门为监督学习而设计的。
此外,我们认为,当使用强大的学习模型(如深度CNN)并且数据标签可用时,可以通过使用隐藏层来表示潜在概念(使用二元激活函数,例如S形)来学习二进制代码,架构中的类标签。
这与其他受监督的方法(如[30])不同,它考虑了数据标签,但需要对已准备好的学习过程进行双向输入。换句话说,我们的方法利用深CNN的递增学习性质(通过随机梯度下降)以点的方式学习二进制散列码。深层建筑的使用也允许高效的检索特征学习。我们的方法适用于比较传统方法的大型数据集。
我们的方法具有以下特点:
•我们为快速图像检索引入简单而有效的监督式学习框架。
•通过对网络模型进行细微修改,我们深度的CNN可以同时学习特定领域的图像表示和一组类似哈希函数以快速进行图像检索。
•所提议的方法优于公共数据集MNIST和CIFAR-10上的所有技术。 我们的模型将CIFAR10数据集之前的较佳检索性能提高了30%,并将MNIST数据集精度提高了1%。
•我们的方法以点分形式学习二进制散列码,并且与传统的配对方法相比,可轻松扩展到数据大小。
本文的组织结构如下:我们在第2节中简要回顾了哈希算法和图像检索的深度学习的相关工作。我们在第3节详细说明了我们方法的细节。最后,第4节提供了实验结果,随后第5节是结论。
2 相关工作
已经提出了几种散列算法[6,29,18,20,28,10]以大致识别与查询相关的数据。 这些方法可以分为两大类,无监督方法和监督方法。
无监督哈希方法使用未标记的数据来学习一组散列函数[6,29,8]。 其中最具代表性的是局部敏感散列(LSH)[6],它旨在较大化类似数据映射到相似二进制代码的概率。 LSH通过将数据点投影到具有随机阈值的随机超平面来生成二进制码。频谱散列(SH)[29]是另一种代表性的方法,它通过沿给定数据的PCA方向的非线性函数通过阈值化产生紧凑二进制码。
最近的研究表明,使用监督信息可以提高二进制散列码学习性能。有监督的方法[18,20,15]在学习期间结合标签信息。 这些受监督的哈希方法通常使用成对标签来生成有效的哈希函数。然而,这些算法通常需要大的稀疏矩阵来描述训练集中数据点之间的相似性。
除散列研究轨道外,图像表示在CBIR中也扮演着重要角色。 基于CNN的视觉描述符最近被应用于图像检索的任务。
Krizhevsky等人 [14]首先使用从第七层提取的特征来检索图像,并在ImageNet上实现令人印象深刻的性能。 Babenko等人 [1]关注CNN特征的尺寸缩减,并利用压缩的CNN特征提高检索性能。
虽然这些最近的作品[14,1]在图像检索任务上呈现出良好的效果,但是通过直接在欧几里得空间中执行模式匹配来采用学习的CNN特征来进行检索,这是低效的。
深度架构已被用于散列学习。然而,其中大多数是无监督的,其中深度自动编码器用于学习表示[24,13]。 夏等人 [30]提出了一种监督哈希方法来学习二进制散列码,通过深度学习实现快速图像检索,并在公共数据集上展示较先进的检索性能。
然而,在它们的预处理阶段,使用矩阵分解算法来学习数据的表示码。 因此它需要输入数据的成对相似矩阵,并且对于数据量很大(例如,在我们的实验中为1M)的情况是不利的,因为它消耗了相当大的存储和计算时间。
相反,我们提出了一种简单而有效的深度学习方法来学习一组有效的类哈希函数,并且在公开可用的数据集上取得了更有利的结果。
我们进一步将我们的方法应用于一百万幅服装图像的大规模数据集,以展示我们方法的可扩展性。 我们将在下一节描述所提出的方法。
3 方法
图1显示了提议的框架。 我们的方法包括三个主要组件。
第一部分是大规模ImageNet数据集的监督式预训练[14]。
第二部分是使用潜在层微调网络,以同时学习特定于领域的特征表示和一组散列式函数。
第三种通过建议的分层深度搜索来获取与查询图像相似的图像。 我们使用Krizhevsky等人提出的预训CNN模型。 [14]来自Caffe CNN图书馆[11],该图书馆在大规模ImageNet数据集上进行了培训,该数据集包含超过120万个图像,分为1000个对象类别。 我们的学习二进制代码的方法详细描述如下。
图1 方法的框架(提出的图像检索框架通过分层深度搜索。)
我们的方法由三个主要部分组成。 首先是ImageNet上的卷积神经网络的监督预训练,以学习丰富的中级图像表示。 在第二个组件中,我们为网络添加一个潜在层,并让该层中的神经元学习类似散列的表示,同时在目标域数据集上对其进行微调。
3.1 哈希编码学习过程
最近的研究[14,7,5,1]已经表明,由输入图像引起的层F6-8的特征激活可以用作视觉特征。
这些中级图像表示法的使用表现出对图像分类,检索和其他任务的重大改进。 然而,这些签名是高维向量,对于大型语料库中的图像检索是低效的。 为了便于高效的图像检索,降低计算成本的实际方法是将特征向量转换为二进制码。这种二进制紧凑码可以使用散列或海明距离进行快速比较。
在这项工作中,我们建议同时学习领域特定的图像表示和一组散列(或二进制编码)函数。我们假设分类层F8的最终输出依赖于每个属性开启或关闭的一组h隐藏属性。
在其他观点中,诱导相似二元激活的图像将具有相同的标签。 为了实现这个想法,我们将潜在层H嵌入F7和F8之间,如图1的中间行所示。潜在层H是完全连接的层,并且其神经元活动由后续层F8调节,其编码语义和 实现分类。所提出的潜在层H不仅提供了来自F7的丰富特征的抽象,还桥接了中级特征和高级语义。在我们的设计中,潜伏层H中的神经元被S形函数激活,所以激活近似为[0;1]
为了实现域自适应,我们通过反向传播对目标域数据集上的提出的网络进行微调。将深CNN的初始权重设置为从ImageNet数据集训练的权重。 潜在层H和最终分类层F8的权重被随机地初始化。
潜在层H的初始随机权重就像LSH [6],它使用随机投影来构造散列位。 然后将编码从LSH改编为适合监督深度网络学习的更好数据。 如果不对深度CNN模型进行重大修改,建议的模型会同时学习领域特定的视觉描述符和一组哈希函数以实现高效的图像检索。
3.2 通过分层深度搜索进行图像检索
Zeiler和Fergus [32]分析了CNN的深度,发现浅层学习局部视觉描述符,而更深层的CNN捕获适合识别的语义信息。 我们采用从粗到精的搜索策略来快速准确地进行图像检索。
我们首先检索一组具有类似高级语义的候选者,也就是说,从潜在层类似地隐藏二进制激活。然后,为了进一步过滤具有相似外观的图像,基于最深的中级图像表示来执行相似性排名。
粗略搜索 给定图像I,我们首先提取潜在层的输出作为由Out(H)表示的图像签名。 然后通过将阈值进行二值化来获得二进制码。 对于每一位j = 1··h(其中h是潜在层中的节点数),我们输出H的二进制码
令Γ= {I1;I2; :::; In}表示由n个用于检索的图像组成的数据集。 每个图像的相应二进制码被表示为ΓH= {H1;H2; :::; Hn}与Hi 2 f0;1GH。 给定查询图像Iq及其二进制码Hq,我们确定一个m个候选者池,P = {I1c;I2C; :::; Imc},如果Hq和Hi-ΓH之间的汉明距离低于阈值。
较精确搜索 给定查询图像Iq和候选池P,我们使用从层F7提取的特征来识别排名前k的图像以形成候选池P. 令Vq和ViP分别表示查询图像q和池中图像Iic的特征向量。
我们将Iq与P的第i个图像之间的相似度定义为相应特征向量之间的欧几里德距离,
欧几里德距离越小,两幅图像的相似度越高。 每个候选IIC按照相似性以升序排列; 因此,识别出排名前k位的图像。
4 实验结果
在本节中,我们展示了我们方法的优势。 我们从介绍数据集开始,然后将我们的实验结果与公共数据集MNIST和CIFAR-10数据集上的几个现有技术进行性能比较。 最后,我们验证了我们的方法在大规模Yahoo-1M数据集上的可扩展性和功效。
4.1 数据集
MNIST数据集[16]由10类手写数字0到9组成。有60,000个训练图像和10,000个测试图像。 所有数字都归一化为尺寸为28×28的灰度图像。
CIFAR-10数据集[12]包含10个对象类别,每个类别包含6,000个图像,总共产生60,000个图 像。 数据集分为训练集和测试集,分别为50,000和10,000个图像。
Yahoo-1M数据集共包含1,124,087个购物产品图片,分为116个服装专用课程。 通过从雅虎购物网站上抓取图像来收集数据集。 所有图像都标有类别,例如Top,Dress,Skirt等。 图2显示了数据集的一些示例。
在MNIST和CIFAR-10的实验中,我们使用学习的二进制代码检索相关图像,以便与其他哈希算法进行公平比较。 在Yahoo-1M数据集的实验中,我们通过分层搜索从整个数据集中检索出相似的图像。
4.2 评估指标
我们使用基于排序的标准[4]进行评估。 给定查询图像q和相似性度量,可以为每个数据集图像分配一个排名。 我们以较精确度评估前k个图像相对于查询图像q的排名:
其中Rel(i)表示查询q与第i排名图像之间的地面实体相关性。 在这里,我们只考虑测量相关性的类别标签,因此Rel(i)2 f0; 1g,其中1表示查询,而第i个图像具有相同的标签,否则为0。
4.3 MNIST数据集上的结果
图像分类的性能。
为了使我们的CNN深度适应新的领域,我们将图层F8修改为10路softmax以预测10位数的类别。 为了测量潜伏层嵌入深CNN的效应,我们将潜层中的神经元数h分别设为48和128。 然后,我们应用随机梯度下降(SGD)在MNIST数据集上训练CNN。 该网络以500次迭代进行训练,学习率为0.001。
我们将我们的结果与表1中的一些现有技术[31,17,9]进行比较。我们的48个潜在节点的方法获得了0.47%的错误率,并且对大多数替代方案表现优异。
值得注意的是,我们的模型是专门为图像检索而设计的,而另一些则通过修改网络来优化分类任务。
例如,[31]的工作提出了maxout激活函数,该函数提高了压差的近似模型平均技术的精度。另一个代表性的工作是网络中的网络(NIN)[17],它通过多层感知增强了局部区域的可区分性,并且避免了使用全局平均池而不是完全连接层的过度拟合。
还要注意,我们使用48个潜在节点的方法产生的错误率低于128个节点的模型。这可能是由于很少的潜在节点能够表示潜在的分类概念,并且添加更多的神经元会导致过度拟合。
图像检索的性能。
在这个实验中,我们统一使用48位二进制码和汉明距离度量来检索相关图像的检索评估。 通过从系统的测试集中随机选择1,000个查询图像以从训练集中检索相关的图像来执行检索。
为了评估检索性能,我们将所提出的方法与包括监督(KSH [18],MLH [20],BRE [15],CNNH [30]和CNNH + [30 ])和无监督方法(LSH [6],SH [29]和ITQ [8])。图4显示了不同方法对不同数量的检索图像的检索精度。
可以看出,无论检索到多少图像,我们的方法都表现出稳定的性能(98:2+ -0:3%检索精度)。此外,我们的方法将精度从97:5%提高到98:5%,CNNH + [30]通过分解成对相似信息来学习哈希函数。这一改进表明,我们只需要类别标签的点对点方法是有效的。
我们进一步分析h = 48和h = 128的学习散列码的质量,如图3所示。可以看出,这两个设置都可以学习用于图像检索的信息二进制码。
4.4 CIFAR-10数据集的结果
图像分类的性能。为了将深度CNN传送到CIFAR-10的域,我们将F8修改为10路softmax以预测10个对象类别,并且h也被设置为48和128。然后,我们在CIFAR-10上微调我们的网络模型 数据集,最终在50个以后达到89%左右的测试精度; 000次训练迭代。
如表2所示,所提出的方法对于大多数方法更有利[31,26,3,14,17],这表明将二进制潜在层嵌入深CNN并不会严重改变性能。
图像检索的性能。
为了与其他哈希算法进行公平的比较,我们统一了用48位二进制码和汉明距离检索相关图像的评估方法。 图6显示了关于不同数量的顶部检索样本的精度曲线。 我们的方法比其他无监督和监督方法获得更好的性能。
此外,在改变检索图像数量的同时,它的较精确度达到了89%,与CNNH +相比,性能提高了30%[30]。 这些结果表明,使用隐层表示隐藏概念是学习高效二进制代码的实用方法。
图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所示,尽管服装图像没有背景或背景噪音,有或没有人,所提出的方法表现出良好的分类性能。 请注意,某些图像是未命中预测的,因为产品可能在某些特定类别之间不明确。 例如,如图7所示,可能难以区分Mary Janes和Flats。但是,我们的方法仍然可以检索类似于查询图像的图像。
图像检索的性能。
在这个实验中,我们证明了我们的方法可以为百万数据的数据集学习高效的深度二进制代码。 由于存在大量时间和存储复杂性,这要求通过使用先前的双数据方法来实现.
由于图像表示对于图像检索至关重要,因此我们比较了不同网络模式下特征获得的检索结果:(1)AlexNet:来自预先训练的CNN的F7特征。 (2)Ours-ES:来自我们网络的F7功能; (3)Ours-BCS:来自我们网络的潜在二进制代码; 和(4)Ours-HDS:F7功能和来自我们网络的潜在二进制代码。
当F7特征用于检索时,我们基于L2范数距离进行穷尽搜索(或线性搜索); 当使用潜在层的二进制码时,基于汉明距离执行散列; 通过使用层间代码和F7来执行从粗到细的分层搜索以检索相关图像。 我们从Yahoo-1M数据集中随机选择1000张图像,并从相同的数据集中检索相关图像。
图8显示了关于使用不同CNN特征检索的各种数量的顶部图像的精度。 建议的方法对原始AlexNet功能的执行更有利。 显然,微调的过程成功地将深度CNN转移到新的域(服装图像)。 在经过微调的模型中,Our-ES和Our-HDS首先显示出良好的检索精度。
然而,当检索到超过12张图像时,Ours-BCS的检索精度优于Ours-ES,检索精度更高且更稳定。 这表明学习的二进制代码是信息丰富的,并且具有高判别力。 Ours-HDS补充了Ours-BCS和Ours-ES,并在整体上实现了较佳的检索精度。
图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毫秒。 因此,Ours-BCS比具有4096维特征的传统穷举搜索快971.3倍。
结论
我们提出了一个简单而有效的深度学习框架来创建用于快速图像检索的散列式二进制代码。 我们在深度CNN中添加一个潜在属性层,以同时学习特定于域的图像表示和一组类似散列函数。 我们的方法不依赖于数据对的相似性,并且对数据集大小具有高度可扩展性。
实验结果表明,只需对CNN进行简单修改,我们的方法就可以在MNIST和CIFAR-10数据集上分别以1%和30%的检索精度改进以前的较佳检索结果。 我们进一步证明了所提出方法在100万张购物图像的大规模数据集上的可扩展性和有效性。
原文地址:https://www.cv-foundation.org/openaccess/content_cvpr_workshops_2015/W03/papers/Lin_Deep_Learning_of_2015_CVPR_paper.pdf
文章来源:知乎
《DL4CV实战——构建基于深度学习的智能图像识别系统》禾路老师的新课来啦!本课程将图像处理和深度学习相结合,教你如何很好地解决实际问题。学完可构建你的第一个智能图像识别系统。点击下方二维码报名课程