一种基于微型计算平台的实时响应大媒体近邻检索方法与流程

文档序号:14870996发布日期:2018-07-06 23:47阅读:156来源:国知局

本发明涉及检索技术领域,特别涉及一种基于微型计算平台的实时响应大媒体近邻检索方法。



背景技术:

近年来,多媒体技术的快速发展使得网络中的共享多媒体数据呈指数形式增长,人们开始关注海量多媒体数据的近邻检索问题。

传统多媒体数据的特征一般为高维浮点型向量,例如sift(尺度不变特征变换)特征是128维的浮点型向量,而gist特征[2]为320维或640维的浮点型向量。若通过计算并比较浮点型特征向量之间的欧式距离来检索多媒体近邻点,其计算复杂度较高,对计算平台的性能要求较苛刻。再者,将所有浮点型数据一次性全部调入计算平台的内存中,需要占用大量的存储资源。上述两点使得微型计算平台无法实时响应海量多媒体的近邻检索请求。为此,人们提出将高维浮点型向量转化为紧凑二进制编码,并根据汉明距离关系检索多媒体近邻点。

最早提出利用二值编码检索近邻点的是局部敏感哈希算法,其采用随机的方式生成满足局部敏感特性的线性哈希映射函数。但是,算法的训练过程不依赖于训练数据集,若要得到令人满意的近邻检索结果,其所生成的二进制编码应足够长。

为了保证采用紧凑二值编码也能获取较优的近邻检索性能,人们开始探索利用机器学习方法,依据训练数据集,生成满足特定约束条件的二进制编码。谱哈希算法[4]根据数据点之间的相似性构造谱图,并通过分割相似性谱图学习数据点的二值编码。迭代量化哈希算法[5]将超立方体的顶点作为编码中心点,并根据数据点与超立方体顶点之间的距离关系生成数据点的二值编码,但超立方体的顶点是固定不变的,所生成的二值编码的空间分布自适应能力较差。k均值哈希算法[6]提出编码中心点应满足聚类分布特性,从而保证所生成的二值编码符合数据集的空间分布特性。

为了能够在汉明空间内得到较优的近邻检索性能,许多哈希算法建立了相似性保持约束条件。二值重建哈希算法[7]要求最小化数据点对的汉明距离和欧式距离之间的差值,核监督哈希算法[8]要求数据点在汉明空间和欧式空间内的相似性具有较高的一致性。上述哈希算法中的定义属于绝对相似性保持约束条件,但近似近邻检索任务更加关注数据点之间的相对相似性。三元损失哈希算法[9]要求三元组之间的相对关系在汉明空间和原空间内是一致的,序列监督哈希算法也基于三元组张量之间的相对关系定义目标函数,顶部排序监督二值编码算法重点关注近邻检索结果中排序较靠前的数据点之间的相对相似性。

多数哈希算法采用随机梯度下降算法优化原目标函数,但受二值编码长度以及随机梯度下降算法本身的局限性,单组二值编码已无法准确表达数据点之间的近邻关系。为此,人们探索生成多重二值编码,从而能够较好地解决局部优解的问题。charikar等人提出多重局部敏感哈希算法(mlsh),其采用随机的方式,生成数据点的多重二值编码,并根据平均汉明距离返回近邻点。k均值局部敏感哈希算法(klsh)[13]采用随机的方式生成多组初始中心点,并利用随机梯度下降算法优化目标函数学习多组二进制编码。与klsh算法单独生成每组二值编码的机制不同,联合倒排索引算法(jii)一次性生成数据点的多个二值编码中心点,然后依据它们之间的相似性关系对其分组,从而形成多组二值编码。



技术实现要素:

为了实现上述发明目的,本发明提出了一种基于微型计算平台的实时响应大媒体近邻检索方法。

一种基于微型计算平台的实时响应大媒体近邻检索方法,包括如下步骤:

a:学习待查询数据集的全局高维浮点特征向量集合f={f1,f2,…,fn},其中共包含n个特征向量。

