Supervised Hashing for Image Retrieval via Image Representation Learning

本文介绍了一种有监督的图像检索哈希方法,通过深度学习来学习图像表示和哈希函数。该方法包括两个阶段:近似哈希码学习和图像特征表示及哈希函数学习。利用卷积神经网络(CNN),该方法在图像检索性能上优于传统基于手工设计特征的方法。

Supervised Hashing for Image Retrieval via Image Representation Learning

背景

最邻近搜索,是给定一个query,返回空间中距离query最近的点。最直接暴力的方法就是计算查询与特征空间的距离,并按照从小到大的顺序进行排序,返回结果。但是采取这种方法,存储的空间消耗比较大,并且查询时间慢。拿互联网的图片为例,数据规模基本都是上亿级别。如果采取遍历上亿级别的图片,然后返回最小距离的结果,那么用户等的花都谢了。为了解决上述问题,近年来ANN搜索技术发展迅速,对空间和时间的需求也大大降低。其中Hash就是一种代表性的方法。
Hash的目标是相似的特征映射到相近的区域,不相近的特征尽可能映射到远的区域。如下图所示:
图片1
在Hash算法中,通常就是将样本表示为一串固定长度的二值编码,使得相似的样本具有相似的二值编码(编码之间的hamming距离小)。最起初的工作,主要工作是在特征空间中随机选择一些超平面对空间进行划分,根据样本在超平面的哪一侧决定每一个bit的值。虽然这种方法能够保证效果,但是有时需要很长的bit才能取到更好的效果。在后来的工作中,为了取得更短的编码长度,人们采用了各种尝试,比如构建不同的目标函数,采用不同的优化方法,使用非线性建模,放松离散的约束等方法。其中基于深度学习的Hash算法,最早是Hinton研究组提出的Semantic Hashing。14年的时候,CNN风生水起。中山大学的潘炎老师和颜水成老师合作在2014AAAI上发表了CNNH(Convolutional Neural Network Hashing),将基于CNN的深度Hash搬上了舞台。

下载地址

主要改进

本篇paper主要关注了有监督的Hash算法。一个关键的问题就是基于学习的Hash 算法需要将图片进行encode成有用的feature represention提高hash的性能。但是对于图像提出的Hash方法主要是使用了现有的视觉描述子,例如gist。然而,这种视觉特征描述子提取是一种无监督的形式,不能完全保证图像之间的语义相关性,比如奥巴马在不同场合的图片之间明显有着很强的语义相关,但是视觉特征向量之间的距离可能很大。于是作者提出了一种用于图片检索的有监督的Hash Method。方法主要分为两个阶段。

第一阶段 Learning approximate hash code

给定n个图片 { I1,I2,I3,......In} ,首先根据图片之间的差异,构建一个相似度矩阵 S ,其中矩阵 Si,j=1 表示相似的图片, Si,j=1 表示不相似的图片,矩阵 S 是n*n的矩阵,并且是对称矩阵。首先定义一个 nq 大小的binary的 H 。矩阵 H kth 行, Hk{ 1,1}q Hk 代表了图像 Ik 的q比特的hash code。将S进行如下分解:

S=HHT

分解以后的q-bit的 Hk 就作为label进行下一步的训练。
研究发现的 Hi. Hj. 内积 Hi.Hj. Hi. Hj. 的Hamming distance有一一对应的关系。所以我们可以通过最小化重构误差来学习近似的Hash code。
minHi=1nj=1n(sij1qHi.HTj.)2=minH||S1qHHT||2F(2)

其中 ||.||2F
非对称增强自监督学习方法在无监督细粒度图像哈希领域有着重要意义。在细粒度图像分析中,由于图像类别之间的差异细微,常规的哈希方法可能难以有效捕捉这些细微特征,而自监督学习方法可以从大量无标签数据中学习到有用的特征表示。 Asymmetric Augmented Self - Supervised Learning Method for Unsupervised Fine - Grained Image Hashing 这种方法可能通过非对称增强的方式,对图像进行不同程度、不同方式的增强操作,以此来丰富图像的特征信息。自监督学习则为其提供了在无标签数据上进行学习的能力,使得模型能够自动发现图像中的模式和特征。 在无监督细粒度图像哈希中,该方法可以生成更具判别性的哈希码。通过非对称增强,模型能关注到图像的不同局部特征,从而在哈希码中保留更多细粒度的信息。这有助于在图像检索等应用中,更准确地找到相似的细粒度图像。 例如,在鸟类、汽车等细粒度图像数据集上,该方法可以利用自监督学习学习到鸟类羽毛纹理、汽车独特造型等细微特征,并将这些特征编码到哈希码中,实现更精准的图像匹配和检索。 ```python # 以下为一个简单的伪代码示例,模拟非对称增强自监督学习在图像哈希中的部分过程 import torch import torchvision.transforms as transforms # 定义非对称增强变换 transform1 = transforms.Compose([ transforms.RandomCrop(224), transforms.RandomHorizontalFlip() ]) transform2 = transforms.Compose([ transforms.RandomResizedCrop(224), transforms.ColorJitter(brightness=0.5, contrast=0.5, saturation=0.5, hue=0.1) ]) # 加载图像数据 images = torch.randn(10, 3, 224, 224) # 进行非对称增强 augmented_images1 = transform1(images) augmented_images2 = transform2(images) # 假设这里有一个自监督学习模型 self_supervised_model = torch.nn.Module() # 输入增强后的图像进行特征学习 features1 = self_supervised_model(augmented_images1) features2 = self_supervised_model(augmented_images2) # 生成哈希码 hash_codes = torch.sign(features1 + features2) ```
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值