春恋慕阅读西安电子科技大学陈鹏飞的论文 用于大规模图像检索的深度哈希网络研究 李聪的技术博客
1.摘要
随着数据的爆炸式增长以及数据维度的增加,大规模图像在存储和计算上給图像检索技术带来了新的难题。基于哈希计算的图像检索算法因其存储成本低且检索速度快,在计算机视觉领域得到广泛的关注与研究。而在基于哈希计算的图像检索算法中,如何有效地处理高维度特征向量、优化哈希函数来提高检索算法的准确度是其中的关键问题。 将深度神经网络与哈希算法结合进行自适应学习,算法框架的三个部分,1.运用复杂卷积神经网络产生哈希标签2.利用所得的哈希标签训练哈希函数3.基于获得的训练模型进行图像检索 本论文所做的工作:
2.研究背景及意义
基于内容的图像检索(CBIR),图像检索的核心就是计算图像特征间的相似度,然后度量图像之间的相近程度,按照从高到低的准则,将索引结果排序展示给用户。 基于文本的图像检索具有很大缺陷,为了弥补缺陷,基于内容的图像检索流行了起来。凭借良好的相似度度量方法,使用以图搜图的检索方式来实现最终任务。这里图像检索的重要环节就是特征提取,使用卷积神经网络来选择合适的图像特征。 随着技术的发展,传统的基于内容的图像检索也出现了一些问题:图像数据量变大,图像维度变高,要求响应速度高,如何提取更具代表性的图像特征来消除语义鸿沟。 在基于内容的图像检索算法中,许多学者引进了一种比较具有代表性的算法-哈希算法。哈希算法使用的是压缩编码的形式,解决了基于内容的图像检索技术中的一些不足,也是一种最近邻的检索方法。哈希算法的核心就是要保持空间结构的不变性来获得二进制哈希编码,他利用学习到的哈希函数来处理高维的特征向量来实现这一目标。 基于哈希的图像检索就是利用汉明距离计算图像之间的相似性程度。目前大多的哈希算法都是分为两步来学习,首先获得一个维数较低的实数向量,利用了对图像特征向量降维的思想;其次获得哈希编码,对上一步的结果进行处理,生成离散的数值。哈希算法的核心就是如何获得有效的哈希函数,将图像特征向量映射成为紧凑的二进制码,这样会大大减少图像存储的空间消耗,并且利用汉明距离进行图像检索的时候也会减少计算的复杂度,提升了时间效率。
3.国内外研究现状
把良好的视觉特征和有效的检索方法相结合在解决大规模图像检索问题具有非常大的探索价值 2015年,Guo和Li提出了一种利用卷积神经网络的哈希算法,这种哈希算法通过处理全连接层的输出值,然后产生0和1的比特,并将其作为图像的哈希编码。 基于哈希的图像检索的关键问题是得到更有效的哈希函数。即对于内容相似的图像,经过哈希函数映射后得到的哈希编码必须保证他们相同的概率会很大;对于内容不同的图像在经过哈希函数映射后,他们不同的概率也很大。
4.本文研究内容
本文基于内容的图像检索将深度学习算法与哈希算法进行了结合。图像检索的性能也是依赖于良好的图像特征,而深度学习在提取图像特征方面具有非常大的优势,因此选用深度学习算法;为了加快图像检索的速度,我们引进了哈希算法,并对哈希函数的优化做了多方面的工作。
5.基于内容的图像检索的基础理论
基于内容的图像检索系统具体实施过程:输入一张待查询图像,利用训练的模型算法提取索引图像的特征向量,然后提取整个数据库所有图像的特征向量,接着通过建立的图像索引结构,选择恰当的方法进行图像相似性计算,选择相似度大的作为索引结果。
5.1 基于哈希的图像检索
原理
哈希算法计算便利,而且很容易存储信息,使得它越来越受到检索领域方面的关注。现代计算机处理二进制比特速度比较快,而哈希算法就是把数据压缩成为二进制码,利用异或操作从而提高了算法的速度。 然而汉明空间和欧氏空间也有很大的差别,如何利用哈希算法,不去破坏数据原始的空间结构或者近邻关系,把他们很好地转化到汉明空间,要满足一定的限制条件才能实现。要实现原始两点在欧氏空间的距离很远时,利用哈希函数将其编码到汉明空间时,距离也很近,反之亦然。
哈希算法的流程
一般来讲,哈希算法的目标是把欧式空间的数据嵌入到汉明空间.哈希函数的计算分为两步来完成,首先投影,然后量化。假设x是在汉明空间随机选取的数据点,利用k个投影函数去映射获得k个比特的哈希编码。首先投影,然后用sign函数进行二值量化
基于哈希的图像检索框架
基于哈希方法的图像检索,关键在于利用很少的空间来保存二进制哈希码,对于原来图像的特征向量数据可以直接忽略,所以它可以充分地利用磁盘空间。
图像检索的相似性度量
相似性度量主要通过不同的方式来判断两个样本之间的相似性。 欧氏距离是利用空间上两点间的距离计算公式获得 余弦距离 汉明距离是针对二进制编码来用汉明距离计算相似度,使两段二进制编码异或,得到的结果中,1的数量越多,表明汉明距离越大,反之越小。 Minkowski距离 马氏距离
图像检索算法评价指标
图像检索完成后,需要对检索结果进行评估。 一些普遍的评价指标: 1.绘制准确率(Precision)和召回率(Recall)的曲线图。准确率一般是查询出需要的图像和查询总图像数目的对比。召回率是指查询出需要的图像与所有相关图像的比值。 2.平均准确率(Mean average precision,MAP)通常也叫做均值平均精度。
平均准确率计算过程
深层哈希算法
深层哈希算法利用深度学习算法提取图像特征完成算法任务。
6.深度哈希网络基本框架
网络设计主要分为三个部分:1.复杂卷积神经网络用来生成哈希标签2.简单神经网络用来训练哈希函数3.检索层利用训练好的哈希函数和算法模型查询与待检索图片相似的图片。框架如图:
(1)利用复杂深度神经网络产生哈希标签 把深层哈希和浅层哈希算法相结合来产生哈希标签。使用在大规模数据集已经预训练的GoogLeNet卷积神经网络去提取图像特征,然后使用LE算法和二值化算法把提取的图像特征转化为哈希标签,并且保证了数据从高维空间到低维空间的结构相关性。 (2)利用简单深度神经网络训练哈希函数 结合已获得的哈希标签,利用简单的卷积神经网络训练哈希函数。为了优化哈希函数和提高算法的精度,提出了两个改进措施:一是针对全连接层的高维数据,使用降维算法;二是针对损失函数输出结果的不稳定,使用群组归一化算法。 (3)哈希检索 将图像经过处理得到哈希编码,通过汉明距离,计算相似度,输出相似度排在前列的图像。
归一化
进行深度学习训练时,数据分布的变化称为内部协方差变化。为了尽量减少这种影响,我们在训练神经网络时要选择合适的权重初始值,并且使用的学习率也不能太大。内部协方差变化不但会造成训练时间变长,而且可能还会出现梯度消失的问题。要解决这个问题,便要使用归一化。 归一化不但可以提高深度学习算法的泛化性能,而且还可以优化训练网络的参数。 批量归一化方法是针对深度学习训练时出现的协方差变化而采取的规范化手段。当训练到深层神经网络时,训练模型变慢,每一层的数据随着参数更新发生变动,整体数据分布向着非线性函数的两端移动,进而出现梯度消失问题。而批量归一化的目标就是就是要保证每一层的数据分布正常,(分布指的是标准正太分布),这样获得的输入值就会落入激活函数的敏感区域,而损失函数会在输入值有很小变化时发生很大改变,解决了梯度消失的问题,也大大减少了训练时间。
7.基于深度学习的二级哈希检索算法
为提升检索的精度,在查询一张图片时,先计算出他的哈希编码,然后与整个库中图像的哈希编码计算汉明距离,找出相似度最高的20张图片,随后再计算待查询图片的特征向量与这20张图片的特征向量的欧氏距离,输出结果,以提高检索的精度
参考文献
[1]陈鹏飞. 用于大规模图像检索的深度哈希网络研究[D].西安电子科技大学,2020.DOI:10.27389/d.cnki.gxadu.2020.003439.