《Deep Learning of Binary Hash Codes for Fast Image Retrieval》
摘要
- 提出了一个有效的架构产生快速图像检索的二进制哈希索引码
- 在有标签情况下,在CNN基础上使用隐藏层表示主导标签的潜在概念来学习二进制哈希码
- 相比于其他监督方法使用pair-wised的输入,我们的技术基于point-wised
- 我们的方案相比于state-of-art表现出色
1.引言
灵感1——CNN:
- Krizhevsky等人使用CNN第7层的输出作为特征向量进行图像检索
- 由于第7层的输出的特征向量维数过高,Babenko等人采用PCA主
成分分析和discriminative dimensionality reduction技术进行降维,取得了更好的效果
灵感2——哈希:
- 传统的线性搜索不适用于大数据集,ANN或哈希方案加快了计算进程
- 这些方法是一种降维技术,可以产生二进制码
我们的方案:
- 引入一个简单但有效的监督学习框架
- 只需简单调整,我们的卷积神经网络可以同时学习图像表示与类哈希函数集
- 在MNIST和CIFAR-10数据集上的表现超过了所有state-of-art
- 以point-wised的方式学习二进制哈希码
2.相关工作
有很多种哈希算法,这些方法大致可以分为无监督方案与监督方案。
无监督算法:
- Locality-Sensitive Hashing(LSH):最大化相似的数据映射到相似的二进制码
- Spectral hashing(SH):沿给定数据的PCA方向使用非线性函数进行阈值化生成紧凑的二进制代码
监督算法相比于无监督算法,在学习过程中结合了标签信息,但算法需要一个巨大的稀疏矩阵描述训练集中数据间的相似度。
深度架构也早已应用于图像检索,但大部分是无监督的,可以参见如下两篇论文:
- R. Salakhutdinov and G. Hinton. Semantic hashing.Interna-tional Journal of Approximate Reasoning, 500(3):500, 2007.
- A. Krizhevsky and G. E. Hinton. Using very deep autoen-coders for content-based image retrieval. InESANN, 2011.
Xia等人使用了监督的深度哈希方法来进行图像检索,取得了很好的效果,但其空间复杂度高,不适用于大数据集。
3.方案
方案由3部分组成:
- 在大规模数据集ImageNet上监督预训练
- 微调网络,隐藏层同时学习图像表示与哈希函数集
- 通过分层深度搜索检索相似图片
3.1学习类哈希二进制码
- 在 F 7 F_7 F7?与 F 8 F_8 F8?之间加入一个隐藏层 H H H,激活函数采用 s i g m o d sigmod sigmod
- 微调网络, H H H与 F 8 F_8 F8?参数随机初始化,其余冻结
3.2 通过分层深度搜索进行图像检索
粗糙级别的搜索:
记 H H H层的输出为 O u t ( H ) ∈ [ 0 , 1 ] Out(H)\in [0,1] Out(H)∈[0,1],二进制码为 H H H,二进制码长度为 h h h。
对于 j = 1 ? h , 有 H j = { 1 O u t j ( H ) ≥ 0.5 0 o t h e r w i s e j=1\cdots h,有H^j=\begin{cases} 1 ~~~~Out^j(H)≥0.5\\0 ~~~~otherwise\end{cases} j=1?h,有Hj={
1 Outj(H)≥0.50 otherwise?
定义m个候选图像,有候选池 P = { I 1 C , I 2 C , ? , I m C } P=\{I^C_1,I^C_2,\cdots,I^C_m\} P={
I1C?,I2C?,?,ImC?}(由Hamming距离阈值处理导出)
精细级别的搜索:
给定查询图像 I q I_q Iq?和候选池 P P P,使用从 F 7 F_7 F7?提取的特征得到前 k k k个图像,使用欧式距离作为相似度衡量指标。