b:为了保证汉明空间内的近邻检索结果与原空间内的近邻检索结果之间具有较高的一致性,本发明定义了序列保持约束条件和聚类分布约束条件。

①:序列保持约束条件。

在欧式空间内,根据fm(1≤m≤n,fm表示f中的第m个高维浮点向量)与f中其余特征向量之间的欧式距离,对f中的浮点向量进行排序,得到结果为:将f中的浮点向量映射为二进制编码后,根据它们之间的汉明距离关系,可得到另一种排序结果:本发明中的序列保持约束条件要求数据点的两种不同序列号是一致的,即在不同序列中的同一位置上具有相同的元素,其定义如下所示:

表示在欧式空间内序列号为m的特征向量,ph(·)返回该特征向量在汉明空间内的位置序号,i(·)是判断函数,若特征向量在汉明空间和欧式空间内的排列序号不一致,则目标函数的值将增加。本发明通过最小化上述目标函数,使得特征向量的不同序列号之间具有较高的一致性,从而在汉明空间内得到准确率较高的近邻检索结果。

②:聚类分布约束条件。

若将浮点向量映射成长度为bit的二进制编码,则共存在2bit种二进制编码。对于海量数据库而言,数据点的数量远远大于2bit,会有多个数据点被映射为相同编码。本发明要求拥有相同二进制编码的数据点应符合聚类分布特性,其约束条件的定义如下式所示:

c(fm)表示与fm具有相同二值编码的中心点。

c:寻找满足序列保持和聚类分布约事条件的二值编码中心点时,可采用随机梯度下降算法优化r+a。此时,为了保证算法能够快速收敛到所有极小值点,可预先粗略判断目标函数中的极小值点,并在其附近选取初始中心点。由于a的定义与聚类算法的约束条件类似,因此可利用聚类中心点估算目标函数r+a的极小值点。

①:均匀采样数据点所分布的区域,然后统计落在每一个采样区域内的高维浮点特征的数量,并将其作为区域的密度值。

②:聚类中心点周围一般会聚集大量的数据点,其密度值较大。若某区域的密度值低于平均密度值,则该区域包含聚类中心点的概率值较小,本发明将舍弃该区域。

③:若两个区域之间的距离较小,则从这两个区域中选择的初始点会使得算法收敛到相同的极值点。因此,本发明将合并距离相对较近的高密度区域。

④:经过②和③处理之后,将区域中所有数据点的均值作为候选初始中心点集合e'={p1,p2,…,pt},其中共包含t个候选初始中心点。

⑤:若t>2bit(bit表示二值编码的长度,2bit表示编码中心点的数量),则转步骤d。否则,所要寻找的中心点的数量不少于目标函数中可能存在的极小值点的数量,将只需从数据集中再随机选择2bit-t个数据点与e'中的点共同构成初始中心点集合e,并转步骤e寻找最优编码中心点。

d:构建多组初始中心点集合。

t>2bit,表明所要寻找的中心点的数量少于目标函数中极小值点的数量。若仅根据一组中心点集合,将无法找到目标函数中的所有极小值点。对于这种情况,本发明将构建多组初始中心点集合。

①:i表示数据点的序列号,j表示初始中心点集合的序列号,二者的初始值均为1。

②:初始化空集ej和e”。

③:将e'复制给e”。

④:将e”中的第i个数据点放入ej中,并从e”中删除第i个数据点。

⑤:将e”中与ej中数据点之间的最小距离值δk最大的点加入ej中,并将其从e”中删除。

δk的定义如下式所示:

δk返回e”中与ej中的所有数据点之间的最小距离值,dku表示e”中第k个数据点与ej中第u个数据点之间的距离值。

⑥:不断重复执行步骤⑤,直至ej中含有2bit个数据点,并将ej作为一组初始中心点集合。

⑦:将i和j的值均加1。

⑧:重复执行步骤②③④⑤⑥⑦,直至i和j的值为t,此时将得到t组初始中心点集合。

