适于硬件加速的指纹粗比对方法及装置的制作方法

文档序号:6559072阅读:177来源:国知局
专利名称:适于硬件加速的指纹粗比对方法及装置的制作方法
技术领域
本发明属于计算机识别领域,涉及指纹比对算法及后设备,更具体的涉及基于特征点的指纹比对。本发明提出了一种适于硬件加速的指纹粗比对的方法,同时采用此方法设计出了基于FPGA的指纹粗比对PCI加速卡,用于超大规模指纹数据库的指纹比对。
背景技术
随着信息技术、计算机技术和通信技术的发展,社会正在向电子化的方向迅速发展。在很多场合,为确保日常的交易和事务的安全性,必须对个人身份进行识别和验证。人的一些生物特征和行为特征可以帮助确认个人的身份。这些生物特征有指纹、掌纹、人脸、视网膜、虹膜、血液和毛发等,而可供使用的行为特征有声音、签字等。从验证身份的准确性来看,由于指纹的唯一性和持久性好,在刑侦领域被称为“物证之首”,也使自动指纹识别系统(AFIS)最先在刑事侦察方面得到广泛的应用。
人们在生活中常会遇到“此人很像某人”的情况,这是人的大脑完成了将“此人”与记忆中的“某人”的特征相比较得出的结论。自动指纹识别系统则是通过计算机来完成与此类似的思维过程将得到的指纹与数据库内存储的指纹相比较,看二者是否是同一人的指纹。指纹识别的精确与否是以人眼判断的结果作为客观比较准则的。计算机识别的过程是一个模拟大脑思维的过程,因而研究的核心内容就是不断地探索、寻找新的数学模型、或理论模型,使计算机的“思维判断”越来越接近于人类大脑的思维与判断。
根据应用场合的不同,指纹识别系统可分为身份认证和查证两大类。身份认证系统是一对一的查比系统,即将欲验证的用户指纹与库中存储的合法用户的指纹进行比对来确认其身份的合法性;而查证系统则是一对多的查比系统,警察局和公安部门就是应用查证系统来进行案件侦破的。这两种系统有截然不同的特点前者只需验证欲比对指纹和库中特定指纹是否匹配;后者则需要搜索和遍历数据库中的每一枚指纹,将欲比对的指纹和库中指纹一一进行比对,在指纹库中找出和欲比对指纹匹配的指纹,来确定欲比对指纹的身份。
在指纹查证的实际应用中,需要将待测样本与一个超大型指纹库中数量巨大的指纹进行比对。例如刑侦应用中,省厅级和全国级的指纹库可能在百万人(每人十指)以上;用于出入境、外来人口和福利管理的身份识别系统,其库容量也可能达到这个级别。在这种情况下,高准确率算法的计算复杂性和大库容量对比对速度的高要求构成了一对矛盾。解决这个矛盾的重要途径之一是在系统中采用并行处理的结构;另一个途径是采用带有硬件加速的两级比对算法,即首先利用硬件实现遗漏率低、剔除率高的粗比对算法,对大规模指纹库进行快速筛选,剔除不匹配的指纹,选出候选指纹并计算出候选指纹与现场指纹(欲查证的指纹,如从犯罪现场采集的指纹)的位移和旋转参数,然后用软件在计算机上实现精细比对。
本发明提出的基于硬件加速的指纹粗比对方法以及比对加速装置适用于百万到千万人的超大型指纹识别系统。
发明的内容为了减小运算量,在提高比对速度的同时又保证比对的准确性,本发明提出了一种全新的适用于硬件加速的指纹比对方法。该方法采用超标量、超流水的结构,首先进行基于特征边的比对,然后根据匹配的特征边组成要比对的特征三角形,再进行特征三角形比对,从而得到库指纹与现场指纹三角形的偏移信息。除此之外,本发明还提出了一种利用这些偏移信息来准确计算整枚库指纹和现场指纹偏移量的方法。本发明提出的这种由边过渡到三角形的逐级比对的方法,大幅度减少了需要比对的特征三角形的数量,提高了比对速度;同时提出的偏移量的计算方法提高了指纹比对的剔除率和偏移量计算的准确性。
基于上述指纹比对算法,本发明研制出了一种基于FPGA的指纹比对加速卡。这种流水线加并行处理的算法结构极大地提高了比对的效率。该加速卡的系统结构框图见附图10。系统由三大部分组成①采用FPGA芯片(如ALTERA STRTIX II EP2S130F)作为系统的数据处理单元完成指纹粗比对;同时作为PCI总线控制器实现系统和主机之间的通信;②双端口DPSRAM实现板上库指纹缓冲的功能;③SRAM实现距离&方向角表的功能。


