当前位置:文档之家› 指纹识别技术综述(扫盲篇)

指纹识别技术综述(扫盲篇)

指纹识别技术综述(扫盲篇)1、产品构成对指纹识别技术,目前除了一部分真正的研发人员之外,大部分涉业者或者兴趣者都希望有个清晰的了解。

在此,先从指纹识别产品的构成说起,也就是由产品构成再展开对技术构成的分析。

指纹识别产品是由基础构件、中间构件和上层构件组成的,基础构件是指一个完整的指纹识别(不是指纹采集)产品,包括硬件和软件,都必须具备的基础部分。

中间构件,简称中间件,是向上支持各类软件系统或者硬件设备,实现指纹注册和认证功能的独立部分。

上层构件,是指在基础构件之上,自己实现中间件或者利用中间件建立起来的执行应用的部分,也可以称为应用构件。

指纹产品基础构件包括:指纹传感器(指纹Sensor)、指纹传感器驱动程序(Driver)、指纹传感器底层接口程序(底层SDK),以及指纹算法程序。

其中前三个都是作为一个整体对待,笼统的称为指纹SENSOR。

指纹基础构件的这四个部分,对于任何一类的指纹识别产品都是不可缺少的,所以称之为基础构件。

指纹产品中间构件,或者叫指纹应用中间件,它专门完成指纹注册和认证功能,所以它一定包含指纹识别算法。

它屏蔽了应用层对设备层(基础构件中的SENSOR以及DRIVER)的直接访问。

它既可以表现为软件控件(ocx),也可表现为硬件模块,也就是俗称的指纹脱机模块。

指纹产品上层构件,它是用户需求的实现部分,其形态不定,可以是一个完整的指纹应用软件产品,如指纹文件保护系统、计算机登录指纹保护系统。

也可是指纹考勤机、指纹保险柜等这类嵌入式硬件产品。

在了解了指纹识别产品的构成要件之后,我们再一层层采用解析的方法来分析每个构件中的技术成份。

2、指纹产品基础构件2.1、基础构件之指纹SENSOR从基础构件层来看,其中的指纹SENSOR,是指纹图像自动采集和生成部分,是整个指纹识别产品的数据输入端。

绝大多数指纹SENSOR通过光学扫描、晶体热敏、晶体电容等三种主要传感原理采集指纹图像。

衡量一个指纹SENSOR的质量好坏或者使用的技术的高低,从其使用的采集原理上并不能得出结论,而是主要从以下几个方面来衡量。

(1) 成像质量。

成像质量是衡量指纹SENSOR(指纹传感器)质量的首要标准。

成像质量主要表现为对指纹图像的还原能力,以及去噪能力。

(2) 手指适应能力。

由于不同手指指纹的纹路深浅不同、干湿不同,污渍程度不同。

要能够对所有情况进行有效兼容,是指纹SENSOR的适用能力的表现。

有时候手指适用能力被归到成像质量中考虑。

(3) 采集速度。

采集速度表现为从手指放到SENSOR触面后多长时间内完成一次指纹采集的时间,或者单位时间如1S可以采集的次数。

速度的快慢直接影响到用户的使用体验。

(4) 电气特性。

电气特性是从产品化的角度来看,指纹SENSOR是否真正可用于某种产品。

电气特性主要关注三个参数,工作电压,功耗和ESD(防静电能力)。

如把指纹SENSOR应用到手机上,必然要考虑手机的现在供电方式能否满足增加了指纹SENOSR后的电压和功耗要求。

不过大部分指纹SENOSR的电压都在3.6V以下(含)。

(5) 硬件接口能力。

接口能力也是从产品化的角度来衡量的。

接口能力直接影响着指纹SENSOR所获得的指纹图像数据的传送方式,影响着与指纹处理模块之间的通讯方式和通讯速度。

比如已具备USB接口能力的指纹SENSOR,可以直接与USB HUB相连。

而没有USB接口的,就需要通过USB控制器来实现,给产品化增加一道技术门槛。

(6) SDK能力。

