感知识别技术概述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
指纹识别技术
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 指纹算法之特征值提取
提取指纹特征值是从细化过的指纹图像中,扫描分析出能够表达某个指纹图像与众不同的特征点的集合。在最初的指纹识别算法中,经历以过图像进行比较的阶段,现在的算法为了安全和确保精准度起见,