一种数据依赖的多索引哈希算法制造技术

技术编号:13428244 阅读:45 留言:0更新日期:2016-07-29 18:17
本发明专利技术提出一种数据依赖的多索引哈希算法,涉及图像检索领域。本发明专利技术包括以下步骤:步骤1,构建一个训练集用于主成分分析PCA训练;步骤2,计算训练集T的均值向量μ和训练集T的协方差矩阵S;步骤3,对于每一个子串均获取其对应的协方差矩阵S',S'是S的一个子矩阵,并对协方差矩阵S'进行特征值分解,得到对应最大特征值的特征向量V,特征向量V即为子串的自适应投影向量;步骤4,在建立索引和查询时,使用自适应投影向量对子串进行投影从而得到哈希表中的下标。本发明专利技术采用自适应投影的方法可以使得哈希表中的元素接近于均匀分布,进而提升查询速度,与多索引哈希算法相比数据依赖的多索引哈希算法可以使查询速度提升36.9%–87.4%。

【技术实现步骤摘要】

本专利技术属于图像索引
,尤其涉及一种数据依赖的多索引哈希算法
技术介绍
图像检索的过程通常为以下几个步骤:首先,利用计算机处理技术检测图像的视觉特征;其次,用数字表示检测到的特征并生成高维特征向量;然后,对高维特征向量建立索引;最后,利用索引对高维向量进行检索。其中图像检索是在线进行的,所以对实时性要求很高。由于二进制码特征计算快速、节省存储空间、特征之间的匹配操作仅需要几个机器指令就能完成,目前越来越多的研究采用二进制码特征来描述视觉内容。在一个具有百万规模的二进制码数据集中查找一个查询的最近邻可以在不到一秒的时间内完成。虽然二进制码之间的海明距离可以快速计算,但是线性查询只能处理小规模的数据集。因为计算机处理器的计算能力有限而数据集的规模是无限的,随着数据集的增长(数以百亿)线性查询将变得很慢。为了提高大规模数据环境下二进制码的最近邻查询性能,研究者提出了二进制哈希方法。该方法在建索引时,直接使用二进制码作为哈希表的下标(存储地址)。在查询时,通过不断增加查询半径即可返回与查询相似的最近邻。但是随着查询半径的增加,该方法需要比对的待检测数据呈指数级的增长。当二进制码的位数大于32维时,即使采用一个很小的查询半径二进制哈希在理论上需要比对的数据规模可能比整个数据集的容量还要大。在这种情况下,二进制哈希比线性查询的速度还要慢。针对这一问题,研究者提出了多索引哈希算法。多索引哈希算法在建立索引时将二进制码划分为多个连续不重合的子串,并为每个子串建立一个哈希表。在查询时,按照同样的方式把待查询二进制码划分为多个子串,然后在相应的哈希表中进行查找以返回候选结果。最后,根据候选结果和查询之间的海明距离对候选结果排序从而得到最近邻。对每一个子串,其所需的查询半径与整个二进制码相比大大减小。因此,多索引哈希算法极大地降低了需要比对的待检测数据量,从而提高查找最近邻的速度。但是,现有技术中由于多索引哈希算法基于数据集中的二进制码呈均匀分布这一假设,不能有效处理非均匀分布的数据集。在多媒体检索中,数据集的分布往往都是分均匀的,因此多索引哈希算法在处理这些数据集时,查询速度受到一定的影响和限制。
技术实现思路
为解决上述问题,本专利技术提供一种数据依赖的多索引哈希算法,其能够将哈希表中的元素接近于均匀分布,进而提升查询速度。本专利技术提供一种数据依赖的多索引哈希算法,其包括以下步骤:步骤1,构建一个训练集T=[x1,xi,…,xn]用于主成分分析PCA训练,所述xi是一个l维二进制码,用一个列向量表示;步骤2,利用公式计算训练集T的均值向量μ,利用公式计算训练集T的协方差矩阵S;步骤3,对于每一个子串均获取其对应的协方差矩阵S',所述S'是S的一个子矩阵,并对协方差矩阵S'进行特征值分解,得到对应最大特征值的特征向量V,所述特征向量V即为该子串的自适应投影向量;步骤4,在建立索引和查询时,使用自适应投影向量对子串进行投影从而得到哈希表中的下标。有益效果:本专利技术的数据依赖的多索引哈希算法能够将哈希表中的元素接近于均匀分布,进而提升查询速度。具体内容为:把二进制码划分为多个连续不重合的子串,以此构建一个训练集并计算二进制码每位之间的相关性,为每一个子串学习得到自适应投影向量;在为每个子串建立哈希表时,使用投影向量对子串进行投影从而得到哈希表中的下标。这种采用自适应投影的方法可以使得哈希表中的元素接近于均匀分布。附图说明图1为本专利技术的数据依赖的多索引哈希算法示意图。具体实施方式在介绍本专利技术的数据依赖的多索引哈希算法之前,先就本申请涉及的现有技术-二进制哈希方法和多索引哈希算法进行论述:一、二进制哈希方法虽然计算二进制码之间的海明距离只需要几个异或操作,但是线性查找不能有效地应对大规模的数据集,故而结合二进制码和哈希表提出了二进制哈希方法。二进制哈希方法把海明空间下的最近邻查询问题转化为R近邻问题:其中q是查询向量,D是数据集,N是数据集中元素的个数,||·||H代表海明距离。通过不断增加查询半径r,二进制哈希算法可以返回查询向量q的R近邻。为了提高查询速度,二进制哈希算法建立一个哈希表,并直接使用二进制码作为数据元素在哈希表中的下标。这样,R近邻问题就可以通过不断增加查询半径r得到解决.此时,需要比对的待检测数据量为:其中l是二进制码的维度。当二进制码的维数很长时,即使采用一个很小的查询半径r,二进制哈希在理论上需要比对的数据规模可能比整个数据集的容量还要大。比如当l=256,r=5,num≈1010。而在很多应用中,二进制码的长度都大于256维并且查询半径一般都大于10,以满足检索精度的需求。在这种情况下,二进制哈希比线性查找还要慢。二、多索引哈希算法针对上述问题,研究者提出多索引哈希算法。该算法在建立索引时将长度为l维的二进制码划分为m个连续不重合的子串,每个子串的长度为或者然后为每个子串建立一个哈希表。在查询时,按照同样的方式把待查询二进制码划分为m个子串,然后在相应的哈希表中进行查找以返回候选结果.最后根据候选结果和查询之间的海明距离对候选结果排序并得到最近邻。多索引哈希算法的理论基础是:当两个二进制码q和p有r位不相同时,那么至少它们的一个子串最多有位不同:其中qk是q的第k个子串。通过这种方式,多索引哈希算法可以极大地降低了需要比对的待检测数据量。比如当l=256,r=5,m=2,需要比对的数据量为远远小于1010。因此多索引哈希算法在索引长二进制码时具有明显的优势。但是多索引哈希算法基于数据集中的二进制码呈均匀分布这一假设,不能有效处理非均匀分布的数据集。在多媒体检索中,数据集的分布往往都是分均匀的。因此多索引哈希算法具有两个缺点:1.如果待检测区间分布的数据元素比较密集,那么在对候选结果计算距离并排序时需要很多额外的时间开销,从而增加计算量。2.如果待检测区间分布的数据元素比较稀疏,那么候选结果太少。为了保证足够多的候选结果,不得不增加查询半径r,这样增加了索引查询时间。三、本专利技术的数据依赖的多索引哈希算法通过上面的分析可以看出,多索引哈希算法的时间性能依赖于数据集的分布.为了得到最优的时间性能,需要使哈希表中元素下标的分布尽可能呈均匀分布.因此,本专利技术在多索引哈希算法的基础上提出数据依赖的多索引哈希算法,如图1所示。通过构建一个训练集并计算二进制码每位之间的相本文档来自技高网
...

