Hashing baseline for image retrieval

Hashing Baseline for Image Retrieval(HABIR)

horse

horse

项目起源

目前我主要致力于基于哈希方法的大规模图像检索。在研究的过程中,我发觉几乎很少有研究者提供不同对比方法的代码。这为研究带来了很大不便,而且我坚信在研究的过程中,我们应专注于新算法的设计,而不是新人进来时都得重新造轮子,我们可以在现有代码的基础上学习它,并将它进行拓展,为自己使用。

于是,就有了你现在看到的这个hashing-baseline-for-image-retrieval,希望它能够为关注基于哈希方法进行图像检索的小伙伴们带去些许帮助。

hashing

哈希方法

  • 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. Implemented by me.

  • 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. Implemented by me.

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

注意:截止此刻,所有入选进行的哈希方法都是无监督的

数据库说明

数据库cifar_10yunchao.mat是来自Yunchao GongCIFAR10提取的320维GIST特征,第321维是图像的类别标签

待做事项

  • 完善文档
  • 绘制recall vs. the number of top retrieved samples曲线
  • 再添加一个数据库

运行环境

  • 64位系统(主要是图像数据库比较大,Windows或Linux都可以)
  • 16g内存(我电脑是16g的,8g的应该也行)

版本更新

  • V1.5 2014/09/28
    • 增加不同结果进行检索时的可视化结果/li>
  • 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/19
  • V1.1 初始版本: 2013/09/26
  • V1.0 原型版本: 2013/07/22

结果演示

在64位编码下,查准率与召回率曲线如下:

precision-recall-64bits

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

map-numbers-of-bits

检索实例

本页顶部所示的是用不同的编码方法对“马”,下面展示更多的检索结果:

horse

horse

加入进来

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

致谢

本项目是在ITQ的基础上进行拓展的,感谢Yunchao Gong.

源地址链接:http://yongyuan.name/habir/

### 平均哈希在移动端的应用 平均哈希(Average Hash, aHash)是一种简单而有效的算法,能够快速计算图像指纹并比较不同图片之间的相似度[^1]。该技术特别适合于资源受限环境下的移动设备,在保持较低计算开销的同时提供足够的准确性。 #### 实现原理 为了实现基于aHash的感知图像相似性检测: - 首先将原始彩色图转换成灰度版本; - 接着缩小尺寸到固定大小(通常8×8),以减少数据量; - 计算所有像素值的平均亮度作为阈值; - 对每个像素位置判断其是否大于等于此平均值,并设置二进制位表示结果;最终形成64比特长度的特征向量。 ```python import cv2 import numpy as np def average_hash(image_path): image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE) resized_image = cv2.resize(image, (8, 8)) avg_value = np.mean(resized_image) hash_vector = [] for pixel in resized_image.flatten(): bit = 1 if pixel >= avg_value else 0 hash_vector.append(bit) return ''.join(str(x) for x in hash_vector) ``` 通过对比两张照片产生的hash字符串差异程度可以衡量它们外观上的接近程度。汉明距离常被用来量化这种差别,即两个相同长度的bit串之间对应位置上不同字符的数量总和。 #### 参考文献格式生成指南 对于学术写作而言,正确引用资料至关重要。当提及上述方法论时可采用如下APA风格参考条目结构来指代相关研究工作: 作者姓氏, 名字首字母. (出版年份). 文章题目. *期刊名称*, 卷号(期数), 起始页码–结束页码. 例如:Zhao, Y., & Cheung, S.-C. (2009). Image retrieval using color and texture similarity metrics based on perceptual hashing techniques. *IEEE Transactions on Multimedia*, 11(4), 735–743.
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值