一种基于双倍比特量化及加权的最近邻搜索方法与流程

文档序号:11627748阅读:367来源:国知局
一种基于双倍比特量化及加权的最近邻搜索方法与流程
本发明涉及一种基于双倍比特量化及加权的最近邻搜索方法,属于计算机软件
技术领域

背景技术
:高维特征的最近邻搜索是很多视觉应用,如图像检索、目标识别以及拷贝检测的关键技术之一。最近邻搜索旨在高维大规模数据库中为查询数据找到与之最相似的数据。当在大规模数据库中寻找最近邻时,通常把计算量较大的欧式距离作为衡量高维数据之间距离的度量标准。然而,这将造成严重的性能瓶颈。对高维特征最近邻搜索的性能的影响主要包括两个方面:计算时间和内存占用。而二进制编码正好能解决这两大问题。一方面,海明距离的计算非常高效,只需要极少的机器指令即可完成;另一方面,二进制编码占用的存储空间远远少于浮点型数据。s表示一个在ω空间下的k维图像特征,hk表示一种二进制嵌入方法,也就是说hk:ω→{0,1}。一组由k个这样的二进制嵌入方法构成了集合h={hk,k=1…k},这个集合定义了一个多维的二进制嵌入方法h(s)=[h1(s)…hi(s)…hk(s)]′,其中,hi(s)是指将s中第i维特征映射为第i比特的二进制编码。所以,特征s被映射为k比特的二进制编码,即h:ω→{0,1}k。然而,原始的浮点型特征并非直接被映射为二进制编码。对很多二进制嵌入方法如lsh,sh,pcae和pcae-itq来说,二进制嵌入技术可以被分解为以下两个过程:hk(s)=qk[gk(s)],其中,(为中介空间)是投影函数,是量化函数。也就是说,二进制嵌入技术首先把原始的浮点型图像特征s投影为一个多维的浮点型向量g(s)=[gk(s),k=1…k]′,投影后的向量g(s)很好地保持了原始特征之间的相似性。然后,投影得到的向量g(s)通过预先选取的阈值τ被量化为二进制编码。通常来说,阈值τ往往被设置为0。所以,如果gi(s)>0,si被量化为1;否则,si量化为0。也就是说,传统的量化方法只能粗略地把中间向量的每一维数据映射为两类(表示为0或者1),这样的量化方法大大地降低了中间向量的区分能力。为了缓解这个问题,本发明把中间向量的每一维数据量化为2-bit的二进制编码,并在进行最近邻搜索时为不同的距离赋予不同的权重,本发明的方法可以极大地提高高维数据之间的区分性。技术实现要素:针对现有技术中存在的技术问题,本发明的目的在于提供一种基于双倍比特量化及加权的最近邻搜索方法。本发明的技术方案为:一种基于双倍比特量化及加权的最近邻搜索方法,其步骤为:步骤1.用多维投影方法把数据库中的每一个k维的特征s投影为中间向量g(s);步骤2.根据中间向量g(s)的每一维数据的正负符号将该中间向量g(s)的数据划分为两类;然后,在每个维度上分别计算出这两类数据的中值;其中,nmi表示第i维的正数数据的中值,pmi表示第i维的负数数据的中值;步骤3.根据特征s的每维数据的正负符号以及两个中值,将特征s的每一维数据划分为四类;利用每一维数据量化为2比特的二进制编码,标明特征s的每一维数据的类别;根据特征s的各维数据的类别对应的二进制编码,生成该特征s的二进制编码;步骤4.对于k维的查询特征,采用步骤1~4的方法生成该查询特征的二进制编码步骤5.计算该查询特征的二进制编码与该特征库中每一特征的二进制编码之间的加权海明距离,将加权海明距离最小值对应的特征作为该查询特征的最近邻特征。进一步的,对中间向量g(s)的每一维数据gk(s)进行归一化,得到l(s)=[lk(s),k=1…k]′;其中,表示对数据进行归一化。进一步的,对特征s中的第i维数据,利用量化后的dbqi(s)标明特征s中第i维数据的类别:进一步的,计算所述加权海明距离的方法为:首先利用公式计算该查询特征每一维数据的二进制编码与该特征库中每个特征每一维数据的二进制编码之间的加权海明距离其中,r为该查询特征,q为该特征库中的一个特征;dbqk(r)为该查询特征r的第k维数据的二进制编码,dbqk(q)为该特征q的第k维数据的二进制编码,dk(.)为加权海明距离计算函数;然后利用公式计算该查询特征r与该特征q之间的加权海明距离dwh。进一步的,计算所述加权海明距离的方法为:首先将该查询特征的二进制编码每8比特划分为一组;然后利用公式计算该查询特征r与特征q之间的加权海明距离awh。进一步的,用多维投影方法把该特征s投影为中间向量g(s)。与现有技术相比,本发明的积极效果为:本文提出了新颖的双倍比特量化以及加权海明距离算法。为了提高查询精度,本发明把中间数据的每一维转化为了2-比特二进制编码。当得到查询特征后,本发明预先生成出若干个查找表,然后计算加权海明距离以得到最后的查询最近邻。本发明方法可以提高很多最近邻搜索应用的查询精度。附图说明图1为双倍比特量化方法示意图图2为本发明方法的流程图。具体实施方式下面结合附图对本发明进行进一步详细描述。本发明的方法流程如图2所示,首先,本发明把特征库中的浮点型特征映射为b维(b为4的倍数)的中间数据,然后使用双倍比特量化的方法把中间数据量化为2b-bit的二进制编码。当得到查询特征后,对其做同样的操作,于是得到了2b-bit的查询特征的二进制编码。接下来,针对查询特征,分别对每8个比特建立一个查找表,即共建立b/4个查找表。当进行最近邻查询时,依次遍历每个特征库的二进制编码,通过查找表计算该二进制编码与查询特征的二进制编码之间的加权海明距离。最后,把加权海明距离最小的特征作为查询特征的最近邻。由于二进制嵌入技术把浮点型特征转换为二进制编码,导致原始特征的区分能力大大降低。为了在最近邻搜索取得更高的查询精度,相关的工作主要集中在提高投影方法的性能。与之不同的是,本发明对量化方法进行改进,本发明提出了双倍比特量化方法为中间向量的每一维数据保留更多的信息。双倍比特量化方法的步骤总结如下:(1)特征映射。得到一个k维的特征x,本发明首先用多维投影方法g(s)=[gk(s),k=1…k]′把x投影为中间向量g(x)。为了提高特征之间距离计算的有效性,本发明对所有中间向量的每一维数据进行归一化,得到l(x)=[lk(x),k=1…k]′,其中表示对数据进行归一化。(2)数据划分。本发明首先根据中间向量每一维数据的正负符号把这些数据划分为两类。然后,在每个维度上本发明都计算出这两类数据的中值。nmi和pmi分别表示第i维的正数数据以及负数数据的中值。根据每维数据的正负符号以及两个中值,本发明就可以把中间向量的每一维数据划分为四类,如图1所示。尽管这个划分方法很简单,该方法仍能应用于多种二进制嵌入方法上并得到很好的效果。(3)二进制量化。对数据进行划分后,为了标明不同的四类数据,本发明提出一种新颖的量化方法。正如图1所示,本发明把中间向量的每一维数据量化为2-比特的二进制编码。对特征s中的第i维数据,双倍比特量化方法dbq定义为:假设特征y为特征x的最近邻,由于中间向量很好地保持了原始特征的相似性,则dbqi(x)和dbqi(y)很有可能被映射为同一类数据。相反,如果x,y在原始空间的距离很远,那么dbqi(x)和dbqi(y)更有可能被映射到间隔较大的两类数据中。因此,dbq可以很自然地保持特征之间的相似性。因此本发明可以得出,dbq的本质是为靠近查询向量的特征赋予更高的权重。当使用dbq生成了二进制特征后,本发明不能直接用异或操作来计算特征之间的海明距离。这个有两个原因:首先,dbq把中间数据的每一个维度划分为四类。因此,每一维特征有四种空间位置关系,本发明可以用四种不同的距离表示。与传统的海明距离0或1类似,这dbq的四种距离分别为0,1,2,3。但是,2-比特的二进制编码的海明距离只有三种可能(0,1,2)。其次,异或操作不能描述dbq所生成的每一维数据(2-比特)之间的距离。举个例子,10与01之间的距离应该是1,而它们之间的海明距离为2。同样的,00与11的距离应该为3,而它们的海明距离为2。因此,本发明提出了一个全新的加权海明距离来满足由dbq生成的二进制特征之间的距离计算。为了方便说明,在下文中,本发明用每一维代表了2-bit的二进制编码。假设r和q分别是数据库中某个特征与查询特征的中间数据。为了在线计算r与q之间的加权海明距离,本发明需要把每一维的数据之间的距离相加。本发明让dk(dbqk(r),dbqk(q))代表r与q第k维数据之间的加权海明距离,具体表示如下:表1.每一维的加权海明距离00011011000123011012102101113220当得到由dbq生成查询特征后,本发明先计算每一维查询特征与每个可能数据(00,01,10,11)之间的加权海明距离,并把这些数值存入查找表:假设dwh代表r与q之间的加权海明距离。根据定义,本发明得到:相比于查询特征与数据库中大量的特征之间距离计算,β的计算量可以忽略不计。本发明可以通过对维度分组来对上一公式进行高效地计算。本发明把查询特征的每四维(8-bit)划分为一组,因为它们正好可以用一个字节来表示。为了简洁地说明,本发明设k为4的倍数。所以,本发明可以表示:由于二进制子串[dbq4k(r),dbq4k+1(r),dbq4k+2(r),dbq4k+3(r)]正好为1个字节。每个都只有256种可能的值。所以本发明可以先计算这256个值并把它们存入一个查找表中。由此,本发明需要计算k/4个这样的查找表来存储每个可能的加权海明距离。一般来说,因为这些查找表所占用的存储空间很小,所以它们会被保存在缓存中。因此,可以简单地把每个查找表中对应的数值相加来得到加权海明距离,而不需要对每个特征的每个维度进行异或操作。毫无疑问地,该方法的查询精度与查询速度都能显著地提高。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1