⑨:比较上述得到的t组初始中心点集合,合并相同的集合后,最终得到l组初始中心点集合{e1,e2,…,el},(1≤l≤t),然后转步骤e。

e:根据步骤c或d中的初始中心点集合,采用随机梯度下降算法,寻找同时满足序列保持约束条件和聚类分布约束条件的编码中心点集合。

①:为初始中心点集合中的数据点随机分配长度为bit的互不相同的二进制编码。

②:采用梯度下降算法通过最小化序列保持误差和聚类分布误差来更新每一个中心点的位置。

③:为数据点分配与其距离最近的编码中心点相同的二值编码。

④:不断重复步骤②和③,直至收敛,将得到每种二值编码所对应的中心点。若输入是由d得到的多组初始中心点,则会生成多组编码中心点集合{c1,c2,...,cl},其中共有l组编码中心点集合,并且每个集合中含有2bit个编码中心点。

f:将根据c④中的候选初始中心点集合e'建立高区分性距离表。

①:计算并比较候选初始中心点p1,p2,…,pt与集合{c1,c2,...,cl}中的中心点之间的距离值,为候选初始中心点赋予与其距离最近的编码中心点相同的二值编码。候选初始中心点的二进制编码集合为{b1,b2,…,bt},其中bi={bi1,bi2,…,bil}表示pi的多组二进制编码,1≤i≤t,bij(1≤j≤l)表示pi根据编码中心点集合cj生成的二进制编码。

②:计算距离表的每一个位置中的值。若距离表的位置索引为(b,b'),则将{b1,b2,…,bt}中能构成二值编码对(b,b')的数据点之间的距离值存储在该位置中。

g:在微型计算平台上生成查询多媒体数据的全局浮点特征fq,并根据{c1,c2,...,cl}生成fq的多组二值编码bq1,bq2,…,bql。

h:计算fq的多组二值编码与待查询数据点的多组二值编码之间的平均汉明距离,并按照从小到大的顺序排列待查询数据库中的数据点。若仅有少量数据点共享同一较小的汉明距离值,则将这些数据点作为最终的近邻检索结果,并转步骤j。否则,返回平均汉明距离值较小的数据点作为备选查询结果,并转步骤i。

i:根据后验证距离表,重新判断备选查询结果中的数据点与查询数据点之间的相似性,并对其重排序。

①:以查询数据点的多组二值编码和备选查询结果中的数据点的多组二值编码为索引,从步骤f生成的距离表中得到多组距离集合{d1,d2,…,dl}。

②:若①中有x个相同的距离集合索引,则将该集合中的距离值的出现次数减去x-1,并只保留仅出现1次的距离值。

③:比较所有距离集合中的元素,从中取出相同的元素值,并将这些元素的平均值作为衡量数据点之间相似性的依据。

④:重复步骤①②③,直至从距离表中得到备选查询结果中所有数据点与查询数据点之间的相似值。

⑤:根据上述过程中得到的相似值重新排序备选查询结果,并转步骤j。

j:返回与查询结果中排名较靠前的二值编码特征所对应的多媒体数据,作为最终的多媒体近邻查询结果。

本发明实施例提供的技术方案带来的有益效果是:本发明提出了一种学习多组二进制编码的有效机制,其可显著提升汉明空间内的近邻检索性能。本发明定义了序列保持约束条件,其属于相对相似性保持约束条件,能够保证在汉明空间内得到的近邻检索性能较优。同时,本发明还定义了聚类分布约束条件,其能保证编码中心点符合聚类分布特性,编码性能较优。

本发明提出了建立初始中心点集合的方法,其能够保证算法以较快的速度收敛到目标函数中的所有极值点。本发明通过判断目标函数中极小值点与编码中心点之间的数量关系,来决定是否生成多组二进制编码,并采用平均汉明距离评估数据点之间的相似性,从而保证在汉明空间内得到的近邻检索结果与欧式空间内的近邻检索结果之间具有较高的一致性。

