我是靠谱客的博主 快乐店员,最近开发中收集的这篇文章主要介绍图像太宽无法输出_用于快速图像检索的深度监督哈希,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

c3b7ced2c5e935d94ef7fb14941a04df.png

摘要:在本文中,我们提出了一种新的哈希方法,用于学习紧凑的二进制代码,以便在大规模数据集上进行高效的图像检索。鉴于卷积神经网络(CNN)在学习各种视觉任务的稳健图像表示方面的最新进展,尽管复杂的图像外观变化仍然对可靠的检索提出了巨大挑战,本文提出了一种新颖的深度监督哈希(DSH)方法,用于为庞大的图像数据主体学习紧凑的保留相似性的二进制代码。具体来说,我们设计了一种CNN架构,该架构采用成对的图像(相似/不相似)作为训练输入,并鼓励每个图像的输出逼近离散值(例如+ 1 / -1)。为此,精心设计了损失函数,以通过对来自输入图像对的监督信息进行编码来最大化输出空间的可分辨性,

同时对实值输出进行正则化以逼近所需的离散值。对于图像检索来说,通过网络传播并将网络输出量化为二进制编码表示,可以方便地对新出现的查询图像进行编码。在两个大型数据集CIFAR-10和NUS-WIDE上进行的广泛实验表明,与最新技术相比,我们的方法具有令人鼓舞的性能。

1.介绍

近年来,每天有数十万张图像上传到Internet,因此很难根据不同用户的要求查找相关图像。例如,基于内容的图像检索搜索与给定查询图像相似的图像,其中“相似”可以指视觉上相似或语义上相似。假设数据库中的图像和查询图像均由实值特征表示,查找相关图像的最简单方法是根据与查询的距离对数据库图像在特征空间中进行排名,并返回最接近的映射。但是,对于如今拥有数百万张图像的数据库来说,这是非常普遍的,即使是线性搜索整个数据库也要花费大量的时间和内存。

为了解决实值特征的低效率问题,提出了一种将图像映射到紧凑的二进制代码的哈希方法,这些紧凑的二进制代码大致将数据结构保留在原始空间中,例如[27,9,17]。由于图像是用二进制代码而不是实值特征表示的,因此可以大大减少搜索的时间和存储成本。但是,大多数现有散列方法的检索性能在很大程度上取决于它们使用的特征,这些特征基本上是以无监督的方式提取的,因此更适合处理视觉相似性搜索而不是语义相似性搜索。另一方面,图像分类[12、25、8],物体检测[26],面部识别[24]和许多其他视觉任务[18、2]的最新进展证明了CNN令人印象深刻的学习能力。在这些不同的任务中,CNNs可以被看作是一个特征提取器,由专门为单个任务设计的目标函数指导。CNNs在各种任务中的成功应用表明,尽管图像的外观变化很大,但CNNs学习到的特征能够很好地捕捉图像的底层语义结构。

受CNN功能鲁棒性的启发,我们提出了一个利用CNN结构的二进制代码学习框架,命名为深度监督哈希(Deep Supervised Hashing, DSH)。

在我们的方法中,首先我们设计了一个CNN模型,该模型将图像对与表示两幅图像是否相似的标签作为训练输入,并生成二进制代码作为输出,如图1所示。在实践中,我们在线生成图像对,以便在训练阶段可以利用更多的图像对。损失函数被设计为将相似图像的网络输出拉到一起,并将相异图像的输出推到很远,以便学习的汉明空间可以很好地近似图像的语义结构。为了避免在汉明空间中优化不可微损失函数,网络将输出放松到实际值,同时强加一个调节器以鼓励实际值输出接近所需的离散值。在这种框架下,图像可以很容易地通过第一次传播进行编码然后通过网络将网络输出量化为二进制码表示。

1f2bd9ce2d71b8cd6ebd4268dcb986aa.png

2.相关工作

