电容式指纹识别原理_范文大全

电容式指纹识别原理

【范文精选】电容式指纹识别原理

【范文大全】电容式指纹识别原理

【专家解析】电容式指纹识别原理

【优秀范文】电容式指纹识别原理

范文一:指纹识别的原理和方法 投稿:戴梋梌

指纹识别的原理和方法

一、概述

指纹识别的背景知识

我们手掌及其手指、脚、脚趾内侧表面的皮肤凸凹不平产生的纹路会形成各种各样的图案。这些纹路的存在增加了皮肤表面的摩擦力,使得我们能够用手来抓起重物。人们也注意到,包括指纹在内的这些皮肤的纹路在图案、断点和交叉点上各不相同,也就是说,是唯一的。依靠这种唯一性,我们就可以把一个人同他的指纹对应起来,通过对他的指纹和预先保存的指纹进行比较,就可以验证他的真实身份。这种依靠人体的身体特征来进行身份验证的技术称为生物识别技术,指纹识别是生物识别技术的一种。

目前,从实用的角度看,指纹识别技术是优于其他生物识别技术的身份鉴别方法。这是因为指纹各不相同、终生基本不变的特点已经得到公认。

最早的指纹识别系统应用与警方的犯罪嫌疑人的侦破,已经有30多年的历史,这为指纹身份识别的研究和实践打下了良好的技术基础。特别是现在的指纹识别系统已达到操作方便、准确可靠、价格适中的阶段,正快速的应用于民用市场。

指纹识别系统通过特殊的光电转换设备和计算机图像处理技术,对活体指纹进行采集、分析和比对,可以迅速、准确地鉴别出个人身份。

系统一般主要包括对指纹图像采集、指纹图像处理、特征提取、特征值的比对与匹配等过程。现代电子集成制造技术使得指纹图像读取和处理设备小型化,同时飞速发展的个人计算机运算速度提供了在微机甚至单片机上可以进行指纹比对运算的可能,而优秀的指纹处理和比对算法保证了识别结果的准确性。

指纹自动识别技术正在从科幻小说和好莱坞电影中走入我们实际生活中,就在今天,您不必随身携带那一串钥匙,只需手指一按,门就会打开;也不必记住那烦人的密码,利用指纹就可以提款、计算机登录等等。

指纹识别技术主要涉及四个功能:读取指纹图像、提取特征、保存数据和比对。

在一开始,通过指纹读取设备读取到人体指纹的图像,取到指纹图像之后,要对原始图像进行初步的处理,使之更清晰。

接下来,指纹辨识软件建立指纹的数字表示——特征数据,一种单方向的转换,可以从指纹转换成特征数据但不能从特征数据转换成为指纹,而两枚不同的指纹不会产生相同的特征数据。软件从指纹上找到被称为―节点‖(minutiae)的数据点,也就是那些指纹纹路的分叉、终止或打圈处的坐标位置,这些点同时具有七种以上的唯一性特征。因为通常手指上平均具有70个节点,所以这种方法会产生大约490个数据。

有的算法把节点和方向信息组合产生了更多的数据,这些方向信息表明了各个节点之间的关系,也有的算法还处理整幅指纹图像。总之,这些数据,通常称为模板,保存为1K大小的记录。无论它们是怎样组成的,至今仍然没一流种模板的标准,也没一流种公布的抽象算法,而是各个厂商自行其是。

最后,通过计算机模糊比较的方法,把两个指纹的模板进行比较,计算出它们的相似程度,最终得到两个指纹的匹配结果。

指纹识别的原理和方法

二. 取得指纹图象

1.取象设备原理

取像设备分成两类:光学、硅晶体传感器和其他。

此主题相关图片如下:

光学取像设备有最悠久的历史,可以追溯到20世纪70年代。依据的是光的全反射原理(FTIR)。光线照到压有指纹的玻璃表面,反射光线由CCD去获得,反射光的数量依赖于压在玻璃表面指纹的脊和谷的深度和皮肤与玻璃间的油脂。光线经玻璃射到谷后反射到CCD,而射到脊后则不反射到CCD(确切的是脊上的液体反光的)。

由于最近光学设备的革新,极大地降低了设备的体积。最近90年代中期,传感器可以装在6x3x6英寸的盒子里,在不久的将来更小的设备是3x1x1英寸。这些进展取决于多种光学技术的发展而不是FTIR的发展。例如:纤维光被用来捕捉指纹图像。纤维光束垂直射到指纹的表面,他照亮指纹并探测反射光。另一个方案是把含一流微型三棱镜矩阵的表面安装在弹性的平面上,当手指压在此表面上时,由于脊和谷的压力不同而改变了微型三棱镜的表面,这些变化通过三棱镜光的反射而反映出来。

应用晶体传感器是最近在市场上才出现的,尽管它在传奇文学作品中已经出现近20年。这些含有微型晶体的平面通过多种技术来绘制指纹图像。电容传感器通过电子度量被设计来捕捉指纹。电容设备能结合大约100,000导体金属阵列的传感器,其外面是绝缘的表面,当用户的手指放在上面时,皮肤组成了电容阵列的另一面。电容器的电容值由于金属间的距离而变化,这里指的是脊(近的)和谷(远的)之间的距离。压感式表面的顶层是具有弹性的压感介质材料,他们依照指纹的外表地形(凹凸)转化为相应的电子信号。温度感应传感器被设计为感应压在设备上的脊和远离设备的谷温度的不同。

超声波扫描被认为是指纹取像技术中非常好的一类。很象光学扫描的激光,超声波扫描指

纹的表面。紧接着,接收设备获取了其反射信号,测量他的范围,得到脊的深度。不象光学扫描,积累在皮肤上的脏物和油脂对超音速获得的图像影响不大,所以这样的图像是实际脊地形(凹凸)的真实反映。

由于巨大的指纹辨别市场,如果想指纹识别在商业上的巨大成功,三个因素中的两个因素是非常重要的,它们是低价格和紧凑的体积(另外一个是上面谈到的识别率)。90年代初到后期,取像设备的价格已经剧烈的下降,制造商最近又承诺,在最近几年后,又要进行大幅度降价。至于体积,上面已经提到光学传感器的体积从6x3x3英寸降到3x1x1英寸。应用晶体的传感器的体积差不多是这样或者更小。在晶片上,集成电路的技术越来越高(如:数字化电路把指纹信号转化为数字信号强度),系统体积将越来越小,晶体传感器的体积接近与手指大小所需要的体积,其长宽大约是1x1英寸高不到1英寸。

在晶体传感器之前,一些没有用到的机能是局部调整、软件控制、自动获取控制(AGC)技术。对于大多数光学设备,只能通过人工调整来改变图像的质量。然而,晶体传感器提供自动调节象素,行以及局部范围的敏感程度,从而提高图像的质量。AGC在不同的环境下结合反馈的信息产生高质量的图像。例如,一个不清晰(对比度差)的图像,如干燥的指纹,能够被感觉并增强灵敏度,在捕捉的瞬间产生清晰的图像(对比度好);由于提供了局部调整的能力,图像不清晰(对比度差)的区域也能够被检测到(如:手指压得较轻的地方)并在捕捉的瞬间为这些象素提高灵敏度。

光学扫描也有自己的优势。其中之一在较大的模型可以做较大指纹取像区域。而制造较大的应用晶体传感器的指纹取像区域是非常昂贵的,所以应用晶体传感器的指纹取像区域小于1平方英寸,而光学扫描的指纹取像区域等于或大于1平方英寸。然而这个对于较小的光学扫描设备并不是优势。较小的光学扫描也是较小指纹取像区域,这是因为较大的指纹取像区域需要较长的焦点长度,所以要有较大包装,否则如果较大的取像区域使用较小的包装,则光学扫描设备会受到图像边缘线形扭曲的影响。

晶体传感器技术最重要的弱点在于,它们容易受到静电的影响,这使得晶体传感器有时会取不图像到图像,甚至会被损坏,另外,它们并不象玻璃一样耐磨损,从而影响了使用寿命。 总之,各种技术都具有它们各自的优势,也有各自的缺点。我们在下面给出三种主要技术的比较。

2. 图象增强

刚获得的图像有很多噪音。这主要由于平时的工作和环境引起的,比如,手指被弄脏,手指有刀伤、疤、痕、干燥、湿润或撕破等。图象增强是减弱噪音,增强脊和谷的对比度。想得到比较干净清晰的图像并不是容易的事情。为这个目标而为处理指纹图像所涉及的操作是设计一个适合、匹配的滤镜和恰当的阀值。

此主题相关图片如下:

指纹还一流些其他的有用的信息。比如:类似于脊的―多余的部分‖,即使一些特别的脊不连续,但仍可认为是脊的一部分,从而决定他的走向。我们可以利用这些―多余的信息‖。

有很多图象增强的方法。大多数是通过过滤图像与脊局部方向相匹配。图像首先分成几个小区域(窗口),并在每个区域上计算出脊的局部方向来决定方向图。可以由空间域处理,或经过快速2维傅立叶变换后的频域处理来得到每个小窗口上的局部方向。

设计合适的,相匹配的滤镜,使之实用于图象上所有的象素(空间场是其中的一个)。依据每个象素处脊的局部走向,滤镜应增强在同一方向脊的走向,并且在同一位置,减弱任何不同于脊的方向。后者含有横跨脊的噪音,所以其垂直于脊的局部方向上的那些不正确的―桥‖会被滤镜过滤掉。所以,合适的、匹配的滤镜可以恰到好处地确定脊局部走向的自身的方向,它应该增强或匹配脊而不是噪音。

图象增强,噪音减弱后,我们准备开始选取一些脊。虽然,在原始灰阶图像中,其强度是不同的而按一定的梯度分布,但它们真实的信息被简单化为二元:脊及其相对的背景。二元操作使一个灰阶图像变成二元图像,图像在强度层次上从原始的256色(8-bits)降为2色(1-bits)。图像二元化后,随后的处理就会比较容易。

二元化的困难在于,并不是所有的指纹图像有相同的阀值,所以一般不采取从单纯的强度入手,而且单一的图像的对照物是变化的,比如,手在中心地带按的比较紧。因此一个叫―局部自适应的阀值(locally adaptive thresholdding)‖的方法被用来决定局部图像强度的阀值。 在节点提取之前的最后一道工序是―细化(thinning)‖。细化是将脊的宽度降为单个象素的宽度。一个好的细化方法是保持原有脊的连续性,降低由于人为因素所造成的影响。人为因素主

要是毛刺,带有非常短的分支而被误认为是分叉。认识到合法的和不合法的节点后,在特征提取阶段排除这些节点。

三. 指纹识别技术的基本原理

指纹其实是比较复杂的。与人工处理不同,许多生物识别技术公司并不直接存储指纹的图像。多年来在各个公司及其研究机构产生了许多数字化的算法(美国有关法律认为,指纹图像属于个人隐私,因此不能直接存储指纹图像)。但指纹识别算法最终都归结为在指纹图像上找到并比对指纹的特征。

此主题相关图片如下:

指纹的特征

我们定义了指纹的两类特征来进行指纹的验证:总体特征和局部特征。总体特征是指那些用人眼直接就可以观察到的特征,包括:

环型(loop)

此主题相关图片如下:

弓型(arch)

此主题相关图片如下:

螺旋型(whorl)

基本纹路图案

环型(loop), 弓型(arch), 螺旋型(whorl)。其他的指纹图案都基于这三种基本图案。仅仅依靠图案类型来分辨指纹是远远不够的,这只是一个粗略的分类,但通过分类使得在大数据库中搜寻指纹更为方便。

模式区(Pattern Area)

模式区是指指纹上包括了总体特征的区域,即从模式区就能够分辨出指纹是属于那一种类型的。有的指纹识别算法只使用模式区的数据。 Aetex 的指纹识别算法使用了所取得的完整指

纹而不仅仅是模式区进行分析和识别。

此主题相关图片如下:

核心点(Core Point)

核心点位于指纹纹路的渐进中心,它用于读取指纹和比对指纹时的参考点。

三角点(Delta)

三角点位于从核心点开始的第一个分叉点或者断点、或者两条纹路会聚处、孤立点、折转处,或者指向这些奇异点。三角点提供了指纹纹路的计数和跟踪的开始之处。

式样线( Type Lines)

式样线是在指包围模式区的纹路线开始平行的地方所出现的交叉纹路,式样线通常很短就中断了,但它的外侧线开始连续延伸。

纹数( Ridge Count)

指模式区内指纹纹路的数量。在计算指纹的纹数时,一般先在连接核心点和三角点,这条连线与指纹纹路相交的数量即可认为是指纹的纹数。局部特征 局部特征是指指纹上的节点。两枚指纹经常会具有相同的总体特征,但它们的局部特征——节点,却不可能完全相同。

节点(Minutia Points)

指纹纹路并不是连续的,平滑笔直的,而是经常出现中断、分叉或打折。这些断点、分叉

点和转折点就称为―节点‖。就是这些节点提供了指纹唯一性的确认信息。

指纹上的节点有四种不同特性:

1. 分类 – 节点有以下几种类型,最典型的是终结点和分叉点

A、终结点(Ending):一条纹路在此终结。

B、分叉点(Bifurcation):一条纹路在此分开成为两条或更多的纹路。

C、分歧点(Ridge Divergence):两条平行的纹路在此分开。

D、孤立点(Dot or Island):一条特别短的纹路,以至于成为一点

E、环点(Enclosure) -- 一条纹路分开成为两条之后,立即有合并成为一条,这样形成的一个小环称为环点

F、短纹(Short Ridge):一端较短但不至于成为一点的纹路,

2. 方向(Orientation):节点可以朝着一定的方向。

3. 曲率(Curvature):描述纹路方向改变的速度。

4. 位置(Position):节点的位置通过(x,y)坐标来描述,可以是绝对的,也可以是相对于三角点或特征点的。

四、指纹比对算法(包括指纹图象处理、特正提取、比对与匹配)

在指纹比对算法方面,主要有两个概念,验证和辩识;验证也就是我们所常说的1:1算法,辩识就是1:N算法。同时对指纹比对算法还有两个重要的参数误识率和拒真率。

4.1 验证

验证就是把一个现场采集到的指纹与一个己经登记的指纹进行一对一的比对(one-to-one matching),来确认身份的过程。作为验证的前提条件,他或她的指纹必须在指纹库中已经注册。指纹以一定的压缩格式存贮,并与其姓名或其标识(ID,PIN)联系起来。随后在比对现场,先验证其标识,然后,利用系统的指纹与现场采集的指纹比对来证明其标识是合法的。验证其实是回答了这样一个问题:―他是他自称的这个人吗?‖这是应用系统中使用得较多的方法。

4.2 辩识

辨识则是把现场采集到的指纹同指纹数据厍中的指纹逐一对比,从中找出与现场指纹相匹配的指纹。这也叫―一对多匹配(one-to-many matching)‖。验证其实是回答了这样一个问题:―他是谁?‖辨识主要应用于犯罪指纹匹配的传统领域中。一个不明身份的人的指纹与指纹库中有犯罪记录的人指纹进行比对,来确定此人是否曾经有过犯罪记录。