【技术保护点】
一种数据依赖的多索引哈希算法,其特征在于,步骤1,构建一个训练集T=[x1,xi,…,xn]用于主成分分析PCA训练,所述xi是一个l维二进制码,用一个列向量表示;步骤2,利用公式计算训练集T的均值向量μ,利用公式计算训练集T的协方差矩阵S;步骤3,对于每一个子串均获取其对应的协方差矩阵S',所述S'是S的一个子矩阵,并对协方差矩阵S'进行特征值分解,得到对应最大特征值的特征向量V,所述特征向量V即为该子串的自适应投影向量;步骤4,在建立索引和查询时,使用自适应投影向量对子串进行投影从而得到哈希表中的下标。

【技术特征摘要】
1.一种数据依赖的多索引哈希算法,其特征在于,
步骤1,构建一个训练集T=[x1,xi,…,xn]用于主成分分析PCA训练,所述xi是
一个l维二进制码,用一个列向量表示;
步骤2,利用公式计算训练集T的均值向量μ,利用公式
计算训练集T的协方差矩阵S;
步骤3,对于每一个子串均获取其对应的协方差矩阵S',所述S'是S的一个
子矩阵,并对协方差矩阵S'进行特征值分解,得到对应最大特征值的特征向量V,
所述特征向量V即为该子串的自适应投...

【专利技术属性】
技术研发人员:霍景河李冠男张增尚世锋李红领杨新旺李晓燕霍一菲
申请(专利权)人:中国人民解放军装甲兵工程学院
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1