Deep Hashing Network for Efficient Similarity Retrieval

本文介绍了一种深度哈希网络(DHN),它通过改进传统的监督哈希方法,利用CNN学习图像特征并直接生成二进制码,减少量化误差。DHN在NUS-WIDE、CIFAR-10和Flickr数据集上的实验表明其在相似性检索任务上的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Deep Hashing Network for Efficient Similarity Retrieval

Introduce

这是发表在AAAI-2016的一篇paper,下载地址
在本篇论文之前的监督Hash方法,第一步通过手动学习或者机器学习得到特征向量,第二步学习二进制的Hash Code。然而,这种方法存在明显的缺点,首先提取的特征并不一定完善,并且学习的二进制的Hash Code也有量化的误差。所以作者提出了Deep Hashing Network(DHN)。DHN模型主要从以下四个部分对之前的方法进行改进:

  • 使用CNN来学习图像的特征。
  • 使用CNN的全连接层来生成二进制码。
  • 减少交叉熵损失,使原始空间相似的图片在海明空间也相似。
  • 减少量化误差提高Hash Code的质量。
    在下面详细介绍一下改进过程:

Deep Hashing Network

相似性检索中,给定训练集N个points { xi}Ni=1 ,每一个是一个D维的特征向量, xRD 。每一对特征向量之间有一个相似性的label sij ,如果 xi xj 相似, sij=1 ;如果 xi xj 不相似, sij=0 。我们的目标就是学习到非线性的hashing function f:xh{ 1,1}Kh=f(x)
在本篇论文中,作者提出了如下图所示的网络结构,网络的输入是一组 { xi,xj,sij} 三元组。
图1 网络结构
figure1 显示的图片是AlexNet的修改,原始AlexNet网络结构con1-con5是5个卷积层,fc6-fc8是三个全连接层。对于每一个全连接层l总会学习到一个非线性的mapping。

zli=al(Wlzl1i+bl)

这里 zli 是原始的数据 xi 在l层的表示, Wl,bl 分别表示l-th 层网络的权重和偏置, al 表示激活函数,这里采用了ReLU函数 al(x)=max(0,x) 。由于需要将原始的数据映射为K维的hash code,作者修改了网络的第8层,将AlexNet的fc8的softmax classifier变成了有K个隐节点的fch layer。 hi=zli,l=8 。为了保证fch layer的输出的范围在[-1,1]之间,作者将该层的激活函数修改为 al(x)=tanh(x) 。为了保证fch layer输出的hash code 性能良好,需要保持hash code 和原始的S中相似性一致,并且输出的二进制码量化误差最小。
一对二进制码 hi hj ,海明距离和内积之间有以下的性质
distH(hi,hj)=12(Khi,hj)

图像的label已知的,通过label可以得到相似性的矩阵 S={ sij} ,那么最好的目标就是在相似性矩阵已知的情况下,根据贝叶斯公式可知,后验的概率与先验概率和似然函数的乘积正相关:
logp(H|S)logp(S|H
### 平均哈希在移动端的应用 平均哈希(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.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值