分布式海量指纹识别方法技术

技术编号:10560830 阅读:99 留言:0更新日期:2014-10-22 14:36
本发明专利技术公开了一种分布式海量指纹识别方法,解决现有技术无法快速对海量指纹进行实时查询的问题。本发明专利技术的识别方法主要是先构建分布式索引,然后再通过分布式检索的形式检索待检索的指纹,具体则是将索引的构造和检索放到多个计算节点上并行执行,提高了索引构造和检索的效率,同时解决了高维描述符表示下索引计算开销大的问题。

【技术实现步骤摘要】
分布式海量指纹识别方法
本专利技术涉及指纹识别,具体涉及一种分布式海量指纹识别方法。
技术介绍
随着计算机图像处理和模式识别等相关技术的不断发展,生物识别技术得到了越来越广泛的应用。所有可用于识别的生物特征,比如指纹、声音、视网膜、DNA、人脸等,指纹是最被广泛应用的生物特征,据统计占到生物识别市场份额的50%以上。指纹具有唯一性、终生不变性、便于采用及可靠性高等优点,已经成为个人身份认证最有效的手段之一,是具有法律效力的生物特征指纹识别系统的用途主要有两类:验证(Verification)和辨识(Identification)。验证就是指通过把一个现场采集到的指纹与一个已经登记的指纹进行一对一的对比(one-to-onematching),来确认身份的过程。而辨识则指的是把现场采集到的指纹同指纹数据库中的指纹逐一对比,从中找出与现场指纹相匹配的指纹的过程(one-to-manymatching)。验证和辨识在匹配算法和系统设计上各具技术特点。例如验证系统一般只考虑对完整的指纹进行比对,而辨识系统还需要考虑残纹的比对;验证系统对比对算法的速度要求不如辨识系统高,但更强调易用性;另外在辨识系统中,一般要使用分类计数来加快查询的速度。目前,指纹识别技术已经日趋成熟,优秀的指纹识别算法不断地被提出,但是绝大多数都是只关注了如何提高匹配的准确率,而忽略了匹配的时间开销,换句话说,它们并没有在海量数据下考虑问题。这样就导致了海量指纹数据下的识别是一个极具挑战性的课题,存在的问题有:(1)在算法上需要一种能够对指纹数据分类或者建立索引的解决方法,从而能够加快指纹的识别;(2)单节点的计算能力有限,不满足海量数据下实时查询的需求;(3)如果采用分布式实现,怎么样才能充分的使整个指纹识别过程并行,从而能够快速的返回结果。
技术实现思路
本专利技术的目的在于提供一种分布式海量指纹识别方法,解决现有技术无法快速对海量指纹进行实时查询的问题。为了实现上述目的,本专利技术采用的技术方案如下:分布式海量指纹识别方法,包括分布式索引构造步骤:A、管理端将训练图像集经上传节点上传到云存储系统中,上传完成后向主节点发起索引构造任务(此时指纹图像已经散列到了多个构造/查询节点上);B、主节点拆分构造任务(按照构造/查询节点的个数,将图像集均分到各个构造子任务中,每个构造/查询节点负责一个构造子任务),并将拆分后的构造子任务下发给各个构造/查询节点;C、构造/查询节点收到任务后,对任务中包含的指纹图像集提取特征向量,并将这些特征向量存储到云存储系统中,同时将特征向量的key(唯一标识一个特征向量)与指纹图像间的关系存储到局部“<特征向量key,图像名>”关系map(关系映像)中;D、对每一个特征向量V,计算gj(V)(j=1,2,...L)得到哈希值(二进制串),然后计算哈希值得到对应数值h,然后将特征向量V的key放到哈希表j的桶h(h=1,2,...M)中;其中,一个哈希表是由一个哈希函数决定,一个哈希表由多个桶组成,每个特征向量由哈希函数计算后都会得到一个子串(哈希函数将高纬二进制串表示形式的特征向量变为低纬),计算该二进制子串对应的数值(如:101对应5)就是桶的编号即h,哈希值相同的向量会被放在同一个桶中;E、上一阶段执行完后,分别对每一个哈希表j(j=1,2,...L)中的每一个桶h(h=1,2,...M),计算j和h的乘积:r=j*h,接着计算哈希值H(r),哈希函数定义为:H(key)=keyMod(p)(p≤key)(p为系统中构造/查询节点个数);接着将数字j和h拼接为字符串s(如:j=10,h=1024,那么字符串s为“101024”),该字符串唯一标识一个桶;然后将该桶以“<字符串s,特征向量key集合>”的形式经由网络发送给H(r)对应的构造/查询节点;当所有的桶都根据哈希值放到对应的节点后,构造子任务结束;F、构造/查询节点在构造子任务完成后,将完成消息报告给主节点,该消息中包含之前步骤中得到的局部“<特征向量key,图像名>”关系map;当所有构造/查询节点都成功返回后,主节点合并局部“<特征向量key,图像名>”关系map得到全局的“<特征向量key,图像名>”关系map;至此,构造任务完成,索引构造流程结束。分布式指纹检索步骤:a、客户端向网关发送图像检索请求(请求中包含待检索指纹图像);b、网关收到请求后,对待检索的指纹图像提取特征向量,并形成检索任务下发到主节点上;c、主节点收到检索任务后,将待检索指纹图像的每一个特征向量计算gj(V)(j=1,2,...L)得到哈希值,然后根据哈希值和哈希扰动向量组(根据哈希值中二进制位数,使用第三方库自动生成)计算得到桶编号h(h=1,2,...M);接着如上述构造流程中(5)步骤一样:首先计算H(j*h)得到该特征向量对应的桶所在的构造/查询节点;然后,将数字j和h拼接为字符串s,标志出该桶;然后,主节点将包含特征向量和字符串s的检索子任务发送给H(j*h)对应的节点(每个特征向量对应一个子任务);d、构造/查询节点收到检索子任务后,根据任务中桶的标识找到对应桶,并根据该哈希桶中存放的特征向量的key,将这些特征向量从云存储系统中读出;接着让待检索特征向量与桶中的特征向量集做海明距离计算,过滤掉不满距离条件的特征向量;任务完成后向主节点返回成功消息(消息中包含满足距离条件的特征向量的key);e、主节点收到所有构造/查询节点的回复消息后,根据消息中特征向量的key,查找全局“<特征向量key,图像名>”关系map,找出满足条件的特征向量对应的图像名,接着以“<图像名,命中次数>”的形式记录该结果(命中次数初始化为1,如果后面出现相同的图像名则命中次数加1);然后按照命中次数对结果进行排序(命中次数越多表示越相似),最后选出前k个图像名作为检索结果返回给客户端。本专利技术与现有技术相比,具有以下优点及有益效果:本专利技术将索引的构造和检索放到多个计算节点上并行执行,提高了索引构造和检索的效率,同时解决了高维描述符表示下索引计算开销大的问题。附图说明图1为细节点柱形结构示意图一。图2为细节点柱形结构示意图二。图3为柱形结构中空间坐标相邻的细节点示意图。图4为函数1-(1-sr)b曲线图。图5为Multi-ProbeLSH检索关键流程图。图6为Multi-ProbeLSH索引构造总体流程图。图7为Multi-ProbeLSH图像检索总体流程图。图8为本专利技术分布式索引构造系统架构图。图9为本专利技术分布式检索系统框架图。具体实施方式下面结合附图和实施例对本专利技术作进一步说明,本专利技术的实施方式包括但不限于下列实施例。实施例细节点柱状编码:2010年,Cappelli等人提出了一种新的指纹特征描述符,即细节点柱形编码(minutiacylinder-code,MCC),将指纹特征的描述方式由传统的二维扩展到了三维,是近年来提出的十分杰出的指纹特征描述方式,并且已经取得了很好的实验和工程效果。如图1~3所示,柱状编码中每个局部结构都是由中心细节点周围的一个半径为R,高度为2π的柱形来表示,柱形中各个小长方体本文档来自技高网
...
分布式海量指纹识别方法

