基于哈希的图像检索 HABIR(HASHING BASELINE FOR IMAGE RETRIEVAL)
HABIR
HASHING BASELINE FOR IMAGE RETRIEVAL
HABIR簡介
HABIR哈希圖像檢索工具箱是一個用Matlab語言寫的集成了經典哈希方法以及最近幾年無監督哈希方法的基準框架,里面包含了針對圖像檢索的主流評價指標,使用該工具箱使得你可以專注于哈希方法的設計,其他性能評價這些方面的東西可以由它來幫你完成。
HABIR起源
目前我主要致力于大規模圖像檢索研究,在圖像檢索中除了專注與duplicate search外我也花很大力氣在哈希大規模圖像檢索上。在研究的過程中,我發覺幾乎很少有研究者提供不同對比方法的代碼。這為研究帶來了很大不便,而且我堅信在研究的過程中,我們應專注于新算法的設計,而不是新人進來時都得重新造輪子,我們可以在現有代碼的基礎上學習它,并將它進行拓展,為自己使用。于是,就有了你現在看到的這個hashing-baseline-for-image-retrieval,希望它能夠為關注基于哈希方法進行圖像檢索的小伙伴們帶去些許幫助。如果想深入了解哈希的話,這里總結的一篇博文對你非常的有幫助:Hashing圖像檢索源碼及數據庫總結
HABIR運行環境
- Matlab
HABIR使用
圖2 CIFAR-10圖像數據庫目錄
可以看到這四個特征文件比較大,這4個文件可以到下面給出的鏈接中下載,下載完請按圖1目錄放置。
- cnn_1024d_Caltech-256下載地址:cnn_1024d_Caltech-256.mat
- gist_512d_Caltech-256下載地址:gist_512d_Caltech-256.mat
- cnn_4096d_Caltech-256下載地址:cnn_4096d_Caltech-256.mat
- gist_320d_CIFAR-10_yunchao下載地址:gist_320d_CIFAR-10_yunchao.mat
另外一個比較大的文件是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曲線:
圖3: 128位編碼圖4: 64位編碼
圖5:32位編碼
圖6:16位編碼
圖7:8位編碼
圖8:不同編碼位下mAP曲線(run times = 1)
Tips:為了對圖片進行潤色,推薦你用Adobe Illustrator對其進行處理使得其更加美觀。
V1.x版本結果演示
V1.x版本演示結果如下,在64位編碼下,查準率與召回率曲線如下:
在8位編碼下,召回率隨返回樣本數曲線如下:
平均檢索精度MAP隨bits長度的變化
檢索實例
版本更新
- 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
from:?http://yongyuan.name/habir/
總結
以上是生活随笔為你收集整理的基于哈希的图像检索 HABIR(HASHING BASELINE FOR IMAGE RETRIEVAL)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于内容的图像检索CBIR部分数据库和源
- 下一篇: 你在发表理科学术文章过程中有哪些经验值得