许多哈希方法[4,28,13,27,6,20,17,22,16,23,15,29,31,14]由于其较低的时间和空间复杂度,被提出来以提高近似近邻搜索的性能。在早期,研究人员主要研究与数据无关的哈希方法,例如称为“本地敏感哈希”(LSH)的方法系列[4]。LSH方法使用随机投影来生成哈希位。理论上已经证明,随着代码长度的增加,两个二进制代码之间的汉明距离渐近地接近其在特征空间中的对应距离。但是,LSH方法通常需要长代码才能达到令人满意的性能,这需要大量的内存。

为了产生更紧凑的二进制代码,提出了与数据有关的散列方法。此类方法尝试从训练集中学习保留相似性的哈希函数。这些方法可以进一步分为非监督方法和监督(半监督)方法。无监督方法仅使用未标记的训练数据来学习哈希函数。例如迭代量化(ITQ)[6]试图最小化投影图像描述符上的量化误差,以减轻由于实值特征空间与二​​进制Hamming空间之间的差异而导致的信息丢失。

为了处理更复杂的语义相似性,提出了一种监督方法,以利用诸如类别标签之类的标签信息。CCA-ITQ [6]是ITQ的扩展,它使用标签信息为图像描述符找到更好的投影;可预测的判别式二进制代码(DBC)[22]寻找超平面,这些超平面将具有较大裕度的类别分离为哈希函数;最小损失哈希(MLH)[20]优化了类似于铰链的损失的上限,以学习哈希函数。另一方面,半监督哈希(SSH)[27]利用大量未标记的数据来规范哈希函数。尽管上述方法使用线性投影作为哈希函数,但它们几乎无法处理线性不可分割的数据。为了克服这个限制,提出了带核监督散列(KSH)[17]和二进制重构嵌入(BRE)[13]来学习内核空间中保留相似性的散列函数;深度哈希(DH)[3]利用非线性深度网络生成二进制代码。大多数散列方法在优化中将二进制代码放松为实值,并对模型输出进行量化以生成二进制代码。但是,不能保证最优的实值编码在量化后仍然是最优的。提出了诸如离散图哈希(DGH)[16]和监督离散哈希(SDH)[23]之类的方法来直接优化二进制代码,以克服松弛的缺点,并提高检索性能。

虽然上述哈希方法在一定程度上已经取得了成功,但它们都使用手工制作的特征,它无法捕获现实世界数据中出现的剧烈外观变化下的语义信息,从而限制了学习的二进制代码的检索精度。为了解决这个问题,最近,提出了几种基于CNN的哈希方法[31、14、29、15、30],以便使用有前途的CNN来学习图像表示以及二进制代码。通过结合图像特征提取和二进制代码学习,这些方法已显示出大大提高的检索精度。然而,这些方法的训练目标仍然存在一些缺点,限制了它们的实际检索性能,这将在我们的实验中进行详细介绍。另外,他们采用非线性激励来逼近量化步长,其代价是可能会减慢网络训练的速度[12]。

3.方法

我们的目标是学习图像的紧凑二进制代码,以便:(a)在汉明空间中应将相似的图像编码为相似的二进制代码,反之亦然;(b)可以有效地计算二进制代码。

尽管已经提出了许多散列方法来学习保持相似性的二进制代码,但是它们受到手工特征或线性投影的限制。强大的非线性模型(CNN)促进了计算机视觉社区近期在各种任务上的成功。为此,我们建议使用图1中所示的CNN来同时学习判别性图像表示和紧凑型二进制代码,这可以突破手工特征和线性模型的局限性。我们的方法首先使用图像对和相应的相似性标签训练CNN。在这里,损失函数经过精心设计,以学习保留相似性的二进制图像表示。然后对CNN输出进行量化,生成新的图像的二进制码。

3.1损失函数

令Ω为RGB空间,我们的目标是学习从Ω到k位二进制代码的映射:

,这样就可以将相似的图像(在视觉上相似或语义相似)编码为相似的二进制代码。为此,相似图像的代码应尽可能接近,而不相似图像的代码则应远离。基于该目标,自然地设计了损失函数,以将相似图像的代码拉在一起,并将相异图像的代码彼此推开。

具体来说,对于一对图像

和相应的二进制网络输出
,如果它们相似,则定义y = 0,否则定义y = 1。关于这对图像的损失定义为:

97e22fc1df83d18e55a09574896f6e1c.png

其中

表示两个二进制矢量之间的汉明距离,并且m>0是一个边缘阈值参数。第一项惩罚映射到不同二进制代码的相似图像,第二项惩罚当汉明距离落在边缘阈值m以下时,相似图像映射到接近的二进制代码。这里值得注意的是,为了避免崩溃的解决方案,我们的损失函数采用一个对比损失形式,其中只有那些距离在半径内的不同的对有资格贡献损失函数。

假设从训练图像中随机选择了N个训练对

,我们的目标是使整体损失函数最小化:

1a1e1d07c057bb35495bebc0e2531049.png

3.2 松弛

如果可以直接优化方程式(2)是很理想的,但是这是不可行的,因为对

的二进制约束要求对网络输出进行阈值化(例如,使用符号函数),并且将难以训练带有反向传播的网络算法。最近的一些工作[23,16]提出直接优化二进制代码,但是,由于内存限制,CNN模型只能使用小批量训练,当批次大小与整个训练集相比非常小时,产生的二进制代码的最优性值得怀疑。

另一方面,如果完全忽略二进制约束,由于欧几里得空间和汉明空间之间的差异,将导致次优的二进制代码。常用的松弛方案是利用S型或tanh函数来近似阈值化过程。然而,使用这样的非线性函数将不可避免地减慢甚至限制网络的收敛[12]。为了克服这种限制,在这项工作中,我们建议对实值网络输出施加一个正则化器,以逼近所需的离散值(+ 1 / -1)。具体来说,我们将方程(1)中的汉明距离替换为欧几里得距离,并施加一个附加的正则化函数来替换二元约束,式(1)被改写为:

3efa8f26debb2751fa826cef1144033b.png

其中下标r表示松弛损失函数,1是所有整数的向量,||·|| 1是向量的L1范数,|·|是元素级绝对值运算,而α是控制正则化器强度的加权参数。

这里我们使用L2范数来衡量网络输出之间的距离,因为低阶范数产生的子梯度会平等对待具有不同距离的图像对,因此,不使用涉及不同距离大小的信息。尽管高阶范数也是可行的,但同时会相应地引起更多的计算。至于正则化器,选择L1范数而不是高阶范数,因为它的计算量少,这可以有利地加速训练过程。

通过将等式(3)代入等式(2),我们重写松弛总体损失函数,如下所示:

8de1e3f540404c2b798a9c9ff6ef98bc.png

利用该目标函数,使用反向传播算法和小批量梯度下降法对网络进行训练。由于目标函数中的最大值运算和绝对值运算在某些点不可微,因此我们使用次梯度,并在这些点将次梯度定义为1。等式(4)的前两个项和第三项的子梯度分别写为:

b08065b2d621286f09fce58405b1a2ab.png

通过在小批处理上计算出的子梯度,可以以标准方式完成其余的反向传播。

讨论:在这样的框架下,可以使用sign(b)轻松获得图像的二进制代码。请注意,与现有的基于CNN的哈希方法[29、15、14、31、30]不同,我们的方法不使用饱和非线性,例如tanh或sigmoid,近似于量化步长,因为这些非线性可能会减慢训练过程[12]。4.2节中的实验将验证正则化器相对于饱和非线性的优势。

4.实验

4.1数据集和评估指标

我们验证了我们提出的方法的有效性,并与其他最先进的方法在两个广泛使用的数据集上进行了比较: (1)CIFAR-10 [11]。该数据集由属于10个互斥类别的60,000个32×32图像组成(每个类别6,000个图像)。这些图像直接用作基于CNN的竞争方法以及我们的DSH的输入。对于传统的哈希方法,图像由[17,29]之后的512-D GIST描述符[21]表示。(2)NUS-WIDE [1]。该数据集包含从Flickr收集的269,648张图像。图像和81个概念之间的关联是手动注释的。[17,29]之后,我们使用与21个最常见概念相关联的图像,其中这些概念中的每一个与至少5,000个图像相关联,因此总共产生195,834个图像。在输入到基于CNN的方法之前,图像会变形为64×64。