本发明建立了高区分性的后验证距离表,借助该距离表能够进一步提升汉明空间内的近邻检索性能。与一般后验证距离表不同,本发明将估算到的聚类中心点之间的距离值作为不同二值索引之间的相似值,其精确度更高。

本发明先在线下训练阶段生成待查询多媒体数据的多组二值编码、多组编码中心点以及具有高区分性的后验证距离表。线上查询阶段,共分为三步:首先,提取查询多媒体数据的高维浮点型特征;然后,依据训练阶段得到的多组编码中心点,将其转化为多组二值编码,并将查询数据点和待查询数据点的多组二值编码调入微型计算平台的内存中,通过计算并比较它们之间的平均汉明距离得到初始近邻检索结果;最后,根据数据点对的二值索引,从距离表中得到数据点对之间的相似值,并对近邻检索结果重新排序,从而进一步提升近邻检索性能。

本发明的目的是建立在微型计算平台上实时响应海量多媒体近邻检索的体系,本文所提哈希算法可生成保持相对相似性的二进制编码,其更加符合近似近邻检索的本质要求,并且建立了高区分性的后验证距离表,有助于进一步提升近邻检索性能。

由于微型计算平台的运算能力和存储资源较为有限,已无法再采用传统高维浮点型特征向量来实时响应海量多媒体的近邻检索请求。针对上述问题,本发明设计了新型的哈希算法,将高维浮点向量映射为紧凑二进制编码,其存储压缩率较高,占用的存储资源较少。在汉明空间内检索近邻点时,可调用计算机的硬件指令“异或”操作来计算汉明距离,计算复杂度较低,计算速度较快。

本文发明了一种可保持高维浮点向量之间的相对相似性的哈希算法,能够保证在汉明空间内得到的近邻检索结果与欧式空间内的近邻检索结果之间具有较高的一致性。本发明不仅非常简单,而且具有较强的理论背景。本发明首先根据数据点的空间分布密度,建立候选初始中心点集,其能保证算法以较快的速度收敛到目标函数的极小值点。然后,学习满足序列保持约束条件和聚类分布约束条件的编码中心点,其可保证所生成的二进制编码能够保持数据点之间的相对相似性,并且符合数据集的聚类分布特性。最后,根据候选初始中心点集和编码中心点,建立具有强区分性的后验证距离表,其可进一步显著提升近邻检索性能。

附图说明

图1是本发明实施例生成两组两位二进制编码的流程图。

图2是本发明实施例在cifar10数据集上,本发明中的多组二值编码算法与业界较优多组二值编码算法的召回率对比结果。

图3是本发明实施例在gist1m数据集上,本发明中的多组二值编码算法与业界较优多组二值编码算法的召回率对比结果。

图4是本发明实施例在cifar10数据集上本发明中的自适应距离表和业界常用距离表提升近邻检索性能的对比结果。

图5是本发明实施例在gist1m数据集上本发明中的自适应距离表和业界常用距离表提升近邻检索性能的对比结果。

图6是本发明实施例与业界较优算法在cifar10数据集上单个图像的检索示例。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。当然,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

实施例1

本发明提供一种基于微型计算平台的实时响应大媒体近邻检索方法,首先,对于实施步骤说明中的一些概念进行解释。

一、训练过程实施步骤

1.提取多媒体图像信息的全局特征描述子:gist特征。

2.根据训练数据集的空间分布密度,学习候选初始中心点集合:e'={p1,p2,…,pt}。

3.根据候选初始中心点的数量与编码长度之间的关系,构建多组初始中心点集合:{e1,e2,…,el}。

4.根据多组初始中心点集合,采用随机梯度下降算法,通过最小化序列保持约束条件和聚类分布约束条件的值来学习多组编码中心点集合:{c1,c2,...,cl}。

5.根据候选初始中心点集e'={p1,p2,…,pt}和编码中心点集合{c1,c2,...,cl}建立高区分性的后验证距离表。