4.3 误识率和拒真率

由于计算机处理指纹时,只是涉及了指纹的一些有限的信息,而且比对算法并不是精确匹配,其结果也不能保证100%准确。指纹识别系统的特定应用的重要衡量标志是识别率。主要由两部分组成,拒真率(FRR)和误识率(FAR)。我们可以根据不同的用途来调整这两个值。FRR和FAR是成反比的。用0-1.0或百分比来表达这个数。

五. 系统问题(system issues)

有效的指纹辨识系统不仅仅依赖于辨识算法,还有其他的一些重要因素,这里称之为―系统问题‖。包括注册和辨识过程,速度和工作学、用户信息的反馈、排斥欺骗和安全考虑。 为了得到较好的识别率,重要的是在注册时尽量获得最好的指纹图象,这是因为注册一般只进行一次,而以后的辨识是经常的。一个较好的指纹识别系统应要求用户的指纹在登记指纹时多次获取指纹,然后,把最好的指纹或每次获得的指纹的综合的结果作为注册的指纹。

又一个方法可以作为指纹系统设计时的考虑,即我们可以多次取像直到得到一个确定的匹配,但这个过程在降低了拒判率的同时,提高了误判率。辨识不仅仅只用一个手指的指纹,可以用两个或更多的手指的指纹,这样可以增强识别率,当然这样一来会浪费用户的许多时间。

系统的工作学是很重要的。例如:在个人识别系统中,人们愿意等待时间的极限,这个极限时间根据特定的应用而不同,依赖于在处理的过程中人们正在做什么。例如:刷卡或输入ID号的过程,从0.5-1.5秒被认为是可接受的时间;另外,拒判而重复次数不应超过3次。

验证和辨识的过程、取像设备的设计拒判率和误判率关系的设定,为了尽可能的获得高质量的指纹图像而提示用户手指该怎样放置,正确的反馈信息是非常有用的。如―手指放得太高‖,―手指按得不够重‖等。

在指纹识别系统中,反欺骗的措施用来阻止人造指纹、死指纹和残留指纹。残留指纹是由于皮肤油或其他原因残留在传感器上。传感器应建立反欺对策,使得有能力识别真实的皮肤温度、阻力或电容。

既然指纹识别系统是为安全而考虑的,例如,节点模板数据库必须是安全的,以防止一个冒名顶替的人将自己的指纹存进数据库而成为合法的用户。指纹匹配的结果是―YES‖或―NO‖,以此获得访问权。如果有人简单地绕过指纹匹配而能去直接发送一个―YES‖,那么系统就是不安全的。这个问题的解决是确保主机接收的识别结果是来自真正的合法用户,如通过数字信号发送给主机。

总之,在一个完整的指纹识别应用系统中有许多问题值得考虑,解决好这些问题有助于成功地建立有效的系统,相反,则有可能会使得高明的技术被束之高阁,甚至导致应用系统最后的失败。注释:

1、什么是CCD?

CCD是英文Charge Coupled Device 即电荷耦合器件的缩写,它是一种特殊半导体器件,上面有很多一样的感光元件,每个感光元件叫一个像素。CCD在摄像机里是一个极其重要的部件,它起到将光线转换成电信号的作用,类似于人的眼睛,因此其性能的好坏将直接影响到摄像机的性能。

衡量CCD好坏的指标很多,有像素数量,CCD尺寸,灵敏度,信噪比等,其中像素数以及CCD尺寸是重要的指标。

像素数是指CCD上感光元件的数量。摄像机拍摄的画面可以理解为由很多个小的点组成,每个点就是一个像素。显然,像素数越多,画面就会越清晰,如果CCD没有足够的像素的话,拍摄出来的画面的清晰度就会大受影响,因此,理论上CCD的像素数量应该越多越好。但CCD像素数的增加会使制造成本以及成品率下降,而且在现行电视标准下,像素数增加到某一数量后,再增加对拍摄画面清晰度的提高效果变得不明显,一般而言八十万左右的像素数对拍摄动态画面已经足够了。

2、什么是AGC?

AGC基于CD-R光盘的物理特性,由CD-R光盘片读取出来的电子讯号较一般CD-ROM光盘为弱。而―Automatic Gain Control‖ (AGC)允许CD-ROM光驱自动强化这些较弱的电子讯号以符合CD-R光盘片在存取上的需求。

范文二:指纹识别的原理和方法 投稿:钟吱吲

一. 概述

指纹识别的原理和方法

指纹识别技术主要涉及四个功能:读取指纹图象、提取特征、保存数据和比对。

在一开始,通过指纹读取设备读取到人体指纹的图象,取到指纹图象之后,要对原始图象进行初步的处理,使之更清晰。

接下来,指纹辨识软件建立指纹的数字表示——特征数据,一种单方向的转换,可以从指纹转换成特征数据但不能从特征数据转换成为指纹,而两枚不同的指纹不会产生相同的特征数据。软件从指纹上找到被称为―节点‖(minutiae)的数据点,也就是那些指纹纹路的分叉、终止或打圈处的坐标位置,这些点同时具有七种以上的唯一性特征。因为通常手指上平均具有70个节点,所以这种方法会产生大约490个数据。

有的算法把节点和方向信息组合产生了更多的数据,这些方向信息表明了各个节点之间的关系,也有的算法还处理整幅指纹图像。总之,这些数据,通常称为模板,保存为1K大小的记录。无论它们是怎样组成的,至今仍然没有一种模板的标准,也没有一种公布的抽象算法,而是各个厂商自行其是。

最后,通过计算机模糊比较的方法,把两个指纹的模板进行比较,计算出它们的相似程度,最终得到两个指纹的匹配结果。

二. 取得指纹图象

1.取象设备原理

取像设备分成两类:光学、硅晶体传感器和其他。

光学取像设备有最悠久的历史,可以追溯到20世纪70年代。依据的是光的全反射原理(FTIR)。光线照到压有指纹的玻璃表面,反射光线由CCD去获得,反射光的数量依赖于压在玻璃表面指纹的脊和谷的深度和皮肤与玻璃间的油脂。光线经玻璃设到谷后反射到CCD,而设到脊后则不反射到CCD(确切的是脊上的液体反光的)。

由于最近光学设备的革新,极大地降低了设备的体积。最近90年代中期,传感器可以装在6x3x6英寸的盒子里,在不久的将来更小的设备是3x1x1英寸。这些进展取决于多种光学技术的发展而不是FTIR的发展。例如:纤维光被用来捕捉指纹图象。纤维光束垂直射到指纹的表面,他照亮指纹并探测反射光。另一个方案是把含有一微型三棱镜矩

阵的表面安装在弹性的平面上,当手指压在此表面上时,由于脊和谷的压力不同而改变了微型三棱镜的表面,这些变化通过三棱镜光的反射而反映出来。

应用晶体传感器是最近在市场上才出现的,尽管它在传奇文学作品中已经出现近20年。这些含有微型晶体的平面通过多种技术来绘制指纹图象。电容传感器通过电子度量被设计来捕捉指纹。电容设备能结合大约100,000导体金属阵列的传感器,其外面是绝缘的表面,当用户的手指放在上面时,皮肤组成了电容阵列的另一面。电容器的电容值由于金属间的距离而变化,这里指的是脊(近的)和谷(远的)之间的距离。压感式表面的顶层是具有弹性的压感介质材料,他们依照指纹的外表地形(凹凸)转化为相应的电子信号。温度感应传感器被设计为感应压在设备上的脊和远离设备的谷温度的不同。

超声波扫描被认为是指纹取像技术中非常好的一类。很象光学扫描的激光,超声波扫描指纹的表面。紧接着,接收设备获取了其反射信号,测量他的范围,得到脊的深度。不象光学扫描,积累在皮肤上的脏物和油脂对超音速获得的图象影响不大,所以这样的图象是实际脊地形(凹凸)的真实反映。

由于巨大的指纹辨别市场,如果想指纹识别在商业上的巨大成功,三个因素中的两个因素是非常重要的,它们是低价格和紧凑的体积(另外一个是上面谈到的识别率)。90年代初到后期,取像设备的价格已经剧烈的下降,制造商最近又承诺,在最近几年后,又要进行大幅度降价。至于体积,上面已经提到光学传感器的体积从6x3x3英寸降到3x1x1英寸。应用晶体的传感器的体积差不多是这样或者更小。在晶片上,集成电路的技术越来越高(如:数字化电路把指纹信号转化为数字信号强度),系统体积将越来越小,晶体传感器的体积接近与手指大小所需要的体积,其长宽大约是1x1英寸高不到1英寸。

在晶体传感器之前,一些没有用到的机能是局部调整、软件控制、自动获取控制(AGC)技术。对于大多数光学设备,只能通过人工调整来改变图象的质量。然而,晶体传感器提供自动调节象素,行以及局部范围的敏感程度,从而提高图象的质量。AGC在不同的环境下结合反馈的信息产生高质量的图象。例如,一个不清晰(对比度差)的图象,如干燥的指纹,能够被感觉并增强灵敏度,在捕捉的瞬间产生清晰的图象(对比度好);由于提供了局部调整的能力,图象不清晰(对比度差)的区域也能够被检测到(如:手指压得较轻的地方)并在捕捉的瞬间为这些象素提高灵敏度。

光学扫描也有自己的优势。其中之一在较大的模型可以做较大指纹取像区域。而制造较大的应用晶体传感器的指纹取像区域是非常昂贵的,所以应用晶体传感器的指纹取像区域小于1平方英寸,而光学扫描的指纹取像区域等于或大于1平方英寸。然而这个对于较小的光学扫描设备并不是优势。较小的光学扫描也是较小指纹取像区域,这是因为较大的指纹取像区域需要较长的焦点长度,所以要有较大包装,否则如果较大的取像区域使用较小的包装,则光学扫描设备会受到图象边缘线形扭曲的影响。

晶体传感器技术最重要的弱点在于,它们容易受到静电的影响,这使得晶体传感器有时会取不到图象,甚至会被损坏,另外,它们并不象玻璃一样耐磨损,从而影响了使用寿命。

总之,各种技术都具有它们各自的优势,也有各自的缺点。我们在下面给出三种主要技术的比较。

刚获得的图象有很多噪音。这主要由于平时的工作和环境引起的,比如,手指被弄脏,手指有刀伤、疤、痕、干燥、湿润或撕破等。图象增强是减弱噪音,增强脊和谷的对比度。想得到比较干净清晰的图象并不是容易的事情。为这个目标而为处理指纹图象所涉及的操作是设计一个适合、匹配的滤镜和恰当的阀值。

指纹还有一些其他的有用的信息。比如:类似于脊的―多余的部分‖,即使一些特别的脊不连续,但仍可认为是脊的一部分,从而决定他的走向。我们可以利用这些―多余的信息‖。

有很多图象增强的方法。大多数是通过过滤图象与脊局部方向相匹配。图象首先分成几个小区域(窗口),并在每个区域上计算出脊的局部方向来决定方向图。可以由空间域处理,或经过快速2维傅立叶变换后的频域处理来得到每个小窗口上的局部方向。

设计合适的,相匹配的滤镜,使之实用于图象上所有的象素(空间场是其中的一个)。依据每个象素处脊的局部走向,滤镜应增强在同一方向脊的走向,并且在同一位置,减弱任何不同于脊的方向。后者含有横跨脊的噪音,所以其垂直于脊的局部方向上的那些不正确的―桥‖会被滤镜过滤掉。所以,合适的、匹配的滤镜可以恰到好处地确定脊局部走向的自身的方向,它应该增强或匹配脊而不是噪音。

图象增强,噪音减弱后,我们准备开始选取一些脊。虽然,在原始灰阶图象中,其强度是不同的而按一定的梯度分布,但它们真实的信息被简单化为二元:脊及其相对的背景。二元操作使一个灰阶图象变成二元图象,图象在强度层次上从原始的256色(8-bits)降为2色(1-bits)。图象二元化后,随后的处理就会比较容易。

二元化的困难在于,并不是所有的指纹图象有相同的阀值,所以一般不采取从单纯的强度入手,而且单一的图象的对照物是变化的,比如,手在中心地带按的比较紧。因此一个叫―局部自适应的阀值(locally adaptive thresholding)‖的方法被用来决定局部图象强度的阀值。

在节点提取之前的最后一道工序是―细化(thinning)‖。细化是将脊的宽度降为单个象素的宽度。一个好的细化方法是保持原有脊的连续性,降低由于人为因素所造成的影响。人为因素主要是毛刺,带有非常短的分支而被误认为是分叉。认识到合法的和不合法的节点后,在特征提取阶段排除这些节点。

三. 指纹识别技术的基本原理

指纹其实是比较复杂的。与人工处理不同,许多生物识别技术公司并不直接存储指纹的图象。多年来在各个公司及其研究机构产生了许多数字化的算法(美国有关法律认为,指纹图象属于个人隐私,因此不能直接存储指纹图象)。但指纹识别算法最终都归结为在指纹图象上找到并比对指纹的特征。

指纹的特征

我们定义了指纹的两类特征来进行指纹的验证:总体特征和局部特征。总体特征是指那些用人眼直接就可以观察到

的特征,包括:

基本纹路图案

环型(loop), 弓型(arch), 螺旋型(whorl)。其他的指纹图案都基于这三种基本图案。仅仅依靠图案类型来分辨指纹是远远不够的,这只是一个粗略的分类,但通过分类使得在大数据库中搜寻指纹更为方便。

模式区(Pattern Area)

模式区是指指纹上包括了总体特征的区域,即从模式区就能够分辨出指纹是属于那一种类型的。有的指纹识别算法只使用模式区的数据。 Aetex 的指纹识别算法使用了所取得的完整指纹而不仅仅是模式区进行分析和识别。

核心点(Core Point)

核心点位于指纹纹路的渐进中心,它用于读取指纹和比对指纹时的参考点。

三角点(Delta)

三角点位于从核心点开始的第一个分叉点或者断点、或者两条纹路会聚处、孤立点、折转处,或者指向这些奇异点。三角点提供了指纹纹路的计数和跟踪的开始之处。

式样线( Type Lines)

式样线是在指包围模式区的纹路线开始平行的地方所出现的交叉纹路,式样线通常很短就中断了,但它的外侧线开始连续延伸。

纹数( Ridge Count)

指模式区内指纹纹路的数量。在计算指纹的纹数时,一般先在连接核心点和三角点,这条连线与指纹纹路相交的数量即可认为是指纹的纹数。 局部特征 局部特征是指指纹上的节点。两枚指纹经常会具有相同的总体特征,但它们的局部特征——节点,却不可能完全相同。

节点(Minutia Points)

指纹纹路并不是连续的,平滑笔直的,而是经常出现中断、分叉或打折。这些断点、分叉点和转折点就称为―节点‖。就是这些节点提供了指纹唯一性的确认信息。

指纹上的节点有四种不同特性:

1. 分类 – 节点有以下几种类型,最典型的是终结点和分叉点

A. 终结点(Ending) -- 一条纹路在此终结。

B. 分叉点(Bifurcation) -- 一条纹路在此分开成为两条或更多的纹路。