在我们的实验中,相似性标签由语义级别标签定义。对于CIFAR-10,同一类别的图像在语义上被认为是相似的,反之亦然。对于NUS-WIDE,如果两个图像共享至少一个正标记,则将它们视为相似,否则视为不相似。

在先前的工作之后,使用的评估指标为:不同代码长度的平均精度(mAP),精度调用曲线(48位)和汉明半径2内不同代码长度的平均精度。

4.2 正则器的评估

在这一部分中,我们验证了所提出的正则器的有效性,并将其与现有基于CNN的哈希方法中使用的标准松弛方案进行了比较

在不失一般性的情况下,我们只测试k = 12的情况,并在我们的DSH中设置m = 24。除了使用S形函数作为输出层的激活并设置α=0外,对S形松弛模型的训练与我们的训练几乎完全相同。我们用m = {1,2,3,6}测试这些模型(请注意,这些模型的网络输出之间的最大距离为k)。

b277a9f9c10a4b8e1fc6746ea8fe2d07.png

表1列出了不同模型的检索mAP。图2显示了在不同设置下CIFAR-10测试集上网络输出的分布。我们从比较结果中得出三个观察结果:首先,在没有正则化的情况下(α= 0),网络输出集中在量化阈值0(图2a),因此输出空间中的相邻点很可能被量化为非常不同的二进制代码;其次,强加正则表达式(α= {0.001,0.01,0.1},图2b,c,d)可以减少实值输出空间和汉明空间之间的差异,并且在设置时可以显著提高检索性能α在合理范围内(例如[0.001,0.01]);第三,在适当设置m的情况下,S型松弛模型可以学习类似二进制的输出(图2e,f,g)。但是,此类代码的检索性能远不如我们表现最佳的代码,并且对m敏感。增加训练迭代次数并仔细调整m可能会改善S型松弛模型的性能,但是,获得令人满意的模型将花费更多的时间。基于上述观察,我们在以下实验中根据经验设置α= 0.01。

3dd5ee357adfce1da0a2ee67a8e16e8a.png

4.3在线与离线图像对生成

这部分将在线图像对生成方案与替代连体方案的收敛行为进行了比较。两种方案都采用与相同的网络结构和超参数(k = 12,m = 24)。由于存储空间有限,Siamese方案离线生成了1000万对图像,并相应地调整了学习速率策略。为了公平地比较,我们在每次迭代中向两个方案输入相同数量的图像(在线方案为200幅图像,替代Siamese方案为100对图像)。由于计算主要发生在卷积池层中,因此两种方案的计算成本大致相同。

图3显示了两个数据集上针对迭代次数的训练损失。可以看出,我们的在线训练方案的收敛速度快于Siamese方案,因为我们的在线方案具有在每次迭代中利用更多图像对的能力,从而提供了有关不同图像之间语义关系的更多信息。此外,通过每次迭代对整个训练集采样,我们的方案可以使用比离线生成的1000万对Siamese图像更多的图像对,因此可以令人满意地收敛到更低的损失。

6c6b1ee69fdd84ccca7d6d078daad59f.png

4.4精细训练和从零开始的训练

如果最后一个完全连接的层包含大量节点,则从头开始训练模型可能会导致过度拟合。为了清楚了解情况,在这一部分中,我们将从一个预先训练好的网络中得到的模型与从零开始训练的模型进行了比较。具体来说,我们首先训练了四个分别产生{12,24,36,48}位二进制代码的模型(表2中的前四行)。然后,我们用一个较大的层替换了12位模型的最后一个完全连接的层,并对其进行了微调,以得到另一组{24,36,48}位模型(表2中的最后三行)。

d34b8c7dd7041335e96403668360867a.png

为了进行微调,将最后一个完全连接的层的学习速率设置为

,将先前的层的学习速率设置为
,并且每4,000次迭代将学习速率降低0.6倍。该模型总共进行了30,000次迭代训练。

