一种基于深度学习的图像哈希索引构建方法与流程

文档序号:12124279阅读:915来源:国知局
一种基于深度学习的图像哈希索引构建方法与流程
本发明涉及机器学习和图像检索
技术领域
,尤其是涉及到图像检索中的图像哈希索引构建方法,该方法以期能在大规模图像数据集上快速准确的检索到相似图像。
背景技术
:随着计算机、互联网以及多媒体技术的高速发展和广泛应用及普及,社会正在向信息化社会发展。与此同时,互联网上的图像数据正在成几何式的增长,如何从包含有丰富信息的海量图像中快速、准确地找到自己想要的信息是图像检索技术的研究重点。自上世纪九十年代初,最常用的图像检索方法是基于内容的图像检索,该类方法一直备受研究人员的关注,其研究热点主要集中在图像特征表示、相似度度量及人工反馈等方面。现有的检索方法是通过提取图像的底层特征对图像进行描述,然后利用特征向量间的距离计算来判断两幅图像是否相似,为了提高检索的准确率,图像特征通常由高维向量表示,图像检索就成了在高维空间中的搜索,因此图像检索应用常常遇到“维度灾难”问题。同时,当图像库规模大到几十万或者海量时,必然要求有非常大的存储空间来保存图像的特征库,为此,当面向海量图像数据的检索任务时,需要一种行之有效的索引机制来加速检索过程,以达到实时性的需求。为了提高检索速度,降低存储空间,有很多研究人员提出了不同的哈希方法,哈希法由于其快速查询能力和低内存耗费,成为了目前最流行、最有效的技术之一。该方法是将图像内容表达为二值化哈希序列,用该序列作为图像的特征,或者说是以哈希序列作为图像的索引进行近似最近邻搜索。现有的哈希方法可以分为两种:数据独立的方法和数据依赖的方法。数据独立的哈希法中,哈希函数是独立于训练数据随机生成的,具有代表性的数据独立哈希法有局部敏感哈希(locality-sensitivehashing,LSH)方法及其变种。而数据依赖哈希法尝试从训练数据中学习哈希函数,所以也叫作基于学习的哈希方法。和数据独立哈希法相比,数据依赖哈希法可以使用很短的哈希序列达到相当好的检索精度。基于学习的哈希法可以被分为两类:无监督的哈希方法和有监督的方法。无监督的哈希方法仅仅利用图像的特征信息来进行训练,有代表性的无监督哈希法有迭代量化法(IterativeQuantization,ITQ),锚点图哈希(AnchorGraphHashing,AGH)和离散图哈希(DiscreteGraphHahing,DGH)等。有监督的哈希方法尝试利用标签信息来学习哈希码。该类方法又可细分为三种不同的形式:基于单标签信息的,如离散哈希法(SupervisedDiscretehashing,SDH);基于成对标签信息的,如最小化损失哈希法(MinimalLossHashing,MLH),有监督的核哈希法(SupervisedHashingwithKernels,KSH)和卷积神经网络哈希(ConvolutionalNeuralNetworkHashing,CNNH);以及基于排序标签信息的,如基于排序的有监督哈希法(Ranking-basedSupervisedhashing,RSH)。尽管目前有很多的哈希方法被提出,但大部分的哈希方法都是基于手工特征的,由于这些方法中手工特征和哈希函数的学习过程是独立的,因此手工特征和哈希过程不太适配,使得这些哈希方法达不到较满意的效果。为了解决特征不匹配问题,有很多研究人员提出将深度神经网络提取出的图像深度特征作为哈希函数的输入,提高检索效果,如CNNH方法,但该方法是一个两阶段哈希方法,不能对深度特征和哈希码进行同时学习,使得学习到的哈希函数有一定的局限性,该方法的提出者已对此作出了改进。还有研究人员提出了深度成对监督哈希法(DeepPairwiseSupervisedHashing,DPSH),该方法能够同时对图像特征和哈希函数同时进行学习,提升了检索准确率。技术实现要素:本发明的目的在于,针对上述传统的哈希方法的不足,提出一种基于深度学习的图像哈希索引构建方法。该方法充分利用深度学习的优势,使用不同结构的深度哈希网络同时对图像特征和哈希函数进行学习,然后融合从不同结构的深度哈希网络学习得到的哈希序列,使用融合后的哈希序列对图像库进行索引,提高图像检索的准确率。实现本发明方法的主要思路是:选择两种不同结构的已训练的深度卷积网络模型,在每一种模型的最后一层添加一个与之全连接的哈希层,构建一个双路的深度哈希网络模型,再基于训练图像的标签信息,利用反向传播(BP)更新这两种网络模型各层的权值,训练得到两个不同结构的深度哈希网络模型,然后利用这两个模型分别计算出每幅图像的一对初始哈希码,之后将每幅图像的一对初始哈希码拼接融合后作为其最后的融合哈希码,通过计算并比较查询图像的融合哈希码与图像库中每幅图像的融合哈希码间的汉明距离,最终快速准确的检索得到查询图像的相似图像结果。根据上述主要思路,本发明方法的具体实现包括如下步骤:步骤1:划分数据集将图像数据集分成两部分,一部分作为测试样本集,另一部分作为图像数据库,另外从图像库中取出一部分作为训练样本集。每个样本均包括一张图像及对应的类别标签;步骤2:构建两个不同的深度哈希网络模型深度哈希网络模型的结构是双路结构,每一路包含一个深度卷积网络和全连接的哈希层,两路结构完全相同,最后同时连接到损失层。构建两个这样的卷积结构不同的深度哈希网络模型;步骤3:训练深度哈希网络模型对其中一个深度哈希网络模型,利用训练样本集,将训练图像的任意两幅图像分别前向传播经过该模型的两路,然后将经过该网络计算后得到的损失用反向传播算法调整网络权重,同时对哈希网络的深度卷积网络和哈希层的参数进行学习,迭代一定次数后得到训练后的深度哈希模型。然后对另一个不同结构的深度哈希网络模型进行同样的操作,经训练得到另一个结构不同的深度哈希模型;步骤4:计算哈希码并融合从步骤三中训练得到的两个结构不同的深度哈希网络模型后,将测试样本集中的每张图像分别作为两个深度哈希网络模型的输入,经前向传播得到测试样本集的初始哈希码矩阵Htest1、Htest2,将Htest1和Htest2中相同图像对应的两个哈希码以维度拼接的方式融合得到测试样本集融合后的哈希码Htest。然后对图像图像库中的每幅图像做相同的操作,得到图像库的初始哈希码矩阵Hbase1、Hbase2,及最后融合后的哈希码Hbase;步骤5:计算汉明距离从Htest取出任意一幅测试图像的哈希码Ht,计算该哈希码Ht与图像库的哈希码矩阵Hbase每一行之间的汉明距离,然后将汉明距离以行向量的形式组合起来得到一个汉明距离列向量;步骤6:排序输出检索结果将步骤5中得到的汉明距离向量的数值依照从小到大的顺序进行排序,顺序输出对应的原始图像,得到图像检索结果。本发明与现有技术相比,具有以下明显的优势和有益效果:本发明提出一种基于深度学习的图像哈希索引构建方法,采用不同的深度卷积网络,训练出两个结构不同的深度哈希网络模型,每个模型都能够同时对图像特征和哈希码进行学习,实现端到端的学习和哈希码计算。将从不同结构的深度哈希网络模型中学习到的不同哈希码进行融合后,能够更有效的对图像进行哈希表达,解决了基于单一深度卷积网络学习到的哈希码判别力不足的问题,从而提高了图像检索的准确率。附图说明图1为本发明所涉及方法总流程框图;图2为本发明所涉及深度哈希网络模型的架构图;图3为本发明不同模型相同哈希比特位对应的MAP曲线图;图4为本发明不同模型相同哈希比特位对应的recall-precision曲线图;具体实施方式下面结合附图对本发明的技术方案做进一步的描述,附图1为本发明所涉及方法整体流程图。步骤1,划分数据集本发明所述方法实施过程中的数据库来源于公开标准数据集CIFAR-10,该数据集包含有60000张32*32像素的彩色图片,该数据集共有10类,每一类6000张图像,该数据集是一个单标签数据集,亦即每一张图片只属于十类中的一类。将图像数据集分成两部分,一部分作为测试样本集,另一部分作为图像数据库,另外从图像库中随机选取一部分作为训练深度哈希网络模型的训练集。具体实施时,从数据集的每类中随机选取了100张,共计1000张作为测试样本集I={I1,I2,……,I1000},剩余的图像集作为图像库,并从图像库的每类中随机选取了500张,共计5000张作为训练样本集T={T1,T2,……,T5000},每个样本均包括一张图像及对应的类别标签,根据训练图像样本的类别标签信息计算得出一个相似矩阵S={sij},如果图像xi和图像xj相似,那么sij=1,否则sij=0。步骤2:构建深度哈希网络模型深度哈希网络模型的结构是双路结构,每一路包含一个深度卷积网络和全连接的哈希层,两路结构完全相同,最后同时连接到损失层。构建两个这样的卷积结构不同的深度哈希网络模型。在具体实施过程中,采用的深度卷积网络是已训练的模型VGG-F和Alexnet模型,这两个已训练模型可以从http://www.vlfeat.org/matconvnet/pretrained/下载得到。由于两个深度哈希网络模型的不同之处主要在于深度卷积网络部分的结构不同,现以深度哈希网络模型其中之一作为说明,模型架构图如附图2所示,深度哈希网络模型的前七层是深度卷积网络,第八层是与深度卷积网络最后一层全连接的哈希层,该层包含有c个结点,图像经过深度哈希网络模型前向传播后输出为c位的二值哈希码bi∈{-1,1}c,在实施过程中设置c为32,即最后拼接融合后得到的二值哈希码的长度为64位。哈希码可通过下面公式计算得到。bi=h(xi)=sgn(WTφ(xi;θ)+v)=sgn(ui)其中sgn(·)是符号函数,W∈R4096×c为第七层与哈希层间的权值矩阵,φ(xi;θ)表示的是样本xi的输出,v∈Rc为一个偏置向量,其中ui=WT(φ(Xi;θ)+v),表示深度哈希网络模型前七层的输出。图像经过深度哈希网络模型前向传播后得到二值哈希编码,然后基于该哈希编码和图像的标签信息,计算哈希编码的损失,然后反向传播调整网络参数。定义深度哈希网络模型损失层的损失函数为:其中通过最小化这个损失函数可使得两幅相似图像哈希码间的汉明距离尽可能的小,同时使得两幅不相似的图像哈希码间的汉明距离尽可能的大。步骤3:训练深度哈希网络模型根据步骤2构建的深度哈希网络模型,训练两个深度卷积网络结构不同的深度哈希网络模型。两个模型各层结构配置分别如表1、表2所示。在训练过程中,将训练数据集中的任意两幅图像分别经前向传播通过两个深度哈希网络模型后,得到ui,然后用随机梯度下降方法来学习深度哈希网络模型各层的参数,但是由于sgn(·)函数是不连续的,可把损失函数中的θij替换为然后用下面的公式计算出损失的导数。计算得到每幅训练图像的损失的导数后,将其用反向传播算法反向传播到网络各层,更新调整深度哈希网络模型各层间的连接权值,如此循环迭代n次,最终得到两个训练后的不同结构的深度哈希网络模型M1和M2。在实施例中,设置n的值为200。步骤4:计算哈希码并融合从步骤三中训练得到的两个结构不同的深度哈希网络模型后,将测试样本集中的每张图像分别作为两个深度哈希网络模型的输入,经前向传播得到测试样本集的初始哈希码矩阵Htest1、Htest2,将Htest1和Htest2中相同图像对应的两个哈希码以维度拼接的方式融合得到测试样本集融合后的哈希码Htest。然后对图像图像库中的每幅图像做相同的操作,得到图像库的初始哈希码矩阵Hbase1、Hbase2,及最后融合后的哈希码Hbase。其中Hbase1、Hbase2、Htest1和Htest2中的每一行代表一幅图像的初始哈希码,Htrain和Hbase中的每一行代表一幅图像的融合后的哈希码。步骤5:计算融合哈希码的汉明距离对于1000幅查询图像中的任意一副图像,从Htest取出与查询图像相对应的融合后的哈希码Ht,分别计算哈希码Ht与数据库中每一幅图像的融合哈希码间的汉明距离,得到查询图像与数据库中每幅图像的汉明距离,将查询图像的汉明距离的集合表示为一个汉明距离向量。步骤6:排序输出检索结果由于汉明距离的数值越小,两幅图像越相似,将步骤5中得到的查询图像的汉明距离向量的数值依照从小到大的顺序进行排序,按照顺序输出指定个数的相似图像,即可得到topk幅相似图像的检索结果。最后,根据检索结果中每幅图像的类别标签和查询图像的类别标签是否相同,计算出查询图像的检索MAP值和recall-precision值。从附图3、附图4可以看出,以相同哈希编码位数进行检索时本发明提出的方法比使用单一深度哈希网络模型的检索结果有更高的准确度。表1深度哈希模型M1各层结构配置表LayerConfigurationconv1filter64×11×11,stride4×4,pad0,LRN,pool2×2conv1filter256×5×5,stride1×1,pad2,LRN,pool2×2conv1filter256×3×3,stride1×1,pad1conv1filter256×3×3,stride1×1,pad1conv1filter256×3×3,stride1×1,pad1,pool2×2full64096full74096full8哈希码长度c表2深度哈希模型M2各层结构配置表LayerConfigurationconv1filter96×11×11,stride4×4,pad0,LRN,pool2×2conv1filter256×5×5,stride1×1,pad2,LRN,pool2×2conv1filter384×3×3,stride1×1,pad1conv1filter384×3×3,stride1×1,pad1conv1filter256×3×3,stride1×1,pad1,pool2×2full64096full74096full8哈希码长度c当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1