CN104199827A - 基于局部敏感哈希的大规模多媒体数据的高维索引方法 - Google Patents
基于局部敏感哈希的大规模多媒体数据的高维索引方法 Download PDFInfo
- Publication number
- CN104199827A CN104199827A CN201410356941.9A CN201410356941A CN104199827A CN 104199827 A CN104199827 A CN 104199827A CN 201410356941 A CN201410356941 A CN 201410356941A CN 104199827 A CN104199827 A CN 104199827A
- Authority
- CN
- China
- Prior art keywords
- hash
- index
- feature
- local sensitivity
- disk
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/41—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
Abstract
本发明涉及一种基于局部敏感哈希的大规模多媒体数据的高维索引方法,包括以下步骤:离线索引阶段,对多媒体数据提取高维特征;建立内存索引,包括特征存储区和哈希表存储区,将多媒体高维特征存储到特征存储区中,计算高维特征的局部敏感哈希向量,并将特征对应的特征编号和局部敏感哈希向量存储在哈希表存储区中;建立一级磁盘索引,包括特征存储区、索引存储区和多个哈希表存储区;建立二级磁盘索引,包括哈希桶存储区;重复上述步骤直到所有多媒体输入全部被索引为止。在线查询阶段,对用于查询的多媒体数据提取特征,在建立的索引基础上进行查询,返回相似的查询结果。本发明提高了内存和磁盘的调度性能,以及多媒体数据索引和检索的速度。
Description
技术领域
本发明属于多媒体索引和检索技术领域,具体涉及一种基于局部敏感哈希的大规模多媒体数据的高维索引方法。
背景技术
近年来,随着互联网技术的迅速发展和普及,尤其是社交网站和图像、视频共享网站的不断推广和应用,网络上的图像、音频和视频数量呈现快速增长趋势。如何快速、准确地从海量的多媒体数据中检索到用户所需要的信息,成为了一个亟待解决的重要问题。传统基于文本的多媒体检索方法直接利用网页中的文本信息,这些文本信息未必直接描述多媒体内容本身,因此准确性不高。基于内容的图像、音频和视频检索可以有效地克服以上不足,逐渐受到学术界和工业界的重视。基于内容的图像、音频和视频检索首先采用一个高维的特征向量对图像、音频和视频进行描述,然后通过特征向量计算媒体之间的相似度,按照相似度的大小返回检索结果。而随着网络中多媒体数量的急剧增加,检索速度已成为基于内容的图像、音频和视频检索的一大瓶颈。因此如何设计一个快速有效的索引结构,成为了大规模图像、音频和视频检索的迫切需要。
为了解决这个问题,一些方法采取了基于关键点特征的倒排索引,这类方法能够保持较好的准确性。然而,一个多媒体数据中可能包含上千个关键点,对每一个关键点建立索引花费过大,因此效率较低。另一些方法利用树形结构来构建多媒体数据的索引,树形结构的索引采用了子空间划分的结构设计,这类方法将多媒体数据划分到若干子空间中,每个子空间中包含相似的多媒体数据,在进行检索时,只在某个子空间范围内进行检索,从而有效提高了检索的速度。这类方法的典型代表是于1975年Communication of ACM杂志上,J.L.Bentley等人在文献“Multidimensional binary search trees used for associative searching”中提出的KD树,在低维特征空间中具有较好的检索效果,但是当特征维数增大时,树形结构索引的效率大大降低,其效率与线性查找的时间复杂度相比几乎没有提高,这制约了树形结构的索引在多媒体检索中的应用。
而近年来,基于Hash的索引方法得到了广泛的关注,其中的典型代表是于1999年VLDB会议上,Gionis等人在文献“Similarity search in high dimensions via hashing”中提出的局部敏感哈希(Locality Sensitive Hashing,LSH)算法。局部敏感哈希算法的原理是将特征向量相近的特征点以较大的概率索引到同一个哈希桶中,查询时将与查询特征向量处于相同哈希桶中的特征值都返回作为检索的结果。局部敏感哈希是一种近似最近邻检索的方式,并不能保证返回与查询特征距离最小的向量,而是以较大的概率返回与查询特征距离较小的向量。这种方式以牺牲准确性为代价来获取速度的提升,并且局部敏感哈希为了保证能够返回较多与查询相关的内容,需要建立多个索引表,但是索引表数量的增加一方面降低了查询的效率,另一方面也增加了内存的开销,导致局部敏感哈希无法支持更大规模的数据。为了解决这一问题,于2007年的VLDB会议上,Lv Qin等在文献“Multi-probe LSH:efficient indexing forhigh-dimensional similarity search”中提出了多探测局部敏感哈希(Multi-Probe LSH)算法,能够通过少量的索引表来达到和原始局部敏感哈希算法同等的效果。多探测局部敏感哈希在索引的查询阶段,通过序列探测的方法生成多个可能的探测序列,在一个表中的多个哈希桶中进行查找。但是多探测局部敏感哈希存在的一个问题是该算法只能将索引表保存在内存中,能够支持的数据量较小,不能广泛应用于目前大规模多媒体检索任务中。另外,由于磁盘的IO性能远比内存差,如果将索引从内存转移到磁盘中,又会面临着磁盘IO的性能问题。因此,如何设计支持大规模多媒体数据,并具有高效IO性能、高响应速度的磁盘索引结构是多媒体搜索和管理中亟需解决的问题。
发明内容
针对现有技术的不足,本发明提出了一种基于局部敏感哈希的大规模多媒体数据的高维索引方法,用于对多媒体高维特征进行磁盘索引,以达到对大规模多媒体数据进行快速检索的目的。该技术充分考虑了高维特征的检索效率、对大规模数据的支持、内存和磁盘之间的调度性能等,能够进一步提高多媒体的索引和检索速度,从而有利于对大规模多媒体数据的搜索和管理。
为达到以上目的,本发明采用的技术方案如下:
本发明提出了一种基于局部敏感哈希的大规模多媒体数据的高维索引方法,用于对多媒体高维特征进行磁盘索引,包括以下步骤:
(1)对需要建立索引的多媒体数据提取一种或多种高维特征;
(2)基于步骤(1)中的多媒体高维特征建立内存索引,内存索引包括特征存储区和哈希表存储区,并将多媒体高维特征存储在特征存储区中,计算多媒体高维特征的局部敏感哈希向量,将对应的特征编号和该局部敏感哈希向量存储在哈希表存储区中;
(3)基于步骤(2)中的内存索引建立一级磁盘索引,一级磁盘索引包括特征存储区、索引存储区和多个哈希表存储区;当内存索引特征存储区中存储的多媒体高维特征数目达到一定值后,通过一级磁盘索引将其写入磁盘文件中的特征存储区;当内存索引哈希表存储区中存储的特征编号和局部敏感哈希向量数目达到一定值后,通过一级磁盘索引将其写入磁盘文件中的哈希表存储区和索引存储区;
(4)基于步骤(3)中的一级磁盘索引建立二级磁盘索引,二级磁盘索引包括哈希桶存储区;主要过程如下:当一级磁盘索引哈希表存储区哈希桶中存储的特征编号和局部敏感哈希向量数目达到一定值后,通过二级磁盘索引将后继需要存入该哈希桶的数据写入哈希桶存储区;
(5)重复步骤(2)、(3)和(4),直到输入的多媒体高维特征全部被索引为止。
进一步,上述基于局部敏感哈希的多媒体高维索引方法,所述步骤(1)中,多媒体数据包括图像、音频或视频等;所述提取高维特征,如对图像提取颜色、纹理或形状等特征,对音频提取短时平均能量、过零率、MEL频率倒谱系数等特征,对视频提取关键点、对象或运动等特征。
进一步,上述基于局部敏感哈希的多媒体高维索引方法,所述步骤(2)中,首先将多媒体高维特征存储到内存索引的特征存储区中,特征存储区的结构为固定大小的连续内存区域,区域大小为:
特征存储区大小=特征个数×特征维度×每维特征字节数;
其次,计算多媒体高维特征的局部敏感哈希向量,并将对应的特征编号和局部敏感哈希向量缓存在内存索引的哈希表存储区中。
局部敏感哈希向量是通过一组随机系数将高维特征映射到一条直线,使得相似特征以较高的概率在直线上相邻,只要分割直线的参数足够大就可以保证两个相似高维特征局部敏感哈希向量相等,对于每个高维特征计算多个局部敏感哈希向量,以保证查询结果的准确性。
哈希表存储区的结构由哈希表和动态数组组合实现,哈希表的每个哈希槽为一个动态数组,哈希表的长度为固定值,以局部敏感哈希向量作为键(Key),将特征编号作为值(Value)映射到某个哈希槽对应的动态数组中。另外,使用内存池为特征存储区和哈希表存储区动态分配内存。
进一步,上述基于局部敏感哈希的多媒体高维索引方法,所述步骤(3)中,当内存索引特征存储区中存储数目达到一定值后,通过一级磁盘索引将数据写入磁盘文件中的特征存储区,特征存储区的结构为可增长的连续磁盘空间,区域大小为:
特征存储区大小=特征块个数×每块特征个数×特征维度×每维特征字节数。
当内存索引哈希存储区中存储数目达到一定值后,通过一级磁盘索引将数据写入磁盘文件中的哈希表存储区和索引存储区,哈希存储区的结构由哈希表实现,哈希表的每个哈希槽为一个固定长度的数组。以局部敏感哈希向量作为键(Key),将特征编号作为值(Value)映射到某个哈希槽中。当局部敏感哈希向量不存在于该哈希槽中,将其存储于哈希槽中;当局部敏感哈希向量存在于该哈希槽中,将其存储于索引存储区。
索引存储区的结构为类似于数组结构的、固定长度的连续磁盘空间,区域大小为:
索引存储区大小=预计特征总数×特征编号的字节数。
索引存储区的脚标对应特征编号,其中,每一维存储与其特征编号对应的局部敏感哈希向量相同的下一个特征。这样,可将所有局部敏感哈希向量相同的特征编号全部链接起来。
另外,由于索引存储区的大小为与特征总数相关的一个固定值,相对较小,可以完全放入内存中进行读写,当需要时再写入磁盘进行保存,这可以显著地减少内存与磁盘的交换次数。
进一步,上述基于局部敏感哈希的多媒体高维索引方法,所述步骤(4)中,当一级磁盘索引的哈希表存储区哈希桶中存储的特征编号和局部敏感哈希向量数目达到一定值后,建立二级磁盘索引将后继需要存入该哈希桶的数据写入磁盘文件,二级磁盘索引包括哈希桶存储区,哈希桶存储区的结构为动态的连续磁盘空间,每次一级磁盘索引哈希表存储区中的某个哈希桶存储满,在哈希桶存储区中将上次哈希桶的大小翻倍作为新的哈希桶大小,即:
新的哈希桶大小=上次哈希桶大小×2,
从而继续存储该哈希桶的特征编号和局部敏感哈希向量。
本发明还提出了一种采用上述高维索引的多媒体数据检索方法,其步骤包括:
(a)采用上述方法建立基于局部敏感哈希的多媒体高维索引;
(b)对用来查询的多媒体数据,提取与上述步骤(1)同样的一种或多种高维特征,在步骤(a)建立的高维索引基础上,使用多路探测技术进行查询,返回相似的查询结果。
进一步,上述多媒体数据检索方法中,为了解决局部敏感哈希空间存储率较低的问题,本发明使用了多探测局部敏感哈希结构,两个相似数据一般会被映射到相同或相邻的哈希槽中,因此只需要在一个哈希表中访问多个相邻的哈希槽就可以有效提高相似性检索的召回率,从而达到减少哈希表数量的目的。
本发明的有益效果在于:(1)能够对多媒体数据进行快速、实时和并发的索引和检索;(2)内存和磁盘调度性能较高;(3)具有动态可扩展性,能够动态地扩展索引结构的大小,支持更大规模的数据;(4)本发明支持亿级规模的高维特征数据,检索速度为百毫秒级,达到了实际应用水平。从而本发明充分发挥了多媒体高维索引在多媒体数据的搜索和管理中的重要作用。
本发明之所以具有上述发明效果,其原因在于:本发明使用了多路探测的局部敏感哈希算法,提高了索引和检索的效率;发明了内存索引、一级磁盘索引和二级磁盘索引等多级索引的方法,提高了内存和磁盘的调度性能,并且提高索引和检索的速度,从而能够更为有效地索引和检索大规模多媒体数据。
附图说明
图1是基于局部敏感哈希的大规模多媒体数据的高维索引方法的步骤流程图。
图2是一级磁盘索引的特征存储区示意图。
图3是一级磁盘索引的哈希表存储区示意图。
图4是一级磁盘索引的索引存储区示意图。
图5是二级磁盘索引的哈希桶存储区示意图。
图6是多路探测查询的算法示意图。
图7是探测序列生成方法示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细的描述。
本发明的一种基于局部敏感哈希的大规模多媒体数据的高维索引方法,其流程如图1所示,具体包含以下步骤:
(1)提取多媒体数据高维特征
对需要建立索引的多媒体数据包括图像、音频或视频等提取一种或多种特征,特征为高维向量,如对图像提取颜色、纹理或形状等特征,对音频提取短时平均能量、过零率、MEL频率倒谱系数等特征,对视频提取关键点、对象或运动等特征。
(2)建立内存索引
在提取了图像、视频或音频的特征后,我们首先在内存中建立一个内存索引,内存索引中包含特征存储区和哈希表存储区,下面分别介绍这两个存储区的构造和哈希值的计算方法。
特征存储区的结构定义为固定大小的连续内存区域,特征存储区大小的计算方法如公式一所示:
公式一:MemFeaSectionSize=N×FeaDim×DimBytes
其中MemFeaSectionSize为特征存储区大小,N为特征个数,为了提高写入磁盘时的效率,在N达到一定数量时统一映射到磁盘的存储中,FeaDim为特征维度,DimBytes是每维特征的字节数。特征存储表中保存了每一个高维特征的原始特征向量,其目的是为了在检索时能够利用原始特征向量在小范围内计算相似度并进行排序,这样能够获得更加准确的查询结果。
接着我们计算特征向量的局部敏感哈希向量。本实施例采用文献“Datar,Mayur,NicoleImmorlica,Piotr Indyk,and Vahab S.Mirrokni."Locality-sensitive hashing scheme based onp-stable distributions."In Proceedings of the twentieth annual symposium on Computationalgeometry,pp.253-262.ACM,2004..”中的方法计算高维特征的局部敏感哈希向量。该方法的基本思想是通过设计一组哈希函数,使得相似的特征向量p和q满足公式二:
公式二:P[h(p)=h(q)]≥p1
即哈希函数要使得相似特征的哈希值以较大的概率冲突。具体的哈希函数如公式三所示:
公式三:
其中υ是原始的d维特征向量,a是d维的满足p-稳定分布的特征向量,当p=1时的典型分布为柯西分布,当p=2时的典型分布为高斯分布。而b是一个在[0,w]之间满足均匀分布的一个随机数。w是一个正整数,表示哈希桶的宽度,w越大,那么特征向量哈希到同一个桶的概率就会增大。然而,一个哈希函数是不足以保证索引准确率的,该方法的策略是在一个哈希表中使用k个哈希函数。每一个哈希表中的哈希函数用公式四来进行构造:
公式四:g(v)=(h1(v),h1(v),...,hk(v))
每一个特征值经过上述哈希函数哈希后,会生成一个k维的哈希向量。为了进一步保证检索的准确率和召回率,该方法的索引策略是在上述基础上采用L个索引表,即要以上述哈希函数为元素定义哈希函数簇,如下列公式五:
公式五:G={g:Rd→Zk}
因此,每一个特征值经过哈希函数簇哈希后,将会同时处于L个索引表中。在哈希表存储区中,我们也相应地定义L个存储区。每一个哈希表存储区由哈希表和多个动态数组组合实现,哈希表的每个哈希槽为一个动态数组,哈希表的长度为固定值,以经过公式四计算得到的局部敏感哈希向量作为键(Key),将特征编号作为值(Value)映射到某个哈希槽对应的动态数组中。此外,在特征存储区和哈希表存储区构造时,我们使用内存池来进行内存的动态分配。
(3)建立一级磁盘索引
考虑到磁盘IO的性能远低于内存,所以需要尽量减少数据从磁盘中读出或写入的次数。本实施例建立了一级磁盘索引,通过磁盘哈希表、特征索引链等方法,降低了磁盘读写的次数。一级磁盘索引包括特征存储区、索引存储区和L个哈希表存储区,特征存储区存储特征,索引存储区存储特征索引链,L个哈希表存储区存储每个高维特征的特征编号和L个局部敏感哈希向量。
当内存索引中特征存储区中存储特征数目达到一定值后,通过一级磁盘索引将数据写入磁盘文件中的特征存储区。
如图2所示,特征存储区的结构为可增长的连续磁盘空间,区域大小为:
公式六:DiskFeaSectionSize=FeaBlockNum×FeaNumPerBlock×FeaDim×DimBytes
其中,DiskFeaSectionSize为特征存储区大小,FeaBlockNum为特征块个数,FeaNumPerBlock为每块特征个数,FeaDim为特征维度,DimBytes为每维特征所占字节数。
当内存索引哈希存储区中存储特征编号和局部敏感哈希向量数目达到一定值后,通过一级磁盘索引将数据写入磁盘文件中的哈希表存储区和索引存储区。如图3所示,哈希存储区的结构由哈希表实现,哈希表的每个哈希槽为一个固定长度的数组。将局部敏感哈希向量作为键(Key),特征编号作为值(Value)映射到某个哈希槽中。当局部敏感哈希向量不存在于该哈希槽中,将其存储于哈希槽中;当局部敏感哈希向量存在于该哈希槽中,将其存储于索引存储区。
如图4所示,索引存储区为类似数组结构的、固定长度的连续磁盘空间,区域大小为:
公式七:IndexSectionSize=EstimateFeaTotalNum×FIDBytes
其中,IndexSectionSize为索引存储区大小,EstimateFeaTotalNum为预计特征总数,FIDBytes为特征编号的字节数。
由于对应同一个哈希桶中的同一个局部敏感哈希向量的特征不止一个,如果我们将它们全部存储在哈希桶中(即将这些特征的特征编号存储在局部敏感哈希向量后面的位置),会造成哈希桶的大小不一,从而不利于磁盘对齐和磁盘读写,降低磁盘IO性能。本实施例建立了一个索引存储区,索引存储区可以看做一个特征索引链,其脚标对应特征编号,每一维存储与其特征编号对应的局部敏感哈希值相同的下一个特征。这样,可将所有局部敏感哈希值相同的特征编号全部链接起来。另外,由于索引存储区的大小为与特征总数相关的一个固定值,相对较小,可以完全放入内存中进行读写,当需要时再写入磁盘进行保存,这可以显著地减少内存与磁盘的交换次数。
(4)建立二级磁盘索引
一方面,为了减少数据从内存写入磁盘的次数和保证磁盘的IO性能,一级磁盘索引哈希表存储区哈希桶的长度不能太大;另一方面,由于数据的增长,哈希表存储区哈希桶的数据越来越多,会引起数据的饱和,所以哈希表存储区哈希桶的长度也不能太小。本实施例采取一种平衡的方案,设定哈希表存储区哈希桶的长度为固定值P,并当一级磁盘索引中哈希表存储区哈希桶中存储的特征编号和局部敏感哈希值数目达到一定值后,建立二级磁盘索引将后继需要存入该哈希桶的数据写入磁盘文件。二级磁盘索引包括哈希桶存储区,如图5所示,哈希桶存储区的结构为动态的连续磁盘空间,每次一级磁盘索引哈希表存储区中的某个哈希桶存储满,在哈希桶存储区中将上次哈希桶的大小翻倍作为新的哈希桶大小,即:
公式八:新的哈希桶大小=上次哈希桶大小×2
从而继续存储该哈希桶的特征编号和局部敏感哈希向量。
(5)多路探测的索引结构查询方法
在查询阶段,为了避免传统局部敏感哈希需要多个哈希表来保证检索效率的缺点,我们采用文献Lv,Qin,William Josephson,Zhe Wang,Moses Charikar,and Kai Li."Multi-probe LSH:efficient indexing for high-dimensional similarity search."In Proceedings of the33rd internationalconference on Very large data bases,pp.950-961.VLDB Endowment,2007.中的多探测的查询方法。多探测的查询方法认为两个相似数据一般会被映射到相同或相邻的哈希槽中,因此只要在一个哈希表中访问多个相邻的哈希槽就可以有效提高相似性检索的召回率,从而达到减少哈希表数量的目的。如图6所示,多路探测查找方法首先生成一个探测偏移量Δ,利用生成的偏移量,在相邻的表项中进行查找,达到减少哈希表数量的目的。
具体地,对于输入的查询特征向量q,我们首先利用公式九计算它的哈希向量:
公式九:g(q)=(h1(q),h1(q),...,hk(q))
对于L个哈希表,我们能够得到L个哈希向量:g1(q),g2(q)...gL(q)。对于任意一个哈希向量gi(q)=(h1(q),h1(q),...,hk(q))我们要对应生成若干个探测序列(Δ1,Δ2,Δ3,...)。如公式三所示,每一个哈希函数簇内的哈希函数都是一个下取整的函数,那么我们定义xi(δ)表示哈希函数的实数值距离哈希桶两个边界的距离,其中δ=(1,-1)。xi(δ)可以通过下列公式来进行计算:
公式十:
公式十一:f(q)=a·q+b
xi(δ)值越小,说明哈希值距离某个边界比较近,我们的探测序列朝向较近的那个哈希值进行查找,就更有可能找到正确的答案。那么我们根据如上定义,可以计算出gi(q)中k个哈希值的xi(δ)值,共有2k个,将这些值从小到大进行排序,并按照如图7所示的顺序来生成探测序列,其中图7中的数字即代表排序后的xi(δ)。
在构建了探测序列集合(Δ1,Δ2,Δ3,…)后,我们将原始的特征向量gi(q)与探测序列集合中每一个探测序列Δj相加,在新的哈希桶中进行查找。这样,就能够利用少量的哈希表来达到比较高的查全率。
在查询时,对于每一个探测的局部敏感哈希向量,我们通过磁盘映射,把对应哈希桶中的特征向量映射到内存中,并进行去重操作,将所有哈希桶中的特征向量集合作为候选集,利用高维特征的特征编号在特征存储区中找到原始特征,计算其与候选集中特征的相似度,排序并得到最终结果。
下面的实验结果表明,本发明能够对大规模高维特征向量建立磁盘索引,且具有动态可扩展性,并能够进行快速的基于内容的多媒体检索,可以取得较高的查询准确率。
本实施例采用构造的近似图像检索数据集来进行测试,在基于内容的图像检索任务上验证本发明的有效性。在数据集构造方法上,首先获取60张图片作为查询图片,然后利用60张原始图片做若干变换生成正样本,这些变换包括分辨率变换、加减标志、加减字幕、翻转、明暗变换等,每一种变换根据强度不同生成不同的图片作为正样本。然后再收集与查询图片无关的图片形成负样本,正样本和负样本组合构成最终的数据集。根据负样本数量不同,我们构造了规模为100万和1亿的两个数据集。
为了证明本发明能够支持基于内容的大规模图像检索,并能够动态扩展,本实施例分别进行了下列实验。
实验一:规模为100万的数据集,初始设置索引容量为100万,建立索引并利用查询图片进行查询,统计平均查询准确率和查询耗时;
实验二:规模为1亿的数据集,初始设置索引容量为1亿,建立索引并利用查询图片进行查询,统计平均查询准确率和查询耗时;
实验三:规模为1亿的数据集,初始设置索引容量为100万,建立索引并利用查询图片进行查询,统计平均查询准确率和查询耗时;本实验主要验证所提出的索引结构的动态可扩展性。
实验环境为Dell2950服务器,配置为:Intel Xeon E54302.66GHz,双核,内存32G。实验结果如表1所示:
表1.实验结果
平均查询准确率(%) | 平均查询时间(秒) | |
实验一 | 96.9% | 0.053 |
实验二 | 99.1% | 0.102 |
实验三 | 99.1% | 0.102 |
从表1可以看出,本发明所提出的索引方法能够支持亿级数量的特征索引,并能够以毫秒级别的响应速度取得较高的查询准确率。首先,实验一和实验二验证了本发明所提出的索引方法能够支持百万级和亿级的图像检索任务,其次,实验三在初始索引容量设置为100万时,为规模为1亿的数据建立索引,可以看到我们所提出的索引方法能够动态地扩展原有的索引结构,从而能够支持更大规模的数据。并且,在近似图像检索上,能够取得90%以上的查询准确率,具有较好的检索效果。
本发明基于局部敏感哈希方法建立磁盘索引,并在查询阶段采用多路探测技术,能够有效地减少需要建立的索引表数量,并且具有动态可扩展的特性,能够支持亿级以上规模的数据。目前对高维特征进行索引的方法都是基于内存的方法,能够支持的数据规模十分有限,均不能完成上亿级数据规模的实验。因此本发明能够有效地提高多媒体检索的效率,具有很大的实际应用价值。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种基于局部敏感哈希的大规模多媒体数据的高维索引方法,包括以下步骤:
(1)对需要建立索引的多媒体数据提取一种或多种高维特征;
(2)基于步骤(1)中的多媒体高维特征建立内存索引,内存索引包括特征存储区和哈希表存储区,将多媒体高维特征存储到特征存储区中,计算多媒体高维特征的局部敏感哈希向量,将对应的特征编号和该局部敏感哈希向量存储在哈希表存储区中;
(3)基于步骤(2)中的内存索引建立一级磁盘索引,一级磁盘索引包括特征存储区、索引存储区和多个哈希表存储区;当内存索引中特征存储区中存储的多媒体高维特征数目达到一定值后,通过一级磁盘索引将其写入磁盘文件中的特征存储区;当内存索引哈希表存储区中存储的特征编号和局部敏感哈希向量数目达到一定值后,通过一级磁盘索引将其写入磁盘文件中的哈希表存储区和索引存储区;
(4)基于步骤(3)中的一级磁盘索引建立二级磁盘索引,二级磁盘索引包括哈希桶存储区;当一级磁盘索引中哈希表存储区的哈希桶中存储的特征编号和局部敏感哈希向量数目达到一定值后,通过二级磁盘索引将后继需要存入该哈希桶的数据写入磁盘文件;
(5)重复步骤(2)、(3)和(4),直到输入的多媒体高维特征全部被索引为止。
2.如权利要求1所述的方法,其特征在于,所述步骤(1)中,多媒体数据包括图像、音频和视频;其中,图像提取颜色、纹理或形状特征,音频提取短时平均能量、过零率、MEL频率倒谱系数特征,视频提取关键点、对象或运动特征。
3.如权利要求1所述的方法,其特征在于,所述步骤(2)中,内存索引的特征存储区的结构为固定大小的连续内存区域,区域大小为:
特征存储区大小=特征个数×特征维度×每维特征字节数;
内存索引的哈希表存储区的结构由哈希表和动态数组组合实现,哈希表的每个哈希槽为一个动态数组,哈希表的长度为固定值,以局部敏感哈希向量作为键Key,将特征编号作为值Value映射到某个哈希槽对应的动态数组中;
另外,使用内存池为特征存储区和哈希表存储区动态分配内存。
4.如权利要求1所述的方法,其特征在于,所述步骤(3)中,一级磁盘索引的特征存储区的结构为可增长的连续磁盘空间,区域大小为:
特征存储区大小=特征块个数×每块特征个数×特征维度×每维特征字节数。
5.如权利要求4所述的方法,其特征在于,所述步骤(3)中,一级磁盘索引的哈希存储区的结构由哈希表实现,哈希表的每个哈希槽为一个固定长度的数组,以局部敏感哈希向量作为键Key,将特征编号作为值Value映射到某个哈希槽中;当局部敏感哈希向量不存在于该哈希槽中,将其存储于哈希槽中;当局部敏感哈希向量存在于该哈希槽中,将其存储于索引存储区。
6.如权利要求5所述的方法,其特征在于,所述步骤(3)中,一级磁盘索引的索引存储区的结构为类似于数组结构的、固定长度的连续磁盘空间,区域大小为:
索引存储区大小=预计特征总数×特征编号的字节数,
索引存储区的脚标对应特征编号,其中,每一维存储与其特征编号对应的局部敏感哈希向量相同的下一个特征,以将所有局部敏感哈希向量相同的特征编号全部链接起来。
7.如权利要求1所述的方法,其特征在于,所述步骤(4)中,二级磁盘索引的哈希桶存储区的结构为动态的连续磁盘空间,每次一级磁盘索引哈希表存储区中的某个哈希桶存储满,在哈希桶存储区中将上次哈希桶的大小翻倍作为新的哈希桶大小,即:
新的哈希桶大小=上次哈希桶大小×2,
从而继续存储该哈希桶的特征编号和局部敏感哈希向量。
8.一种基于局部敏感哈希的多媒体数据检索方法,其步骤包括:
(a)采用权利要求1至7中任一项所述的方法建立基于局部敏感哈希的多媒体高维索引;
(b)对用来查询的多媒体数据,提取与权利要求1中步骤(1)同样的一种或多种高维特征,在步骤(a)建立的高维索引基础上,使用多路探测技术进行查询,返回相似的查询结果。
9.如权利要求8所述的方法,其特征在于,所述步骤(b)使用多探测局部敏感哈希结构,将两个相似数据映射到相同或相邻的哈希槽中,以提高检索效率和局部敏感哈希空间存储率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410356941.9A CN104199827B (zh) | 2014-07-24 | 2014-07-24 | 基于局部敏感哈希的大规模多媒体数据的高维索引方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410356941.9A CN104199827B (zh) | 2014-07-24 | 2014-07-24 | 基于局部敏感哈希的大规模多媒体数据的高维索引方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104199827A true CN104199827A (zh) | 2014-12-10 |
CN104199827B CN104199827B (zh) | 2017-08-04 |
Family
ID=52085120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410356941.9A Active CN104199827B (zh) | 2014-07-24 | 2014-07-24 | 基于局部敏感哈希的大规模多媒体数据的高维索引方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104199827B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105574212A (zh) * | 2016-02-24 | 2016-05-11 | 北京大学 | 一种多索引磁盘哈希结构的图像检索方法 |
CN105740428A (zh) * | 2016-01-29 | 2016-07-06 | 北京大学 | 一种基于b+树的高维磁盘索引结构和图像检索方法 |
CN106649715A (zh) * | 2016-12-21 | 2017-05-10 | 中国人民解放军国防科学技术大学 | 一种基于局部敏感哈希算法和神经网络的跨媒体检索方法 |
CN106777240A (zh) * | 2016-12-27 | 2017-05-31 | 广州创显科教股份有限公司 | 一种基于哈希计算的快速检索方法及系统 |
CN106777130A (zh) * | 2016-12-16 | 2017-05-31 | 西安电子科技大学 | 一种索引生成方法、数据检索方法和装置 |
CN106777131A (zh) * | 2016-12-16 | 2017-05-31 | 西安电子科技大学 | 一种高维空间数据的查询方法、装置及计算机可读介质 |
CN108052582A (zh) * | 2017-12-08 | 2018-05-18 | 锐捷网络股份有限公司 | 一种访问数据库的方法和装置 |
WO2018171412A1 (zh) * | 2017-03-20 | 2018-09-27 | 华为技术有限公司 | 一种行人检索方法及装置 |
CN109766341A (zh) * | 2018-12-27 | 2019-05-17 | 厦门市美亚柏科信息股份有限公司 | 一种建立哈希映射的方法、装置、存储介质 |
CN110046268A (zh) * | 2016-02-05 | 2019-07-23 | 大连大学 | 建立基于倒排位置敏感哈希索引的高维空间kNN查询方法 |
CN110175258A (zh) * | 2016-02-05 | 2019-08-27 | 大连大学 | 建立基于位置敏感哈希索引的移动感知数据查询方法 |
CN110598472A (zh) * | 2019-09-18 | 2019-12-20 | 广州虎牙科技有限公司 | 设备标识方法、装置、服务器及存储介质 |
CN111046129A (zh) * | 2019-05-13 | 2020-04-21 | 国家计算机网络与信息安全管理中心 | 基于文本内容特征的公众号信息存储方法及检索系统 |
CN111460088A (zh) * | 2019-01-22 | 2020-07-28 | 阿里巴巴集团控股有限公司 | 相似文本的检索方法、装置和系统 |
CN111813971A (zh) * | 2019-04-10 | 2020-10-23 | 阿里巴巴集团控股有限公司 | 哈希表构建及图像匹配方法和装置,存储介质和电子设备 |
CN113284573A (zh) * | 2021-06-02 | 2021-08-20 | 山东健康医疗大数据有限公司 | 一种文档数据库检索方法与装置 |
CN113779303A (zh) * | 2021-11-12 | 2021-12-10 | 腾讯科技(深圳)有限公司 | 视频集合的索引方法、装置和存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101295323A (zh) * | 2008-06-30 | 2008-10-29 | 腾讯科技(深圳)有限公司 | 一种用于索引更新的处理方法和系统 |
CN102609441A (zh) * | 2011-12-27 | 2012-07-25 | 中国科学院计算技术研究所 | 基于分布熵的局部敏感哈希高维索引方法 |
CN102722454A (zh) * | 2012-05-22 | 2012-10-10 | 浙江宇视科技有限公司 | 一种磁盘保护方法及装置 |
US20130301935A1 (en) * | 2011-01-28 | 2013-11-14 | Alibaba Group Holding Limited | Method and Apparatus of Identifying Similar Images |
CN103631928A (zh) * | 2013-12-05 | 2014-03-12 | 中国科学院信息工程研究所 | 一种基于局部敏感哈希的聚类索引方法及系统 |
-
2014
- 2014-07-24 CN CN201410356941.9A patent/CN104199827B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101295323A (zh) * | 2008-06-30 | 2008-10-29 | 腾讯科技(深圳)有限公司 | 一种用于索引更新的处理方法和系统 |
US20130301935A1 (en) * | 2011-01-28 | 2013-11-14 | Alibaba Group Holding Limited | Method and Apparatus of Identifying Similar Images |
CN102609441A (zh) * | 2011-12-27 | 2012-07-25 | 中国科学院计算技术研究所 | 基于分布熵的局部敏感哈希高维索引方法 |
CN102722454A (zh) * | 2012-05-22 | 2012-10-10 | 浙江宇视科技有限公司 | 一种磁盘保护方法及装置 |
CN103631928A (zh) * | 2013-12-05 | 2014-03-12 | 中国科学院信息工程研究所 | 一种基于局部敏感哈希的聚类索引方法及系统 |
Non-Patent Citations (1)
Title |
---|
吴芳: "面向购物图像搜索的哈希索引结构算法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740428A (zh) * | 2016-01-29 | 2016-07-06 | 北京大学 | 一种基于b+树的高维磁盘索引结构和图像检索方法 |
CN110175258B (zh) * | 2016-02-05 | 2024-01-23 | 大连大学 | 建立基于位置敏感哈希索引的移动感知数据查询方法 |
CN110175258A (zh) * | 2016-02-05 | 2019-08-27 | 大连大学 | 建立基于位置敏感哈希索引的移动感知数据查询方法 |
CN110059208A (zh) * | 2016-02-05 | 2019-07-26 | 大连大学 | 利用倒排索引筛选出与查询点碰撞次数较高的分布式数据处理方法 |
CN110046268A (zh) * | 2016-02-05 | 2019-07-23 | 大连大学 | 建立基于倒排位置敏感哈希索引的高维空间kNN查询方法 |
CN110046268B (zh) * | 2016-02-05 | 2024-04-05 | 大连大学 | 建立基于倒排位置敏感哈希索引的高维空间kNN查询方法 |
CN105574212B (zh) * | 2016-02-24 | 2019-04-26 | 北京大学 | 一种多索引磁盘哈希结构的图像检索方法 |
CN105574212A (zh) * | 2016-02-24 | 2016-05-11 | 北京大学 | 一种多索引磁盘哈希结构的图像检索方法 |
CN106777130A (zh) * | 2016-12-16 | 2017-05-31 | 西安电子科技大学 | 一种索引生成方法、数据检索方法和装置 |
CN106777131A (zh) * | 2016-12-16 | 2017-05-31 | 西安电子科技大学 | 一种高维空间数据的查询方法、装置及计算机可读介质 |
CN106777130B (zh) * | 2016-12-16 | 2020-05-12 | 西安电子科技大学 | 一种索引生成方法、数据检索方法和装置 |
CN106649715A (zh) * | 2016-12-21 | 2017-05-10 | 中国人民解放军国防科学技术大学 | 一种基于局部敏感哈希算法和神经网络的跨媒体检索方法 |
CN106777240A (zh) * | 2016-12-27 | 2017-05-31 | 广州创显科教股份有限公司 | 一种基于哈希计算的快速检索方法及系统 |
CN108629233A (zh) * | 2017-03-20 | 2018-10-09 | 华为技术有限公司 | 一种行人检索方法及装置 |
WO2018171412A1 (zh) * | 2017-03-20 | 2018-09-27 | 华为技术有限公司 | 一种行人检索方法及装置 |
US11250250B2 (en) | 2017-03-20 | 2022-02-15 | Huawei Technologies Co., Ltd. | Pedestrian retrieval method and apparatus |
CN108052582A (zh) * | 2017-12-08 | 2018-05-18 | 锐捷网络股份有限公司 | 一种访问数据库的方法和装置 |
CN109766341A (zh) * | 2018-12-27 | 2019-05-17 | 厦门市美亚柏科信息股份有限公司 | 一种建立哈希映射的方法、装置、存储介质 |
CN111460088A (zh) * | 2019-01-22 | 2020-07-28 | 阿里巴巴集团控股有限公司 | 相似文本的检索方法、装置和系统 |
CN111813971A (zh) * | 2019-04-10 | 2020-10-23 | 阿里巴巴集团控股有限公司 | 哈希表构建及图像匹配方法和装置,存储介质和电子设备 |
CN111046129A (zh) * | 2019-05-13 | 2020-04-21 | 国家计算机网络与信息安全管理中心 | 基于文本内容特征的公众号信息存储方法及检索系统 |
CN110598472A (zh) * | 2019-09-18 | 2019-12-20 | 广州虎牙科技有限公司 | 设备标识方法、装置、服务器及存储介质 |
CN113284573A (zh) * | 2021-06-02 | 2021-08-20 | 山东健康医疗大数据有限公司 | 一种文档数据库检索方法与装置 |
CN113779303A (zh) * | 2021-11-12 | 2021-12-10 | 腾讯科技(深圳)有限公司 | 视频集合的索引方法、装置和存储介质及电子设备 |
CN113779303B (zh) * | 2021-11-12 | 2022-02-25 | 腾讯科技(深圳)有限公司 | 视频集合的索引方法、装置和存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104199827B (zh) | 2017-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104199827A (zh) | 基于局部敏感哈希的大规模多媒体数据的高维索引方法 | |
CN104035949B (zh) | 一种基于局部敏感哈希改进算法的相似性数据检索方法 | |
CN102609441B (zh) | 基于分布熵的局部敏感哈希高维索引方法 | |
Norouzi et al. | Fast exact search in hamming space with multi-index hashing | |
US20100106713A1 (en) | Method for performing efficient similarity search | |
CN105574212B (zh) | 一种多索引磁盘哈希结构的图像检索方法 | |
CN103744934A (zh) | 一种基于位置敏感哈希的分布式索引方法 | |
CN109166615B (zh) | 一种随机森林哈希的医学ct图像存储与检索方法 | |
CN109710792B (zh) | 一种基于索引的快速人脸检索系统应用 | |
CN102254015A (zh) | 基于视觉词组的图像检索方法 | |
CN102799614B (zh) | 基于视觉词语空间共生性的图像检索方法 | |
CN102169491B (zh) | 一种多数据集中重复记录动态检测方法 | |
Adamu et al. | A survey on big data indexing strategies | |
CN104391908A (zh) | 一种图上基于局部敏感哈希的多关键字索引方法 | |
CN105740428B (zh) | 一种基于b+树的高维磁盘索引结构和图像检索方法 | |
Hu et al. | Hamming distance based approximate similarity text search algorithm | |
Kusamura et al. | GPU acceleration of content-based image retrieval based on SIFT descriptors | |
CN110889424A (zh) | 向量索引建立方法及装置和向量检索方法及装置 | |
Levchenko et al. | Spark-parsketch: a massively distributed indexing of time series datasets | |
Zhou et al. | Large scale nearest neighbors search based on neighborhood graph | |
Zhang et al. | Hierarchical one permutation hashing: efficient multimedia near duplicate detection | |
Wei et al. | An index construction and similarity retrieval method based on sentence-bert | |
Ma et al. | Distributed data-dependent locality sensitive hashing | |
Xie et al. | Data-dependent locality sensitive hashing | |
Peng et al. | Survey on kNN |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |