论文部分内容阅读
在日新月异的信息时代,大数据的出现给我们对于数据存储和处理带来了新的问题与挑战。在生物识别技术领域中,指纹识别技术的地位越来越重要,在身份识别和信息安全中发挥的作用也越来越突出。指纹识别技术中的大数据问题主要体现在海量指纹带来的存储和处理问题。传统的单机模式的指纹识别系统对于处理海量的指纹数据已经无法解决此问题,极低的指纹识别效率以及可能带来的匹配准确率问题催生了分布式指纹识别系统的出现。分布式的指纹识别系统依靠分布式集群自身的并行处理能力,有效地解决了海量指纹数据的处理问题。而如何更高效的进行指纹识别,如何优化指纹识别算法,成为目前指纹识别领域研究的热点和难点。而在指纹存储方面,随着数据库种类日益繁多,功能不断强大,存储指纹的数据库的选择性也多样化。针对海量指纹的存储和处理,本文对于已有的分布式指纹识别系统进行了简单的介绍。该系统建立在Redis的集群上,对于指纹数据的存储设计了一套巧妙而且高效的编码方式和解码策略,节省了存储空间,加快了计算速度。将指纹匹配过程的重新划分为粗匹配和精匹配,使得指纹识别过程更高效。本文主要以该系统的匹配策略为研究对象,先后提出两种创新性的匹配策略思想,即基于快速返回的精匹配策略和基于Redis读写的策略优化。对于精匹配策略的研究方面,本文对该指纹识别系统的原精匹配策略进行了详细的分析,并讲述了OpenMP并行技术在精匹配过程中发挥的作用,针对OpenMP技术的优点和缺点,提出了基于快速返回的精匹配策略。相比于OpenMP,Pthread对线程的控制具有更强的灵活性,因此被应用于新匹配策略的实现。基于快速返回的精匹配策略通过缩减精匹配过程中需要匹配的指纹数量,从而大大减少了匹配时间,并能够很好的适应数据规模的增大和集群的扩展,极大地提高了该系统的匹配效率。对于粗匹配策略的研究方面,本文针对Redis内存读写的高性能,将精匹配融合到粗匹配过程当中,提出了一种基于Redis内存读写的匹配策略的优化方法。本文利用Redis内部的哈希数据结构,在粗匹配搜索哈希表的过程中,就对寻找到的相似指纹进行实时的精匹配,若匹配成功,就将该指纹读出内存,同时停止粗匹配,即结束哈希表的搜索。该优化策略很好的利用了Redis数据库内存高读写速度的性能优势,发挥了哈希表查询效率高的特性,大大缩减了检索的指纹的数量和匹配时间,可以有效的提高系统的性能。