多媒体数据高维索引及kNN检索方法

文档序号:6371930阅读:134来源:国知局
专利名称:多媒体数据高维索引及kNN检索方法
技术领域
本发明涉及数据索引及检索技术,尤其涉及一种多媒体数据高维索引及kNN检索方法。
背景技术
随着数字娱乐设备的逐渐普及,图像、视频、音频等多媒体数据在数据量上出现了大幅增长,而基于多媒体数据的内容进行检索的技术,尤其是kNN (k-Nearest Neighbor,k近邻)检索技术,也变得越来越重要。在图像检索领域,待检索图像可以通过多媒体高维索引和kNN检索技术找到与其最相似的多个图像。在视频检索领域,系统可根据待检索视频片段的高维视觉特征,以及待检索视频片段的高维音频特征,基于高维索引和kNN检索技术,快速找到与待检索视频片段的最为相似的多个视频片段。因此,多媒体数据的高维索引技术及其kNN检索方法是多媒体数据检索的核心技术,有着非常广泛的应用前景。目前,已有的多媒体数据的高维索引及kNN检索技术存在着一定的局限性,主要表现在1、现有高维索引技术通常只考虑通过建立层次型高维索引的方式来减少kNN检索过程中的输入输出(I/O)开销,而未解决高维kNN检索时计算开销大的问题。2、现有的基于剪枝技术的kNN检索方法,如Branch-and-Bound和INN方法,采用了复杂的,计算开销很大的剪枝度量规则,即通过最短距离算法计算每个候选节点或数据对象到待检测数据的距离来进行数据过滤和剪枝。整个剪枝处理过程开销很大。

发明内容
本发明提供一种多媒体数据高维索引及kNN检索方法,以解决现有技术中计算开销大的问题。本发明实施例提供一种多媒体数据高维索引及kNN检索方法,包括构建多个多媒体数据的高维索引,其中,每个多媒体数据包括多个数据对象,所述高维索引包括多个节点和所述多个多媒体数据的数据对象,每个节点包括所述节点的节点中心到所述节点对应的子节点的节点中心或数据对象的距离;根据kNN检索算法,在所述高维索引中确定出待检索数据的检索范围及候选索引节点集合;根据所述检索范围及所述候选索引节点集合内各节点包括的所述距离,对所述候选索引节点集合进行剪枝处理,得出所述待检索数据的检索结果。 通过上述内容可知,本发明实施例通过在构建多媒体数据的高维索引时存入每个节点的节点中心到节点对应的子节点的节点中心或数据对象的距离,并依据该存储的距离,对根据kNN检索算法得到的候选索引节点集合进行剪枝处理,避免了现有技术中需要对每个候选节点或数据对象进行基于最短距离算法的剪枝处理,有效地降低检索过程中剪枝处理的计算开销。


