图像检索:HABIR哈希图像检索工具包更新至v2.0

上上周的事了,还是记录一下吧。HABIR工具包顺应做基于哈希技术的图像检索这方面研究的小伙伴们的强烈要求,提前一个星期对原来在v1.x上陆陆续续做的修改进行整理修改后,就有了现在的v2.0版本。v2.0版本相比于v1.x版本,评价指标更加丰富,代码结构更加有层次感,添加了14年几种新的方法,实验跑出来的结果更加逼近论文中的结果。当然,其中还有一个未来得及整理的检索可视化脚本,这个脚本有待日后整理好后再push上去。代码整理完后重新对v1.x版本的文档做了大刀阔斧的整改,下面是对v2.0版本文档做的部分摘取,HABIR v2.0版本的文档详细可以参阅其文档说明HABIR

HABIR哈希图像检索工具箱是什么?

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

为什么会有HABIR哈希图像检索工具箱?

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

怎样使用HABIR哈希图像检索工具箱?

  1. 下载数据库。在本地计算机上,HABIR的文件目录结构如下图所示: downfiles

图1 工具包目录

CIFAR-10

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

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

cnn_1024d_Caltech-256下载地址:cnn_1024d_Caltech-256.mat</br> gist_512d_Caltech-256下载地址:gist_512d_Caltech-256.mat</br> cnn_4096d_Caltech-256下载地址:cnn_4096d_Caltech-256.mat</br> gist_320d_CIFAR-10_yunchao下载地址:gist_320d_CIFAR-10_yunchao.mat</br>

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

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

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

  • main_demo.m: 主要脚本文件,This is the main script ufor evaluate the performance, and you can get Precision-Recall curve, mean Average Precision (mAP) curves, Recall-The number of retrieved samples curve, Precision-The number of retrieved samples curve.(偷点懒,把脚本中我写的英文注释拿过来)
  • visualize_retrieval_demo.m:检索可视化脚本文件,主要用来对不同的查询结果进行检索可视化(该脚本还在整理中)。
  • cifar10_10class_visualization.m:可视化CIFAR-10数据库上的图像,官网上CIFAR-10数据库提供的是保存为像素值的mat文件,用该脚本你可以对该数据库上的图像进行可视化。

收录进HABIR哈希图像检索工具箱的哈希方法

  • PCA-ITQ,PCA-RR: Iterative Quantization. 作者建立的项目详细信息请移步这里:ITQ

    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.

  • SH: Spectral Hashing. 作者建立的项目详细信息请移步这里:SH

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

  • SpH: Spherical Hashing. 作者建立的项目详细信息请移步这里:SpH

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

  • LSH: Local Sensentive Hashing,经典方法。
  • SKLSH: Maxim Raginsky and Svetlana Lazebnik.

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

  • PCAH: PCA Hashing.
  • DSH: Density Sensitive Hashing. 项目主页请移步这里:DSH.

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

  • CBE: Circulant Binary Embedding.

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

  • SELVE: Sparse Embedding and Least Variance Encoding

    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-128bits

图3: 128位编码

precision-recall-64bits

图4: 64位编码

precision-recall-32bits

图5:32位编码

precision-recall-16bits

图6:16位编码

precision-recall-8bits

图7:8位编码

mAP

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

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

V1.x版本结果演示

检索实例http://yongyuan.name/habir/doc/v1/horse_ID8_128_1.png horse_ID8_128_1 horse_ID8_128_2 car_ID13_128_1 car_ID13_128_2

运行环境

  • Matlab

版本更新

  • V2.0 2015/06/10
    • 相比于1.x版,该版本做了较大的更新,添加了新的评价指标,基本涵盖了论文中常用的上面提到的4种指标。
    • 对框架做了一些调整,并添加了2014年相关论文的方法。
  • V1.4 2014/09/22
    • 修复画MAP曲线的错误,重新以Gong Yunchao所用的计算曲线面积的方法画MAP曲线
    • 将原来画曲线时只运行一次改为运行多次(10次,程序中可以自己修改设定),对10次的MAP取平均,之所以这样做是因为不同的方法中用到了随机函数,通过运行多次减少每次运行结果的差异
  • V1.3 2014/08/21
    • 完成MAP随bits长度的曲线,添加进来SpH和DSH。
    • 完善绘制的图,使画出的图更美观。
    • 优化框架结构,使布局更有层次。
  • V1.2 成型版本: 2014/08/16—2014/08/19
  • V1.1 初始版本: 2013/09/26
  • V1.0 原型版本: 2013/07/22

就酱紫,明天还要做CBIR群活动第二期的PPT,群活动第一期关于基于哈希技术的图像检索视频和对应PPT可以分别从我的百度网盘中下载:基于哈希的图像搜索技术视频基于哈希的图像搜索技术PPT