表2列出了这两个数据集上的检索mAP。可以发现,随着代码长度的增加,微调模型的检索性能会不断提高,而从头开始训练的模型的性能会下降,尤其是在NUS-WIDE数据集上下降很大。为了更仔细地了解这种情况,我们分析了两个示例模型的训练/测试损失,即从头开始训练的48位模型和经过微调的48位模型。图4显示了CIFAR-10上两个模型的迭代次数损失。显然,在第一个模型上(从头开始训练),训练损失保持减少,而测试损失起初如预期的那样减少,但经过约30,000次迭代后增加,表明训练集过度拟合。相比之下,在第二个模型上(经过微调),测试损失首先减小,然后仅经过几千次迭代即可稳定下来,这些观察结果表明,具有各种码长的不同模型可以共享这些先前的层,从而节省了培训成本,并减轻了过度拟合的风险。

3cbb15a87c66385beed4ddbf34aecc8b.png

4.5 与最新技术的比较

比较方法:我们将我们的方法与LSH[4],SH[28],ITQ[6],CCA-ITQ[6],MLH [20],BRE[13],KSH[17],CNNH[29],DLBHC[15]和DNNH[14]进行比较。

0c30d4e99e694b81cba0230dbb924fa9.png

表3和图5显示了我们的方法与其他方法的比较。通常,那些基于CNN的方法在两个数据集上的性能都大大优于传统的哈希学习方法,从而验证了学习图像表示优于使用手工特征的优势。此外,我们研究了一些使用CNN功能训练的常规哈希方法,尽管性能得到了显着改善,但仍不如我们的DSH,这表明我们的端到端学习方案是有利的

4.6 编码时间比较

在实际应用中,为新出现的图像生成二进制代码应当很快。在这一部分中,我们比较了DSH方法和其他7种监督哈希方法的编码时间:CCA-ITQ[6],MLH [20],BRE[13],KSH[17],CNNH[29],DLBHC[15]和DNNH [14],包括线性和非线性常规哈希方法以及最新的基于CNN的方法。为了进行全面的比较,我们报告了基于CNN的方法在CPU和GPU上的编码时间,以及传统哈希方法的特征提取时间

c60a732e1ff151897db8d5c013e24299.png

这种散列方法的对数编码时间(以微秒为单位,以10为底)显示在图6中,其中的结果是通过对整个测试集进行平均得出的。基于cnn的方法用几乎相同的时间来编码具有不同代码长度的单个图像,因为计算主要发生在公共的前一层。通常,仅考虑从模型输入生成二进制代码时,即使基于CNN的方法的GPU加速版本也比常规方法慢至少一个数量级。但是,考虑到特征提取时间,基于CNN的方法比传统的哈希算法快10倍。而且,常规的散列方法通常需要几种类型的特征来实现与基于CNN的方法相当的检索性能,这进一步减慢了整个编码过程。

5.结论

我们将DSH的有前途的检索性能归结为三个方面:首先,非线性特征学习和哈希编码的结合,用于提取任务特定的图像表示;其次,为减少实值网络输出空间与所需汉明空间之间的差异而提出的正则化器;第三,在线生成密集的成对监督,以很好地描述所需的汉明空间。在效率方面,实验表明,与传统的哈希算法相比,该方法对新出现的图像进行编码的速度更快。由于我们当前的框架相对通用,因此也可以轻松利用更复杂的网络结构。此外,这项工作中对“网络集成”的初步研究已证明这是一种有前途的方法,值得我们进一步研究以进一步提高检索性能。

参考文献

1a10720150ea7d8abd0c4fae36966ad9.png

思考:

目前基于CNN的哈希检索方法问题比较大的一个地方在于sigmoid/tanh的使用。由于这类激活函数具有饱和的性质,越是当输出接近期望的值的时候(0/1或-1/+1),梯度就越小,网络训练也就越困难。这篇文章关注了sigmoid/tanh的替代品的研究,使用一个正则项来对网络的输出进行约束,使之接近二值编码。当网络的输出和期望得到的值偏差越大的时候,损失也越大,但是同时,梯度的值保持在-1或+1,来保证训练过程的稳定性。

最后

以上就是快乐店员为你收集整理的图像太宽无法输出_用于快速图像检索的深度监督哈希的全部内容,希望文章能够帮你解决图像太宽无法输出_用于快速图像检索的深度监督哈希所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部