C. 分歧点(Ridge Divergence) -- 两条平行的纹路在此分开。

D. 孤立点(Dot or Island) -- 一条特别短的纹路,以至于成为一点

E. 环点(Enclosure) -- 一条纹路分开成为两条之后,立即有合并成为一条,这样形成的一个小环称为环点

F. 短纹(Short Ridge) -- 一端较短但不至于成为一点的纹路,

2. 方向(Orientation) -- 节点可以朝着一定的方向。

3. 曲率(Curvature) -- 描述纹路方向改变的速度。

4. 位置(Position) -- 节点的位置通过(x,y)坐标来描述,可以是绝对的,也可以是相对于三角点或特征点的。

四. 系统问题(system issues)

有效的指纹辨识系统不仅仅依赖于辨识算法,还有其他的一些重要因素,这里称之为―系统问题‖。包括注册和辨识过程,速度和工作学、用户信息的反馈、排斥欺骗和安全考虑。 为了得到较好的识别率,重要的是在注册时尽量获得最好的指纹图象,这是因为注册一般只进行一次,而以后的辨识是经常的。一个较好的指纹识别系统应要求用户的指纹在登记指纹时多次获取指纹,然后,把最好的指纹或每次获得的指纹的综合的结果作为注册的指纹。

又一个方法可以作为指纹系统设计时的考虑,即我们可以多次取像直到得到一个确定的匹配,但这个过程在降低了拒判率的同时,提高了误判率。辨识不仅仅只用一个手指的指纹,可以用两个或更多的手指的指纹,这样可以增强识别率,当然这样一来会浪费用户的许多时间。

系统的工作学是很重要的。例如:在个人识别系统中,人们愿意等待时间的极限,这个极限时间根据特定的应用而不同,依赖于在处理的过程中人们正在做什么。例如:刷卡或输入ID号的过程,从0.5-1.5秒被认为是可接受的时间;另外,拒判而重复次数不应超过3次。

验证和辨识的过程、取像设备的设计拒判率和误判率关系的设定,为了尽可能的获得高质量的指纹图象而提示用户手指该怎样放置,正确的反馈信息是非常有用的。如―手指放得太高‖,―手指按得不够重‖等。

在指纹识别系统中,反欺骗的措施用来阻止人造指纹、死指纹和残留指纹。残留指纹是由于皮肤油或其他原因残留在传感器上。传感器应建立反欺对策,使得有能力识别真实的皮肤温度、阻力或电容。

既然指纹识别系统是为安全而考虑的,例如,节点模板数据库必须是安全的,以防止一个冒名顶替的人将自己的指纹存进数据库而成为合法的用户。指纹匹配的结果是―YES‖或―NO‖,以此获得访问权。如果有人简单地绕过指纹匹配而能去直接发送一个―YES‖,那么系统就是不安全的。这个问题的解决是确保主机接收的识别结果是来自真正的合法用户,如通过数字信号发送给主机。

总之,在一个完整的指纹识别应用系统中有许多问题值得考虑,解决好这些问题有助于成功地建立有效的系统,相反,则有可能会使得高明的技术被束之高阁,甚至导致应用系统最后的失败。

指纹识别的原理是什么 指纹识别原理介绍

0来源:未知2014-07-17作者:陈睿

[摘要]指纹的唯一性和不变性,以及指纹识别技术的可行性和实用性,使得指纹识别成为当前最流行、最方便、最可靠的个人身份认证技术之一。那么,指纹识别的原理是什么呢?下面小编给大家

【华强安防网讯】

指纹的唯一性和不变性,以及指纹识别技术的可行性和实用性,使得指纹识别成为当前最流行、最方便、最可靠的个人身份认证技术之一。那么,指纹识别的原理是什么呢?下面小编给大家介绍一下指纹识别原理。

指纹中的中断、分叉或转折而形成的点就是细节特征点,而这些细节特征点,可以说就是提供了指纹唯一性的确认信息。其中典型的是终结点和分叉点和分歧点、孤立点、环点、短纹等。通过记录你的指纹纹路方向,特征点位置(通过X/Y轴来确定位置)等,就能建立一把世上独一无二的指纹锁,而钥匙就是你的指纹。

由于每次进行指纹扫描的方位不完全一样,着力点不同也会带来不同程度的变形,这样又会存在大量模糊指纹,所以指纹识别技术的关键是要正确提取特征和实现正确匹配。指纹识别涉及图像处理、模式识别、计算机视觉等众多学科。

要识别指纹,首先就是先建立指纹库,让你的原始指纹数据成为初始识别码。

指纹采集流畅如图。目前用于指纹采集的主要有:活体光学式、电容式和压感式。

电容式指纹采集视图,通过对皮肤和屏幕的接触,识别指纹的纹路来记录和验证指纹。

光学式,通过光反射成像来记录和验证指纹。

压感式是通过感知半导体压敏材质来感知指纹凹凸而成像。

捕捉到指纹后,会细化指纹,突出其指纹特征点,方便对比验证。

苹果并非多指触控技术的开创者,但却是让该技术真正大规模惠及大众的最重要推手。在iPhone 5s的指纹识别技术上,苹果又一次做到了它最擅长的事——让用户享受新技术。

指纹有两个重要特征,一个是两根不同手指的指纹纹脊样式不同,另一个是手指的指纹纹脊样式终生不变。这个19世纪初的研究成果是指纹在罪犯鉴别中被正式采用的理论基础。可以说指纹是天然的人体生物密码,科研人员已经花了很长时间探索以指纹为核心的身份验证系统。生活中比较常见的场合包括指纹门禁和考勤系统。

在电子设备上,10年前就已经有很多主打商业用途的笔记本电脑配备了指纹扫描器。手机方面,2011年摩托罗拉在Atrix 4G手机上采用了指纹扫描器,可以实现开机解锁。HTC也于近期推出了一款集成指纹扫描器的大屏手机HTC Onemax。这两款手机都将指纹识别模块安排在机身背部,需要滑动手指进行操作。Atrix 4G很有创意地将电源键与扫描模块整合在一起,按下电源键之后滑动手指即可解锁屏幕。One max特意将电源键设计到机身右侧,引导用户用大拇指按电源键,而后通过滑动食指解锁。该手机设计上的硬伤在于相机镜头和指纹识别模块距离很近,每次扫描指纹之前都可能弄脏镜头保护玻璃。Atrix 4G的设计谈不上糟糕,但与iPhone 5s相比就能看出,摩托罗拉和HTC在对用户体验的把握上,与苹果完全不在一个段位。

苹果在iPhone 5s上采用的指纹识别技术来自AuthenTec。2012年6月,苹果收购了这家公司。在被苹果收购之前,AuthenTec是全球最大的指纹识别芯片供应商,拥有名为TurePrint的专利技术,可以读取皮肤表皮之下的真皮层信息。按照AuthenTec的说法,真正的指纹藏在真皮层。包括ThinkPad在内的主流商务笔记本电脑都采用了该公司的技术。

全球从事指纹识别研究的机构和公司众多,新技术和实现方式层出不穷。在获得指纹图像的方式中,主流的包括光学传感器、热传感器和电容传感器,它们无一例外地利用了皮肤表层纹脊和纹谷(空气层)对信号的不同反应来获取指纹图像。AuthenTec的独门绝技是利用射频传感器直接读取真皮层的指纹,这样不仅能生成更精准的指纹图像,而且不会像以上3种技术一样受到干性皮肤、油性皮肤、皮肤磨损、皮肤结茧甚至轻微脏污的影响。它是怎么做到的呢?

首先,我们来到微观世界,回顾一下皮肤的结构(见左图)。皮肤的最外层是死皮层,导电性差,可以认为是一种介电质(可被电极化的绝缘体)。在死皮层与真皮层的交界处,就是真皮层发生角质化的地方,这个区域是有水分可以导电的。芯片上的信号生成器在手指和相连的半导体之间施加一个微弱的RF射频信号,导电的钢圈(在Home键周围)将RF射频信号与表皮下的导电层(真正的指纹)进行耦合。然后手指和芯片之间的射频场(RF Field)会将皮肤导电层的信号“传递”到像素感应器,每个像素感应器就像微型天线一样获得电压,纹脊部分获得的电压强,纹谷部分获得的电压弱。强弱不同的信号经过进一步的处理,就可以得到指纹图像。

通常得到的指纹图像是灰度图。接下来将灰度图转化成便于计算机处理的二进制图像,提取指纹的特征。首先,Touch ID芯片会根据3种基本指纹类型(弧形纹、箕形纹或斗形纹)将指纹分类,然后提取指纹纹路中的特征点:包括纹路的起点、终点、分叉点和毛孔的位置等。最后将该手指的特征点数据加密之后保存为数学表达式。通过指纹识别进行身份验证的过程就是再次执行以上过程,然后将获得的指纹与已经注册的指纹数据进行比对,以确定是否匹配并解锁 iPhone。

以上过程都发生在0.5s之内。以解锁手机功能来讲,苹果最具创造性的地方是把传感器放置到“用户与iPhone自然而然频频接触的地方”——Home键中,在丝毫不影响易用性的情况下,赋予iPhone用户不错的安全体验。现在,在App Store购买应用变得轻而易举,轻触Home键即可通过指纹来确认,免去密码输入的烦恼。

但Touch ID的潜力显然不止于此,它不仅能用于其他需要身份验证的场合,而且也能与触摸屏的手势结合起来,实现让人意想不到的操作体验。

范文三:新型指纹识别芯片的原理及其应用 投稿:徐陮陯

文章编号:1002-8692(2009)S2-0217-03

新型指纹识别芯片的原理及其应用

王新升,林喜荣,戴晓清,黄万锋

(清华大学深圳研究生院,广东深圳518055)

【摘

·实用设计·

要】ML67Q5250是一款利用内部集成的指纹识别加速器进行指纹图像处理及识别的高速指纹处理识别芯片,并支持多种面

接触式指纹传感器。使用ML67Q5250可快速开发高性能的指纹识别设备。主要介绍了ML67Q5250的原理、结构及其性能,并结合实例介绍了它的使用方法。

【关键词】指纹识别;指纹传感器;生物特征识别;嵌入式系统【中图分类号】TP391.4

【文献标识码】A

PrincipleandApplicationofNewFingerprintIdentificationChip

WANGXin-sheng,LINXi-rong,DAIXiao-qing,HUANGWan-feng

(GraduateSchoolatShenzhen,TsinghuaUniversity,GuangdongShenzhen518055,China)

【Abstract】ML67Q5250isahigh-speedfingerprintidentificationchipthatexecutesfingerprintimageprocessingandauthentication

withembeddedfingerprintauthenticationaccelerator,anditsupportsvariousareafingerprintsensors.ML67Q5250helpsdevelopersdesignhighperformancefingerprintauthenticationdevicesinarelativelyshortperiodoftime.Thestructure,theperformanceandtheprincipleofthechipareintroducedinthispaper,introduced.

【Keywords】fingerprintidentification;fingerprintsensor;biologicalidentification;embeddedsystem

andtheapplicationofthechipwithexampleimplementationsisalso

1

引言

指纹识别作为生物特征识别技术的一种,以其在安

16位Thumb指令集;时钟速率可编程为1MHz,6MHz,16MHz,32MHz;

2)内部集成指纹识别加速器,在32MHz时钟下,从读入指纹图像开始到完成识别只需0.8s以内;

全性和方便性方面的显著优点,得到越来越广泛的应用。市场上各种指纹识别设备层出不穷,各种新的需求也不断出现。制约指纹识别设备进一步推广的瓶颈主要包括指纹识别设备的性能、尺寸及现场可操作性。现在流行的指纹处理设备大多使用DSP芯片,外部扩充RAM及

3)31个通用寄存器;

4)64Kbyte片内RAM供CPU运算使用;39Kbyte片内RAM供指纹处理运算使用;

Flash,导致体积较大,且开发困难。新型指纹处理芯片ML67Q5250内部集成了指纹识别加速器部件,使运算速度大为提高;芯片内部还集成了一定容量的RAM及

5)64Kbyte片内程序Flash,用于存储程序,可擦写100次;64Kbyte片内数据Flash,用于存储指纹,可擦写10000次;

6)2个16位通用定时计数器;7)1个看门狗定时器;8)1个中断处理器。

集成的外围部件有:43个通用可编程I/O口;2个全速串行外围接口SPI通道;1个全双工通用异步收发器

Flash,一般情况下,不必扩充外部存储器,从而使指纹处理设备的开发更为快速、方便。下边将主要介绍芯片

ML67Q5250的性能、原理及其用法。

2ML67Q5250结构与性能特点

ML67Q5250是日本冲电气(OKI)公司开发的一款指

UART;1个USB2.0全速设备控制器;1个8位时钟同步串口SIO,支持Flash/SDRAM/ROM的外部存储器接口;1个在线调试接口JTAG;1个随机数发生器,可产生8位随机数;1个智能卡接口。

内部结构如图1所示。

纹处理及认证芯片。芯片采用以ARM7TDMI为核的32位RISC微处理器,使其不仅具有强大的运算能力,还继承了ARM系列芯片具有丰富的控制功能的特点,不需要外加其他处理器芯片即可完成指纹处理所需的运算工作及对外围器件的控制工作。ML67Q5250工作电压3.3V,内核工作电压2.5V,大大降低了芯片的功耗。它的主要特性有:

3

工作原理

ML67Q5250的CPU采用ARM7TDMI核。芯片的核心

1)采用ARM7TDMICPU核。支持32位指令集和

逻辑功能建立在ARM7TDMI微处理器之上,ARM7TDMI核负责大部分的运算与控制工作。开发中,可以使用标准

No.S22009(SumNo.332)VIDEOENGINEERING

217

为3个模块:最小系统模块、指纹传感器模块和外部存储器模块。

4.1最小系统

处理器本身并不能工作,需要必要的外围电路给它

提供最基本的工作条件。处理器与给它提供必要工作条件的外围电路一起构成的系统称为最小系统。为

ML67Q5250提供最基本工作条件的外围电路包括:

1)电源电路:芯片同时采用了两种电压,I/O口用3.3V,以使其可以与大多器件的引脚电平兼容;内核工作电压为2.5V,用较低电压有利于节省能量;

2)复位电路:复位是指将计算机系统中的硬件逻辑

ARM开发工具开发应用软件。

芯片内部集成了指纹认证加速器。指纹认证加速器的工作原理是:在指纹识别算法处理中,将能转变成硬件有效提高处理速度的部分抽出,硬件化后构成模块,并集成在芯片内部。指纹认证加速器从外部传感器获取指纹图像,进行图像处理,生成特征模板,然后用来登记或匹配认证。开发者可按照ML67Q5250接口函数的要求编写应用程序。

归位到一个初始状态。系统上电及出现异常都需要可靠复位才能正常工作;

3)晶体振荡电路:处理器核需要在时钟的驱动下完成指令执行、状态转换等动作。ML67Q5250需要外接晶体配合内部振荡电路以产生时钟。

ML67Q5250采用BGA封装,除去通用的43个I/O和外部存储器接口外,还有一些功能引脚,这些功能引脚须用硬件的方式来设置它们的属性。下面是这些引脚和它们的引脚序号:

ML67Q5250芯片具有多种接口,可支持各种面接触式指纹传感器。由于芯片本身并不能完成指纹图像的采集工作,对于不同的指纹传感器,需自行开发传感器驱动程序,采集数据,并将数据转换成符合ML67Q5250要求的格式,再将指纹图像数据传递给指纹认证加速器,然后由指纹认证加速器进行数据处理并生成模板。

1)BOOTP:启动设备选择引脚。引脚置高时芯片复位后从内部Flash启动,当置低时复位后从外部ROM/

Flash启动。

2)JTAGE:JTAG测试口使能引脚。当使用JTAG口调试时应置高,其他状态均应置低。

ML67Q5250所要求的图像格式如表1所示。

表1

选项颜色深度像素值含义像素字节顺序水平大小(行宽)竖直大小(列深)

3)TEST[0:3]:测试模式选择信号。4个引脚均应置低。

ML67Q5250所要求的图像数据格式

数据格式

ML67Q5250芯片具有多种接口,可根据传感器的接口类型选择合适接口。对于面接触式指纹传感器,由于运算量较大,需扩展外部RAM供运算使用。芯片内部集成

4位(16级)或8位(256级)灰度图脊线用最低值来表示(黑色),谷线用最高值来表示(白色)从左上角开始,从左到右,从上到下排列

64Kbyte程序Flash用于存储应用程序,集成64Kbyte指纹存储Flash用于存储指纹数据,若应用程序较大或需存储指纹较多则需扩展外部Flash。

128~256像素且须为8的整数倍

128~360像素

指纹传感器型号很多,若采集到的图像的格式不符合ML67Q5250所要求格式,则需进行预处理。芯片内部的指纹认证加速器对指纹图像的处理采用基于离散傅立叶变换(DFT)的指纹识别算法,即将指纹的凹凸转换成波形数据进行核对。这种算法与目前呈主流的特征点抽出方式、模式匹配方式相比,因指纹的形状、手指干燥或粗糙等因素引起的录入拒绝率极为小,且对指纹传感器的分辨力要求较低。

4.2典型应用实例

ML67Q5250支持各种面接触式指纹传感器,下面介绍与新型指纹传感器AFS8600的连接实例。

AFS8600是美国AuthenTec公司生产电感式真皮指纹传感器,采用射频扫描技术。传感器采集手指表皮下特征,因此,对于“干”、“脏”或磨损的手指的指纹图像有较强的适应性。除此之外传感器还可以检测、分辨出对象是否是真正的手指。AFS8600的缺点是分辨力较低,对于一些指纹纹路较细的手指(如女性),采集效果将受影响。但是,由于ML67Q5250内部的指纹识别加速器采用DFT算法处理识别指纹,受分辨力影响较小。

4

应用设计

ML67Q5250已集成了构建指纹识别系统所必需的

一些功能部件,因此,系统整体很简洁。整个系统可以分

AFS8600传感器采集窗口大小为14.43mm×14.43mm,

电视技术

2009年第33S2期(总第332期)

96×96像素阵列,可生成二值图像、4级灰度图或8级灰度图,分辨力为250DPI,工作电压3.3V。芯片由一个传感器矩阵和一个驱动环(DriveRing)组成。驱动环用来判断手指是否接触到传感器矩阵上。芯片表面覆盖超硬高级陶瓷膜,使传感器的使用寿命可达100万次以上。

的长宽各放大2倍到192×192时,结果并不理想。放大3倍到288×288,然后截去一部分,形成的最终的图像大小是256×288,实验证明效果良好。

4.3与其他指纹传感器的连接

ML67Q5250对Authentec公司的滑动式指纹传感器AES1510和AES2510有很好的支持,只需最小系统接上AES2510传感器,无需扩展外部存储器,且无须复杂的调整就能实现指纹识别系统。

AFS8600有两种通信接口,分别为异步串行接口和并行接口。本系统中,AFS8600与ML67Q5250采用串口通信。电路连接简单,只需将AFS8600与ML67Q5250的串口直接相连即可,并扩充一块512Kbyte的SRAM供CPU运算使用。电路连接如图2所示。

对AFS8600的操作靠写寄存器完成。写寄存器以“命令字+数据内容”的方式进行。命令字与内部寄存器一一对应,从外部向串口发送一个命

令字,然后紧接着发送要修改的寄存器的数据内容,这样就完成了一次寄存器修改操作。操作所需主要函数有:

ML67Q5250还支持其他各种面接触式指纹传感器。根据传感器型号,选择合适的接口采集图像,将图像进行预处理,使图像数据符合ML67Q5250的格式要求,再传递给处理器,即可实现指纹识别系统。当用其他型号的面接触式指纹传感器时,需要注意的问题有:

1)图像深度。ML67Q5250只支持4位(16级)或8位(256级)灰度图。

2)图像长宽规格。水平方向像素数应在128~256之间;垂直方向像素数应在128~360之间,且须是8的整数倍。如果不符合要求,就需要进行适当的变换。

3)使用面接触式指纹传感器须扩展RAM供运算使用。

1)sensor_init():初始化传感器。初始化函数主要设置驱动环的灵敏度参数。驱动环用来检测手指,它的灵敏度由寄存器84H和85H控制,这两个寄存器中被写入的值越小驱动环越灵敏。

5

小结

随着人们对个人信息安全性的要求的提高,指纹识

别技术必将得到更广泛的应用。利用ML67Q5250所搭建的指纹识别系统构造简洁,性能可靠,运算速度高,在与低分辨力的指纹传感器的配合使用中显示出独特优势。

作者简介:

王新升(1983-),硕士生,主研指纹处理识别及其应用;林喜荣(1945-),教授,从事生物特征识别方面的研究;戴晓清(1982-),博士生,主研掌纹识别;

黄万锋(1984-),硕士生,主研生物特征与信息安全。责任编辑:任健男

收稿日期:2009-03-16

2)sensor_capture():采集数据函数。AFS8600被初始化之后它的串口一直处于等待状态,当采集到数据时立即向外发送,由本函数接收。

3)sensor_cancel_captur():终止数据采集。

ML67Q5250对图像的最低要求是128×128像素,而AFS8600的图像规格为96×96像素。故采用二次线性插值法对其进行放大。在实际应用中发现将96×96的图像(上接第213页)

笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕

5

结束语

本文在系统获取到眉眼区域的图像基础上,研究了

方法研究[J].公路交通科技,2004,20(5):111-114.

[3]郑培.机动车驾驶员驾驶疲劳测评方法的研究[D].北京:中国农业大

学,2001.

在司机疲劳监控系统中人眼定位及眼睛状态检测的方法。通过计算图像不同部分的复杂度定位人眼,然后对人眼部分进行混合投影,并根据几何特征确定眼睛状态。结果表明,该方法具有较高的准确率。参考文献:

[1]毛喆,初秀民,严新平,等.汽车驾驶员驾驶疲劳监测计数研究进展

[J].中国安全科学学报,2005,15(3):108-112.

[2]王荣本,郭克友,储江伟,等.适用驾驶员疲劳状态监测的人眼定位

[4]杨彬,黄耀志.基于PERCLOS的汽车司机疲劳监控方法的研究[J].微

计算机信息,2005,24:119-121.

[5]王坤昊.基于机器学习的人脸检测[D].长春:吉林大学,2005.

作者简介:

高晓晶(1982-),女,硕士生,主研信号与图像处理;

于鸿洋(1962-),博士,副教授,主要研究方向为数字视频、嵌入式软件。

责任编辑:任健男

收稿日期:2009-03-11

No.S22009(SumNo.332)VIDEOENGINEERING

219

范文四:指纹识别模块程序及原理图 投稿:汪壧壨

程序:

#include #include #define uchar unsigned char #define uint unsigned int #define Dbus P0

#define buffer1ID 0x01 #define buffer2ID 0x02 #define queren 0x88 #define tuichu 0x84 #define shanchu 0x82

sbit B0=B^0; sbit B7=B^7;

sbit jidianqi=P3^6; sbit RS=P2^2; sbit RW=P2^1; sbit E1=P2^0; sbit LEDK=P3^4;

sbit SCLK=P2^3; sbit IO=P2^5; sbit RST=P2^4;

uchar code ta[8]={0x00,0x51,0x09,0x10,0x05,0x02,0x11,0xbe}; uchar data a[7]; // 秒 分 时 日 月 星期 年

uchar dz[4]; uchar mima[7];

uchar mimaID[6]={1,2,3,4,5,6};

uchar data K; uchar data Key;

uint PageID; uchar data querenma; uchar sum[2]; int summaf,summas;

uchar code nian[]={"年"}; uchar code yue[]={"月"};

//存键输入值

//控制背光

uchar code ri[]={"日"}; uchar code xinqi[]={"星期"}; uchar code mao=0x3a;

unsigned char code text1[]={" 请按指纹 "}; unsigned char code text2[]={" 请再次按指纹 "}; unsigned char code text3[]={" 指纹采集成功 "}; unsigned char code text4[]={"请按任意键继续 "}; unsigned char code text5[]={" 指纹采集失败 "}; unsigned char code text6[]={"输入删去的指纹号"}; unsigned char code text7[]={" 删指纹号成功 "}; unsigned char code text8[]={"按键一:增加指纹"}; unsigned char code text9[]={"按键二:删去指纹"}; unsigned char code text10[]={" 请重新按指纹 "}; unsigned char code text11[]={"清空指纹库成功 "}; unsigned char code text12[]={" 没搜索到指纹 "}; unsigned char code text13[]={"请先按键再刷指纹"}; unsigned char code text14[]={" 请重新操作 "}; unsigned char code text15[]={" 删去失败 "}; unsigned char code text16[]={" 接收包出错 "}; unsigned char code text17[]={" 编号为: "}; unsigned char code text18[]={"指纹已找到 请进"}; unsigned char code text19[]={" 该指纹已存储 "}; unsigned char code text20[]={" 请输入密码 "}; unsigned char code text21[]={" 密码错误 "}; unsigned char code text22[]={"按键三:更新密码"}; unsigned char code text23[]={"请再次输入密码 "}; unsigned char code text24[]={"两次输入的密码不"}; unsigned char code text25[]={"一致,请重新操作"}; unsigned char code text26[]={" 密码更新成功 "}; 另外:

void delay(uint tt) { uchar i; while(tt--) {

for(i=0;i

void initialize51() {

// @@@

SCON= 0x50; //串口方式1 //REN=1; 允许接收 PCON=0x80; //SMOD=1 TMOD= 0x20; //定时器1定时方式2

TH1= 0xff; //11.0592MHz 模块默认波特率为57600bps TL1= 0xff; }

unsigned char Keycan(void) //按键扫描程序 P1.0--P1.3为行线 P1.4--P1.7为列线 {

unsigned char rcode, ccode;

P1 = 0xF0; // 发全0行扫描码,列线输入 if((P1&0xF0) != 0xF0) // 若有键按下 {

delay(1);// 延时去抖动 if((P1&0xF0) != 0xF0)

{ rcode = 0xFE; // 逐行扫描初值 while((rcode&0x10) != 0) {

P1 = rcode; // 输出行扫描码 if((P1&0xF0) != 0xF0) // 本行有键按下 {

ccode = (P1&0xF0)|0x0F; //do{;}

while((P1&0xF0) != 0xF0); //等待键释放 return ((~rcode) + (~ccode)); // 返回键编码 } else

rcode = (rcode

return 0; // 无键按下,返回值为0 }

void KeyDeal(unsigned char Key) { //unsigned char n; if(Key!=0) {

switch(Key) {

case 0x11: K=1; break; case 0x21: K=2; break;

TR1= 1; //启动定时器

} }

case 0x41: K=3; break;

case 0x81: break; //K=funguanliyuan; case 0x12: K=4; break; case 0x22: K=5; break; case 0x42: K=6; break; case 0x82: K=34;break; case 0x14: K=7; break; case 0x24: K=8; break; case 0x44: K=9; break; case 0x84: break; case 0x18: break; case 0x28: K=0; break; case 0x48: break; case 0x88: break; default: break; }

//K=funqueren; //K=funtuichu; //K=shuazhiwen

//K=funshanchu;

//*************************************//12864 //读12864忙 void ReadBusy(void) { }

//向LCD写命令

void WriteCommand(uchar command) { }

ReadBusy(); RW=0;

Dbus=command; E1=1; E1=0;

unsigned char ch; cheak:Dbus=0xff; RS=0; RW=1; E1=1; ch=Dbus; E1=0; ch=ch|0x7f; if(ch!=0x7f) goto cheak;

//向LCD写数据

void WriteData(uchar Lcd_data) { }

//清屏函数清DDRAM void Clrram (void) {

WriteCommand(0x01); }

//LCD12864初始化程序 void Lcd_int() { }

//LCD12864显示时间 void playtime() {

WriteCommand(0x88); WriteData(a[5]+0x30);

//指定第三行显示位置

for(i=0;i

WriteData(text13[i]); //显示LCD12864并行显示

//指定第二行显示位置

n3=a[6]>>4; n4=a[6]&0x0f; WriteCommand(0x90);

WriteData(0x32);WriteData(0x30);WriteData(0x30+n3);WriteData(0x30+n4); for(i=0;i>4; y2=a[4]&0x0f;

WriteData(0x30+y1);WriteData(0x30+y2); for(i=0;i>4; r2=a[3]&0x0f;

WriteData(0x30+r1);WriteData(0x30+r2); for(i=0;i

//指定第一行显示位置

WriteCommand(0x30); WriteCommand(0x01); WriteCommand(0x02);

//30---基本指令动作 //清屏,地址指针指向00H

WriteCommand(0x0c); //开显示,关游标 ReadBusy(); RS=1; RW=0; Dbus=Lcd_data; E1=1; E1=0;

}

//*************************************//12864

//*********************************//ds1302控制 uchar r1302() { }

void w1302(uchar co) { uchar i; B = co; for(i=0;i

IO = B0; } }

void w(uchar a, uchar d) {

RST = 0; SCLK = 0; RST = 1; w1302(a); w1302(d); SCLK = 1;

//寻址,写数

SCLK=1; SCLK=0; B>>=1;

//原来是使用ACC寄存器 ,但不行,后改使用B寄存器后才正常运行 ???

// 写ds1302 单字节

uchar i; {

B>>=1; B7 = IO; SCLK=1; SCLK=0; } return B;

//读数据ds1302

s1=a[2]>>4;s2=a[2]&0x0f; f1=a[1]>>4;f2=a[1]&0x0f; m1=a[0]>>4;m2=a[0]&0x0f; WriteCommand(0x98);

//指定第四行显示位置

WriteData(0x30+s1);WriteData(0x30+s2);WriteData(mao);WriteData(0x30+f1);WriteData(0x30+f2); WriteData(mao);WriteData(0x30+m1);WriteData(0x30+m2);

for(i=0;i

RST = 0; }

uchar r(uchar a)

//寻址,读数

{

uchar r; RST = 0; SCLK = 0; RST = 1; w1302(a); r=r1302(); SCLK = 1; RST = 0; return r;

}

void wclo(uchar *p) {

uchar i;

w(0x8e,0x00); RST=0; SCLK=0; RST=1; w1302(0xbe); for(i=0;i

w1302(*(p+i)); w(0x00,0x50); SCLK=1; RST=0;

}

void rclo(uchar *p) {

uchar i; RST=0; SCLK=0; RST=1; w1302(0xbf); for(i=0;i

*(p+i) = r1302(); SCLK=1;

RST=0;

//写多字节ds1302

//写允许

//写多字节命令 //写时钟数据

//??? 启动定时器

//读出多字节ds1302

//读出时钟数据

}

//***************************************//

void SFG_getimage() {

uchar i; SBUF=0xef; while(TI==0); TI=0; SBUF=0X01; while(TI==0); TI=0;

SBUF=0XFF; while(TI==0); TI=0; SBUF=0XFF; while(TI==0); TI=0; SBUF=0XFF; while(TI==0); TI=0; SBUF=0XFF; while(TI==0); TI=0;

SBUF=0X01; while(TI==0); TI=0;

SBUF=0X00; while(TI==0); TI=0; SBUF=0X03; while(TI==0); TI=0;

SBUF=0X01; while(TI==0); TI=0;

SBUF=0X00;

//录入指纹图像

TI=0; summaf=0x05; SBUF=summaf; while(TI==0); TI=0;

for(i=0;i

while(RI==0); RI=0;}

while(RI==0); RI=0;

querenma=SBUF; while(RI==0); RI=0; sum[1]=SBUF; while(RI==0); RI=0; sum[0]=SBUF;

summas=(sum[1]

void SFG_genchar(uchar bufferID) //生成特征并存于charbuffer1/2 调用后单片机波特率变化@@@ {

uchar i; SBUF=0xef; while(TI==0); TI=0; SBUF=0X01; while(TI==0); TI=0;

SBUF=0XFF; while(TI==0); TI=0; SBUF=0XFF; while(TI==0); TI=0; SBUF=0XFF; while(TI==0); TI=0; SBUF=0XFF;

TI=0;

SBUF=0X01; while(TI==0); TI=0;

SBUF=0X00; while(TI==0); TI=0; SBUF=0X04; while(TI==0); TI=0;

SBUF=0X02; while(TI==0); TI=0;

SBUF=bufferID; while(TI==0); TI=0;

summaf=0x07+bufferID; sum[0]=summaf; sum[1]=summaf>>8; SBUF=sum[1]; while(TI==0) TI=0; SBUF=sum[0]; while(TI==0) TI=0;

for(i=0;i

while(RI==0); RI=0;} while(RI==0); RI=0;

querenma=SBUF; while(RI==0); RI=0; sum[1]=SBUF; while(RI==0); RI=0;

sum[0]=SBUF;

summas=(sum[1]

}

void SFG_regmodel()

{

uchar i;

SBUF=0xef;

while(TI==0);

TI=0;

SBUF=0X01;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0X01;

while(TI==0);

TI=0;

SBUF=0X00;

while(TI==0);

TI=0;

SBUF=0X03;

while(TI==0);

TI=0;

SBUF=0X05;

while(TI==0);

TI=0;

SBUF=0X00;

while(TI==0); //合并生成模板

summaf=0x09;

SBUF=summaf; //校验和

while(TI==0);

TI=0;

for(i=0;i

{

while(RI==0);

RI=0;}

while(RI==0);

RI=0;

querenma=SBUF;

while(RI==0);

RI=0;

sum[1]=SBUF;

while(RI==0);

RI=0;

sum[0]=SBUF;

summas=(sum[1]

}

void SFG_storechar(uint pageID) //储存模板

@@@

{

uchar i,ID1,ID2;

SBUF=0xef;

while(TI==0);

TI=0;

SBUF=0X01;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0); ID=1010也储存成功 ID>=1011 querenma=0x18?

SBUF=0X01;

while(TI==0);

TI=0;

SBUF=0X00;

while(TI==0);

TI=0;

SBUF=0X06;

while(TI==0);

TI=0;

SBUF=0X06;

while(TI==0);

TI=0;

SBUF=0X01;

while(TI==0);

TI=0;

ID1=pageID;ID2=pageID>>8;

SBUF=ID2;

while(TI==0);

TI=0;

SBUF=ID1;

while(TI==0);

TI=0;

summaf=0x0e+ID1+ID2;

sum[0]=summaf;

sum[1]=summaf>>8;

SBUF=sum[1];

while(TI==0);

TI=0;

SBUF=sum[0];

while(TI==0);

TI=0;

for(i=0;i

{

while(RI==0);

RI=0;}

while(RI==0);

querenma=SBUF;

while(RI==0);

RI=0;

sum[1]=SBUF;

while(RI==0);

RI=0;

sum[0]=SBUF;

summas=(sum[1]

}

void SFG_empty()

{

uchar i;

SBUF=0xef;

while(TI==0);

TI=0;

SBUF=0X01;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0X01;

while(TI==0);

TI=0;

SBUF=0X00;

while(TI==0);

TI=0;

SBUF=0X03;

while(TI==0);

TI=0; //清空指纹库

SBUF=0X0d;

while(TI==0);

TI=0;

SBUF=0X00;

while(TI==0);

TI=0;

summaf=0x11;

SBUF=summaf;

while(TI==0);

TI=0;

for(i=0;i

{

while(RI==0);

RI=0;}

while(RI==0);

RI=0;

querenma=SBUF;

while(RI==0);

RI=0;

sum[1]=SBUF;

while(RI==0);

RI=0;

sum[0]=SBUF;

summas=(sum[1]

void SFG_fastsearch(uchar bufferID) //搜索指纹返回指纹ID号{

uchar i,ID1,ID2;

SBUF=0xef;

while(TI==0);

TI=0;

SBUF=0X01;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0; sum、pagenum>255都会使程序卡@@@

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0X01;

while(TI==0);

TI=0;

SBUF=0X00;

while(TI==0);

TI=0;

SBUF=0X08;

while(TI==0);

TI=0;

SBUF=0X1b;

while(TI==0);

TI=0;

SBUF=bufferID;

while(TI==0);

TI=0;

SBUF=0X00;

while(TI==0);

TI=0;

SBUF=0;

while(TI==0);

TI=0;

SBUF=0X00;

while(TI==0);

TI=0;

SBUF=180;

while(TI==0);

TI=0;

summaf=9+0x1b+bufferID+180; sum[0]=summaf;

sum[1]=summaf>>8;

SBUF=sum[1];

TI=0;

SBUF=sum[0];

while(TI==0);

TI=0;

for(i=0;i

{

while(RI==0);

RI=0;}

while(RI==0);

RI=0;

querenma=SBUF;

while(RI==0);

RI=0;

ID1=SBUF;

while(RI==0);

RI=0;

ID2=SBUF;

while(RI==0);

RI=0;

while(RI==0);

RI=0;

while(RI==0);

RI=0;

sum[1]=SBUF;

while(RI==0);

RI=0;

sum[0]=SBUF;

summas=(sum[1]

//PageID=ID1;

PageID=(ID1

}

void SFG_enroll()

{

uchar i,ID1,ID2;

SBUF=0xef;

while(TI==0);

TI=0;

SBUF=0X01; //自动注册模板返回存储ID =录图像+合并生成模板+储存模板 //接收到的ID号

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0X01;

while(TI==0);

TI=0;

SBUF=0X00;

while(TI==0);

TI=0;

SBUF=0X03;

while(TI==0);

TI=0;

SBUF=0X10;

while(TI==0);

TI=0;

SBUF=0X00;

while(TI==0);

TI=0;

summaf=0x14;

SBUF=summaf;

while(TI==0);

TI=0;

for(i=0;i

{

while(RI==0);

RI=0;}

while(RI==0); //校验和

querenma=SBUF;

while(RI==0);

RI=0;

ID1=SBUF;

while(RI==0);

RI=0;

ID2=SBUF;

while(RI==0);

RI=0;

sum[1]=SBUF;

while(RI==0);

RI=0;

sum[0]=SBUF;

summas=(sum[1]

PageID=(ID1

}

void SFG_deletchar(uint pageID) //删除指纹{

uchar i,ID1,ID2;

SBUF=0xef;

while(TI==0);

TI=0;

SBUF=0X01;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0XFF;

while(TI==0);

TI=0;

SBUF=0X01;

while(TI==0); 校验和在2字节的页码处应分高低字节相加

SBUF=0X00;

while(TI==0);

TI=0;

SBUF=0X07;

while(TI==0);

TI=0;

SBUF=0X0c;

while(TI==0);

TI=0;

ID1=pageID;ID2=pageID>>8; SBUF=ID2;

while(TI==0);

TI=0;

SBUF=ID1;

while(TI==0);

TI=0;

SBUF=0X00;

while(TI==0);

TI=0;

SBUF=1;

while(TI==0);

TI=0;

summaf=0x15+ID1+ID2; sum[0]=summaf;

sum[1]=summaf>>8; SBUF=sum[1];

while(TI==0);

TI=0;

SBUF=sum[0];

while(TI==0);

TI=0;

for(i=0;i

{

while(RI==0);

RI=0;}

while(RI==0);

RI=0;

querenma=SBUF; while(RI==0); RI=0; sum[1]=SBUF; while(RI==0); RI=0; sum[0]=SBUF;

summas=(sum[1]

}

void SFG_writereg(uchar N) {

uchar i; SBUF=0xef; while(TI==0); TI=0; SBUF=0X01; while(TI==0); TI=0;

SBUF=0XFF; while(TI==0); TI=0; SBUF=0XFF; while(TI==0); TI=0; SBUF=0XFF; while(TI==0); TI=0; SBUF=0XFF; while(TI==0); TI=0;

SBUF=0X01; while(TI==0); TI=0;

SBUF=0X00; while(TI==0); TI=0; SBUF=0X05; while(TI==0); TI=0;

//设置波特率

SBUF=0X0e; while(TI==0); TI=0;

SBUF=4; while(TI==0); TI=0; SBUF=N; while(TI==0); TI=0;

summaf=0x1a; sum[0]=summaf; sum[1]=0; SBUF=sum[1]; while(TI==0); TI=0; SBUF=sum[0]; while(TI==0); TI=0;

for(i=0;i

while(RI==0); RI=0;} while(RI==0); RI=0;

querenma=SBUF; while(RI==0); RI=0; sum[1]=SBUF; while(RI==0); RI=0; sum[0]=SBUF;

summas=(sum[1]

void SFG_identify()

{

uchar i,ID1,ID2; SBUF=0xef; while(TI==0); TI=0; SBUF=0X01;

//自动验证指纹

录图像+生成特征+搜索

while(TI==0); TI=0;

SBUF=0XFF; while(TI==0); TI=0; SBUF=0XFF; while(TI==0); TI=0; SBUF=0XFF; while(TI==0); TI=0; SBUF=0XFF; while(TI==0); TI=0;

SBUF=0X01; while(TI==0); TI=0;

SBUF=0X00; while(TI==0); TI=0; SBUF=0X03; while(TI==0); TI=0;

SBUF=0X11; while(TI==0); TI=0;

SBUF=0X00; while(TI==0); TI=0; summaf=0x15; SBUF=summaf; while(TI==0); TI=0;

for(i=0;i

while(RI==0); RI=0;} while(RI==0);

//校验和

RI=0;

querenma=SBUF; while(RI==0); RI=0; ID1=SBUF; while(RI==0); RI=0; ID2=SBUF;

while(RI==0); RI=0; while(RI==0); RI=0;

while(RI==0); RI=0; sum[1]=SBUF; while(RI==0); RI=0; sum[0]=SBUF;

summas=(sum[1]

void shuazhiwen() {

uchar i,IDs1,IDs2,IDs3;

SFG_identify(); while(querenma==2) SFG_identify();

if(querenma==0) {

Clrram();

WriteCommand(0x90); for(i=0;i

//指定第二行显示位置

Clrram();

WriteCommand(0x90); for(i=0;i

WriteData(text1[i]); //显示LCD12864并行显示 //SFG_getimage(); //SFG_genchar(1); //SFG_fastsearch(1);

请按指纹

//指定第二行显示位置

//得分

}

WriteCommand(0x88); for(i=0;i

WriteData(text17[i]); //显示LCD12864并行显示

//开门

IDs1=PageID/100;IDs2=PageID/10%10;IDs3=PageID%10;

//指定第三行显示位置

编号为:

WriteData(0x30+IDs1);WriteData(0x30+IDs2);WriteData(0x30+IDs3);

jidianqi=0;

else if(querenma==9) { } else { } }

void addfinger() {

uchar i,IDa1,IDa2,IDa3; Clrram();

WriteCommand(0x90); for(i=0;i

WriteData(text1[i]); //显示LCD12864并行显示 请按指纹

SFG_getimage(); while(querenma!=0) SFG_getimage(); SFG_genchar(buffer1ID); initialize51();

SFG_fastsearch(buffer1ID); while(querenma==1) SFG_fastsearch(buffer1ID); if(querenma==0)

//指定第二行显示位置

WriteCommand(0x98); for(i=0;i

WriteData(text4[i]); //显示LCD12864并行显示 while(Keycan()==0);

请按任意键继续

//指定第四行显示位置

Clrram();

WriteCommand(0x90); for(i=0;i

WriteData(text16[i]); //显示LCD12864并行显示

接收包出错

//指定第二行显示位置

Clrram();

WriteCommand(0x90); for(i=0;i

WriteData(text12[i]); //显示LCD12864并行显示

没搜索到指纹

//指定第二行显示位置

Clrram(); }

else if(querenma==9) { Clrram();

WriteCommand(0x90); for(i=0;i

WriteData(text2[i]); //显示LCD12864并行显示 请再次按指纹

//指定第二行显示位置

WriteCommand(0x90); for(i=0;i

WriteData(text19[i]); //显示LCD12864并行显示 该指纹已存储

//指定第四行显示位置

请按任意键继续

WriteCommand(0x98); for(i=0;i

WriteData(text4[i]); //显示LCD12864并行显示 while(Keycan()==0);

//指定第二行显示位置

SFG_enroll(); while(querenma==2) SFG_enroll(); Clrram();

if(querenma==0) {

IDa1=PageID/100;IDa2=PageID/10%10;IDa3=PageID%10; WriteCommand(0x90); for(i=0;i

WriteData(text3[i]); //显示LCD12864并行显示

//指定第三行显示位置

编号为:pgaeID

指纹采集成功

WriteCommand(0x88); for(i=0;i

else if(querenma!=0) {

WriteCommand(0x90); for(i=0;i

WriteData(text5[i]); //显示LCD12864并行显示

//指定第三行显示位置

请重新采集

指纹采集失败

//指定第二行显示位置

WriteData(text17[i]); //显示LCD12864并行显示

WriteData(0x30+IDa1);WriteData(0x30+IDa2);WriteData(0x30+IDa3);

//指定第二行显示位置

WriteCommand(0x88);

for(i=0;i

WriteCommand(0x98); for(i=0;i

WriteData(text14[i]); //显示LCD12864并行显示

//指定第四行显示位置

WriteData(text4[i]); //显示LCD12864并行显示 请按任意键继续

}

Clrram(); }

void deletfinger() {

uchar i,j=0; Clrram();

for(i=0;i

Key=Keycan(); KeyDeal(Key); delay(30);

//按键有抖动@@@

if(Key==0)K=10; if((K>=0)&&(K

if(j

WriteCommand(0x88+j); } if(j==4)

//@@#yinhuang

//指定第三行显示位置

//不输入时会默认为000

@@@

WriteCommand(0x90); for(i=0;i

WriteData(text6[i]); //显示LCD12864并行显示

请输入删去的指纹号

//指定第二行显示位置

WriteData(0x30+dz[j]); ++j; j=3;

} //显示LCD12864并行显示

if(K==34) { if(j==0)

{

//指定第三行显示位置

WriteCommand(0x88);

} else { --j;

//按了删除键

WriteData(0x20);

}

}

}

WriteData(0x20);

if(j>=2)

PageID=dz[2]+dz[1]*10+dz[0]*100; if(j==1)

PageID=dz[1]+dz[0]*10; if(j==0) PageID=dz[0];

SFG_deletchar(PageID); }

void gaimima() {

uchar i,j,mima1[6],mima2[6]; Clrram();

WriteCommand(0x90); for(i=0;i

WriteData(text20[i]); //显示LCD12864并行显示

请输入密码

for(i=0;i

//指定第二行显示位置

if(querenma==0) { Clrram();

WriteCommand(0x90); for(i=0;i

WriteData(text7[i]); //显示LCD12864并行显示 } else { Clrram();

WriteCommand(0x90); for(i=0;i

WriteData(text15[i]); //显示LCD12864并行显示 }

WriteCommand(0x88); for(i=0;i

WriteData(text4[i]); //显示LCD12864并行显示 请按任意键继续 while(Keycan()==0);

//指定第三行显示位置 //指定第二行显示位置

显示删除失败

//指定第二行显示位置

显示删除成功

Clrram();

while(Key!=queren)

Key=Keycan(); KeyDeal(Key); delay(30);

if(Key==0)K=10; if((K>=0)&&(K

mima1[j]=K;

if(j

WriteCommand(0x88+j);

} if(j==7)

//@@#yinhuang

//指定第三行显示位置

WriteData(0x0f); ++j; j=6; }

} //显示LCD12864并行显示

if(K==34) { if(j==0)

{

//指定第三行显示位置

WriteCommand(0x88);

} else { --j;

//按了删除键

WriteData(0x20);

WriteCommand(0x88+j); //指定第三行显示位置 }

}

WriteData(0x20);

Clrram(); Clrram();

j=0;

WriteCommand(0x90); for(i=0;i

WriteData(text23[i]); //显示LCD12864并行显示

请再次输入密码

for(i=0;i

Key=Keycan(); KeyDeal(Key);

//指定第二行显示位置

while(Key!=queren)

if(Key==0)K=10; if((K>=0)&&(K

mima2[j]=K;

if(j

WriteCommand(0x88+j);

} if(j==7)

//@@#yinhuang

//指定第三行显示位置

WriteData(0x0f); ++j; j=6; }

} //显示LCD12864并行显示

if(K==34) { if(j==0)

{

//指定第三行显示位置

WriteCommand(0x88);

} else { --j;

//按了删除键

WriteData(0x20);

WriteCommand(0x88+j); //指定第三行显示位置 }

}

WriteData(0x20);

Clrram();

if((mima1[0]==mima2[0])&&(mima1[1]==mima2[1])&&(mima1[2]==mima2[2])&&(mima1[3]==mima2[3{

for(i=0;i

WriteData(text26[i]); //显示LCD12864并行显示

//指定第二行显示位置

请按任意键继续

密码更新成功

//指定第二行显示位置

])&&(mima1[4]==mima2[4])&&(mima1[5]==mima2[5]))

WriteCommand(0x88); for(i=0;i

WriteData(text4[i]); //显示LCD12864并行显示 while(Keycan()==0);

} { WriteCommand(0x80); for(i=0;i

void guanliyuan()

{ uchar i,j;

Clrram();

WriteCommand(0x90); for(i=0;i=0)&&(K

} { if(j==0) { WriteCommand(0x88); } else { --j; //指定第三行显示位置 WriteData(0x20); WriteCommand(0x88+j); //指定第三行显示位置 } } WriteData(0x20); Clrram();

if((mima[0]==mimaID[0])&&(mima[1]==mimaID[1])&&(mima[2]==mimaID[2])&&(mima[3]==mimaID[3])&&(mima[4]==mimaID[4])&&(mima[5]==mimaID[5]))

{

while(Keycan()!=tuichu)

{

KeyDeal(Keycan());

switch(K) { case 1: addfinger();K=6; break; case 2: deletfinger(); break; case 3: gaimima(); break; default: break; } WriteCommand(0x98); for(i=0;i

}

}

else

{

WriteCommand(0x90); for(i=0;i

Key=0;

}

void main()

{

initialize51();

LEDK=0;

Lcd_int();

Clrram();

wclo(ta);

delay(100);

//SFG_empty();

///@@@@ //SFG_deletchar(255); //SFG_storechar(1011); //SFG_fastsearch(1);

while(1)

{

Key=Keycan();

if(Key==0x18)

{

}

if(Key==0x81)

{

Clrram(); guanliyuan(); //管理员操作 Clrram(); shuazhiwen(); Clrram(); //指纹刷机 // WriteCommand(0x90); //指定第二行显示位置 // WriteData(0x30+((0xf0&querenma)>>4));WriteData(0x30+(0x0f&querenma)); Clrram();

}

rclo(a); playtime(); delay(100); jidianqi=1; }

}

范文五:【算法】指纹识别算法基本原理介绍 投稿:孔娻娼

【算法】指纹识别算法基本原理介绍

在有的国家,指纹属于个人隐私,不能象人工处理那样直接处理指纹图像,所以许多生物识别技术并不直接存储指纹的图像。多年来在各个公司及其研究机构产生了许多不同的数字化算法。指纹识别算法虽然各不相同但是这些算法最终都归结为在指纹图像上找到并比对指纹的特征。我们定义了指纹的两类特征来进行指纹的验证:总体特征和局部特征。

A 总体特征:总体特征是指那些用肉眼就可以直接观察到的特征,包括:

1. 纹形

其他的指纹图案都基于这三种基本图案。仅仅依靠纹形来分辨指纹是远远不够的,这只是一个粗略的分类,通过更详细的分类使得在大数据库中搜寻指纹更为方便快捷。

2. 模式区

模式区是指指纹上包括了总体特征的区域,即从模式区就能够分辨出指纹是属于那一种类型的。有的指纹识别算法只使用模式区的数据。 SecureTouch的指纹识别算法使用了所取得的完整指纹而不仅仅是模式区进行分析和识别。

3. 核心点

核心点位于指纹纹路的渐进中心,它在读取指纹和比对指纹时作为参考点。许多算法是基于核心点的,既只能处理和识别具有核心点的指纹。核心点对于

SecureTouch的指纹识别算法很重要,但没有核心点的指纹它仍然能够处理。

4. 三角点

三角点位于从核心点开始的第一个分叉点或者断点、或者两条纹路会聚处、孤立点、折转处,或者指向这些奇异点。三角点提供了指纹纹路的计数跟踪的开始之处。

5. 纹数

指模式区内指纹纹路的数量。在计算指纹的纹数时,一般先在连接核心点和三角点,这条连线与指纹纹路相交的数量即可认为是指纹的纹数。

B 局部特征

局部特征是指指纹上的节点的特征,这些具有某种特征的节点称为特征点。两枚指纹经常会具有相同的总体特征,但它们的局部特征--特征点,却不可能完全相同。指纹纹路并不是连续的、平滑笔直的,而是经常出现中断、分叉或打折。这些断点、分叉点和转折点就称为“特征点”。就是这些特征点提供了指纹唯一性的确认信息。指纹上的节点有四种不同特性:

1.特征点的分类:有以下几种类型,最典型的是终结点和分叉点。

终结点

一条纹路在此终结。

分叉点

一条纹路在此分开成为两条或更多的纹路。

分歧点

两条平行的纹路在此分开

孤立点

一条特别短的纹路,以至于成为一点。

环点

一条纹路分开成为两条之后,立即有合并成为一条,这样形成的一个小环称为环点。

短纹

一端较短但不至于成为一点的纹路。

2.方向: 节点可以朝着一定的方向。

3.曲率:描述纹路方向改变的速度。

4.位置:节点的位置通过(x, y)坐标来描述,可以是绝对的,也可以是相对于三角点或特征点的。

范文六:活体指纹识别技术的基本原理和方法_李海雄 投稿:李眥眦

第3卷第4期

 

Vol.3 No.4

 

采矿技术

 

MiningTechnology

 

2003年12月Dec. 2003

活体指纹识别技术的基本原理和方法

李海雄

(长沙矿山研究院, 湖南长沙 410012)

摘 要:简介了活体指纹识别技术,叙述了几种不同的指纹取像技术及其特点,阐述了指纹的两类特征及设计指纹识别系统须考虑的问题。关键词:活体指纹;识别技术;指纹特征;指纹识别系统

1 活体指纹识别技术概述

人类手掌及其手指、脚、脚趾内侧表面皮肤凸凹不平的纹路形成各种各样的图案,且不同人的手指纹路所构成的图案、断点和交叉点各不相同,即人体指纹具有唯一性和不变性。依靠指纹特征的惟一性,就可以把一个人同其指纹对应起来,通过比较他的指纹特征和预先保存的指纹特征,就可以验证他的真实身份。

活体指纹识别技术主要通过活体指纹图像采集、指纹特征提取、保存特征数据和特征值的比对与匹配4个过程来完成识别。首先,通过活体指纹采集仪采集人体指纹的图像,取到指纹图像之后,对原始图像进行初步的处理,使之更清晰。然后,由指纹识别软件建立指纹的数字表示——特征数据。这是一种单方向的转换,可以从指纹转换成特征数据,而不能从特征数据转换成为指纹,两枚不同的指纹不会产生相同的特征数据。识别软件从指纹上找到被称为“节点”的数据点,也就是指纹纹路的分叉、终止或打圈处的坐标位置。这些点同时具有7种以上的唯一性特征。通常手指上平均具有70个节点,所以这种方法会产生大约490个数据。有的算法把节点和方向信息组合可产生更多的数据,这些数据通常称为模板,保存为1K大小的记录。但至今仍然没有一种模板标准,也没有一种公布的抽象算法,而是各个厂商自行确定。最后,通过计算机模糊比较的方法,把两个指纹的模板进行比较,计算出它们的相似程度,最终得到两个指纹的匹配结果。

感器(半导体)等。光学取像设备依据的是光的全反射原理。光线照到压有指纹的玻璃表面,由CCD获得反射光线,反射光的数量依赖于压在玻璃表面上指纹的脊和谷的深度和皮肤与玻璃间的油脂和水分。光线经玻璃射到谷地后在玻璃与空气的界面上发生全反射,光线被反射到CCD,而射向脊的光线不发生全反射,而是被脊与玻璃的接触面吸收或者漫反射到别的地方,这样就在CCD上形成了指纹的图像。随着光学技术的发展,光学取像设备的体积不断变小。

应用晶体传感器取指纹图像是近年来出现的新技术。最常见的是用电容传感器通过电子度量来捕捉指纹。在半导体金属阵列上能结合大约10万个电容传感器,其外面是绝缘的表面,当用户的手指放在上面时,皮肤组成了电容阵列的另一面。电容器的电容值由于指纹的脊和谷相对于另一极之间的距离而变化。另一种晶体传感器是压感式的,其表面的顶层是具有弹性的压感介质材料,依照指纹的外表地形(凹凸)转化为相应的电子信号。其它还有温度感应传感器,这种传感器通过感应压在设备上的指纹脊和远离设备的指纹谷的温度不同获得指纹图象。

超声波扫描被认为是指纹取像技术中非常好的一类。首先用超声波扫描指纹的表面,紧接着由接收设备获取其反射信号,测量它的范围,得到脊的深度。不象光学扫描,积累在皮肤上的脏物和油脂对超音速获得的图像影响不大,所以这样的图像是实际脊地形(凹凸)的真实反映,应用起来更为方便。大多数光学设备,只能通过人工调整来改变图像的质量。然而,晶体传感器可提供自动调节像素,以及局部范围的敏感程度,从而提高图像的质量。

光学扫描技术可以用较大的模型在较大区域对2 指纹图像的获取

2.1 指纹取像的几种技术及其特点

第3卷第4期 李海雄: 活体指纹识别技术的基本原理和方法

93

昂贵的。此外,晶体传感器容易受到静电的影响,这使得晶体传感器有时会取不到图像,甚至会被损坏,而且晶体传感器不像玻璃耐磨损,从而影响了其使用寿命。

总之,各种技术都有各自的优势和缺点。表1给出了3种主要技术比较。

表1 3种主要技术的比较

比较项目光学全反射技术体积耐用性

大非常耐用

硅晶体电容传感技术超声波扫描

小容易损坏干手指好,但汗多的

和稍脏的手指不能成像

较少低

中一般非常好较多很高

通常用指纹的两类特征来进行指纹的验证,即总体特征和局部特征。

总体特征所描述的是指纹的全局纹路结构,是指那些肉眼就可以观察到的特征,包括如下内容。

(1)基本纹路图案。可分为环型、弓型和螺旋型3种基本图案。仅仅依靠图案类型来分辨指纹是远远不够的,这只是一个粗略的分类,但通过更详细的分类使得在大数据库中搜寻指纹更为方便。

(2)模式区。模式区是指指纹上包括了总体特征的区域,即从模式区就能够分辨出指纹属于那一种类型。

(3)核心点。核心点位于指纹纹路的渐进中心,在读取指纹和比对指纹时用作参考点。

(4)三角点。三角点指从核心点开始的第一个分叉点或者断点、或者两条纹路汇聚处、孤立点、折转处,三角点提供了指纹纹路的计数和跟踪的开始之处。

(5)式样线。式样线是指包围模式区的纹路线在开始平行的地方所出现的交叉纹路,式样线通常很短就中断了,但它的外侧线开始连续延伸。

(6)纹数。指模式区内指纹纹路的数量。

局部特征是指指纹上的节点特征,也称为细节特征。具有某种特征的节点称为特征点。两枚指纹经常会具有相同的总体特征,但它们的局部特征——节点却不可能完全相同。

指纹纹路并不是连续的,平滑笔直的,而是经常出现中断、分叉或打折。这些断点、分叉点和转折点就称为“节点”。节点提供了指纹唯一性的确认信息。指纹上的节点有4种不同特性。

(1)分类。节点有以下6种类型,最典型的是终结点和分叉点。终结点指一条纹路在此终结;分叉点指一条纹路在此分开成为两条或更多的纹路;分歧点指两条平行的纹路在此分开;孤立点指一条特别短的纹路,以至于成为一点;环点指一条纹路分开成为两条之后,立即又合并成为一条,形成的一个小环;短纹指一端较短但不至于成为一点的纹路。

(2)方向。节点可以朝着一定的方向。

(3)曲率。描述纹路方向改变的速度。(4)位置。节点的位置通过(x,y)坐标来描述,可以是绝对的,也可以是相对于三角点或特征点的。

干手指差,但汗

成像能力多的和稍脏的

手指成像模糊耗电成本

较多低

2.2 指纹图像的增强

最初获得的指纹图像有很多噪音,这主要是由于平时的工作环境引起的,比如手指被弄脏,手指有刀伤、疤、痕、干燥、湿润或撕破等。图像增强是减弱噪音,增强指纹脊和谷的对比度。

图像增强的方法有很多。大多数是通过过滤图像与脊局部方向相匹配。首先将图像分成几个小区域(窗口),并在每个区域上计算出脊的局部方向来决定方向图,可以由空间域处理,或经过快速2维傅立叶变换后的频域处理来得到每个小窗口上的局部方向。

图像增强、噪音减弱后,可以开始选取一些脊。虽然,在原始灰阶图像中,其强度是不同的,按一定的梯度分布,但它们真实的信息可以被简单化为二元,即脊及其相对的背景。图像二元化后,随后的处理就会比较容易。

在节点提取之前的最后一道工序是“细化(thinning)”。细化是将脊的宽度降为单个像素的宽度。好的细化方法应保持原有脊的连续性,降低人为因素所造成的影响。人为因素主要是毛刺,带有非常短的分支而被误认为是分叉。认识到合法的和不合法的节点后,在特征提取阶段排除这些节点。

3 活体指纹的总体特征和局部特征

指纹其实是比较复杂的,其与人工处理不同,许多生物识别技术公司并不直接存储指纹的图像。多年来,在各个公司及其研究机构产生了许多数字化的算法。但指纹识别算法最终都归结为在指纹图像4 指纹识别系统需要考虑的问题

94

采矿技术  2003年12月

赖于可靠的指纹识别算法,还有其它一些重要因素需要考虑,这里称之为“系统问题”,包括注册和识别过程,速度和工作学、用户信息的反馈、排斥欺骗和安全等。

为了得到较好的识别率,在注册时应尽量获得好的指纹图像,这是因为注册一般只进行一次,而以后的识别是经常的。一个较好的指纹识别系统应要求用户在登记指纹时多次获取指纹,然后,把最好的指纹图像或每次获得的指纹图像的综合结果作为注册的指纹图像。

另一个方法可以值得在指纹系统设计时考虑,即可以多次取像直至得到一个确定的匹配,但这个过程在降低了拒判率的同时,提高了误判率。识别不仅仅只用一个手指的指纹,可以用两个或更多的手指的指纹,这样可以增强识别率,当然这样会浪费用户的许多时间。

系统的工作学是很重要的。例如:在个人识别系统中,人们愿意等待的时间极限,这个极限时间根据特定的应用而不同,它依赖于在处理的过程中人们正在做什么。例如:在刷卡或输入ID号的过程,0.5~1.5s被认为是可以接受的;另外,拒判而重复次数不应超过3次。

在验证和识别的过程中,取像设备应有正确的  (上接第3页)

心点O的里面,故巷道有冒顶的可能;F1、f4、f5和F1、f2、f5分别构成的封闭区均落在中心点O的外面,且部分落在磨擦圆内,两帮还有滑落的趋势。现场发现该回风巷道在8-2~7-1采之间出现过冒顶。

2.3 矿岩体稳固性评价

由矿岩体质量评价可知,Ⅱ号矿岩体属于“好”和“较好”的岩体;室内实验得知各组矿岩石的抗压强度较大,矿岩石的稳固性较好;现场调查发现无主要断层穿过;根据地质构造、赤平投影原理分析,采场顶板相对稳定,但存在可动块体,有冒顶的可能。总之,Ⅱ号矿岩体稳固性较好。但是,回采过程中要充分考虑以下不稳定因素:矿岩体中节理裂隙较为发育,采场顶板有局部冒落失稳的趋势;由于经历过群采开挖的扰动和损伤,要防止开采应力再度集中诱发新老空区的大面积地压活动;另外,露天边坡开裂部位若大量滑落,也会对井下产生冲击影响。

提示信息,提示用户手指该怎样放置,以便获得高质量的指纹图像。

在指纹识别系统中,反欺骗的措施用来阻止人造指纹、死指纹和残留指纹等。残留指纹是由于皮肤油或其它原因残留在传感器上的。传感器应建立反欺骗对策,使之有能力识别真实的皮肤温度、阻力或电容。

既然指纹识别系统是为系统安全而设计的,节点模板数据库必须是安全的,要防止冒名顶替的人将自己的指纹存进数据库而成为合法的用户。指纹匹配的结果是“YES”或“NO”,以此获得访问权。如果有人简单地绕过指纹匹配而能直接发送一个“YES”,那么系统就是不安全的。因此,系统应确保主机接收的识别结果是来自真正的合法用户。

总之,在一个完整的指纹识别应用系统中有许多问题须考虑,解决好这些问题有助于成功地建立有效的应用系统,相反,则可能会导致应用系统最终失败。

(收稿日期:2003-06-26)

作者简介:李海雄(1969-),男,湖南长沙人,工程师,主要从事活体指纹识别系统及计算机控制系统的应用与研究。

3 结束语

厂坝矿为了达到一定的生产规模,要求过渡层回采展开多中段、多工作面的作业,基于上部已露天开采,井下又遗留了大量群采空区,井下工程的稳固性具有诸多可变因素,因此在地下开采过程中,要深入持久地开展地下开采地压活动规律及其控制方法的研究,采取各种切实可行的安全措施,避免大面积地压灾难,保障安全生产。

参考文献:

[1][2][3][4]

HoekE.,BrownE.T..岩石地下工程[M].连志升等译.北京:冶金工业出版社,1986.

罗国煜,等.岩坡优势面分析理论与方法[M].北京:地质出版社,1992.

李爱兵,等.露天采场三维楔形滑坡体的稳定性研究[J].岩石力学和工程学报,2002,21(1):52~56.

刘凤宣等.广—邻高速公路K24工程边坡失稳的机理分析[J].岩石力学和工程学报,2002,21(11):1691~1695.

范文七:小孔成像原理”带来指纹识别革命性突破 投稿:阎賬賭

【焦点】“小孔成像原理”带来指纹识别革命性突破 2015-01-14

全球安防网注

指纹的特征通常可分为三级。一级特征表示指纹的纹型、流向等宏观特征;二级特征表示指纹的Galton细节,即纹线的分叉点、端点等特征;三级特征则是更高分辨率上的纹线属性,例如纹线的偏移、宽度、汗孔、边缘形状、断裂、褶皱、伤疤,以及其他的永久性特征 ……

2015年美国CES展上,一款拥有2000PPI超高分辨率的光学指纹采集器吸引了全球手机厂商的目光。这款由中国印象认知推出的名为UTFIS的超薄型光学指纹传感器,分辨率超越了目前市面上主流的电容式指纹传感器,是苹果手机指纹识别芯片的四倍。

据印象认知总经理王曙光博士透露,UTFIS采用了自主研发的矩阵式微孔阵列(MAPIS)专利技术,分辨率高达2000PPI产品,是目前全球首款可用于移动电子设备、且厚度仅有1.5mm的光学指纹采集器。

“小孔成像原理”带来的革命性突破

据悉,UTFIS的诞生源于印象认知在古老的“小孔成像原理”上的新发现。

在现代生活中,极少有使用小孔成像的工业产品,在物理教科书中,小孔成像原理也仅作为一种朴素原理简单介绍。但印象认知为了实现超薄尺寸的光学指纹采集器,重新审视了这一古老的成像原理,并在其中发现了小孔成像的诸多优点。

王曙光博士介绍称:首先,小孔成像不需要光学镜头和其他复杂的附属部件,非常简单,也不存在焦距问题。而照相机等所使用的凸透镜成像,通常要求物距为焦距的两倍以上,像距为焦距的一倍至两倍之间,这样就限制了物像之间的距离。因此,如果使用小孔成像,则物像之间的距离可以做到非常之小,意味着我们可以把指纹采集器做得很薄。其次,指纹采集是可控环境,意味着我们可以使用很小的小孔,同时提供较强照明以避免成像黯淡的问题。

在此基础之上,印象认知团队成功自主开发MAPIS技术(矩阵式微孔阵列),并藉此替代了传统光学指纹采集器的透镜系统。此外,UTFIS用透明薄板代替了传统材质三棱镜,进而使产品获得1.5mm的超薄尺寸,是传统光学指纹采集器的几十分之一,成功解决了将光学指纹采集器小型化的难题。此外,MAPIS技术的成本并不高,只需要光学透镜系统的几十分之一,为日后批量生产提供了可能。 2000PPI超高分辨率,国际领先

MAPIS技术带来的另一项巨变,是UTFIS分辨率达到惊人的2000PPI。这一突破性的成果,对于整个智能手机、移动支付等领域都将产生巨大的革命性意义,或将加速互联网移动端从传统密码、手势识别向指纹识别转变。

目前,全球范围内为智能手机提供指纹识别技术的厂商不超过10家,其中包括被苹果收购的AuthenTec,以及FingerprintCards、Validity、Goodix汇顶科技等非苹果系供应厂商。AuthenTec是目前公认的业界最强,但其为苹果开发的指纹传感器分辨率也仅有500PPI。而UTFIS创新性突破2000PPI的超高分辨率,将直接登上全球智能手机指纹识别技术的顶端。

此外,光学指纹传感器要比电容式传感器更为稳定,且不像电容式易受腐蚀、磨损和静电干扰破坏。在传统市场上,尤其是在AFIS、证件、通关、门禁等领域,光学指纹识别依旧是主流,智能手机应用指纹识别才刚刚起步。这也意味着UTFIS的出现,有望加速指纹识别的应用实现大众化、常态化。

汗孔识别打通“三级特征”

UTFIS不仅继承了传统光学指纹传感器的优点,同时还通过超高的分辨率,实现了电容式指纹传感器所无法达到的安全级别。

指纹的特征通常可分为三级。一级特征表示指纹的纹型、流向等宏观特征;二级特征表示指纹的Galton细节,即纹线的分叉点、端点等特征;三级特征则是更高分辨率上的纹线属性,例如纹线的偏移、宽度、汗孔、边缘形状、断裂、褶皱、伤疤,以及其他的永久性特征。在国内、国际刑侦,包括传统指纹识别应用市场,基本采用二级特征,使用三级特征的意义并不是很大。但随着智能手机的发展,受限于尺寸及成本,二级特征已经越来越不能满足“准确识别”的需求。

当指纹采集面积足够大时,基于二级特征的识别具有很高的准确性。一些最优秀的算法可以达到0.1%的EER(EqualErrorRate,相等错误率。是衡量指纹识别准确性的主要指标,EER越低,意味着识别准确性越高)。但智能手机需要使用尺寸更小的指纹采集器,多为8mm×8mm、9mm×9mm等,并有向6mm×6mm演化的趋势。印象认知在做相关测试时发现,如果只使用二级特征,在8mm×8mm采集面积且分辨率依旧是500PPI时,EER升高至15%以上,这个数据意味着指纹识别将同时有15%的拒识率及15%的误识率。对此,王曙光博士表示,即便仅作为手机的屏幕解锁,这种识别准确性也是不可接受的。

而如果提高采集分辨率,获得第三级特征,情况则变得完全不同。目前相关的实验显示,在小尺寸采集面积时,汗孔识别比细节点识别具有明确优势。但使用第三级特征,至少要求指纹采集的分辨率达到1000PPI。而UTFIS通过MAPIS技术获得2000PPI的采集分辨率,改变了传统指纹采集器匹配细节点的缺陷,成功实现汗孔识别,使得在智能手机上实现“三级特征”指纹识别的难题迎刃而解。

在苹果推出iPhone5S之前,半导体式指纹采集器一直处于不温不火的状态。但在苹果的带领下,以电容式为代表的半导体指纹采集器的市场地位发生了翻天覆地的改变,在智能手机上搭载指纹识别技术也成为一种趋势,包括三星、华为、魅族、OPPO等知名手机厂商,也纷纷推出搭载指纹识别的智能手机。而性能更加优越的UTFIS芯片的出现,必将开辟出一个属于光学指纹识别的欣欣市场,重新赢得投资市场及手机厂商的青睐。

范文八:U-13A半导体式生物指纹识别模块电路原理 投稿:袁煭煮

UBTC-13A

产品简介

文档编号:UBTC13-PRD/L0013-A版本编号:V1.0密

级:L

UBTC-13A指纹识别模块

产品简介

深圳市友博泰克技术有限公司

一、概述

UBTC-13A系列指纹模块是深圳市友博泰克技术有限公司自主研发设计的高性能指纹识别模块。该模块结构简单,功能强大,配合上位机,可完成指纹录入、图像处理、特征提取、模板生成、模板存储、指纹比对(含1:1和1:N)、指纹删除等功能。该指纹识别模块通讯协议简单可靠,标准UART协议,以连接不同的上层设备,只需配合简单外围电路即可将该指纹模块嵌入到您的智能化产品中,使您的产品具有强大的指纹识别能力。同时该模块采用半导体电容式指纹采集器,对干湿手指和浅指纹适应性强。

产品特点:



识别效果好:该传感器采用瑞典FPC1011系列指纹采集器,能够解决光学指纹采集器对于干湿手指及其浅指纹识别效果不好的问题。

稳定性好:该传感器在金融、社保、智能锁领域经过严格的实际应用测试,稳定性能较好。防假指纹:电容式指纹采集器,探测真皮层指纹。

设计灵活:模块体积小,可以很方便的嵌入到各种指纹应用设备中。

自学习功能:纹识别过程中,最新提取的指纹特征值识别成功后将该特征值融合到指纹数据库中,使用户在使用过程中体验感越来越好。

抗静电能力强:具有很强的抗静电能力,抗静电指标达到15KV以上。安全等级可调:适用于不同的应用场合,安全等级可由用户设定调整

应用领域:



指纹门禁控制

指纹签到、指纹考勤机等指纹锁、指纹保险柜等

指纹POS终端机等手持设备应用

二、模块硬件描述

2.1硬件特性

表2-1硬件特性

2.2外形及接口定义

2.2.1外观图及接口引脚定义

图2-1UBTC-13A指纹识别二次开发模块外观图

2.2.2UBTC-13A

主处理板尺寸图

图2-2UBTC-13A主处理板尺寸图

2.2.3

指纹传感器尺寸图

图2-3FPC1011指纹传感器尺寸图

三、模块的技术特性

3.1技术特性

表3-1UBTC-13A模块技术特性3.2出厂设置值

表3-2出厂设置值

范文九:指纹识别技术 投稿:周搉搊

生物计量识别技术

——指纹识别技术

班级:B131204

学号:B13120438

姓名:徐新杰

生物计量识别技术——指纹识别技术

背景及其内涵

生物识别技术就是通过计算机与光学、声学、生物传感器和生物统计学原理等高科技手段密切结合,利用人体固有的生理特性,如指纹、脸象、红膜等和行为特征如笔迹、声音、步态等来进行个人身份的鉴定。生物识别技术是随着计算机科学技术的不断发展,特别是计算机图像处理和模式识别等学科的发展而逐步形成的一种独特的技术,同时也是计算机科学与技术和信息处理技术的边缘学科一,是一种自动识别技术。

由于人体特征具有人体所固有的不可复制的唯一性,这一生物密钥无法复制,失窃或被遗忘,利用生物识别技术进行身份认定,安全、可靠、准确。避免了常见的口令、卡、条纹码、磁卡或钥匙存在的丢失、遗忘、复制及被盗用诸多不利因素。另外,生物识别技术产品均借助于现代计算机技术实现,很容易配合电脑和安全、监控、管理系统整合,实现自动化管理。可广泛用于政府、军队、银行、社会福利保障、电子商务、安全防务。日前,广泛使用或研究较深的生物识别技术有人脸识别、指纹识别、掌形识别、手部血管识别、虹膜识别、视网膜图形识别、而部热像图识别、人耳识别、签名识别和声纹识别。其中人脸、指纹、掌形、手部血管、虹膜、而部热像图、人耳和视网膜图形属于生理特征,而签名和声纹属于行为动作。

指纹识别属于生物特征识别的一种,通过采集指纹图像进行匹配识别,确定指纹所有人身份,其基本原理是通过取像设备读取指纹图像,然后用计算机识别软件,提取指纹的特征数据,最后通过匹配算法获得识别结果。

基本原理:

指纹识别技术作为三大生物识别技术之一,被认为是理论成熟、科学性强、实践应用广泛、发展前景广阔的一项生物识别技术。它是集传感器技术、生物技术、电子技术、数字图像处理、模式识别于一体的高技术。手指上的指纹代表了一个人的身份特征。指纹其实是比较复杂的,尽管指纹只是人体皮肤的一小部分,但用于识别的数据量相当大,对这些数据进行比对也不是简单的相等与不相等的问题,而是使用需要进行大量运算的模糊匹配算法。现代电子集成制造技术可以制造相当小的指纹图像读取设备,同时快速发展的个人计算机提供了在微机甚至单片机上可以进行两个指纹的比对运算的可能。另外,匹配算法的可靠性也不断提高,指纹识别技术己经非常实用。

指纹识别技术与其它模式识别技术一样,并不是直接对指纹图像进行识别,而是要从

图像中提取关键特征,对特征图像进行识别匹配。从生理上看,纹路是手指皮肤的凸起的部分(脊),纹路之间是凹下的部分(谷)。因此,理想的指纹图像是一幅黑白相间的二值图像。但是,由于指纹通常是用按压的方式得到的,因此油墨不均匀、纸张不均匀、按压的压力不均匀、按压的位置和方向不同、手指的状况以及皮肤的变形等因素都会导致指纹图像不理想。通过扫描仪或者摄像机进行数字化的时候,由于光照、环境等因素的影响,也会引入各种噪声。这些因素都使得原始的指纹灰度图像不能直接用来进行匹配与识别,因此有必要选择合适的特征来描述指纹。

图1是一个完整的指纹识别系统框图。实际应用中,一般使用指纹鉴定模块完成对指纹的验证与识别,指纹数据库的建立属于前期性的准备工作。

由图可以得出如下的指纹识别过程示意图,包括指纹采集、图像处理、特征提取和匹配四个模块。

图1

(1)指纹图像获取设备分为如下三类:光学取像设备、晶体传感器和超声波扫描。总之,三种取像技术都具有它们各自的优势,也有各自的缺点

(2)图像预处理

纹采集设备所获得的原始图像有很多噪声,比如手指被弄脏,手指有刀伤、疤痕, 手指干燥、湿润或撕破等都会影响图像的质量。因此说图像预处理就是为了消除这些问题使得得到的图像是一幅二值化的黑白图像。

(3)指纹的基本特征及提取

指纹识别系统中,通常采用全局和局部两种层次的结构特征。全局特征描述的是指纹的总体纹路结构,具体包括纹形、模式区、核心点、三角点

和纹数五个特征。局部特征是指指纹上的节点的特征,这些具有某种特征的节点称为特征点。两枚

指纹经常会具有相同的全局特征,但它们的局部特征—特征点,却不可能完全相同。指纹纹路并不是连续的、平滑笔直的,而是经常出现中断、分叉或打折。这些断

点、分又点和转折点就称为“特征点”。就是这些特征点提供了指纹唯一性的确认信息。

原始指纹图像经预处理后得到的是一幅细化的二值图像,下一步要做的工作就是 对细化后的图像进行特征提取,得到可以识别不同指纹的关键特征。一般来说特征提取可以分为三个步骤:定位,特征选取,特征提取。

(4)特征比对

人工比对一般是将指纹分成弓型、箕型和斗型三种基本类型,然后对每一类再进行细分比对。但计算机难以根据指纹的这种全局特征进行分类与比对,指纹自动识别系统一般采用两级比对法进行指纹比对。

全局比对

由操作者通过人机会话告诉计算机待识别指纹是何种纹型,例如是弓型、箕型还是斗型。这实际上是根据指纹的这种全局特征进行分类与比对,指纹自动识别系统一般采用两级比对法进行指纹比对。

局部比对

利用指纹的端点、分叉和方向等局部特征对不同纹型的指纹应用模式识别匹配算法作进一步的比对,以确定是否匹配。

特征比对的方法即是模式识别中的匹配算法。模式识别的目的是对图像中的物体进行分类,或者可以说是找出图像中有哪些物体。图像的模式识别就是指在对图像中各类物体的光谱和空间信息进行分析的基础上,通过特征提取得到可以表征不同物体的特征向量,这些特征向量可将特征空间划分为互不重叠的子空间(每个子空间对应一类物体),然后将每个像元依据一定的判别规则划归到某一子空间。常用的模式识别匹配算法有四种,它们分别是统计模式识别方法、模糊模式识别方法、人工神经网络模式识别方法、句法结构模式识别方法。

范文十:指纹识别的内容 投稿:袁涅涆

计算智能概论结课

作业

作 业 题 目: 指纹识别的内容

专 业 班 级 :电科1004

学 生 姓 名 : 黄俊才

学 号 :201048360417

联 系 方 式 :15638122202

指纹识别的内容

指纹识别技术作为一个新的IT技术领域,自身具有许多新的概念。了解指纹识别技术的概念有助于准确的理解指纹识别技术。

指纹识别系统

指纹识别系统经过人工识别到机器识别的发展之后,进入自动识别阶段,称为自动指纹识别系统(AFIS)。一个典型的自动指纹识别系统,包括与人交互的前端子系统――自动指纹采集设备、完成指纹图像处理和特征值提取的后台子系统,以及用于指纹库存储的数据库子系统。当后台子系统用于指纹注册过程时,可以称为指纹注册子系统。当它用于指纹辨识过程时,称为指纹辨识子系统。

注册与匹配

指纹注册又叫指纹登记。是从指纹图像中提取指纹特征值,形成指纹特征值模板,并与人的身份信息结合起来,存储在指纹识别系统中的过程。它相当于为指纹报户口。所以指纹注册的时候,需要保证指纹与身份信息之间的正确对应。尤其对于政府、社团、公司等单位进行指纹注册时,防止冒名顶替,避免指纹与身份信息关联错误,是非常重要的。因此在这类指纹应用中,指纹登记的过程,需要现场督导人员参与。甚至把督导人的指纹采集到系统中,作为注册者指纹特征值模板的组成部分,以示职责之重要,并为后续责任审计提供依据。

识别与验证

识别与验证并不是指纹识别算法领域的问题,而是指纹识别系统的问题。指纹识别是指在1:N模式下匹配指纹特征值。它是从多个指纹模板中识别出一个特定指纹的过程。其结果是,“有”或者“没有”。有时会给出“是谁”的信息。

指纹验证是指在1:1模式下匹配指纹特征值。它是拿待比对的指纹特征模板与事先存在的另一个指纹特征模板进行一次匹配的过程。其结果是“是不是”。在一个系统中既可以采用1:1模式也可以采用1:N模式,这是取决于应用系统的特点和要求。有时候还可以业务模式的需要,把1:N模式转化为1:1模式以提高系统安全性和比对速度。

FRR与FAR

FRR (False Rejection Rate)和FAR(False Acceptance Rate)是用来评估指纹识别算法性能的两个主要参数。FRR和FAR有时被用来评价一个指纹识别系统的性能,其实这并不贴切。指纹识别系统的性能除了受指纹算法的影响外,指纹采集设备的性能对FRR和FAR的影响也是不能忽视的。

FRR 通俗叫法是拒真率的意思,标准称谓是FNMR(False Non-Match Rate 不匹配率)。可以通俗的理解为“把应该相互匹配成功的指纹当成不能匹配的指纹”的概率。对指纹算法的性能测量是在给定指纹库的情况下进行测量的。用于测量的指纹库一般由FVC(国际指纹识别算法大赛)组织者给定。FVC在作指纹识别算法性能测试时,并无外界指纹输入,是使用标准的指纹图像库来测试的。所以 FNMR是在没有连接指纹采集设备的情况下得出的测试值。本节的其它参数也都是在这一前提下得出的。

假定指纹库中有100个不同ID的手指,每个手指注册有3枚指纹,则该指纹库中共有300枚指纹。假定P1表示手指1的ID,则其三次注册的指纹用P1-F1,P1-F2,P1-F3来表示。FNMR是指把指纹库中的同一个手指的3枚指纹两两比较,即P1-F1与P1-F2匹配,P1-F1与P1-F3匹配,P1-F2与P1-F3匹配,P1-F2与P1-F1匹配,P1-F3与P1-F1匹配,P1-F3与P1-F2匹配,共有6种匹配方式。把所有100个手指在其内部均作6种匹配,共6x100=600次匹配。理论情况下,600次匹配均能正确匹配,匹配的成功率为100%。实际上因为同一手指的3枚指纹图像不可能完全一样,所以有一个匹配相似度问题。假定我们把匹配成功的相似度设为>90%,就是说当相似度大于90%时,表示匹配成功。然后我们从600次匹配中,找出多少次相似度在90%以上的,这个数值就表示匹配成功的次数,假定为570次。600次中其余的表示没有匹配成功的次数,为600-570=30次。则匹配失败率,就是30/600=5%。

对于指纹识别算法来讲,在指纹库确定的情况下,其匹配失败率FNMR是一定的。当指纹库发生变化,其FNMR也会有变化。所以国际上是以FVC公布的指纹库为统一的测试库,在该测试库中测试出来的FNMR结果作为衡量指纹算法性能的标准参考。

FAR一般称为认假率,其标准称谓是FMR(False Match Rate 错误匹配率)。FMR是用来评估指纹识别算法性能的最重要参数。可以通俗的理解为“把不应该匹配的指纹当成匹配的指纹”的概率。

同样以前段中的指纹库为例。把库中的每个指纹,与除自己之外的其它所有指纹进行匹配,匹配的总次数,即3x99x3x100=89100次。理论情况下,匹配成功次数为6x100=600次,匹配失败次数应为89100-600=88500次。假定由于指纹算法性能的原因,把本应该匹配失败的判为匹配成功,若假定这种错误次数为100次。则错误接受率FAR为100/89100=0.11%。匹配失败次数是因判定相似的条件严格程度而变化的。当匹配成功的筛选条件,即门限值提高时,FAR会降低。

FAR也与指纹库相关。所以在FVC大赛中,有4个指纹库用于测试,并取平均值。其中有一个指纹库是人工生成的,以排除采集设备不同导致的指纹图像质量不同对算法效能的影响。

在同一个指纹库中,对同一个算法来讲,需要设定一个阈值,作为判定相似的标准。当相似度大于这个阈值时,表示匹配成功,否则表示匹配失败。FNMR是随阈值增大而增大的,即判定相似的门槛值越高,则真的指纹判定为假的机率越大。反之,FMR是随阈值增大而减小的,即随着判定相似度的门槛值越高,把假的指纹判定为真的概率会越小。FAR与FRR成反比。根据2004年FVC大赛测试结果,一般当FMR是1/1000量级时,FNMR是5/100左右。也就是100个手指的指纹库中,进行1000次匹配,有可能发生一次匹配错误,即认错。进行100次匹配,有可能出现5次匹配失败,即不认。

EER

EER(Equal Error Rate)是相等错误率的意思。这个参数一般在普通场合不大使用。EER主要用于评价指纹算法整体效能的指标。也就是把FAR、FRR两个参数统一为一个参数,来衡量指纹算法的整体性能。FAR和FRR是同一个算法系统的两个参数,把它放在同一个坐标中,如图30所示。FAR是随阈值增大而减小的,FRR是随阈值增大而增大的。因此它们一定有交点。这个点是在某个阈值下的FAR与FRR等值的点。习惯上用这一点的值来衡量算法的综合性能。对于一个更优的指纹算法,希望在相同阈值情况下,FAR和FRR都越小越好。

把FAR和FRR曲线都向下平移。同时相交点ERR也向下平移。所以EER值越小的时候,表示算法的整体性能越高。

由于当FRR与FAR相交时对应的阈值都很小,也就是说此时的相似度阈值连30%都不到。实际使用中的阈值至少设在80%以上,所以EER值并不被用在大众化场合来描述指纹算法的性能,只是在竞赛排名中使用。

拒登率

拒登率一般使用较少,在指纹识别术语中,它是一个意思相对比较含糊的词。在世界指纹算法大赛中,有个参数叫拒绝注册率,有时被称为拒登率,用来衡量指纹识别算法对指纹图像质量的挑剔程度,用REJENROLL。表示。在给定的指纹数量,如100枚指纹图像中,可以成功注册或称为建档的指纹,如果是99,则REJENROLL = 1%。对FVC大赛给出的标准指纹库来讲,绝大多数的指纹算法都可以建档成功,即REJENROLL 为0.00%。

在另外一种场合,拒登率通常被解释为指纹识别系统(包含指纹采集设备)不接受指纹注册的概率。这种情况下,拒绝注册的因素,除了算法本身的原因外,更多的受指纹采集设备的成像能力的影响。指纹采集设备输出的指纹图像质量越好,指纹识别系统的拒登率越低,指纹采集设备输出的指纹图像质量越低,其拒登率越高。

注册时间和匹配时间

注册时间是用来衡量指纹算法性能的另一个指标。它是指从输入指纹图像到指纹建档成功(注册成功)的时间。根据FVC大赛的结果,一般的指纹算法注册时间在0.5秒以内,这也是FVC以参加LIGHT组比赛的算法提出的参赛资格之一。

匹配时间有时称为比对速度,是用来指示指纹识别算法完成一次匹配所需的时间。它是从指纹图像输入算起到匹配结果输出为止的时间。参加算法大赛的绝大多数算法的匹配时间在0.3秒以内,这个参数与注册时间最小值一起构成LIGHT组的参赛条件。

由于这些时间都是受待测的指纹图像的质量影响,所以一般取多个指纹库的平均值,所以一般拿平均注册时间和平均匹配时间作为衡量依据。

站点地图