指纹识别算法
指纹技术的研究其实是比较复杂的。与人工处理不同,许多生物识别技术公司并不直接存储指纹的图象。多年来在各个公司及其研究机构产生了许多数字化的算法(美国有关法律认为,指纹图象属于个人隐私,因此不能直接存储指纹图象)。但指纹识别算法最终都归结为在指纹图象上找到并比对指纹的特征。每个指纹都有几个独一无二、可测量的特征点,每个特征点都有大约5~7个特征,我们的十个手指产生最少4900个独立可测量的特征,这足以说明指纹识别是一个更加可靠的鉴别方式。
识别指纹主要从两个方面展开:总体特征和局部特征。
• 总体特征
总体特征是指那些用人眼直接就可以观察到的特征。包括纹形、模式区、核心点、三角点和纹数等。
纹形:指纹专家在长期实践的基础上,根据脊线的走向与分布情况一般将指纹分为三大类——环型(loop,又称斗形)、弓形(arch)、螺旋形(whorl)。
模式区:即指纹上包括了总体特征的区域,从此区域就能够分辨出指纹是属于哪一种类型的。有的指纹识别算法只使用模式区的数据,有的则使用所取得的完整指纹。
核心点:位于指纹纹路的渐进中心,它在读取指纹和比对指纹时作为参考点。许多算法是基于核心点的,即只能处理和识别具有核心点的指纹。
三角点位于从核心点开始的第一个分叉点或者断点,或者两条纹路会聚处、孤立点、折转处,或者指向这些奇异点。三角点提供了指纹纹路的计数跟踪的开始之处。
纹数:即模式区内指纹纹路的数量。在计算指纹的纹路时,一般先连接核心点和三角点,这条连线与指纹纹路相交的数量即可认为是指纹的纹数。
• 局部特征
局部特征是指指纹上节点的特征,这些具有某种特征的节点称为细节特征或特征点。两枚指纹经常会具有相同的总体特征,但它们的细节特征,却不可能完全相同。指纹纹路并不是连续的、平滑笔直的,而是经常出现中断、分叉或转折。这些断点、分叉点和转折点就称为"特征点",就是这些特征点提供了指纹惟一性的确认信息。
分类(最经典的是终结点和分叉点)
终结点:一条纹路在此终结。
分叉点:一条纹路在此分开成为两条或更多的纹路。
分歧点:两条平行的纹路在此分开
孤立点:一条特别短的纹路,以至于成为一点。
环点:一条纹路分开成为两条之后,立即有合并成为一条,这样形成的一个小环称为环点。
短纹:一端较短但不至于成为一点的纹路。
方向
节点可以朝着一定的方向。
曲率
描述纹路方向改变的速度。
位置
节点的位置通过(x, y)坐标来描述,可以是绝对的,也可以是相对于三角点或特征点的。
• 指纹算法性能指标
由于计算机处理指纹时,只是涉及了指纹的一些有限的信息,而且在图像处理和比对过程中不可避免地会引入计算误差,所以,指纹识别算法并不是精确匹配,其结果也不能保证100%准确。也就是说,指纹识别算法并不是100%的可靠。评估一个指纹识别算法性能,主要有如下指标:
(1)拒登率(Failure To Enroll Rate, FER),即拒绝建档(算法不能处理)的比率,反映适用人群大小;
(2)据真率(False Rejection Rate, FRR),即错误拒绝的比率,反映好用性。
(3)认假率(False Acceptance Rate, FAR),即错误接受的比率,反映安全性。
(4)相等错误率(Equal Error Rate, EER),FRR和FAR相等时的值。
(5)速度 (SPEED),通常指每秒钟算法运行的次数。
(6)空间 (SPACE),算法运行所需要的代码空间和数据空间。
由于FRR和FAR是相互矛盾的,这就使得在应用系统的设计中,要权衡易用性和安全性。一个有效的办法是比对两个或更多的指纹,从而在不损失易用性的同时,极大地提高了系统安全性。