6.将海量多媒体的二值特征、编码中心点集合、后验证距离表存储到磁盘上,完成训练过程。

二、检索过程实施步骤

1.由微型计算平台获取查询输入,并提取输入图像的gist特征。

2.根据编码中心点集合,生成查询图像的多组二进制特征。

3.计算查询数据集与待查询数据集之间的平均汉明距离,并返回排名较靠前的数据点,作为备选查询结果。

4.若有大量数据点与查询数据点之间的汉明距离相同,则转步骤5,否则转步骤6。

5.以查询数据点和待查询数据点的二值编码为索引,从后验证距离表中获取它们之间的相似值,并对备选查询结果重新排序。

6.返回查询结果中排名靠前的二值特征所对应的多媒体作为最终查询结果。下面,对本发明的实施示例进行具体描述

1.gist特征:一种高维浮点型向量,属于全局特征描述子,与图像之间是一一对应的关系。因此,gist特征的近邻检索结果就是多媒体数据的近邻检索结果。

2.随机梯度下降算法:该算法沿着目标函数的梯度方向更新参数值,从而保证算法能够快速收敛到极小值,但该算法具有局部最优性,其收敛速度和收敛结果与所选择的初始点有关。若初始点在极值点附近,则算法的收敛速度较快,并且在不同极值点附近选择初始点,将使得算法在不同的极值点处收敛。

3.哈希算法:一种将高维浮点向量映射至低维汉明空间内的方法,其可将高维浮点向量表示成紧凑二进制编码。一般哈希算法要满足局部敏感特性,即以较大的概率将原空间内的相似数据点映射为相近二值编码。

4.rch:采用随机的方式生成一组初始中心点,并利用本发明中的算法体系生成数据点的一组二值编码。

5.krch:采用随机的方式生成多组编码中心点,并利用本发明中的算法体系生成数据点的多组二值编码。

6.mrch:本发明所提出的算法体系,其根据数据集的空间分布密度,生成多组编码中心点,并通过优化序列一致性目标函数,得到数据点的多组二值编码。

实施例2:

数据集:gist1m数据集和cifar10数据集,这两个数据集较为流行,常被用来测试近邻检索系统的性能。gist1m数据集含有10万个训练样本、100万个待查询数据点以及1万个查询样本数据点。cifar10数据集含有10类图像集,每类图像集中含有5000幅训练图像和1000幅查询图像。本发明采用gist算法提取cifar10数据集中训练图像和测试图像的全局特征描述子。

评价指标:采用能够体现检索性能的通用指标召回率和精确度,来对比本发明和业界其他较优方法。

与本发明作对比的业界较优方法包括jii、klsh、mlsh和lsh。

分析每种算法的近邻检索结果,并计算得到本发明及各个算法在不同数据集上的召回率曲线及精确度值。

方案示例的比较结果如图2、图3、图4、图5和图6所示。

图2为在cifar10数据集上,本发明中的多组二值编码算法与业界较优多组二值编码算法的召回率对比结果。从上至下,每一行中的编码长度分别为32、64和128。从左至右,每一列中的二进制编码组数分别为4和8。

图3为在gist1m数据集上,本发明中的多组二值编码算法与业界较优多组二值编码算法的召回率对比结果。从上至下,每一行中的编码长度分别为32、64和128。从左至右,每一列中的二进制编码组数分别为4和8。

图4为在cifar10数据集上本发明中的自适应距离表和业界常用距离表提升近邻检索性能的对比结果。从上至下,每一行中的编码长度分别为32、64和128。从左至右,每一列中的二进制编码组数分别为4和8。

图5为在gist1m数据集上本发明中的自适应距离表和业界常用距离表提升近邻检索性能的对比结果。从上至下,每一行中的编码长度分别为32、64和128。从左至右,每一列中的二进制编码组数分别为4和8。

图6为本发明与业界较优算法在cifar10数据集上单个图像的检索示例。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1