HABIR

HAshing Baseline for Image Retrieval

HABIR简介

HABIR哈希图像检索工具箱是一个用Matlab语言写的集成了经典哈希方法以及最近几年无监督哈希方法的基准框架,里面包含了针对图像检索的主流评价指标,使用该工具箱使得你可以专注于哈希方法的设计,其他性能评价这些方面的东西可以由它来帮你完成。

HABIR起源

目前我主要致力于大规模图像检索研究,在图像检索中除了专注与duplicate search外我也花很大力气在哈希大规模图像检索上。在研究的过程中,我发觉几乎很少有研究者提供不同对比方法的代码。这为研究带来了很大不便,而且我坚信在研究的过程中,我们应专注于新算法的设计,而不是新人进来时都得重新造轮子,我们可以在现有代码的基础上学习它,并将它进行拓展,为自己使用。于是,就有了你现在看到的这个hashing-baseline-for-image-retrieval,希望它能够为关注基于哈希方法进行图像检索的小伙伴们带去些许帮助。如果想深入了解哈希的话,这里总结的一篇博文对你非常的有帮助:Hashing图像检索源码及数据库总结

HABIR运行环境

HABIR使用

  1. 下载数据库。在本地计算机上,HABIR的文件目录结构如下图所示: precision-recall-64bits
图1 工具包目录

precision-recall-64bits

图2 CIFAR-10图像数据库目录

可以看到这四个特征文件比较大,这4个文件可以到下面给出的链接中下载,下载完请按图1目录放置。

另外一个比较大的文件是CIFAR-10数据库,这个图像数据库请到官网下载对应的Matlab版,解压后按图2放置。

Note:对于CNN特征的提取,可以使用我写的一个采用VGG训练已模型提取CNN特征的代码,CNN-for-Image-Retrieval

2.运行脚本。该工具箱有三个可执行的脚本,各脚本对应功能如下:

收录进HABIR的哈希方法

Yunchao Gong and Svetlana Lazebnik. Iterative Quantization: A Procrustean Approach to Learning Binary Codes. In: IEEE International Conference on Computer Vision and Pattern Recognition (CVPR), 2011.

Y. Weiss, A. Torralba, R. Fergus. Advances in Neural Information Processing Systems, 2008.

Jae-Pil Heo, Youngwoon Lee, Junfeng He, Shih-Fu Chang, and Sung-eui Yoon. Spherical Hashing. CVPR, 2012.

Locality-sensitive binary codes from shift-invariant kernels. Advances in Neural Information Processing 22, pp. 1509-1517, 2009.

Z. Jin, C. Li, Y. Lin and D. Cai, “Density sensitive hashing,” IEEE Transactions on Cybernetics, 44(8), pp. 1362-1371.

X. Yu, S. Kumar, Y. Gong, S.F. Chang. Circulant Binary Embedding. In Proceedings of the International Conference on Machine Learning (ICML), 2014.

X. Zhu, L. Zhang and Z. Huang, “A Sparse Embedding and Least Variance Encoding Approach to Hashing,” IEEE Transactions on Image Processing, 2014.

Note:如果你要将SELVE加入对比中的话,请保持你的Matlab版本在2012及其以下,非常重要

V2.0版本结果演示

V2.0版本演示结果如下,左边为Precision-Recall曲线,中间为Recall-The number of retrieved samples曲线,右边为Precision-The number of retrieved samples曲线: precision-recall-64bits

图3: 128位编码

precision-recall-64bits

图4: 64位编码

precision-recall-64bits

图5:32位编码

precision-recall-64bits

图6:16位编码

precision-recall-64bits

图7:8位编码

precision-recall-64bits

图8:不同编码位下mAP曲线(run times = 1)

Tips:为了对图片进行润色,推荐你用Adobe Illustrator对其进行处理使得其更加美观。

V1.x版本结果演示

V1.x版本演示结果如下,在64位编码下,查准率与召回率曲线如下:

precision-recall-64bits

在8位编码下,召回率随返回样本数曲线如下:

recall-8bits

平均检索精度MAP随bits长度的变化

map-numbers-of-bits

检索实例

horse

horse

horse

horse

版本更新

加入进来

如果你觉得这个对你有用,想加入进来的话,可以先clone过去,然后再Pull Requests.