SDK能力是指指纹SENSOR的功能,也就是与指纹SENSOR 配套使用的程序接口的功能。

一般在这些接口中定义了上层应用如何启动或终止硬件SENSOR,以及如何控制指纹SENSOR的函数族。

比如发送指纹SENOSR初始化命令、开始或停止捕获指纹图像命令、询问手指是存在、以及判断是否是指纹等。

对于滑动式(SWIPE)芯片来讲,还包括指纹重构的命令接口。

(7) 附加功能。

大部分指纹SENSOR除了具备指纹图像采集能力之外,还能够感知手指的移动方向、手指的点击方式(单击双击),这被称之为导航能力。

作者见过的一款导航能力非凡的指纹SENSOR,可以非常灵活的玩贪吃蛇游戏。

另一方面,有的指纹SENSOR,如ATMEL和AUTHENTECH的,可以提供指纹特征值的模板访问接口。

这些都是除了基本功能之外,指纹SENSOR厂商附加开发的功能,这部分功能可以使得,在其它条件相当的情况下,起到提升应用的特色作用。

2.2、基础构件之指纹算法以上是指纹产品基础构件层中的指纹SENSOR部分的技术构成分析。

下面介绍另一部分指纹算法。

全球指纹算法据称约有100种,不过这三大块基本是少不了的。

一是对指纹图像进行预处理;二是提取特征值,并形成特征值模板;三是指纹特征值比对。

2.2.1 指纹算法之指纹图像预处理指纹图像预处理的目的主要是为特征值提取的有效性准确性作好准备。

一般包括如下的过程:(1) 指纹图像增强。

指纹图像增强的目的主要是为了减少噪音,增强脊谷对比度,使得图像更加清晰真实,便于后续指纹特征值提取的准确性。

指纹图像增强的方法较多,常见的如通过8域法计算方向场与设定合适的过滤阈值。

处理时依据每个像素处脊的局部走向,会增强在同一方向脊的走向,并且在同一位置,减弱任何不同于脊的方向。

这样使得脊线相对背景更加清晰,特征点走向更加明显。

(2) 指纹图图像平滑处理。

平滑处理是为了让整个图像取得均匀一致的明暗效果。

平滑处理的过程是选取整个图像的象素与其周期灰阶差的均方值作为阈值来处理的。

(3) 指纹图像二值化。

在原始灰阶图像中,各象素的灰度是不同的,并按一定的梯度分布。

在实际处理中只需要象素是不是脊线上的点,而无需知道它的灰度。

所以每一个象素对判定脊线来讲,只是一个“是与不是”的二元问题。

所以,指纹图像二值化是对每一个象素点按事先定义的阈值进行比较,大于阈值的,使其值等于255(假定),小于阈值的,使其值等于0。

图像二值化后,不仅可以大大减少数据储存量,而且使得后面的判别过程少受干扰,大大简化其后的处理。

(4) 指纹图像细化处理。

图像细化就是将脊的宽度降为单个像素的宽度,得到脊线的骨架图像的过程。

这个过程进一步减少了图像数据量,清晰化了脊线形态,为之后的特征值提取作好了准备。

由于我们所关心的不是纹线的粗细,而是纹线的有无。

因此,在不破坏图像连通性的情况下必须去掉多余的信息。

因而应先将指纹脊线的宽度采用逐渐剥离的方法,使得脊线成为只有一个象素宽的细线,这将非常有利于下一步的分析。

2.2.2 指纹算法之特征值提取提取指纹特征值是从细化过的指纹图像中,扫描分析出能够表达某个指纹图像与众不同的特征点的集合。

在最初的指纹识别算法中,经历以过图像进行比较的阶段,现在的算法为了安全和确保精准度起见,采用图像上的特征点来进行比较,所以才有特征值提取的说法。

(1)首先来认识一下指纹的特征。

