Hierarchical deep semantic hashing for fast image retrieval
本文主要是采用基于分层的思想进行模型构建,结合了概率语义层面相似(Probability-based semantic-level similarity) 和哈希层面相似(Hashing-level similarity)。
摘要
为解决大规模图像检索中效率和精度的问题,本文提出了一种分层的深度语义学习模型。本文的核心思想是基于语义分层,在大规模图像检索中利用层次信息是最重要的事情之一。表示潜在语义标签概念的binary code可以通过深度神经网络获得。首先,与之前的通过图像特征映射到hash code的其他监督学习方法不同的是,我们的方法学习了分层深度语义哈希编码(Hierarchical Deep Semantic Hashing code ,HDSH-code ),并且图像表示采用了一种隐含方式。此外,采用了一种新型的hash机制(哈希编码与语义信息同时生成),从而减少了检索的复杂度。最后,在Holidays, Oxford5k/105k, Caltech256三个标准数据集上进行了实验,HDSH 模型表现出来有竞争力的性能,在Holidays上检索时间为0.15ms,在Imagenet上检索时间为53.92ms。
本文的主要思想和贡献
为解决CNN不能直接产生紧凑的binary code这个问题,本文采用CNN模型同时学习语义信息和binary表示,从而提出了分层深度语义哈希模型(Hierarchical Deep Semantic Hashing,HDSH )。在基于分层架构的图像语义信息基础上如何融合人类先验知识。例如,对于某一张包含语义标签““Monkey”的图片,通过预先设计好的分层模型可以让我们知道,相比包含a “house” or a“person”的图片,含有Lemur”的图片是更相似的。基于此,我们可以丢弃那些属于无关语义类别的图像。
一旦语义层面相似确定好了,下面的问题就是如何进行有效的检索,本文介绍了一种新的哈希学习策略。在没有任何的哈希索引情况下,保证有竞争力的检索准确度的前提下,在Imagenet数据集上的每次检索可以达到50ms以内。事实上使用索引可以更加有效的提高检索效率,此问题不在本文的研究范围内。
本文的主要贡献包括如下:
1、提出了一种简单并且有效的监督学习框架来进行快速的图像检索;
2、通过对于传统的网络模型进行细微更改,我们的网络可以同时学习到概率语义层面相似(Probability-based semantic-level similarity) 和哈希层面相似(Hashing-level similarity) 进行图像表示。
3、利用语义层次进行类似的图像检索可以减少检索空间。
4、采用一种简单而且新颖的方法来解决样本少而且不平衡的问题。
5、学习到的分层binary code是非常稳定的,相比之前state-of-the-art methods,当减少特征维度时性能衰减并不是很明显。
Exploiting hierarchy for retrieval
1.Similarity strategy
评价两张图片之间的相似性分为两个步骤。一个为如何有效的表示数据;另一个为如何快速地计算相似性。基于此,有如下定义:
哈希函数h():
表示从D维空间映射到哈希编码。
一组图片集合和其标签:
,其中语义标签
关于每张图片
,我们的目标是学习一个哈希函数h可以将图片x映射到哈希编码h(x),同时保持其语义c。我们希望D可以代替the new pairwise data
来表示图像以及标签,同时没有任何的语义损失。
对于给定的一组图片a和b,我们可以用
表示其低层的表示,因此我们可以定义其相似度:
两张图片相似度的评价过程如下图所示:

从逻辑上来说,学习图像表示主要分为两个部分,包括匹配语义标签的概率性评价和匹配特征的哈希函数,然后通过分层策略进行融合。
首先,我们通过前向传播得到图像的中层特征f(a)和f(b),我们通过中层特征来评价语义label的概率 :
然后,通过
来计算哈希编码。
此外,我们使用semantic probabilities p(a)和p(b)以及哈希编码h(a)和h(b) 来进行分层相似性的评价。
我们可以得到这样的相似性函数:Sim(a,b)=(p(a),h(a))S(p(b),h(b)), 此处S为分层的相关矩阵。可以通过两个步骤获得:semantic-level similarity and hashing-level similarity ,该相似性函数不仅使用分层信息来提高准确性,而且可以加速相似性计算。
值得注意的是,本文中没有在设计哈希函数中花费太多篇幅,而是通过深度神经网络和分层融合策略来实现的。
基于概率的语义层面相似(Probability-based semantic-level similarity)
本文中主要利用语义信息来简化计算,然后通过使用hash特征来计算检索相似性。考虑基于标签的语义层相似的一个简单方法为,通过使用一组二元语义信息
来描述一张图片a。例如,我们为每张图片分配一个标签(a “house” or a “person”),然后通过语义类别来衡量相似性在图像检索中是个难题(语义鸿沟,语义重复和语义模糊等等)。
为解决上述问题,本文中采用一种基于概率的语义层面相似来替代单独基于标签的相似。
利用指示函数
表示图像I是否有语义i,同样的,使用
liability表示a具有语义i的概率。显然的是,
为图像a的语义标签。在本文中概率
可以通过CNN中的Softmax classifier获得。具体定义如下:
对于每个
,
表示与语义i相关的一组图像,
表示不相关的一组图像。语义和图像相关性 可以通过以下矩阵来定义:


