一种双重补偿的多表哈希图像检索方法与流程

文档序号:12466174阅读:219来源:国知局
本发明涉及图像检索的
技术领域
,尤其是指一种双重补偿的多表哈希图像检索方法。
背景技术
:随着互联网的发展,多媒体文件数量迅速增长,人们上传的图像也成了一个非常大的规模。这对图像检索问题有了非常大的挑战。传统的基于树形结构的检索方法,一般都需要许多额外的辅助空间,这甚至超过原始的图像数据的大小;而且一旦图像的特征维数很大的时候,基于树形结构的方法性能将会退化,甚至到了线性检索的复杂度。相反,基于哈希的图像检索方法始终拥有超线性的时间复杂度,而且需要的辅助空间也十分令人满意。对于拥有F个哈希位的基于哈希的图像检索方法,首先将图像映射至低维的汉明空间。对于每一个图像都使用F个哈希位代表,并使用这些二进制位的汉明距离来衡量图像之间的相似度。对于一个良好的方法而言应该保证相似的图像拥有小的汉明距离,不相似的图像拥有大的汉明距离。本方法的查询过程如下:对于一个查询图像,本方法首先将图像映射至汉明空间,并计算查询图像与数据库中的图像之间的汉明距离,返回汉明距离较小的图像作为查询结果(由使用者设置的阈值决定)。由于哈希位可以用二进制位表示,汉明距离可以使用机器内置的位操作计算,因此基于哈希的图像检索方法可以使用较少的辅助内存,达到较快的检索速度,至于检索的准确度,则由方法的设计者保证了。在基于哈希的图像检索领域,按照是否使用语义标签而言,可以分为有监督哈希,半监督哈希,无监督哈希三类。有监督哈希方法利用标签信息来训练哈希函数,要求数据库提供完整的标签信息;半监督哈希也利用了数据库中的标签信息,但容忍部分数据是无标签的;无监督哈希指的是那些不利用标签信息的哈希方法。图像数据库中的图像往往都拥有一些语义标签,这些信息可以很好的提升性能,无监督哈希方法忽略这些信息很可能损失检索性能,有监督哈希方法要求所有的图像都有语义标签,这也是不符合现实的,本方法是一种半监督哈希图像检索方法,能够很好的利用标签信息同时也更符合实际情况。技术实现要素:本发明的目的在于克服现有哈希图像检索方法在多表检索上的不足,提出了一种双重补偿的多表哈希图像检索方法,该方法主要是体现了较为良好的性能,并且能够解决多表哈希在同等性能下需要更多开销的缺点。为实现上述目的,本发明所提供的技术方案为:一种双重补偿的多表哈希图像检索方法,包括以下步骤:1)图像特征提取和类别信息处理;2)哈希表训练;3)根据哈希表将图像特征映射至汉明空间与类别权重计算;4)根据查询,计算汉明距离,返回查询结果;5)再排序操作。在步骤1)中,提取图像特征,并进行标签信息的处理,具体步骤如下:1.1)使用gist算法提取图像特征,获取图像特征矩阵X,X=d×n,n为数据集图片数量,d为特征维数,对X矩阵进行中心化操作;1.2)将图像分成两个子集:有语义标签的数据划分成有标签的图像子集,其特征矩阵为Xl,无语义标签的数据划分成无标签的图像子集,其特征矩阵为Xu;1.3)对于无标签数据集,计算其伪标签:对于每一个无标签图像,与所有的有标签图像计算gist特征的欧式距离,并取欧氏距离最近的20%的图像来对该无标签图像的可能的标签进行投票,取数量最多的标签作为该图像的伪标签,如果出现多个标签的数量相同,则任取一个。在步骤2)中,进行哈希表训练,具体如下:获取m个哈希表,其中m是哈希表的数量,定义S矩阵,大小为n’×n’,n’为有标签图像的数量,初始化为:Sij=1时说明图像对(xi,xj)具有相同标签,Sij=-1时说明图像对(xi,xj)不具有相同标签;定义F为单个哈希表中哈希函数的数量,包括内外两重循环:2.1)在这一部分说明外层循环的机制:对于当前的第t个哈希表,t=1,…m,具体如下:2.1.1)如果t=1,则直接进入内层循环,否则计算第t-1个哈希表的错误并更新S矩阵,错误指的是:对于有标签的图像,具有相同标签的两个图像汉明距离大于δ,或者不同标签的两个图像汉明距离小于δ,其中δ是一个汉明距离的阈值,S矩阵的更新方法如下:St+1=St+c×ΔSt式中,St指的是第t个哈希表训练时使用的权重矩阵,并初始化S1=S,c是一个参数,影响S的变化速度,ΔSt指的是权重调整的矩阵,定义如下:式中,dH(xi,xj)指的是图像(xi,xj)的汉明距离,使用第t-1个哈希表计算;2.1.2)进入第t层内层循环,计算第t个哈希表;2.1.3)如果t=m,说明m个大小为F的哈希表训练完成,终止;否则t=t+1,调至步骤2.1.1);2.2)第t层内层循环中,第k个哈希函数,k=1,…,F,首先初始化Xtr=X,具体如下:2.2.1)计算M矩阵,式中,λ是一个参数,用于防止过拟合;St,k指的是当前哈希函数使用的S矩阵,且St,1=St;2.2.2)对M矩阵进行特征分解,提取出特征值最大的特征向量wt,k,合成第t个表第k个哈希函数:式中sign是符号函数,正数返回1,负数返回-1,0返回0;2.2.3)去除Xtr数据中的冗余:2.2.4)在St,k的基础上更新St,k+1:St,k+1=St,k+ΔSt,k式中,A=(αk-Dk)/2k,B=(βk-Dk)/2k,α和β是两个参数,分别是控制相似和不相似的阈值;2.2.5)如果k=F的话当前内层循环结束,否则的话k=k+1,调至步骤2.2.1);在步骤3)中,使用哈希函数将图像的特征矩阵X映射至汉明空间,获得m个大小为F×n的二进制矩阵H,其类别权重计算方法如下:计算m个类别权重矩阵V,其中V矩阵大小为nc×F,nc是数据集标签种类的数量,Vt对应于第t个哈希表的类别权重矩阵,t=1,2,…,m,其中第C个类别包括伪标签的第k个哈希函数的权重,对应于Vt矩阵的元素VC,i,k=1,2,…,Z:VC,i=max(c-,c+)/(c-+c+)式中,c-和c+分别是第t个哈希表第k个哈希函数将类别C包括伪标签的图像映射至0和1的数量。在步骤4)中,进行初步的查询结果计算,具体步骤如下:4.1)将查询映射至汉明空间,获取m个大小为F的汉明码;4.2)对于每一个哈希表,计算查询与所有图像的汉明距离,按照汉明距离小于阈值thro,返回m个图像集,其中thro为设置的阈值,这将影响初步返回数据的数量。在步骤5)中,根据步骤4)返回的结果进行再排序操作,具体步骤如下:5.1)计算m个查询敏感权重向量Zt,t=1,2,…,m式中,Rt是步骤4)中第t个哈希表的返回集,li作为Rt中图像xi的标签,nt是Rt中图像的数量;5.2)计算查询与数据集所有数据的权重汉明距离,返回最终查询结果,其中对于查询q和图像xi,其权重汉明距离计算方式如下:式中,为xor操作;返回dw(xi,q)<thro’的所有图像作为查询结果,其中thro’是设置的阈值,将决定最终的返回结果。本发明与现有技术相比,具有如下优点与有益效果:1、额外辅助内存小:本发明方法使用一系列的二进制位表述图像,因此对于图像集合图像需要的内存非常小。2、查询速度快:本发明方法查询时可以充分的利用底层的机器位操作,做到迅速的相应查询请求,可以使用二进制位序列代表图像,汉明距离可以利用底层的位操作,大大的加快查询速度。3、适合分布式部署:本发明方法可以将查询布置在分布式系统中,因为查询的过程是查询汉明码和数据库中汉明码的逐个比对过程,且互不相干,所以可以将数据库的图像汉明码部署到多台机器上,加快速度。4、本发明方法克服了多表哈希对比单表哈希在同等性能下往往需要更多开销的缺点,在同等开销下可提供更好的查询结果。5、本发明方法引入了一种伪标签的计算方法,并在此基础上提出了一种查询结果再排序的方法,可以进一步获得查询效果的提升。附图说明图1为本发明方法(BDCH-R标记)的工作流程图。图2为本发明方法(无再排序,BDCH标记)和现有图像检索方法性能的对比图。图3为本发明方法(无再排序,BDCH标记)在同等开销下与单表哈希性能对比图。图4为使用再排序(BDCH-R标识)和不使用再排序(BDCH标识)性能对比图。具体实施方式下面结合具体实施例对本发明作进一步说明。如图1所示,为本发明的双重补偿的多表哈希图像检索方法的运作流程图,其中分为线下训练和线上查询两部分,其中线下训练中特征提取,哈希表训练都需要花费很多时间,但由于是线下不影响查询性能,所以在可接受的范围之内。在图2到图4是对查询性能的评估,具体在下面介绍。在本实例中对CIFAR10数据集实施本方法建立检索,并评估性能。硬件包括,128G内存服务器。软件包括MATLAB。CIFAR10数据集是一个拥有60,000张图像的数据集,这些图像分为10个类别。其中随机抽取1,000张图像作为查询,剩下的59,000张图像则作为图像数据集。由于本方法是对于针对数据集有一部分图像是有标签的情况,故从这59,000张图像中随机抽取1,000张图像作为有标签的图像,剩下的58,000作为无标签的图像。定义recall和precision:对于查询q的返回结果R,u为R中与q相似的图像,U为CIFAR10数据集中所有与q相似的图像的数量,v为R中图像的数量,则Recall=u/U;Precision=u/v;通过设置不同的阈值,可得不同的返回结果和一系列(recall,precision)对,图2至图4就是按照这种方法绘制的。本实例包括以下步骤:1)图像特征提取和类别信息处理:采用gist算法对图像进行特征提取,gist特征对图像的宏观的特征描述符,其是基于图像的自然度,开放度,粗糙度,膨胀度,险峻度五点对图像进行描述。这一步将使用d维特征向量代表图像,获取大小为d×n维的特征矩阵X表示。这里n为数据集图像的数量59,000,d则是特征提取的参数512。这里的特征矩阵X是没有中心化的,为了方便处理需要对X进行中心化处理。提取中X中有类别标签的图像的特征矩阵Xl,其大小为512×1,000;提取出无标签图像的特征矩阵Xu,其大小为512×58,000。计算无标签数据的伪标签:对于每一张无标签的图像,与所有标签的图像进行欧氏距离计算并排序,取前20%的有标签图像对该图像进行类别标签投票,取数量最多的标签作为该图像的伪标签。2)使用数据集X,有标签数据集Xl,标签信息与伪标签信息为基础数据,训练出m个大小为F的哈希表。其中哈希表数量m设为5,哈希位F设为32。训练的过程需要的时间远比查询的时间长,一则因为训练是线下的,不影响方法性能,二则是因为数据集并不会在模型训练好之后大规模改动,所以训练的开销可以视作为线下一次性开销,在接受的范围之内。3)在数据集处理完之后,使用本方法的思想,将训练数据集训练出5表32位哈希函数,并将所有的图像映射成汉明码。对于每一个图像的汉明码,是用0与1表示,每一个图像都会有5个32位的二进制汉明码总共5×32=160二进制位表示。图像之间的相似度使用汉明距离衡量。计算类别权重矩阵Vt(t=1,2,3,4,5)。4)在这一步中,直接计算查询与所有图像多个汉明距离的和,并返回汉明距离较小的图像,当然这个“较小”是需要方法使用者的阈值的。为了方便性能评估,在这里使用了多个阈值,获取了一系列的recall,precision值,并且绘制一出(recall,precision曲线)便于与其他方法性能对比,这一步是没有再排序操作的,在图2至图4中,以BDCH标识,是为了进一步说明本方法的性能。具体步骤如下:4.1)将查询图像映射至汉明空间,获取5个32位汉明码。4.2)计算查询与每一个图像的多表汉明距离,此多表汉明距离为5个哈希表的和。4.3)设置多个汉明码阈值(从1至所有图像最大多表汉明距离),获取一系列(recall,precision)对,为了防止个例的情况,使用1,000张查询,同阈值时recall,precision取多个查询的平均值。4.4)绘制recall-precision曲线。5)这一步中直接使用步骤3)中获取的哈希表,包括再排序步骤,是完整的刚发,用BDCH-R标识,具体步骤如下:5.1)将查询图像映射至汉明空间,获取5个32位汉明码。5.2)对于每一个哈希表,计算查询与图像的汉明距离,返回汉明距离小于8的所有图像,故获取5个返回集。5.3)根据步骤5.2)中返回集,计算查询敏感权重向量,故获取5个大小为32的权重向量。5.4)计算权重汉明距离,设置多个阈值,返回结果,获取多个(recall,precision)值,同阈值recall,precision取多个查询的平均值。5.5)绘制recall-precision曲线。对于λ参数,是用于调整有标签图像和无标签图像之间的权重,在这里取λ=1。当然实际中,不同的图像数据集,有标签的图像所占整个图像数据集的比例总是不同的,因此λ的值需要按照实际的情况具体调优。对于m与F参数,指的是哈希方法采用的表的数量和哈希表哈希位的数量。着两个参数都会直接的影响方法的性能,两者值越大方法性能越好,但是检索的时间,内存需要都会上升,这需要根据实际情况做一个平衡,m取5,F取32便可以达到较好的性能。对于α,β参数,两者是用于在单个哈希表的训练中衡量相似与不相似的阈值。对于已经训练了k个哈希函数时,当sim<αk,在汉明空间则认为是相似的,当sim>βk,在汉明空间认为是不相似的,其中sim指的是相似度。当然这会和真实的情况,也就是从标签信息获取的相似信息有一定的出入,这也就是本方法训练中途产生的错误。在训练第k+1个函数的时候,会根据这些信息对S矩阵进行一定的调整,增加分错的图像对的权重,在这里α,β分别取-0.6和0。对于c,δ参数,则是体现在表之间的更新中。在单表训练中,循环对M矩阵进行特征分解,提取特征值最大的特征向量建立哈希函数。这会使得前面几个哈希函数和后面几个哈希函数相差较大,后面几个哈希函数引入的错误更加庞大。因此就从头开始从新训练一个表,并根据上一个表的错误调整当前表训练使用的图像的权重。对于c而言,是更新S的步伐,在本方法中取c=8。δ是衡量上一个表的错误的阈值:对于上一个表而言,当dH<δ在汉明空间认为是相似的,对于dH>δ在汉明空间认为是不相似的,并和S矩阵中记载的情况比对,可以知道上一个表对有标签数据的分错情况,因此在当前表训练中需要增大这些图像的权重,在本方法中δ=round(F/4)=8,round指的是四舍五入。为了证明本方法的性能,接下来介绍几个同为基于哈希的图像检索领域的几个方法:BSPLH[1]。BSPLH是半监督单表哈希方法,是基于SPLH的一个优化,作者称之为基于bootstrap的序列化学习方法,简称BSPLH。主要是序列化学习中,根据先前所有哈希函数的错误,调整当前图像对的权重,并学习当前哈希函数。LSH[2]。LSH是典型的无监督单表哈希方法,具体做法是随机生成多个超平面,并以这些超平面生成哈希函数。这个方法的特点是适应性很强,对各种数据集都有一定的性能,其生成的哈希函数完全与数据集无关,需要使用足够的哈希位来保证性能。SPLH[3]。SPLH是基于boosting的半监督单表哈希方法,具体的做法是采用序列化的学习方法,并根据上一个哈希函数的错误,调整当前图像对的权重,并学习当前哈希函数。CH[4]。CH是无监督多表哈希方法,采用boosting的思想序列化学习多个表,当前表会根据上一个表的差错调整权重,并学习下一个表。DCH[5]。DCH是半监督多表哈希方法,是CH的一个改进,不仅仅在表训练之间进行boosting序列化学习,也在表内采用这个思想。BIQH[6]。BIQH是有监督多表哈希方法,对于单表采用了最小化量化误差的形式,并在之后采用了返回结果再排序操作。图2中显示了本方法(无再排序,以BDCH标识)和现有的这几个图像检索方法性能的对比。当在同recall情况下,precision越高,性能越好;总的说来,可以使用曲线和坐标轴组成的面积作为方法性能的评估标准,可以看到,本方法在与其他方法性能的比对中有十分明显的优势。此外,本方法是一个多表哈希方法,使用多表去提升性能,但是却引入了更多的开销,因此,引入了另外一个评定方法,所有的哈希方法都使用同等开销的情况下,方法的性能对比:在图3(无再排序,以BDCH标识)中对比了(本方法4表8位,LSH32位,SPLH32位,BSPLH32位)。可以看出,即使在使用同等开销的情况下,本方法仍然有相当优秀的性能。在图4中对比的是本方法有再排序和无再排序性能的对比,可以看出,再排序提升了性能。但是却进一步引入了额外的开销,是否使用视情况而定。综上所述,本发明方法在图像检索方面能够获得查询响应快,内存开销小,查询性能高的特点,并在多表哈希的图像检索方面有较大的改进,并克服了多表哈希需要额外开销的缺点,值得推广。[1]C.Wu,J.Zhu,D.Cai,C.Chen,andJ.Bu,“Semi-supervisednonlinearhashingusingbootstrapsequentialprojectionlearning,”IEEETransactionsonKnowledgeandDataEngineering,vol.25,no.6,pp.1380–1393,2013.[2]M.Datar,N.Immorlica,P.Indyk,andV.S.Mirrokni,“Locality-sensitivehashingschemebasedonp-stabledistributions,”inProceedingsofthetwentiethannualsymposiumonComputationalgeometry,pp.253–262,2004.[3]J.Wang,S.Kumar,andS.-F.Chang,“Semi-supervisedhashingforlarge-scalesearch,”IEEETransactionsonPatternAnalysisandMachineIntelligence,vol.34,no.12,pp.2393–2406,2012.[4]Xu,H.,Wang,J.,Li,Z.,Zeng,G.,Li,S.,&Yu,N.“Complementaryhashingforapproximatenearestneighborsearch”.IEEEInternationalConferenceonComputerVision(ICCV),pp.1631-1638,2011.[5]Li,P.,Cheng,J.,andLu,H."Hashingwithdualcomplementaryprojectionlearningforfastimageretrieval."Neurocomputing,vol.120,pp.83-89,2013.[6]Fu,H.,KongX.,andLu,J."Large-scaleimageretrievalbasedonboostingiterativequantizationhashingwithquery-adaptivereranking."Neurocomputing,vol.122,pp.480-489,2013.以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1