春恋慕 为进一步探究基于度量学习的深度哈希图像检索方法,阅读IGARSS 2018 - 2018 IEEE International Geoscience and Remote Sensing Symposium会议论文:Deep Metric and Hash-Code Learning for Content-Based Retrieval of Remote Sensing Images。论文题目翻译成中文便是基于深度度量和哈希码学习的遥感图像内容检索。
Deep-Metric-and-Hash-Code-Learning-for-Content-Based-Retrieval-of-Remote-Sensing-Images下载
随着遥感图像容量的不断增长,对特征学习技术和哈希函数提出了更高的要求:(1)精确表征遥感图像的语义(特征提取要精确)(2)在检索过程中具有准实时性能(检索要快)。这篇文章致力于同时解决这两个挑战--通过学习一个基于语义的度量空间,用于基于内容的遥感图像检索;同时产生二进制哈希码,用于高效地搜索。我们通过训练一个使用不同损失函数组合的深度网络来实现这两个目标,一方面,旨在聚类语义相似的样本,另一方面,鼓励网络生成最终的激活值(例如,描述符),这样可以很容易地进行二进制化。此外,由于带标注的遥感训练图像太少,无法从头训练深度网络,我们提出将图像表征问题分裂成两个不同的阶段。首先我们使用一个通用型、预训练的网络来产生一个中间特征;其次,我们使用一个相对较小的训练数据集来训练我们的哈希网络。与之前的方法相比,在使用相同数量的哈希位时,我们的方法更加先进。(总结:首先使用已经训练好的经典卷积神经网络提取特征,其次将这些特征喂入度量和哈希学习网络)
为实现高效的相似检索,引入了哈希方法。哈希方法使用紧凑的二进制哈希码对高维图像描述符进行编码,显著降低了存储成本并提高了计算效率。为此,首先生成哈希函数,然后将其应用到每个图像描述符。然后文章提出了一系列问题,为了解决这些问题,在本文中,我们提出了一种方法,学习一个基于语义的度量空间,同时产生二进制哈希码快速和准确地检索大档案中的遥感图像。本文提出的方法提供了更紧凑的二进制哈希码与少量的注释训练图像。
在第一个阶段,我们使用一个预训练的网络,以便提取中间图像表示。在第二阶段,这个中间表示被提供给我们的度量和哈希码学习网络(MHCLN)。后者是一个较小的网络,可以使用一个相对较小的数据集从头开始训练。MHCLN使用不同损失函数的组合进行训练,同时旨在聚类相似的图像,同时产生易于二值化的最终表示。具体地说,我们使用三重损失来学习度量空间,其中点对之间的欧几里德距离对应于对应图像之间的语义距离。此外,我们使用两个其他损失:(1)表示惩罚,将最终的网络激活推向0和1;(2)平衡损失,激励在最终的哈希代码中有一个平衡数量的0和1。我们提供以下所有细节。(总结:使用三重损失函数来训练MHCLN,这三重损失函数下文会讲)
用L={X1,...XP}来表示遥感图像的训练集,其中Xi与一个类标签Yi相联系(例如,“飞机场”,“停车场”等)。我们的目标是去学习一个哈希函数h:L->{0,1}^K,它将图像映射到长度为K的二进制哈希码,使生成的二进制码嵌入相应图像的语义。在测试时,使用这些哈希码,对于一个给定的查询图像,通过有效地按位比较他们的哈希码,检索最相似的图像。(总结:目标是将每一张图像映射成为长度为K的二进制哈希码,然后通过计算二进制哈希码之间的汉明距离来比较图片之间的相似度)
在本文提出的方法的第一阶段,将L中的每一幅图像送入预先训练的Inception Net3,并在提取softmax层(pool3)之前,将该层的2048个神经元激活组成一个特征向量。使用G(长度为2048个位)来表示L中图像集合对应的提取特征。尽管Inception Net是在一组完全不同的图像(ImageNet)上训练的,但它的高级特性捕获了通用的视觉语义,我们将这种表示作为表示过程的起点。注意Inception Net没有进行微调,而是用作从L提取G,其中G被用作MHCLN网络的输入。在第二阶段,我们训练我们的MHCLN网络,旨在将每个G映射到一个语义上有意义的度量空间:(总结:MHCLN将提取出来的每个特征向量,映射到一个语义上有意义的度量空间)
最终的哈希函数是通过对IRK进行量化得到的。为了学习度量空间,我们采用了三重损失。三重损失背后的判断是:在目标度量空间中,将相似的图像聚在一起,将不同的图像分开。(第一个损失函数)为了实现这一结果,我们使用与每个Xi相关联的类标签(yi),并强制要求同一个类的图像应该比不同类的图像更接近。更具体地说,从G中提取一组三维T{(g1i,g2i,g3i)},g1i(称为锚),是随机的与标签yi相关联的采样特征向量;g2i是一个肯定标本(也就是,一个与同一个类标签yi相关联的图像);g3i是一个消极标本(也就是,一个与不同类标签yj相关联的图像)。利用T和从T中随机抽取的小批量基数M,我们的三重损失定义如下:
其中α是施加在正负距离之间的最小边缘。
我们的哈希网络由3个完全连接的层组成,分别由1024个、512个和K个神经元组成,其中K取决于最终基于哈希的图像表示中所需的比特数。我们在前两层使用Leaky ReLU非线性,在最后一层使用sigmoid,它在0,1之间产生神经元激活。为了将后者推向范围的极端,我们使用第二个损失,目的是最大化最后一层激活与0.5之间平方差的和。
其中1是所有元素为1的k维向量。
最后,我们使用了第三个损失函数,目的是平衡每个图像表示的二进制代码中1和0的数量:
其中mean(f(gi))计算哈希函数最后一层激活值的平均值。
这三种损失结合在我们的最终目标中:
用交叉验证法筛选出λ1 = 0.001和λ2 = 1。
一旦网络被训练,最终的哈希函数h()是通过对IRK中的值进行二值化得到的。具体来说,给定一个测试图像X,它对应于一个Inception-Net特征向量g,我们计算一个二进制码b = h(X),其中,对于每个1≤n≤K:
其中v = f(g), vn是v的第n个分量。最后,为了检索在语义上与查询图像Xq相似的图像Xj,我们在h(Xq)和h(Xj)之间计算汉明距离。
论文的最后评估了实验结果,我目前只关注他的实验思路和方法,之后若有需要,再翻阅实验结果。