【技术保护点】
分布式海量指纹识别方法,其特征在于,包括以下步骤:(1)构造分布式索引;(2)分布式检索待识别指纹;其中,所述构造分布式索引的步骤如下:A、将训练图像集上传到云存储系统中,上传完成后向主节点发起索引构造任务;B、主节点拆分构造任务,并将拆分后的构造子任务下发给各个构造/查询节点;C、构造/查询节点收到任务,对任务中包含的指纹图像集提取特征向量V,并将这些特征向量存储到云存储系统中;同时对每个特征向量V指定一个唯一标识key,并将每个特征向量的key与指纹图像间的关系存储到关系映射中;D、对每一个特征向量V,通过执行哈希函数并计算哈希值得到h,然后将特征向量V的key存到哈希表j的桶h中;E、对每一个哈希表j中的每一个桶h,计算j和h的乘积:r=j*h,接着计算哈希值H(r),接着将数字j和h拼接为字符串s,该字符串唯一标识一个桶,然后将该桶发送给H(r)对应的构造/查询节点,构造子任务结束;F、构造/查询节点在构造子任务完成后,将完成消息报告给主节点,至此,构造任务完成,索引构造流程结束。

【技术特征摘要】
1.分布式海量指纹识别方法,其特征在于,包括以下步骤:(1)构造分布式索引;(2)分布式检索待识别指纹;其中,所述构造分布式索引的步骤如下:A、将训练图像集上传到云存储系统中,上传完成后向主节点发起索引构造任务;B、主节点拆分构造任务,并将拆分后的构造子任务下发给各个构造/查询节点;C、构造/查询节点收到任务,对任务中包含的指纹图像集提取特征向量V,并将这些特征向量存储到云存储系统中;同时对每个特征向量V指定一个唯一标识key,并将每个特征向量的key与指纹图像间的关系存储到关系映射中;D、对每一个特征向量V,通过执行哈希函数并计算哈希值得到h,然后将特征向量V的key存到哈希表j的桶h中;E、对每一个哈希表j中的每一个桶h,计算j和h的乘积:r=j*h,接着计算哈希值H(r),接着将数字j和h拼接为字符串s,该字符串唯一标识一个桶,然后将该桶发送给H(r)对应的构造/查询节点,构造子任务结束;F、构造/查询节点在构造子任务完成后,将完成消息报告给主节点,至此,构造任务完成,索引构造流程结束。2.根据权利要求1所述的分布式海量指纹识别方法,其特征在于,所述分布式检索待识别指纹的步骤如下:a、客户端向网关发送图像检索请求;b、网关收到请求后,对待检索的指纹图像提取特征向量,并形成检索任务下发到主节点上;c、主节点收到检索任务后,将待检索指纹图像的每一个特征向量通过哈希函数计算得到哈希值,然后根据哈希值和哈希扰动向量组计算得到桶编号h;接着计算H(j*h)得到该特征向量对应的桶所在的构造/查询节点;然后,将数字j和h拼接为字符串s,标志出该桶;随后主节点将包含特征向量和字符串s的检索子任务发送给H(j*h)对应的构造/查询节点;d、构造/查询节点收到检索子任务后,根据任务中的桶的标识找到对应桶,并根据该哈希桶中存放的特征向量的key,将这些特征向量从云存储系统中读出,接着让待检索特征向量与桶中的特征向量集做海明距离计算,过滤掉不满距离条件的特征向量,任务完成后向主节点返回成功消息;e、主节点收到所有构造/查询节点的回复消息后,根据消息中特征向量的key,找出满足条件的特征向量,并按照命中次数对结果进行排序,最后选出前k个图像名作为检索结果返回给客户端。3.根据权利要求2所述的分布式海量指纹识别方法,其特征在于,所述构造分布式索引的具体步骤如下:A、管理端将训练图像集经上传节点上传到云存储系统中,上传完成后向主节点发起索引构造任务;B、主节点拆分构造任务,也就是按照构造/查询节点的个数,将图像集均分到各个构造子任务中,每个构造/查询节点负责一...

【专利技术属性】
技术研发人员:段翰聪梁尧张苗张杰李晓东孟庆康刘威
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川;51

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

1