图1为本发明实施例提供的多媒体数据高维索引及检索方法的流程示意图;图2为本发明实施例提供的多媒体数据高维索引的一具体实例的示意图;图3为采用本发明实施例提供的多媒体数据高维索引及检索方法对中间节点采用下限距离进行剪枝处理的示例图;图4为采用本发明实施例提供的多媒体数据高维索引及检索方法对中间节点采用上限距离进行剪枝处理的示例图;图5为采用本发明实施例提供的多媒体数据高维索引及检索方法对叶子节点采用下限距离进行剪枝处理的示例图。
具体实施例方式如图1所示,本发明实施例提供的多媒体数据高维索引及kNN检索方法的流程示意图。本实施例所述方法包括步骤S1、构建多个多媒体数据的高维索引,其中,每个多媒体数据包括多个数据对象,所述高维索引包括多个节点和所述多个多媒体数据的数据对象,每个节点包括所述节点的节点中心到所述节点对应的子节点的节点中心或数据对象的距离。其中,所述多媒体数据包括图像、视频和音频等数据。每个多媒体数据包括多个数据对象。实际应用中,为快速检索到多媒体数据,多媒体数据通常被表示为高维特征向量的形式,并根据高维特征向量建立高维索引,所述高维索引包括多个节点和所述多个多媒体数据的数据对象。如图2所示,所述高维索引为层次型,包括由上至下层级排列的一层根节点层、至少一层中间节点层1、一层叶子节点层2及数据对象层3。上层节点是下层节点的父节点,下层节点是上层节点的子节点。图2所示的高维索引实例图仅示出了一层中间节点层1、一层叶子节点层2及一层数据对象层,未示出根节点层。本实施例中所构建的高维索引中各节点均存储了节点的节点中心到节点对应的子节点的节点中心或数据对象的距离。如图2中所示,根节点R包括节点R的节点中心到节点R的下一层级中间节点R2的节点中心的距离Dk2 ;中间节点Rl包括中间节点Rl的节点中心到Rl的子节点R4的节点中心的距离Dk4 ;所述中间节点Rl还包括中间节点Rl的节点中心到Rl的子节点R5的节点中心的距离DK5。同样地,所述叶子节点R3包括叶子节点R3的节点中心到数据对象I的距离Diij各节点存储的距离,将在后续检索过程中用于进行剪枝处理,以降低现有技术中仅采用最短距离方法进行剪枝处理的计算开销。步骤S2、根据kNN检索算法,在所述高维索引中确定出待检索数据的检索范围及候选索引节点集合。具体地,所述检索算法可以是kNN检索。检索引擎首先采用kNN检索方法确定出所述待检索数据的检索半径,然后根据所述检索半径确定出以所述检索半径为半径,所述待检索数据为圆心的检索范围。其中,所述候选索引节点集合中的节点为与所述检索范围重叠的节点。步骤S3、根据所述检索范围及所述候选索引节点集合内各节点包括的所述距离,对所述候选索引节点集合进行剪枝处理,得出所述待检索数据的检索结果。
其中,所述剪枝处理过程就是判断所述候选索引节点集合中的节点对应的子节点或数据对象是否与所述检索范围重叠,将不与所述检索范围重叠的子节点或数据对象剪去。实际上,要得出所述待检索数据的检索结果,检索引擎需要对所述候选索引节点集合进行多次剪枝处理。所述剪枝处理的次数决定了所述待检索数据的检索结果的检索精度。本实施例提供的所述多媒体数据高维索引及kNN检索方法,通过构建各节点包含距离信息的高维索引来降低检索过程中的剪枝处理的计算开销,有效地提高了多媒体数据的检索效率。进一步地,上述实施例中步骤1,所述的构建多媒体数据的高维索引具体的可以采用如下步骤来实现,包括步骤S101、根据数据划分策略对检索数据特征向量数据进行划分,生成高维索引。
其中,基于数据划分策略构建多媒体数据的高维索引的技术可以分为两大类。第一类是最小绑定矩形(Minimum Bounding Rectangle,MBR)划分策略,MBR划分策略是将多媒体特征向量数据进行矩形划分形成层次型的高维索引。第二类是最小绑定球体(MinimumBounding Sphere, MBS)划分策略,MBS划分策略是将多媒体特征向量数据进行球形划分形成层次型的高维索引。由于第一类MBR划分策略在高维空间中具有更小的体积,从而使得对象间通常具有更小的重叠概率,因此,在构建基本的多媒体高维索引时,优选采用基于MBR划分策略构建多媒体数据的高维索引。步骤S102、计算出所述高维索引中个节点的节点中心到所述节点对应的子节点的节点中心或数据对象的距离,并将所述距离存储于所述节点内。其中,所述高维索引包括一层根节点层、至少一层中间节点层、叶子节点层及数据对象层。所述高维索引中根节点层、中间节点层及叶子节点层中的各节点均包括距离信息。具体地,高维索引构建引擎在构建所述高维索引后,分别计算高维索引中根节点的节点中心到所述根节点对应的下一层级中间节点的节点中心的距离,中间节点的节点中心到所述中间节点对应的下一层级中间节点的节点中心或叶子节点的节点中心的距离,以及叶子节点的节点中心到所述叶子节点对应的数据对象的距离,并将计算得出的距离存储到对应的根节点、中间节点或叶子节点内。所述高维索引包括由上至下层级排列的根节点、中间节点、叶子节点及数据对象。其中,所述根节点对应的子节点为中间节点,所述叶子节点的父节点为所述中间节点,所述叶子节点对应的下一层级为数据对象。所述根节点、中间节点和叶子节点均包括各自的节点标识,各自的节点中心坐标、各自包含的数据对象的数量以及所述距离,叶子节点包含的数据对象的数量为所述叶子节点对应的数据对象的数量,根节点、中间节点包含的数据对象的数量为所有子节点包含的数据对象的数量之和。具体地,如图2所示,高维索引中根节点R和中间节点Rl的存储区域内存储有如下内容,具体表现为如下形式(ID, C,LB, RU, #objects, #subregions, dists, Dfd, Ei)E1: (LBi, RUi, Sobjectsi, Pointeri),其中 I < i < n, Nmin ^ n ^ Nmax,且n=#subregions0其中,ID为根节点R或中间节点Rl的标识信息。C为根节点R或中间节点Rl的中心坐标。LB为基于MBR划分策略划分成的根节点R或中间节点Rl矩形的第一边界,通常为划分矩形的左下角坐标。RU为基于MBR划分策略划分成的根节点R或中间节点Rl矩形的第二边界,通常为划分矩形的右上角坐标。#objects为根节点R或中间节点Rl包含的数据对象的数量。dists为根节点R或中间节点Rl的中心C到中间节点的节点中心或叶子节点的节点中心的距离。若根节点R或中间节点Rl的下一层级中间节点或叶子节点为两个或两个以上,dists中包含有根节点R或中间节点Rl的节点中心分别到各中间节点的节点中心或叶子节点的节点中心的距离。Dfd为距离根节点R或中间节点Rl的节点中心最远的数据对象到根节点R或中间节点Rl的节点中心的距离。Ei为根节点R或中间节点Rl的子节点E1. ...,En(Nmin彡η彡Nmax)其中,Nmax是根节点R或中间节点Rl所允许包含的中间节点或叶子节点数目的上限。2乞N11…,<「Μ.γ/2],Mn是根节点R或中间节点Rl的扇出(fanout)。每个元组Ei对应着一个节点,该节点可能是中间节点或叶子节点。Ei由四部分组成基于MBR划分策略划分成的根节点R或中间节点Rl对应下一层级中间节点或叶子节点的矩形的第一边界LBi,即矩形的左下角坐标;基于MBR划分策略划分成的根节点R或中间节点Rl对应下一层级中间节点或叶子节点的矩形的第一边界RUi,即矩形的右上角坐标;节点所包含的数据对象的数量Sobjectsi ;以及指向子节点的指 针 Pointeri0如图2所示,高维索引中叶子节点R3的存储区域内存储有如下内容,具体表现为如下形式(ID, C,LB, RU, #objects, dists, Dfd, Ei)E1: (Pointeri),其中 I < i < n, Lmin ^ η ( Lmax,且 n=#ob jects其中,ID为叶子节点R3的标识信息。C为叶子节点R3的中心坐标。LB为基于MB划分策略划分的叶子节点R3的矩形的第一边界,即矩形的左下角。RU为基于MB划分策略划分的叶子节点R3的矩形的第二边界,即矩形的右上角。《objects为叶子节点R3所包含的数据对象的数量。dists为叶子节点R3的中心C到叶子节点R3对应的数据对象的距离。若所述叶子节点R3对应的数据对象为两个或两个以上,dists应包括叶子节点R3的中心C到叶子节点R3对应的所有数据对象的距离。Ei为叶子节点R3对应的数据对象E1. ...,En(Lmin彡η彡Lmax),其中Lmax是叶子节点R3所允许包含的数据对象的上限;
2< Lmill < [Λ+/ι_/2],Mlj是叶子节点R3的扇出(fanout)。每个Ei包含了指向相应数据对象的指针。进一步地,上述实施例中步骤2,所述的根据kNN检索算法,在所述高维索引中确定出待检索数据的检索范围及候选索引节点集合,具体可采用如下步骤来实现,包括步骤S201、根据最短距离算法,计算出所述待检索数据与中间节点的节点中心的距离,所述中间节点为所述根节点下一层级中的任一中间节点。实际检索过程中,检索引擎在所述高维索引中任选一个根节点的子节点,即中间节点,计算出该选出的中间节点的中心到所述待检索数据的距离。其中,本步骤中选择中间节点的目的是为了避免漏检的问题出现。步骤S202、根据所述待检索数据与所述中间节点的节点中心的距离,确定检索范围。具体地,检索引擎根据上述步骤中计算得出的距离,确定出以所述待检索数据与所述中间节点的节点中心的距离为半径,所述待检索数据为中心的检索范围。步骤S203、判断检索服务器内存中的节点是否与所述检索初始范围重叠,若是,将所述节点存储于候选索引节点集合内。一般情况下,所述检索服务器内存中存储有前次检索过程中调入到所述内存中的节点。所述检索服务器内存中至少存在有一个节点,最坏的情况下,内存中只有一个根节点。检索引擎选择首先判断内存中的节点,可避免重新调取高维索引中的节点的开销,降低检索过程中的输入开销。具体地,检索引擎计算内存中的节点的节点中心到所述待检索数据的距离,若距离小于所述检索范围的检索半径,则该节点与所述检索范围重叠。将与所述检索范围重叠的节点存储到候选索引节点集合内。步骤S204、判断所述候选索引节点集合内所有节点所包含的数据对象的数量总和是否等于预设值,若否,则按照预设比例扩大或缩小所述检索范围,确定出所述高维索引中与扩大或缩小后的所述检索范围重叠的节点,并将重叠的节点依次存储于所述候选索引节点集合内,直至所述候选索引节点集合内所有节点所包含的数据对象的数量总和等于所述预设值。具体地,根据所述候选索引节点集合内各节点包括的数据对象的数量,检索引擎计算出所述候选索引节点集合内所有数据对象的数量总和。然后,检索引擎判断所述数据对象的数量总和是否等于kNN检索中的参数K。其中,所述参数K是一个预设值,该值可依据检索经验人为设定。若所述候选索引节点集合内所有数据对象的数量总和等于所述参数K,则所述检索范围及所述候选索引节点集合即为检索引擎最终确定出的检索范围和候选索引节点集

口 ο若所述候选索引节点集合内所有数据对象的数量总和不等于所述参数K,则分为两种情况情况一,所述数据对象的数量总和小于参数K,检索引擎依据预设的比例扩大所述检索范围,确定新的检索范围。然后检索引擎再根据最短距离算法,即MinDist计算程序,确定出所述高维索引中哪些节点的中心到所述待检索数据之间的距离小于扩大后的检索范围的半径,并将确定出的节点存储到所述候选索引节点集合内,然后继续执行本步骤。情况二、所述数据对象的数量总和大于参数K,检索引擎依据预设的比例缩小所述检索范围,确定新的检索范围。然后检索引擎再根据最短距离算法,即MinDist计算程序,确定出所述高维索引中哪些节点的中心到所述待检索数据之间的距离小于缩小后的所述检索范围的半径,并将确定出的节点存储到所述候选索引节点集合内,然后继续本步骤。通过上述步骤,检索引擎最终能确定出包含的所有数据对象的数量总和等于参数K的候选索引节点集合,以及经缩小或扩大后最终确定出的检索范围。进一步地,上述实施例中所述步骤3,所述的根据所述检索范围及所述候选索引节点集合内节点包括的所述距离,对所述候选索弓丨节点集合进行剪枝处理,得出所述待检索数据的检索结果,包括步骤S301、根据最短距离算法,计算所述候选索引节点集合内各节点的节点中心到所述待检索数据的距离。步骤S302、根据各节点的节点中心到所述待检索数据的距离以及各节点包括的所述距离,对所述候选索引节点集合进行第一次剪枝处理。其中,所述对所述候选索引节点集合进行第一次剪枝处理,包括步骤S3021、把集合中各节点对应的各子节点或数据对象添加到集合中。
步骤S3022、根据以下公式,计算出所述待检索数据到各节点对应的子节点的节点中心或数据对象的下限距离dlOT ;
权利要求
1.一种多媒体数据高维索引及kNN检索方法,其特征在于,包括 构建多个多媒体数据的高维索引,其中,每个多媒体数据包括多个数据对象,所述高维索引包括多个节点和所述多个多媒体数据的数据对象,每个节点包括所述节点的节点中心到所述节点对应的子节点的节点中心或数据对象的距离; 根据kNN检索算法,在所述高维索引中确定出待检索数据的检索范围及候选索引节点集合; 根据所述检索范围及所述候选索引节点集合内各节点包括的所述距离,对所述候选索引节点集合进行剪枝处理,得出所述待检索数据的检索结果。
2.根据权利要求1所述的多媒体数据高维索引及kNN检索方法,其特征在于,所述构建检索数据的高维索引,包括 根据数据划分策略对多媒体数据进行划分,生成高维索引; 计算出所述高维索引中各节点的节点中心到所述节点对应的子节点的节点中心或数据对象的距离,并将所述距离存储于所述节点内。
3.根据权利要求1或2所述的多媒体数据高维索引及kNN检索方法,其特征在于,所述高维索引包括由上至下层级排列的根节点、中间节点、叶子节点及数据对象;其中, 所述根节点对应的子节点为中间节点,所述叶子节点的父节点为所述中间节点,所述叶子节点对应的下一层级为数据对象; 所述根节点、中间节点和叶子节点均包括各自的节点标识,各自的节点中心坐标、各自包含的数据对象的数量以及所述距离,叶子节点包含的数据对象的数量为所述叶子节点对应的数据对象的数量,根节点、中间节点包含的数据对象的数量为所有子节点包含的数据对象的数量之和。
4.根据权利要求3所述的多媒体数据高维索引及kNN检索方法,其特征在于,所述根据kNN检索算法,在所述高维索引中确定出待检索数据的检索范围及候选索引节点集合,包括 根据最短距离算法,计算出所述待检索数据与中间节点的节点中心的距离,所述中间节点为所述根节点下一层级中的任一中间节点; 根据所述待检索数据与所述中间节点的节点中心的距离,确定检索范围; 判断检索服务器内存中的节点是否与所述检索范围重叠,若是,将所述节点存储于候选索引节点集合内;所述检索服务器内存中存储有前次检索处理过程中调入到所述内存中的节点; 判断所述候选索引节点集合内所有节点所包含的数据对象的数量总和是否等于预设值,若否,则按照预设比例扩大或缩小所述检索范围,确定出所述高维索引中与扩大或缩小后的所述检索范围重叠的节点,并将重叠的节点依次存储于所述候选索引节点集合内,直至所述候选索引节点集合内所有节点所包含的数据对象的数量总和等于所述预设值。
5.根据权利要求3所述的多媒体数据高维索引及kNN检索方法,其特征在于,所述的根据所述检索范围及所述候选索引节点集合内节点包括的所述距离,对所述候选索引节点集合进行剪枝处理,包括 根据最短距离算法,计算所述候选索引节点集合内各节点的节点中心到所述待检索数据的距离;根据各节点的节点中心到所述待检索数据的距离以及各节点包括的所述距离,对所述候选索引节点集合进行第一次剪枝处理; 其中,对所述候选索引节点集合进行第一次剪枝处理,包括 把集合中各节点对应的各子节点或数据对象添加到集合中; 根据以下公式,计算出所述待检索数据到各节点对应的子节点或数据对象的下限距离
6.根据权利要求5所述的多媒体数据高维索引及kNN检索方法,其特征在于,所述对所述候选索引节点集合进行第一次剪枝处理,还包括 若所述候选索引节点集合中的节点为根节点或中间节点,则 根据以下公式,计算出所述待检索数据到所述节点的子节点的节点中心的上限距离
7.根据权利要求5或6所述的多媒体数据高维索引及kNN检索方法,其特征在于,所述根据所述节点的中心到所述待检索数据的距离以及所述节点包括的所述距离,对所述候选索引节点集合进行第一次剪枝处理之后,还包括 对所述第一次剪枝处理后的候选索引节点集合进行第二次剪枝处理; 所述对所述候选索引节点集合进行第二次剪枝处理,包括 根据最短距离算法,计算出所述候选索引节点集合内节点的子节点的节点中心或数据对象到所述待检索数据的距离; 若所述子节点的节点中心或数据对象到所述待检索数据的距离大于所述检索范围的半径,则所述子节点或数据对象不为候选节点或候选数据对象,将所述子节点或数据对象从所述候选索引节点集合中删除。
全文摘要
本发明提供一种多媒体数据高维索引及kNN检索方法,包括构建多个多媒体数据的高维索引,高维索引包括多个节点和多个多媒体数据的数据对象,每个节点包括节点的节点中心到节点对应的子节点的节点中心或数据对象的距离;根据kNN检索算法,在高维索引中确定出待检索数据的检索范围及候选索引节点集合;根据检索范围及候选索引节点集合内各节点包括的距离,对候选索引节点集合进行剪枝处理得出待检索数据的检索结果。本发明通过在构建多媒体数据的高维索引时存入每个节点的节点中心到节点对应的子节点的节点中心或数据对象的距离,并依据该存储的距离,对得到的候选索引节点集合进行剪枝处理,有效地降低检索过程中剪枝处理的计算开销。
文档编号G06F17/30GK102999542SQ20121020949
公开日2013年3月27日 申请日期2012年6月21日 优先权日2012年6月21日
发明者杜小勇, 张孝, 王珊, 李晖 申请人:杜小勇
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1