Deep Learning of Binary Hash Codes for Fast Image Retrieval
摘要
当可获得数据label时, 利用深度网络来学习并用于表示图像的深度表示特征。与基于pair-wise的方法不同, 该方法基于point-wise的思想进行设计。实验结果表明, 该方法在CIFAR-10和MNIST上达到了当前最佳水平, 并且通过在一百万张衣服图片的大规模数据集上系统性地验证了其扩展性和有效性。
本文的思路和主要工作
一些pair-wise方法依赖于相似度矩阵来表征图像对或数据对之间的关系(如CNNH及CNNH+),并以这些相似信息为基础训练哈希函数。在处理大规模数据集时需要构建相应的矩阵并生成对应的哈希码。本文从监督学习的角度出发同时优化图像表示与二进制码与其他方法不同的是(如基于pair-wise的CNNH及CNNH+)本文提出的方法立足于point-wise的思想利用增量式优化机制(SGD)具有良好的扩展性适用于大规模图像检索任务本文的主要创新工作包含以下四个方面的内容
(1)介绍了适用于快速图像检索的一种有效而简单监督学习框架;
(2)在基于网络模型的前提下进行微调训练的同时进行图像特征表示和哈希函数的学习。
(3)该方法在CIFAR-10 和 MNIST是state-of-the-art;
(4)相较于其他conventional pair-wise approaches, 本文方法中基于point-wise的思想实现了hashing code在数据规模维度上表现出良好的扩展能力。
本文方法DLBHC(Deep Learning of Binary Hash Codes)

该模型主要由三个核心组件构成。第一部分是基于ImageNet的预训练阶段;第二部分则是在目标数据集上进行了微调,并协同学习特征提取与哈希函数生成;第三部分采用层次化结构设计用于检索,在查询过程中先从宏观层面捕获关键信息再逐步细化至细节层。其中第一部分的具体实现采用了**AlexNet(ImageNet Classification with Deep Convolutional Neural Networks)**作为基础框架。
Learning Hashlike Binary Codes
这篇文章的想法非常巧妙。更深层的CNN架构在fc8层与 fc7层之间增加了中间的一个全连接隐层部分(H)。通过应用sigmod激活函数对该隐层进行处理后,在输出端不仅可以获得较为丰富的fc7特征向量(FC7),还可以生成对应的二分哈希码表示(binary hash codes)。这个中间隐层不仅对FC7特征进行了高度概括提取,并且构建了一个从中高层特征到高层抽象表征的有效桥梁作用。
该网络实现了某一类物体在目标域上的鲁棒性(robustness),具体采用的是基于target domain adaption(TDA)的方法。该过程利用一种主题目标数据集进行微调(fine-tuning)。在微调过程中,latent layer H和FC8层的权重均采用了随机初始化策略(random initialization)。其中H层参数初始化采用了参考自LSH[1]的研究方法(method),即通过随机映射构建哈希位(hash bits)。FC8层节点数量由目标类别数目决定(number of nodes in FC8 layer is determined by the number of target categories),而H层节点数目经过实验研究发现存在两种尝试:48个或128个(two trials with 48 and 128 nodes respectively)。实验结果表明该方法在curring描述子性能方面表现优异。
Image Retrieval via Hierarchical Deep Search
本文在图像检索中应用了一种coarse-to-fine策略以提高效率。具体而言,在潜在层中基于隐藏二进制激活筛选出语义高度相似的对象;随后,在深层中间图像特征的基础上进行相似度排序,并进一步去除外观上类似的图片。
Step 1:Coarse-level Search.
给定输入图像I,在经过latency层处理后会生成对应的表示Out(H);binary code中的每个位置j(j=1,2,…,h)都表示一个特征维度的位置编码(其中h是latency层中的节点数量)。

粗粒化搜索采用H层上的二分哈希码表示,并以汉明距离作为相似性度量。待检索的图像记为I,在其与所有图像对应的H层编码进行对比后,从中筛选出具有汉明距离低于设定阈值的m个样本形成候选池。其中包含这m个具有汉明距离小于给定阈值的图像。
Step2:
在细致检索过程中,则主要依赖FC7层提取的特征进行比较。其中计算图像间的相似性时,则采用欧氏距离作为度量标准。通过粗糙检索筛选出包含m个图像的数据库后,在后续处理中选取与目标最匹配度最高的前k个样本作为最终候选集合。
两张图像在128维度上的H层哈希码计算速率仅为0.113毫秒,在4096维度下 fc7层特征的距离计算所需时间为 109.767毫秒 ,由此可知,在二值化哈希码检索中表现出明显的优势
实验
该研究基于MNIST、CIFAR-10和Yahoo-1M三个公开数据集开展实验。该研究者在上述三个公开数据集上进行了相关性研究,并分别针对分类任务与检索任务展开了相关实验。其中,在基准测试中发现,在CIFAR-10数据集上的图像检索准确率较 baseline 提升了约30%。
(1)MINIST

左侧第一列展示的是待检索的图像样本,在右侧分别展示了使用48位和128位H层节点所得的结果。通过观察可以看出所有检索出的数据均为准确,并且在该数据集上实验结果表明48位模型表现更为优异,在使用128位模型时则出现了过拟合现象
(2)CIFAR-10

在该数据集上相比48层节点组(Group 48),128层节点组(Group 128)表现出更好的性能;具体而言,在具体实验中使用128层节点组时能够识别出更多数量的马头特征;相比之下,在同样的实验条件下使用48层节点组则难以全面捕捉到全身范围内的马特征。
(3)Yahoo1M

改写说明
AlexNet: F7 feature from the pre-trained CNN;
Ours-ES: F7 features from our network;
Ours-BCS: Latent binary codes from our network;
Ours-HDS: F7 features and latent binary codes from our network.

作者在该数据集上进行了系统的实验对比分析。分别探讨了以下三种方案:单层特征FC7、单层特征H以及两层特征结合使用(从粗等到精细的层次)。实验结果显示,在所有情况下都采用双层特征都能获得更好的效果。
可以看出仅使用AlexNet而不进行fine-tuning的情况下检索结果的精度较低
总结
整篇文章感觉偏重工程应用,在全文中对理论与方法的讲解极少,并未涉及较多的数学公式推导部分。然而其效果却十分显著,在众多方案中表现最为突出这一点最为关键。其核心在于思路较为简单但又蕴含着极大的巧妙性值得深入研究