图1为库指纹和现场指纹数据格式,其中图(a)为库指纹数据格式,图(b)为现场指纹数据格式;图2为算法的结构框图;图3为特征边计算的三级流水线结构图;图4为边比对模块结构框图;图5为边存储模块的存储单元结构图;图6为第三边(BC)计算的三级流水线结构图;图7为BC边比对和三角形偏移信息计算模块的5级流水线结构图;图8为偏移信息的乒乓存储结构图;图9为偏移信息处理的结构图;图10为系统总体框架图。
具体实施例方式
本发明提出的粗比对方法包括两部分特征三角形的比对和指纹偏移量的计算。该方法的基本原理是遍历库指纹中所有的特征边(由两个特征点的排列构成),生成n组库指纹特征边,这里n为特征点的个数,特征边用库指纹特征点序号表示的点对来记录,其顺序如下(1,1)(1,2)(1,3)…(1,n-1)(1,n);(2,1)(2,2)(2,3)…(2,n-1)(2,n);……(n-1,1)(n-1,2)(n-1,3)…(n-1,n-1)(n-1,n);(n,1)(n,2)(n1,3)…(n,n-1)(n,n)将遍历生成的每条库指纹特征边与现场三角形的两条特征边(AB、AC边)同时进行比对。这样遍历比对完第i组库指纹特征边后,会同时得到另外两组边一组是第i组库指纹特征边中和现场三角形特征边AB匹配的特征边(i,j1),(i,j2)…(i,jm),另一组是第i组特征边中和现场三角形AC边匹配的特征边(i,k1),(i,k2)…(i,kn),将这两组库指纹特征边组合产生一组要比对的第三边(j1,k1),(j1,k2)…(j1,kn)(j2,k1),(j2,k2)…(j2,kn)… …(jm,k1),(jm,k2)…(jm,kn)再将这组第三边和现场三角形的BC边进行比对。如果这组边中有与BC边匹配的边,就会得到一组由三条匹配的库指纹特征边组成的库指纹三角形(i,jx,ky),接着再计算这组库指纹三角形和对应现场三角形的偏移量(描述库指纹三角形相对于现场三角形位置偏移的一组参量)。这种先进行边比对,剔除不匹配的特征边,再由匹配的边组成要比对的三角形的方法,大大减少了特征三角形比对的数量,提高了比对的速度。按照这种方法每比对完一组库指纹特征边(即顶点序号相同的一组边),就会得到一组由三条匹配边组成的三角形及其对应的偏移量。当比对完一枚库指纹的所有特征边后,就会得到和该现场三角形匹配的所有库指纹三角形及其对应的偏移量,这样就完成了所有库指纹三角形和一个现场三角形的比对。用同样的方法对其他所有的现场三角形进行比对,就可以得到和每个现场指纹三角形匹配的所有库指纹三角形及其偏移量,最后按照本发明提出的偏移量处理方法,就可以根据这些偏移量找出该枚库指纹与现场指纹的偏移量,并判断该枚库指纹与现场指纹是否匹配。
下面详细介绍本发明的具体实施方法。
一、适用于硬件加速的指纹粗比对方法(一)方法中采用的库指纹和现场指纹的数据格式指纹的特征点通常用纹线的分叉点(ridge bifurcations)和端点(ridge endings)来表示。本发明中提到的现场指纹和库指纹特征点用(x,y,Sita)来表示,其中x、y分别表示该点的横、纵坐标,Sita表示该点纹线的切线方向(我们称其为特征点的方向角)。
库指纹中存储了此枚库指纹所有特征点的信息,如附图1(a)所示。
现场指纹是经过处理的欲查证的指纹,已经自动或经过人工提取了特征点,我们用这些特征点组成若干个特征三角形来表示此枚现场指纹的结构信息。因此现场指纹存储的信息包括此枚现场指纹提取出的所有特征三角形信息,即每个特征三角形三个特征点的信息(横、纵坐标和方向角)、三条特征边的距离、每条特征边相对于X轴的夹角以及各个顶点的方向角与各条特征边方向角的夹角等,如附图1(b)所示。
(二)特征三角形的比对其算法的结构框图如附图2所示。
该模块采用流水线加并行处理的结构,库指纹数据源源不断地流入该模块,依次经过内部各子模块的处理,最后得到和现场三角形匹配的库指纹三角形的偏移信息,其中带星号的模块采用了流水线的结构,其它模块用状态机实现。
(1)特征边产生该模块用来遍历地读取库指纹特征点信息,产生要比对的特征边。特征边是以点对的形式产生的——[(XiYiθi),(XjYjθj)]表示第i和j个特征点组成的特征边。若库指纹有n个特征点,则遍历生成n组库指纹特征边(用库指纹特征点序号表示的点对),其顺序如下(1,1)(1,2)(1,3)…(1,n-1)(1,n);(2,1)(2,2)(2,3)…(2,n-1)(2,n);……(n-1,1)(n-1,2)(n-1,3)…(n-1,n-1)(n-1,n);(n,1)(n,2)(n1,3)…(n,n-1)(n,n)(2)特征边计算根据前级输出的特征点对[(XaYaθa),(XbYbθb)],计算出特征边ab的信息,包括该特征边ab的距离disAB,该边的角度AB_dir。我们采用查片外同步RAM表的方式完成特征边的计算,片外RAM表内存储的就是特征点对对应的特征边距离disAB和角度AB_dir。
其中,
disAB=(Xi-Xj)2+(Yi-Yj)2]]>AB_dir=[arccos(|Xi-Xj|/disAB)]在0~360度内取模该模块的数据流图如附图3所示。我们采用了三级流水的结构来实现计算输入的两个特征点组成的特征边的距离和角度。第一级流水线产生查表地址,第二级流水线查同步距离和角度表(片外RAM),第三级流水线调整查表得到的角度值。
(3)与现场三角形AB,AC边比对为了只遍历一次特征边就完成边比对,我们采用并行处理的结构,生成的特征边输入一个m路(假设现场指纹至多有m个特征三角形)并行比对的模块,各路分别同时完成与对应现场三角形AB,AC边的比对,并分别计算旋转角,供后面的计算偏移量模块使用。我们采用对应特征边的距离、角度、点线夹角、以及这些参量的累计误差等6个条件作为两条边是否匹配的判决准则,当两条边同时满足规定的判决条件时,则认为这两条边匹配。
该模块由三部分组成rotPointA,ABcomparison和ACcomparison。其结构框图如附图4所示。其中rotPointA用来计算并判断特征点a点相对现场三角形A点的旋转角rPointA;ABcomparison和ACcomparison分别完成特征边ab与AB,AC边比对,并分别计算该特征边相对AB,AC边的旋转角度(rAB dir、rAC dir)、点旋转角度(rPointB、rPointC)和累计误差(AccErrAB、AccErrAC)。
(4)特征边存储模块该模块用来存储与现场三角形AB,AC边匹配的库指纹特征边。该模块采用乒乓操作的结构顶点为j并且和AB,AC边匹配的库指纹特征边存储在边存储1单元中,当顶点为j的所有库指纹特征边比对完毕,则后续模块读取边存储1单元中库指纹边组成的要比对的第三边,同时顶点为j+1和AB,AC边匹配的库指纹边存储在边存储2单元中;顶点为j+1的特征边比对完毕后就读取边存储2单元生成第三边,同时顶点为j+2的匹配特征边存在边存储1单元中……这样依次类推。因此从外部来看,匹配的库指纹边的存储和读取是同时进行了,这种结构保证了数据能够顺利地流过流水线,而不致于打断流水线。
边存储模块的存储单元结构如附图5所示,我们采用乒乓操作方式,分为上下两个部分,每部分又分为两个单元,分别存储顶点(匹配的库指纹特征边的起点,)信息和与AB,AC边匹配的库指纹边信息。
(5)BC边产生模块该模块根据前级模块存储的匹配库指纹边生成要比对的第三边,产生的原理如下若以顶点为i的库指纹边中,和现场三角形ABC的AB边匹配的边为(i,j1),(i,j2)…(i,jm),和AC边匹配的库指纹边为(i,k1),(i,k2)…(i,kn),则生成的要比对的第三边为(j1,k1),(j1,k2)…(j1,kn)(j2,k1),(j2,k2)…(j2,kn)… …(jm,k1),(jm,k2)…(jm,kn)即所有匹配的b,c点的组合。
(6)并串转换模块由于我们采用m路并行比对的结构,每一路都有可能产生和对应现场三角形AB,AC边匹配的库指纹边,当比对完一组起点相同的库指纹特征边时至多会有m路要求输出第三边,并串转换模块就是把这至多m路要求输出的第三边以串行的形式输出。
(7)BC边计算模块该模块根据上级模块输出的第三边(bc边)信息计算出要比对的第三边的距离和角度,同时计算出这两条库指纹边和现场指纹边的累计误差。
该模块与模块(2)相似,也采用三级流水线的结构第一级流水线计算查表地址;第二级流水线完成对距离角度查表(片外RAM);第三级完成角度调整。和模块(2)不同的是,该模块多出了计算三特征点横纵坐标和的运算,该求和运算采用两级流水的结构完成,分别在该模块的第一级和第二级流水线内完成。
该模块数据流图如附图6所示。
(8)BC边比对和三角形偏移信息计算模块该模块功能是①根据模块(7)计算得到的第三边信息和对应现场三角形(N)的BC进行比对,判断第三边是否和BC边匹配;②计算顶点和第三边确定的库指纹三角形与对应的现场指纹三角形N的累计误差;③计算库指纹三角形三顶点横纵坐标的均值以及库指纹三角形相对现场三角形的旋转角度(用于后级模块计算偏移量)。
该模块采用5级流水线的结构,各级流水线完成的运算如附图7所示。BC边比对在前三级流水线内完成;6个偏移角度的求和在前三级流水线内完成,对偏移角度和的除法运算在第四、五级流水线内完成,最后得到平均偏移角度作为该特征三角形相对现场三角形的偏移角度DeltaSita;对横纵坐标和作除法运算得到横纵坐标均值XD,YD分布在五级流水线内完成。图中XF,YF是对应现场三角形横纵坐标的均值。
(9)偏移信息存储模块该模块的功能是记录和每个现场指纹三角形匹配的库指纹三角形的偏移信息。
根据大量实验的统计数据,对于每个现场指纹三角形我们只存储累计误差AccErr最小的前I个库指纹三角形的偏移信息。每个现场指纹可以用最多M个特征三角形表示,因此每枚现场指纹最多需要存储MI个匹配的库三角形偏移信息,存储的信息量比较大。为了减小存储所需的寄存器资源,本发明采用寄存器间接寻址的结构来实现该模块,即将偏移信息存于Block RAM(FPGA片上RAM)中,将Block RAM的地址存于间址寄存器(FPGA内触发器)中。间址寄存器共有M行,每一行对应一个现场三角形,每个单元中存储的Block RAM的地址是根据该地址所对应的偏移信息中的累计误差AccErr按从小到大排列的。
为了不打断流水线,本发明采用了乒乓存储结构。第i枚库指纹进行比对时,其偏移信息和Block RAM地址存于浅色单元中,同时后级模块读取深色单元中存储的第i-1枚库指纹偏移信息进行处理;第i+1枚库指纹进行比对时,其偏移信息和Block RAM地址存于深色单元中,同时后级模块读取浅色单元中存储的第i枚库指纹偏移信息进行处理……按这种方法轮流存储和读取,保证了流水线的畅通。
该模块的存储结构如附图8所示。
(三)偏移信息处理该模块的结构框图如附图9所示。
图中带星号模块采用流水线的结构,其他模块采用状态机进行控制。
该模块是通过遍历扫描偏移信息存储单元,从中选出J个最有可能代表整枚库指纹旋转的基偏移量,通过再次遍历偏移信息存储单元,将此枚库指纹的所有偏移信息与已选出的J个基偏移量分别同时进行比较,根据比对结果分别同时对每个基偏移量统计一组参量,最后根据每个基偏移量的参量进行打分,根据分值判断此枚库指纹是否与现场指纹匹配,如果匹配则输出此枚库指纹相对现场指纹的偏移量。
(1)偏移信息读取为了后级模块的计算,需要对存储的偏移信息进行三次读取第一读取的偏移信息用于选取基偏移量;第二次读取用于基偏移量比较;第三次读取用于计算偏移信息累计误差的方差。
(2)偏移量计算该模块对偏移信息读取模块第一次输出的偏移信息(Δθ,XD,YD,XF,YF,AccErr,N)进行计算,将其转化成偏移量。具体的计算公式如下ΔX=XD-(XFcosΔθ+YFsinΔθ)ΔY=YD-[XFsin(Δθ+180°)+YFcosΔθ]
(3)基偏移量生成该模块采用状态机来实现。偏移量计算模块输出的Flag_scanl信号启动状态机进行基偏移量生成,从MI个偏移量中选出J个基偏移量(Δθ1,ΔX1,ΔY1,AccErr1)…(ΔθJ,ΔXJ,ΔYJ,AccErrJ)。
(4)基偏移量比较该模块采用并行结构,将输入的偏移信息Δθ,XD,YD,XF,YF,AccErr,N分别同时和J个基偏移量进行比较,判断输入的偏移信息是否与对应的基偏移量匹配。
(5)参量统计该模块分别对每个基偏移量i统计一组参量(Tri_numi,FTri_numi,AccErr_Meani,AccErr_Deviationi),然后根据这些参量分别对每个基偏移量进行打分,分值的高低就表示该基偏移量代表此枚库指纹和现场指纹偏移量可能性的大小。最后根据分值输出库指纹相对现场指纹的偏移量。
二、基于该算法的指纹比对加速卡基于上述指纹比对算法,发明人还研制出一种基于FPGA的指纹比对加速卡。该加速卡采用PCI接口,适用于百万到千万人的超大型指纹识别系统。
该加速卡的硬件框架如附图10所示,系统由三大部分组成①采用FPGA芯片(如ALTERA STRTIX II EP2S130F)作为系统的数据处理单元完成指纹粗比对;同时作为PCI总线控制器实现系统和主机之间的通信;双端口DPSRAM实现板上库指纹缓冲的功能;③SRAM实现距离&方向角表的功能。
FPGA芯片实现的数据处理和接口控制单元由三大部分组成①指纹粗比对模块、②HI主机接口、③PCI总线控制器。
指纹粗比对模块就是按照本发明中提出的算法,完成指纹粗比对功能,计算出库指纹相对现场指纹的角度和位置偏移(Δθ,ΔX,ΔY)。
HI主机接口模块的主要功能是完成指纹比对模块和PCI总线控制器的接口控制;PCI总线控制器一端是PCI接口,另一端是Wishbone接口,它实现了系统PCI端和Wishbone端之间的桥梁功能,将复杂的PCI协议转化成了较简单的Wishbone协议。
本发明提出的并行流水线的粗比对结构和比对方法,可以用于制作ASIC、IPCORE和指纹比对硬件加速设备,完成超大规模库上的指纹比对。另外该方法不仅仅局限于硬件系统,它也可以集成进其它形式的软件比对系统中,用于大规模指纹数据库的指纹比对。
对于本领域的技术人员来说,很明显,本发明可以做出各种改进和扩展,因此,只要他们落入所附权力要求书及其等同范围内,本发明就涵盖这些改进及扩展。
权利要求
1.一种用于将现场指纹与存储的库指纹进行快速粗比对,计算出现场指纹相对库指纹的偏移量(Δθ,ΔX,ΔY)的方法,该方法包括由库指纹的特征点生成要比对的库指纹三角形,并将库指纹三角形和现场指纹三角形进行比对,进而计算出三角形偏移信息的方法;和根据一枚库指纹的库指纹三角形与现场三角形的偏移信息,计算出现场指纹相对该枚库指纹的偏移量(Δθ,ΔX,ΔY)的方法。
2.按照权利要求1的方法,其中所述由库指纹特征点生成要比对的库指纹三角形包括下述步骤特征边产生遍历所述库指纹的所有特征点,由两个特征点的排列生成库指纹特征边;特征边计算根据生成的库指纹特征边的特征点对计算该特征边的信息,包括该特征边的距离、方向角和点线夹角;特征边比对根据上述特征边的信息,将该特征边与现场三角形的第一条边AB和第二条边BC分别同时进行比较;特征边存储将和现场三角形AB,AC边匹配的,起点相同的库指纹特征边分别进行存储;以及第三边产生根据存储的和现场三角形AB,AC边匹配的库指纹特征边,生成要和现场三角形BC边比对的第三条库指纹特征边,这样这个公共的起点和生成的第三边就构成了要比对的库指纹三角形。
3.按照权利要求1的方法,还包括从现场指纹三角形和库指纹三角形的三角形偏移信息中选取若干个基偏移量,作为现场指纹和库指纹备选的偏移量的方法。
4.按照权利要求1的方法,还包括将三角形偏移信息和基偏移量进行比较的方法。
5.按照权利要求1的方法,还包括通过统计每个基偏移量中的各参量,对基偏移量进行打分,衡量该偏移量是现场指纹和库指纹实际偏移量的可能性的方法。
6.一种通过将库指纹的特征点生成的库指纹三角形与现场指纹三角形进行比对,计算出一枚库指纹的库指纹三角形与现场三角形的偏移信息,进而计算出现场指纹相对该枚库指纹的偏移量(Δθ,ΔX,ΔY)的适于硬件实现的快速粗比对装置,包括超标量的流水线加并行结构和超流水线结构。
7.按照权利要求6的装置,还包括特征边计算/存储、第一条边/第二条边的比对、第三边计算、第三边比对与三角形偏移信息计算、偏移量计算、基偏移量比较模块采用的流水线结构。
8.按照权利要求7的结构,还包括进行第一条边/第二条边比对、特征边存储和第三边产生,以及基偏移量比较时采用的并行流水线结构。
9.按照权利要求6的装置,还包括采用乒乓操作对匹配的特征边进行存取的结构。
10.按照权利要求6的装置,还包括采用乒乓操作对三角形偏移信息进行存取的结构。
11.按照权利要求6的装置,还包括间接寻址存储三角形偏移信息的结构。
12.按照权利要求6的装置,还包括为了计算第三边模块采用的3级流水线结构。
13.按照权利要求6的装置,还包括为了进行第三边比对和三角形偏移信息计算的采用的5级流水线的结构。
14.按照权利要求6的装置,还包括为了进行偏移信息处理采用流水线和状态机相结合的结构。
15.一个采用权利要求6中的装置,用FPGA或ASIC实现的指纹粗比对单元和IP CORE。
16.一个按照权利要求1的方法、权利要求6的装置集成的指纹比对系统,用于大规模指纹数据库的指纹比对。
全文摘要
本发明提出了一种全新的适用于硬件加速的指纹比对方法。该方法采用超标量、超流水的结构,在提高比对速度的同时保证了比对的准确性。首先进行基于特征边的比对,然后根据匹配的特征边组成要比对的特征三角形,再进行特征三角形比对,得到库指纹与现场指纹三角形的偏移信息。本发明提出的这种由边过渡到三角形的逐级比对的方法,大幅度减少了需要比对的特征三角形的数量,提高了比对速度;同时提出的偏移量的计算方法提高了指纹比对的剔除率和偏移量计算的准确性。基于上述指纹比对方法,本发明研制出了一种基于FPGA的指纹比对加速卡。这种流水线加并行处理的算法结构极大地提高了比对的效率。
文档编号G06K9/00GK1862562SQ200610086958
公开日2006年11月15日 申请日期2006年6月20日 优先权日2006年6月20日
发明者蔡安妮, 苏菲, 邱超, 陈增茂, 赵德群 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1