– 指纹特征=总体特征+局部特征•总体特征:– 纹形:环形、弓形、螺旋形(有的算法分的更细,如左旋右– 模式区:包含了纹形特征的区域或者两条纹路会聚处、孤立点、折转处,或者指向这些奇异点。

– 局部特征:指纹• 特征•特征点类型– A :终结点(Ending )条纹路在此终结 多的纹路–:孤立点(nd ),一条特别短的纹路,以至于成为一点旋)– 核心点:位于指纹纹路的渐进中心– 三角点:位于从核心点开始的第一个分叉点或者断点、– 纹数:指模式区内指纹纹路的数量(脊密度)上的细节点的特征。

点:类型、方向、曲率、位置,一–B :分叉点(Bifurcation ),一条纹路在此分开成为两条或更– C :分歧点(Ridge Divergence ),两条平行的纹路在此分开 D Dot or Isla– Enclosure ),一条纹路分开成为两条之后,立即有– t Ridge ),一端较短但不至于成为一点的纹路(2)指纹特征点的表示。

认识到指纹包含以上特征点之后,如何对指纹的特征点进行描述?就像通过描述一个的特点不同于另一个人时,我们一般会采用储如“男性”(3)指纹特征点提取。

对指纹的特征信息(总体和局部的)进行选择、编码,形成二,E :环点(合并成为一条F :短纹(Shor“身高170”“偏白”等词汇一样,描述指纹的特征点也有一系列的维度。

如特征点类型、位置坐标、方向、曲率等。

甚至可以增加组合特征描述。

指纹处理是一个几何域的问题,所以对这些特征点的描述无外乎与几何参数有关。

进制数据的过程。

指纹特征点的提取方法是算法中的核心。

一般采用8邻域法对二值化、细化后的指纹图像抽取特征点,这种方法将脊线上的点用“1”表示,背景用“0”表示,将待测点(i,j )的八邻域点(如下图所示)进行循环比较,若“0”,“1”变化有六次则此待测点为分叉点,若变化两次,则为端点。

通过这个过程可以记录下来一个指纹的所有特征点。

通常一个指纹的特征点在100~150之间,在形成指纹特征值模板(也就是特征值的有序集合)时,尽量多的提取特征点对于提高准确性是有很大帮助的。

2.2.3 指纹算法之特征值比对指纹特征值比对过程是把当前取得的指纹特征值集合与事先存储的指纹特征值模板进行匹配的过程。

匹配是一个模式识别的过程,判定的标准不是等与不等,而是相似的程度。

这个程度判定依赖于某个阈值,以及与判定时比较的特征点的个数有关。

阈值取的合理,特征点取的越多,误判的机率就越小。

理论一般认为只要7个特征点不同就可以区别开两枚指纹。

实际在程序实现中,多采用14个或以上的特征点作匹配。

匹配的方法很多,包括基于特征点的匹配、脊模式的匹配、以及线对(两个特征点的连线)匹配方法。

匹配的过程还要处理如手指旋转、压力导致的伸缩及平移等情况。

一般算法的误识率(FAR)为0.001%时,其拒认率(FRR)为0.75 - 5%。

在指纹识别算法这一部分补充说明一下指纹识别和验证的区别。

识别与验证并不是指纹识别算法领域的问题,而是指纹识别系统的问题。

指纹识别就是指1:N模式下匹配指纹特征值。

它是从多个指纹模板中识别出一个特定指纹的过程。

其结果是,有或者没有。

有时会给出是谁的信息。

指纹验证是指在1:1模式下匹配指纹特征值。

它是拿待比对的指纹特征模板与事先存在的另一个指纹特征模板进行一次匹配的过程。

其结果是,是不是。

在一个系统中即可以采用1:1模式也可以采用1:N模式,这是取决于应用系统的特点和要求。

从优缺方面比较,1:1模式要比1:N快些,准确性高些,但方便性会差些。

3、指纹产品中间件指纹中间件技术,与一般中间件技术相似。

对于指纹软件中间件来讲,主要是提供一系列从应用角度看已经封装好的接口,一般不会开放指纹特征值模板及下一级的接口。

这些接口的能力表现为数据库连接和拆线类接口、用户注册接口、用户验证接口、用户手指信息、用户信息访问接口、用户管理(增删改)接口,以及常用的系统管理接口等。

相关主题