为了计算图像和图像的相关性矩阵
,我们将图像a、b和语义i视为条件独立事件,
然后计算图像-图像的联合概率密度 作为相似性衡量:

为提高可扩展性,当且仅当联合概率密度超过某个阈值t时,两个图像是相似的。
也就是说,

由于仅当两张图像同时具有语义i时,图像之间的相关性才发生,因此相关性矩阵是一个对角阵(the correlation matrix is a diagonal matrix)。更重要的是,语义概率是很小的。因此设置阈值t后,大部分的概率倾向于0.因此,相关矩阵是一个稀疏矩阵,因此通过probability-based semantic-level similarity就可以过滤到一些不相干的图像。
基于哈希层的相似(Hashing-level similarity)
在本小节主要讨论基于哈希层面的相似。对于给定的图像I,我们首先通过全连接层获得图像特征,然后通过hash函数来获得哈希编码。

此公式中
,
是每一个神经元的激活值,
是基于向量u的一个平均函数。其中sigmoid激活函数用来使得特征规范化到[0,1]。
表示包含n张图片的数据集,
与每张图片一一映射的hash编码,对于给定查询的每张图片I,我们使用H来从图像集合中确定图片I,使用
来确定哈希层面的相似。具体如下所示:

欧式距离越近,两个图片的相似性越高,通过相似性的降序排列图片,因此,可以找到top k的图像。
融合语义层相似和哈希层相似(Combined with semantic-level and hashing-level similarity)
通过定义语义层相似和哈希层相似,我们可以融合它们从而产生分层的相似性计算,如下所示。

其中,
表示基于概率的语义层面相似,
哈希层相似,前者是一个对角阵,后面是一个数值。
融合了两种相似性来衡量图像a和b的相似度。在实际操作过程中,
是非常稀疏的,因此有利于快速产生与查询图像相关的图像列表。对于给定查询q,我们go over所有的图像数据库来确定于q相关的图像。在本文的实验中,与查询图像语义相关的数量为1~10。因此,总体的Sim(a,b)计算时间是很有效的。
相似性学习(Learning similarity)
本文中提出的模型主要分为两个部分:通过在ImageNet预训练好的卷积神经网络,并且微调在目标数据集上得到图像表示。本文中采用的模型为Alexnet。而与之前其他工作不同的是,我们通过最后一个FC层来直接计算语义,从而代替了hash层。我们认为语义特征只从hash code中提取会增加语义信息的丢失。因此,我们将最后的全连接层分出两个分支:1、n-ways的softmax(n为目标数据库中的类别相互匹配,we treat the scores of softmax as the probability of semantics )来产生语义信息;2、通过CNN特征来产生hash code。具体过程如下图所示。

为了得到哈希层特征表示(与谭铁牛院士组里工作相似 ),我们将FC6和FC7进行串联起来从而得到更加有效的hash code。我们认为哈希编码只通过最后一个全连通层从而过分依赖于图像的类别,不能获得微妙的语义区别。因此,我们从重新定义了深层的隐藏特征向量g(I):
,此处的
表示FC6和FC7输出的特征。hash函数与之前一样,
,为了产生q位的hash code,计算
检索过程(Retrieval process)
整个架构的第二部分为通过分层深度语义哈希进行检索。Sim(a,b)是一个joint algorithm,因此计算所有图像的相似性时间复杂度太大,因此在检索过程中我们采用一种分层策略。如上图下部分所示。通过语义层相似性才丢弃一些图像,然后得到m张图像的候选集合:
,然后再该候选集合中计算哈希层的相似性。
效率分析
给定查询I和图像数据库I和标签L,假设计算
的相似性的时间复杂度为O(1),我们可以整个图像数据库的复杂度为O(n),本文提出的分级策略可以减少整个过程的复杂性。与整个图像类别相关的查询图像是小于10(大部分小于5)。因此计算语义相关的代价很低。因此整个检索系统的代价在于the size m of the proposal set P, 如果每个类别中数据概率分布是均匀的话,本文中方法的复杂度和加速比为:
。例如在Holidays数据集上,加速比为:
。
实验
基于Holidays和Oxford5k数据集上进行相似性学习比较;Oxford105k 和ImageNet进行大规模环境实验;Caltech256和ImageNet进行跨类别的模型泛化能力。
1、Holidays数据集:包括500个类别的1491张图片,每张图片i傲视一个场景或者物体;在实验中500张图片作为查询,其他的991张图片作为训练数据集;
2、Oxford5k包含从Flickr中牛津大学标志性建筑的5062张图片,包括11个明显的标志性建筑物(有些包含复杂的结构,有些包含好几个建筑物),每张图片可能有5个查询表示。与11个标志性建筑物相关的512张图片in “good” and “ok” setting作为训练数据集,同使用55个查询来验证。
3、Oxford105k包括了Oxford5k,数据量达到100k为了适用于大规模图像检索。
4、Caltech256包含了256个类别的30607张图像。我们使用了200类作为训练数据集,56类作为测试集。
