刘 萌,周 迪,田传发,齐孟津,聂秀山
(山东建筑大学 计算机科学与技术学院, 山东 济南 250101)
随着社交网络和移动智能手机的快速发展,大量的图片被网民记录和分享。为了规避海量图像所带来的巨大存储成本,同时满足高效的图像检索需求,图像哈希表示学习方法引起了越来越多的研究兴趣[1]。早期的图像哈希表示学习方法大多采用手工设计的局部特征,因此这些方法的性能很大程度上取决于它们使用的特征或它们设计的特征提取方法。近年来,随着深度神经网络在图像表示中的发展[2],深度图像哈希表示学习方法得到了广泛的研究,其有效地将深度卷积神经网络的优势与哈希技术的低计算成本和存储能力相结合,例如非对称深度监督哈希方法[3]、深度锚图哈希方法[4]、深度增量哈希网络[5]、半监督自步对抗哈希方法[6]、基于局部归一化指数函数损失的深度哈希方法[7]以及自适应局部多视图哈希方法[8]。关于深度图像哈希表示学习方法的详细介绍,可参见文献[9]。
尽管现有深度图像哈希表示学习方法取得了令人瞩目的进步,但它们中的大多数都是有监督的学习方法,十分依赖大量类别标注信息,而这对于现实世界的应用而言是一件成本很高的事情。社交网络中的图像通常具有用户提供的标签信息,而这些标签信息在一定程度上可以描述图像的语义信息。 例如,图 1 中的第一个图像,它的标签信息“trees”“sky”“clouds”和“blue”都描绘了图像的内容。与此同时,它的标签信息“sky”和“clouds”也是该图像的类别信息。更重要的是,与图像类别相比,图像的标签信息更容易获得。鉴于此,研究弱监督图像哈希表示学习方法——利用图像的标签作为监督信息,而不是图像类别信息来学习哈希函数,是十分必要的。
图1 NUS-WIDE 数据集中部分图像展示Fig.1 Illustrating some image samples from the NUS-WIDE dataset
然而,通过图像的标签信息学习图像哈希表示并非易事,具体原因如下:①在社交媒体平台上,用户提供的标签信息可能与图像类别不直接相关。例如,图1中第三个图像的标签是“church”“architecture”“steeple”和“spire”,但是它的类别是“sky”。 因此,如何从标签中挖掘有效的监督信息成为一个关键问题。②为增强图像与相应的语义标签之间的匹配,图像细粒度语义信息起着至关重要的作用。如何全面理解图像内容并捕获有益语义信息为一个亟待解决的问题。
虽然在监督图像哈希表示学习方法方面取得了一些成功,但弱监督图像哈希表示学习任务仍是一个尚未解决的问题。据知,文献[10]首次研究了基于深度学习的弱监督哈希表示学习方法,它提出了利用标签嵌入或二进制标签向量的深度弱监督哈希表示学习模型。尽管取得了良好的性能,但是该模型有几个关键的缺点:①其假设若两幅图像具有至少一个相同的文本标签,则它们是相似的,并基于此假设设计了二元标签向量模型。 但是,这个假设是不恰当的。如图1所示,第一张图像和第二张图像共享红色的标签信息“white”,但它们的类别完全不同。②其将图像进行整体编码,而这样一个紧凑的全局表示很难捕获图像中的细粒度语义细节。例如,若想充分理解图1中第一张图像的内容,需对其涉及的属性信息(如“blue”)和实体信息(如“trees”)进行理解。为了解决上述问题,本文提出了一种上下文感知的深度弱监督图像哈希表示(context-aware deep weakly supervised image hashing,IDEA)学习方法。具体来说,本文设计了一种新的图像编码器,它可以自适应地捕捉有意义的图像区域上下文信息来增强图像表示。此外,本文引入判别损失来加强图像与标签之间的对齐,继而提升哈希码的表示能力。
目前,在有监督的图像哈希表示学习方面,有许多研究成果。例如:文献[11]将哈希表示学习表述为一个多分类任务,并通过最大化原始空间和汉明空间分类顺序一致性来学习哈希函数;文献[12]提出了一种两阶段的监督哈希表示学习方法用于图像检索;文献[13]提出了一种深度监督哈希表示学习方法;由于现有的松弛方法对松弛的误差界没有理论保证,文献[14]证明了当损失函数为Lipschitz连续时,二进制优化问题可以松弛为有界约束的连续优化问题,并提出了一种二进制优化哈希学习方法;此外,为了提升哈希码的判别性,文献[15]提出了一种判别式深度哈希学习框架,该框架集成了特征提取、哈希学习和类别预测;针对人脸图像检索任务,文献[16]提出了一种基于分类和量化误差的深度哈希算法。
由于现有的深度监督哈希方法大多采用对称策略来学习深度哈希函数,其训练通常耗时较长,难以适应于大规模数据场景。鉴于此,文献[3]提出了一种非对称深度监督哈希方法用于大规模最近邻搜索,即它以非对称的方式处理查询点和数据库点。为充分利用可用的有标记信息,文献[4]提出了一种深度锚图哈希框架。文献[5]提出了一种深度增量哈希网络,其以增量方式学习哈希码。为了学习能有效地保持图像标签信息的鉴别哈希码,文献[7]提出了基于局部归一化指数函数损失的深度哈希方法。
现有的无监督图像哈希表示学习方法大致可以分为两类:基于浅层学习的方法和基于深度学习的方法。作为浅层学习的代表,文献[17]中提出了一种谱哈希方法。但是,此方法是基于主投影来构造哈希函数,因此生成的哈希码不是非常准确且效率不高。为了解决这个问题,文献[18]提出一种半监督哈希表示学习框架;文献[19]提出了一种简单而有效的交替最小化算法,通过寻找零中心数据的旋转来学习哈希码。随着深度学习技术的发展,一些基于深度学习的无监督图像哈希表示学习算法被提出。其中,文献[20]提出一种深度哈希表示学习方法,该方法利用 GIST 特征作为神经网络的输入;文献[21]旨在学习旋转不变的哈希码。文献[8]提出了一种无监督自适应局部多视图哈希方法,用来处理部分视图哈希问题,以实现高效的社交图像检索。
近年来,有监督和无监督的图像哈希表示学习已经取得了很大的进展,而在弱监督图像哈希表示学习方面却鲜有尝试。弱监督图像哈希表示学习的目的是在训练时仅仅利用图像的标签信息,而不使用图像的类别信息。文献[22]中提出一种弱监督多模态哈希学习方法,但它依赖于手工设计的特征,如GIST特征、颜色直方图和尺度不变特征变换(scale-invariant feature transform, SIFT),限制了其性能。与此不同的是,文献[23]设计了一个两阶段弱监督深度哈希框架,包括弱监督预训练和监督微调。虽然在跨模态哈希领域中一些工作试图利用标签信息和图像来学习哈希空间[24-25],但它们的目标是为不同模态的输入(图像和标签)学习一个通用的哈希空间。这与弱监督图像哈希表示学习的目标(即为图像学习一个哈希空间)完全不同。关于跨模态哈希和单模态哈希学习区别的详细讨论可以参考文献[26]。
本文分别使用大写的黑斜体字母(如X)和小写的黑斜体字母(如b)表示矩阵和向量,分别使用白斜体字母(如N)、花体(如T )和希腊字母(如λ)表示标量、集合、参数或函数,Wi,j表示矩阵W第i行第j列的元素。sgn(·)为基于元素的符号函数,其对于正数输出“+1”,对于负数输出“-1”。如果没有明确说明,所有向量都是列向量。
如图2所示,本文提出的学习方法主要包含三个部分:①图像编码器生成上下文强化的视觉表示;②标签编码器输出标签嵌入;③损失函数。
图像编码器包括区域特征表示和上下文强化的视觉表示两部分。
1)区域特征表示:采用预训练的ResNet-50网络作为主干网络(如图2所示),该网络以224×224×3大小的图像作为输入,通过Conv1、Conv2_x、Conv3_x、Conv4_x、Conv5_x五个模块后,输出大小为7×7×2 048的特征映射,上述过程可总结为如下公式:
Xi=θ(Ii)
(1)
其中,θ表示去除最后全连接层的ResNet-50网络,Xi∈7×7×2 048表示第i张图像的区域特征表示。
为得到图像表示,一种直接的方式是使用平均池化方法,但这可能会引入噪声信息,即无意义的区域表示信息。为了解决这个问题,可以采用注意机制为特征映射中不同区域学习注意力分数,然后通过自适应地聚合区域表示,得到图像表示。然而,上述注意机制完全忽略了视觉区域上下文信息在判断区域起着至关重要的作用。
图2 本文提出的 IDEA 方法流程Fig.2 Framework of the proposed model IDEA
2)上下文强化的视觉表示:为了更好地利用上下文区域,首先采用自注意力机制来捕获每个区域的上下文信息,具体过程如下:
(2)
由于上下文信息强化后的区域特征表示与原始区域特征表示之间是互补关系,为充分表示图像的视觉区域,本文将上下文感知的区域特征与原始区域特征矩阵相加。由于每一个图像区域均可能蕴含有效的语义信息,故本文采用平均池化操作聚合局部的区域特征表示,使得到的全局图像表示尽可能保留全部有效语义信息。上述过程表示为:
(3)
其中,xi∈2 048表示强化后的视觉表示向量。为了得到图像的哈希表示,本文将上下文增强的图像表示输入一个多层感知器中,具体如下:
(4)
(5)
其中,ti∈d为最终文本标签表示向量。
本文IDEA方法的优化目标函数为:
L=λ1L1+L2+λ3L3+λ4L4
(6)
其中,λ1、λ3和λ4为平衡参数。
(7)
其中,I表示元素值全为1且长度为l的向量。
L2为成对损失函数,用于约束具有相似标签表示的图像拥有相似的哈希码表示,其具体表示如下:
(8)
L3为铰链损失,旨在消除模态语义鸿沟,其具体形式如下:
(9)
(10)
L4为判别损失,通过促进图像表示准确地生成相应的标签信息,来增强图像表示的判别性,公式形式如下:
(11)
pic=θ4(W4xi+b4)
(12)
其中:Lc为文本标签类别数目;pic为预测得到的第i张图像包含第c个文本标签的概率;W4和b4为参数矩阵和向量;θ4为Softmax函数,用来归一化预测结果;如果图像Ii包含第c个文本标签,则yic值为1,否则为0。
在测试阶段,本文首先利用式(4)对测试图像提取哈希表示向量h1;然后,对其进行如下量化得到哈希码表示:
(13)
在两个广泛使用的公开图像数据集,即MIR-FLICKR25K[27]和NUS-WIDE[28]上进行大量的实验。其中,NUS-WIDE 数据集是从Flickr上收集的大规模社交图像数据集,它包含了269 648张图像和5 018个文本标签信息,这些图像被手工标记为81个类别[29]。与文献[1]类似,本文只考虑了最高频的21个图像类别,得到194 541张图像。本文从中随机选择120 000张图像,其中100 000张图像作为训练集,其余的为测试集。MIR-FLICKR25K是一个相对较小的数据集,共有25 000张图像和1 386个用户提供的标签。类似地,这些图像被手工标记为 38个类别。本文仅保留至少包含一个文本标签的图像,过滤后共获得了20 015张图像,从中随机选取16 000张图片用于训练,2 000张图片用于测试。
训练阶段:将训练数据集中的图像信息以及相应的文本标签信息输入IDEA网络中,进行参数学习。
测试阶段:仅需将测试图像输入训练好的IDEA网络中,得到的哈希向量表示h1经过式(13)的量化操作,即可得到二值的图像哈希表示,用于下游的检索任务。
1)评价指标:为了衡量本文方法和基线方法的性能,本文采用全类平均精度(mean average precision, mAP)作为评价指标。
2)实验细节设置:在开源深度学习库Keras上使用Tensorflow作为后端实现本文的方法,并采用动量设置为0.9的随机梯度下降算法作为优化器。Conv1~Conv5_x的学习率设置为 0.001,其他层设置为0.01。批处理大小被设置为50,两个全连接层的大小分别为256和300。目标函数中有3个平衡参数,即λ1、λ3和λ4,本文采用网格搜索策略仔细调节并选择最优参数。具体地,首先使用自适应步长在[0,1 000]范围内执行粗粒度的网格搜索。之后,在每个参数的近似范围内,使用较小的步长在较小的范围内进行微调。最终,本文的3个平衡参数分别设置为1.0、1.0和0.01。word2vec模型是在Wikipedia documents上预先训练,输出维度为300的向量。
3)基线方法:与几种最先进的无监督和弱监督图像哈希方法进行比较,包括SH[17]、PCAH[18]、ITQ[19]、DH[20]、DeepBit[21]、LSH[30]、SpH[31]、DSH[32]、AGH[33]、UH-BDNN[34]、WDHT-BTV[10]和WDHT[10]。
表1和表2显示了本文方法IDEA与基线方法在两个数据集上的性能比较。通过分析两个表格中的结果,可以得到以下发现:①在非深度学习方法中,随着哈希码的长度增加,虽然LSH的表现越来越好,但它的性能是最差的,这主要是因为它忽略了数据的分布信息;除了AGH之外,ITQ比其他基线方法表现得都好,这充分表明了数据分布的重要性;而AGH的表现优于ITQ且超过了其他非深度学习方法,这是因为ITQ忽略了局部邻域关系的重要性。②基于深度学习方法,如DH、UH-BDNN和DeepBit的性能不如非深度学习方法,这是因为DH和UH-BDNN过度依赖手工设计的特征,而DeepBit不能充分利用视觉语义信息。③WDHT-BTV和WDHT的性能优于其他基于深度学习的哈希表示学习方法,其中 WDHT的mAP超过了WDHT-BTV,这是因为WDHT-BTV的假设不完全正确,导致引入的监督信息不准确,继而影响性能。④本文的IDEA 方法达到了最佳的性能,特别地,与WDHT相比,IDEA在两个数据集上均取得了性能提升,这充分反映了捕获细粒度视觉语义信息和判别损失的重要性。
表1 在5 000返回结果上的mAP 性能比较
表2 在50 000 返回结果上的mAP 性能比较
除此之外,本文设计了几种变体方法,以进一步验证IDEA方法的有效性,具体如下:
1)IDEA-L:去除了方法中的判别损失,即设置λ4=0。
在NUS-WIDE和MIR-FLICKR25K数据集上对这些变体方法进行实验,实验结果总结在表3和表4中。综合分析这些实验结果,可以发现:①IDEA-L在两个数据集上的检索结果均降低,这表明去除判别损失会对结果造成影响,揭示了判别损失的优势。②IDEA在两个数据集上的性能远高于IDEA-A,这表明平均池化操作不足以充分捕获图像中的细粒度语义信息,验证了图像编码器模块的有效性。③在两个数据集上,IDEA方法检索方面无论是在5 000返回结果还是50 000返回结果上均取得最优结果,这充分验证了增强上下文视觉信息和考虑判别损失的重要性。
本文提出方法IDEA与现有主流基线方法的对比实验充分验证了IDEA方法的有效性。与此同时,IDEA与其相应变体方法间的对比实验也充分反映了判别损失以及利用上下文信息增强视觉表示的必要性。但是,本文所提出的IDEA为一个弱监督的图像哈希表示学习方法,即训练数据为图像以及图像的文本标签信息,并不依赖图像类别信息。所以,图像文本标签的质量对其学习性能起着至关重要的作用。具体地,如果文本标签与图像内容的语义信息较为匹配,则IDEA可学习到非常鲁棒的图像哈希表示;反之,如果训练图像的文本标签过于嘈杂甚至全部与图像语义信息无关,那么IDEA可能无法学习到具有判别性的图像哈希表示(即语义不同的两张图像学习到相似的哈希表示)。未来,将通过引入外部知识或设计文本标签过滤机制等方式,来解决标签噪声问题,以进一步提升IDEA性能和使用范围。
表3 变体方法在两个数据集上 5 000 返回结果的性能比较
表4 变体方法在两个数据集上50 000 返回结果的性能比较
本文提出了一个上下文感知的深度弱监督哈希表示学习方法,用于大规模图像检索。特别地,为了更好地利用每个视觉区域的上下文信息并增强它们的表示,本文设计了一个上下文感知的视觉表示提取模块,来动态计算每个视觉区域的视觉注意及其上下文信息。同时,本文引入了一个判别损失来强制图像表示重新生成相应的标签,从而提高图像表示和哈希表示的判别性。为了评估本文提出的方法,本文在两个公共数据集上进行了大量的实验。结果表明,与最先进的基线相比,本文方法可以获得更好的性能。