1、基于ARM的指纹识别系统摘要 世界正朝着互联化的方向发展,而物联网正是这个数字革命的核心之一。在目前流行的物联网技术中,要求嵌入式终端能够提供成熟且价格便宜的生物特征识别技术,目前来说指纹识别的技术应用最为广泛,我们不仅在门禁、考勤系统中可以看到指纹识别技术的身影,市场上有了更多指纹识别的应用:如手机、指纹锁、银行支付验证都可应用指纹识别的技术。在指纹识别控制领域,也会用到各种微控制器,本文采用了三星半导体S3C6410作为控制核心,S3C6410应用了专为要求高性能、低成本、低功耗的嵌入式消费类电子设计的ARM11内核。按性能分成两个不同的系列:该系列内核时钟频率已经达到532MHz。指纹识
2、别基于两种特征点来识别:(i)组成指纹的指纹整体特征结构(ii)局部的特征点。本文提出了一种可以在自动指纹识别系统中使用的基于特征点的指纹识别算法。本文提到的方法基于从细化提取的特征点,二值化一个指纹图像分割图。该系统采用在指纹分类的指纹索引匹配,大大提高了匹配算法的性能。关键字:ARM11,指纹识别,特征识别,图像处理AbstractThe world is moving in the direction of the development of the Internet, the Internet of is one of the core of the digital revoluti
3、on. In the current network technology, the embedded terminal capable of providing biometric technology is mature and the price is cheap, at present technology of fingerprint recognition is the most widely, we can not only see the fingerprint recognition technology in access control, attendance syste
4、m, fingerprint recognition application is more on the market: such as mobile phone, fingerprint lock, bank payment verification can be applied to fingerprint recognition technology.In the fingerprint recognition and control field, we will also use a variety of micro controller, this paper uses Samsu
5、ng S3C6410 as the control core, S3C6410 application designed for high performance, low cost, low power embedded consumer electronic design based on ARM11 kernel. According to performance is divided into two different series: this series of core clock frequency has reached 532MHz.Fingerprint identifi
6、cation two feature points based on: (I) to identify the fingerprint feature structure fingerprint (II) feature local. This paper proposes a can be used in automatic fingerprint recognition system of fingerprint recognition algorithm based on feature points. The methods mentioned in this article is b
7、ased on the feature points extracted from refined, two value segmentation image of a fingerprint image. The system adopts fingerprint indexing in the fingerprint classification matching, greatly improves the performance of matching algorithm.Keywords: ARM11,Fingerprint Identifier,Feature Point,Image
8、 Processing.目录第一章 概述11.1指纹课题的研究与应用背景11.1.1指纹采集器原理与类型11.2 嵌入式系统概述21.3指纹算法概述31.3.1指纹预处理算法41.3.2指纹图像识别算法4第二章 系统设计方案52.1指纹识别系统的概述52.2指纹系统硬件设计方案52.2.1指纹采集器介绍6第三章 指纹预处理算法的设计83.1指纹图片畸变处理算法:83.2指纹图像的分割计算:103.3指纹均衡113.4指纹收敛处理123.5指纹的平滑处理:143.6指纹的增强处理:143.7指纹的二值化细化处理:154纹识别算法的设计184.1指纹图像的特征184.2指纹图像特征提取算法194.
9、3特征点的匹配算法205.指纹识别系统的实现215.1软件运行环境的设置225.2指纹采集器接口设计235.3显示及UI功能的实现26第六章 系统调试与测试266.1指纹算法的验证:266.2指纹采集接口的调试部分276.3系统运行的测试:29参考文献3033第一章 概述1.1指纹课题的研究与应用背景信息化的特点就是能够实现事物的数字化和隐秘化,传统的身份管理如IC卡,磁卡,钥匙存在着易丢失,伪造等缺点,相比较于传统的身份辨识,人的指纹永远无法改变,因此指纹识别在安防领域,司法领域扮演及其重要的作用,在民用领域,随着采集器的多样化和嵌入式微控制器的发展,指纹识别更多地走进了人们的生活中。作为一
10、门生物识别的学科,数字指纹学的方法有内在的规则可以遵循,可以把数字指纹识别的方法和规则归纳为:理解自然模型,建立物理模型,导出数学模型,确定指纹识别算法这样一个过程1。本设计采用嵌入式微处理器,外接传统指纹采录模块,通过移植专用的指纹识别算法,实现了一个具有指纹采集,指纹辨识功能的系统。1.1.1指纹采集器原理与类型指纹采集原理是根据指纹的上的沟壑的物理特性,指纹的脊线与谷线的不同的特点,得到不同的采集信号,且根据反馈信号的量值来绘成指纹图像。主要采集指纹的方法有两类,其中一类是主动式的采集器,即主动发送信号,通过反馈回来的信号进行判断,如光学采集和射频采集。另一类是感应型的。即通过感应手指本
11、身的特征,然后分析感应信号的值来形成指纹图案。如热敏感应、电容感应和压力感采集属于第二类。常用的采集器类型有三种,光学、电容和射频式。在这些采集器中,光学采集器是使用最为普遍的,成本也是最低的。l 光学指纹采集器光学采集器是出现最早的指纹采集设备,也是目前应用最为广泛的。该类型采集器通常由棱镜,透镜和取像器所组成,取像器可以是CMOS传感器或CCD传感器,该类型传感器具有成本低,接口简单等优点,但是基于光学采集原理,光学指纹采集器手指采集质量与手指的表皮清晰度有关,假如手指比较干,或者手指上有污渍,光学采集器采集到的图像质量较差,此外,天气原因也会影响手指的干湿度。这个问题在北方地区尤其突出。
12、图1-1 光学指纹传感器原理图l 热敏式传感器热敏式传感器并没有图像畸变的缺点,该采集器的原理是检测指纹线和沟线着发出的热量。典型的热敏传感器中主要组成原件有小型加热元件。通过对脊和谷进行加热,热感元件检测检测出脊和沟的温度不同,最后通过图像合成器生成指纹图像,该类传感器价格便宜,体积小,但相对于其他传感器,其缺点功耗高,且在天气热的情况下,图像采集质量很不理想2。l 射频生物识别技术射频生物指纹识别,指的是通过射频信号,穿过手指的表皮去测试里层的纹路,获得指纹。该技术对干手指等困难手指通过可高达99.5%,具有宽温区,防伪能力强等特点。1.2 嵌入式系统概述 嵌入式系统被工程师们定义为“一种
13、用来控制、监视或者辅助仪器、机械操作的计算机系统”。嵌入式系统的特点是基于硬件体系,高效,可靠,强实时性,满足对象智能化控制要求的技术需要,因此可以将嵌入式系统定义为:“嵌入到对象体系中的专用计算机应用系统”。嵌入式系统有3个特性,即“微机性”、“ 可植入”及“专用性”。 “微机性”指的是通过使用专门的微控制器,来实现自动化控制。 “可植入”则是指的是可以嵌入到任何应用中,应付多种控制及运算需求,应用面广泛。 “专用性”指的是为了实现特定对象的操作必须对该对象软硬件单独修改。嵌入式处理器:嵌入式处理器拥有灵活的应用编程资源、丰富的外设接口总线及高速的内部总线结构,与通用微处理器比较,同时具有功
14、耗低、简单易用,实时性强,性价比高等优点,主要分为微控制器,微处理器,DSP处理器,嵌入式片上系统四类22。微控制器:一般指单片机,将整个控制计算机的核心封装在了一个芯片中,其中包含了ALU,外设,总线,RAM,ROM等通用接口,以某一类型内核为模板,该类芯片具有功耗低,稳定性好,但是性能较低,没有MMU,无法运行具有内存管理功能的嵌入式系统,是目前工业应用的主流。微处理器:嵌入式CPU具有通用处理器大部分的功能,可是其集成了更多的外设,并具有嵌入式特有的功耗低,性耗比高的优点,通常以一内核为模板,有别于单片机的是该类芯片性能更强,且通常由MMU的功能,可以在体系上运行强大的嵌入式操作系统5。
15、DSP处理器:DSP处理器指的是运行符和硬件经过特殊设计后,更适合于执行数字运算算法的嵌入式处理器,该系列处理器的编译效率高,指令执行速度快,具有硬件FPU,适合运行嵌入式计算应用,同时基于对应用和控制的要求,很多企业推出了控制器+DSP的双核CPU,提出了控制+运算的解决方案。嵌入式片上系统:指的是在可编程逻辑器件通过软IP核方式实现嵌入式处理器,该类系统功能强大,且更加灵活。本系统采用了使用ARM11内核的S3C6410嵌入式CPU,该CPU使用了基于RISC的ARM11JSF内核,该内核具有5级流水线,ARM独有的工作模式切换,以及硬件JAVA支持,另外提供了多媒体运算指令,能够提高浮点
16、运算能力。1.3指纹算法概述.本系统的指纹算法设计包括预处理和指纹两部分的算法,其中,指纹预处理算法用来提取指纹的特征码,包含指纹分割,二值化,细化部分算法。指纹识别算法用来与以存储的模板匹配得到匹配结果6。1.3.1指纹预处理算法指纹预处理算法包含了分割,收敛,平滑,增强、二值化、细化等操作,为了使特征提取操作能够有效进行,指纹图像必须经过预处理才能得到可提取出特征的指纹图像,其中每个步骤都是有作用的,在整个指纹的处理过程中,预处理耗费的时间占百分80以上,因此预处理算法的效率,决定了指纹识别的效率7。1.3.2指纹图像识别算法指纹匹配算法,主要可分为两类:一种是采用图形学指导的验证方式,包
17、括点模式验证和基于图论的方法;在基于图像匹配的方式中,主要的思路就是把两个特征点直接对应起来,具体的方法是获得指纹的奇异点,通过奇异点进行特征点的校正,对齐坐标系后实现匹配,假如无法获得奇异点,那就必须使用特征点进行遍历匹配(即对每个特征点都进行对比),对比每个特征点的相对特性,这个方法的好处就是可以不用顾虑图像的定位和旋转问题,但这种方法有两点不足:一是匹配时间并不是可以控制的,假如无法获取奇异点,那么匹配的时间可能会很长,二是对图像的分辨率要求较高,低质量的图像下面根本无法正常工作,提高了对硬件的需求8。第二章 系统设计方案本章主要讲述了指纹识别系统的设计方案,其中包括了硬件部分和软件部分
18、的具体设计方案。以及曾选用的方案比较。 2.1指纹识别系统的概述指纹识别系统是通过专用的指纹图片采集器,将指纹图像通过嵌入式处理器经过处理后,经过指纹特征匹配算法,得出匹配结果。因此指纹识别系统由以下三部分组成:(1)嵌入式系统控制板指纹识别控制板由嵌入式处理器,指纹采集器,输入输出等硬件设备组成。(2)指纹采集器模块 本系统采用光电指纹采集器,该类型采集器具有成本低,应用范围广等特点,缺点是图像失真比例大,需要进行软件较真(3)指纹系统软件指纹系统软件由指纹采集,指纹预处理及指纹识别三个步骤构成。2.2指纹系统硬件设计方案针对指纹识别应用,嵌入式控制板必须满足的条件有:1.板载主控芯片必须具
19、有强劲的运算能力,才能具有图像处理的能力,2.有大容量的存储设备,可以满足一般的嵌入式应用需求。3.具有丰富的接口,方面拓展功能及测试。综上所述,选用了采用ARM11内核的三星S3C6410芯片,该芯片的主频最高能到达600MHZ,且集成了丰富的外部设备,且价格便宜,完全满足了指纹识别应用的需求。以下是具体的设计细节10。2.2.1硬件设计三星芯片ARM11S3C6410LCDSDRAMOP100FLASHRS232图 2-1系统组成框图系统采用飞凌OK6410开发板作为硬件平台,该平台主控芯片为S3C6410,数据采集模块由OP100光学指纹传感器来完成,OP100指纹传感器能够来完成指纹图
20、像的采集,通过YUV接口送至ARM11进行存储。由S3C6410处理采集来的数据,由于芯片IRAM存储容量太小,无法保存一张完整的图像,所以将指纹数据放置在外部SDRAM中。当处理图像数据时,ARM11通过读取SDRAM的指纹数据,并进行图像分割、均衡化、收敛、细化和特征值提取等操作,从而得到指纹图像特征信息。转换为可提取特征码的指纹图片,通过特定的文件格式保存在NAND FLASH中。2.2.1指纹采集器介绍本设计采用OP100-T光学式指纹采集头,该采集头使用GC0307传感器进行获取信息,该传感器支持多个分辨率级别的图像传输:QVGA(480*640)CIF(80*120)等,支持多种传
21、输数据格式输出:YCRCB422,YCRCB444,RGB565,采集器通过IIC接口进行控制。 指纹识别软件设计由采集器驱动,图像畸变处理算法,图像预处理算法,特征提取别算法,人机UI界面软件流程图如下图:图2-3指纹识别系统工作流程图第三章 指纹预处理算法的设计本设计采用的指纹识别方法是基于指纹的特征进行匹配的,指纹的特征指的是纹线的的结束点和交叉点,因此,衡量系统性能的好坏就是指纹的端点和分叉点的提取精度。而提取的精度又和指纹图像的大小和预处理算法的运算复杂度有关,一般来说,指纹图像越大,预处理越充分,指纹特征的提取越好。在嵌入式应用中,由于系统的资源有限,因此常常采取折中的方法,即降低
22、图像的分辨率,加大预处理的处理度降低计算量,且得到较高的匹配度。指纹图像的预处理主要有以下几个流程,主要包括求梯度场,方向场,然后图像分割,滤波增强,而后细化,然后可以得到可提取出特征点的指纹图像10。3.1指纹图片畸变处理算法由于采用了光电式采集器,反馈信号受到光学机理的影响,会有一点的图像畸变,在这里主要是梯形畸变,当前很多基于光学式采集的校正技术也是针对这种畸变来进行的。可是,光学采集器得到的指纹图像的畸变不仅只有这种线型变化,非线性扭曲在指纹的边缘是很严重的。如图3-1,3-2所示,但受图像扭曲的影响,相同采集器存在相同的非线性扭曲,因此只要是同一个采集器采集到的信号是可以完成匹配,即
23、使方向不同。但是对于不同的指纹采集器,采集到的图像会因为采集器的工作方式的不同,呈现出不同的特性,因此需要采取特殊的处理算法。图3-1 光学畸变示意图图3-2 实际采集到的畸变解决指纹图像产生的畸变,可以从不同的角度去思考。基于以下假设进行线性拟合数学建模。假设:(1)指纹畸变梯形中的方格数目没有变小,只是由底向顶缩小。(2)认定每行方格的数目变化是线性的。(3)方格中的像素是不可压缩的。依照以上假述,可以进行数学建模,得出第一行的边长关系: (3.1.1)第y行方格边长关系式:假设 (3.1.2)那么第d行的正方形边长 (3.1.3)l Y畸变矫正 矫正对于y方向,第y行的所处位置和上底的距
24、离为前(y-1)个正方形的边长和: (3.1.4)X畸变矫正: (3.1.5)采用上述公式可以解决畸变矫正的坐标映射问题,还原出较为真实的图像11。3.2指纹图像的分割计算:由于使用光学指纹采集器,采集得到的图像分为指纹图像区域和空白区域。我们所做的操作是针对指纹图像本身,但是空白区域由于采集器的因素也会有像素,因此需要分割具体的图片。图3-3梯度场实现图像分割的方法有直方图分割和梯度场的方法:直方图分割的思路是由于指纹像素和背景像素之间落差较大12,因此可以设定阀值,这种分割方法的缺点是不大准确,不适应光学采集接口采集的图像,梯度场的实现方法是计算指纹图像的梯度然后对梯度像素进行阀值判断,目
25、的就是区分是前景和背景。图像梯度的计算方法: (3.2.1) (3.2.2) (3.2.3)如上公式,图像梯度需要进行与相邻像素的比较因此采用梯度的方法相较于直方图的方法更好。3.3指纹均衡由于采集器的原因,采集到的像素的出现并不是均衡分布的,而且集中出现在某个像素区域,这就是图像失衡的表现13。从图像处理角度来看,指纹失衡不利于指纹的预处理,因为图像分布过于密集,无法区分出噪声以及纹线本身,对提取特征造成困难。直方图是灰度的函数,直方图直观的表达了各个灰度出现的概率。直方图均衡指的是通过一个灰度映射函数: (3.3.1)将原直方图改装成需要实现的直方图。直方图均衡就是讲图像的直方图分布改装成
26、均匀的直方图,即使某一处堆积过于紧密的灰度数据均匀分散在灰度域上,使得图像具有最大的熵。常用的均衡方法就是直方图归一化,归一化就是把像素灰度由0255归一化到了1。归一化后的直方的概率密度恒定为1 ,这就意味着指纹图像的各个灰度出现的概率是平均的14。在下公式中Pr(r)为原图像的像素出现概率函数,用Ps(s)表示均衡化之后的像素出现概率函数,r、s代表均衡处理前后的灰度值,r、 s范围在0-1之间。根据概率学,可推倒出: (3.3.2)代表T(r)的逆变换函数,因为均衡要求概率密度函数为1 。 (3.3.3)因此 (3.3.4)得到,可以得到 (3.3.5)上式中T(r)表示均衡化变换函数对
27、于指纹图像数据,可以使用累计分布函数CDF,可得到图像的灰度直方图均衡化公式s=T, (3.3.6)式子中,Tr即是均衡化函数,由式可知某个像素灰度的均衡化后的值为该灰度之前的所有像素灰度的和再除以总的像素值,由于该式中的像素灰度是归一化后的,因此需要乘以255得到真正的像素值。下图是直方图均衡后的指纹图像,比较之后可以看出均衡后的图像纹线和背景之间的色差更大,更有利于处理15。 图3-4 原图 图3-5 均衡之后3.4指纹收敛处理一个指纹对象,在非理想点光源或者面光源的照射下,反应指纹图像纹线点的大部分光子被传感器捕捉,彼此离散的纹线像素以相互确定的位置和灰度组成相应的指纹纹线灰度图像,由于
28、环境干扰和集合光学畸变效应,像素的位置被改变。称为发散。为了解决指纹图像的发散的问题,需要改变这些像素的位置和灰度,使得像素的差异缩小,当位置差异和灰度差异缩小到预先固定的阀值之内,计算机能分辨差异像素的相互关系,这种位置差异和灰度差异的缩小称为收敛18。指纹像素的发散主要为光照误差所照成的,指定位置的光子,在传感器上呈现一定范围的正态随机分布,经传感器捕捉的光子应该反映这种正态随机分布,呈现了一种二维高斯分布。采用数学模型处理该随机变量,就能达到正态收敛该指纹图像发散。图3-6显示为二维高斯函数呈现的正态随机分布 图3-6二维高斯函数高斯模板算子: (3.3.7)下面在PC端模拟软件实现的直
29、方图收敛图: 图3-6原图 图3-7收敛之后3.5指纹的平滑处理在采集指纹过程中,传感器通常会把周围的环境灰尘,表面污渍等也才采集进去,这些噪声像素的特点是与周围像素相比显得并不“合群”。为了去除该噪声,必须参考周围的像素,进行卷积运算。信号与系统中卷积运算在实际的指纹图像处理中都表现为邻域运算。临域运算是在输出指纹图像中,通过矩阵运算的思路,获得图像矩阵和模板矩阵运算结果。通常临域远比指纹图像尺寸小,如3*3,4*4。卷积运算的定义为: (3.3.8)平滑模板算子实现了一种类似低通滤波的功能,算子如下 (3.3.9)3.6指纹的增强处理指纹图像的增强指的是增强指纹图像的特征,脊线,谷线等等特
30、性,对这些特性的增强,需要对图像的方向场和频率场进行分析,作为增强的指导。需要模拟出一个现象滤波器,模拟智能增强的“简单细胞频向调谐”过程。Daugmann证明了这些“频向”脉冲响应可由高斯窗口和正旋波相乘后得到的Gabor小波逼近17。对于指纹的增强,主要在以下两个方面进行:在纹线的水平方向上,需要对纹线进行定向增强,弥补由于采集因素造成的可能的纹线断裂。在纹线的垂直方向上,需要对谷线进行定向滤波,使用Gabor函数可以满足该要求,在该位置的频率场f对指纹图像进行振荡增强16。Gabor小波函数: (3.3.10)因为Gabor小波函数的模板运算十分耗时,可将Gabor函数进行花间处理,将矩
31、形模板化为线段模板。化简之后切向滤波模板为Hw=1/71,1,1,1,1,1,1,法向滤波模板是Vw=1/7-3,-1,3,9,3,-1,-3 图3-8收敛之后图 图3-9增强处理后如图3-9所示,增强之后的脊线和谷线更为鲜明,因为采集因素断裂的脊线在增强后得到修复。3.7指纹的二值化细化处理:对于指纹数据而言,我们只需要当前指纹的形状结构,并不关心指纹的深浅,由于采集器的因素,采集到的指纹数据往往不平均分布在某个灰度区间,因此我们需要对指纹图像进行智能二值化,这样有利于指纹特征的提取25。将图像二值化的方法有两种,灰度域值分割法和智能二值化领域分析方法。从图像场的角度来看,纹线上的点强度场值
32、较高,而背景上的点强度场值较低,所以,一般的二值化方法是设定一域值,大于域值为白,小于域值设定为黑,反过来也可以。经过平滑,增强,二值化,细化以及噪声过滤处理后,变成高质量的黑白指纹图像,但是对二值化之后的图像进行分析,提取特征还比较麻烦,因为指纹特征是以特征点的形式出现,而二值化之后的纹线宽度由一个以上的像素点组成。因此难以建立宽度只有一个点的特征点模型。所以指纹图像必须经过细化后才能提取出相应的特征。图像细化的方法人们已经研究很久,这里采用的是查表法进行图像细化,该方法的思路是:某一纹线上的点,如果它在图像的边界,可以除掉从而实现细化,那么它周围的八个点表现一定是一边有像素,一边为背景白。
33、可以通过该模板实现对边缘像素的匹配,细化。常见的细化模板:图3-9 细化模板下图是经过PC端模拟软件的细化结果: 图3-10 原图像 图3-11二值化之后 图3-12细化之后 如3-12所示,细化后的指纹图像用肉眼就可以看出特征端点和特征分叉点,到此步骤,指纹预处理的功能部分已经完成。 本章主要描述了指纹预处理的算法部分,该部分的工作是为特征的提取做准备工作。 4纹识别算法的设计指纹特征值匹配原理基于模式识别的原理,通过已经保存的指纹模板和当前预处理得到的指纹数据匹配。因此在预处理完成后需要对指纹的特征数据进行保存,由于特征点的种类有四种,因此匹配的方法也是多样的,根据指纹特征匹配的依据不同,
34、可以将匹分为:基于坐标匹配方法,基于方向匹配方法,质量匹配等。本设计采用了多种匹配算法,定义了两种匹配模式,快速和精准模式。在快速模式下,匹配的时间是由匹配的效果觉定的,匹配函数首先使用速度较快的匹配方法进行匹配,假如无法匹配,则切换速度较慢但是匹配效果更佳的匹配方法。在精准模式下,匹配方法统一为较慢的匹配方法26。实践证明,指纹匹配并不需要使用所有的特征点,事实上只需要8个匹配的指纹特征点,就可以判定两幅指纹图像来属于一个指纹,此外由于基于特征点的匹配方法速度缓慢而且耗费系统资源,在嵌入式系统中内存是宝贵的资源,太多的冗余数据是低效且浪费的,因此我们常常采用指纹的总体特征加局部特征点的方法来
35、保存指纹的特征数据,同时也利用整体特征匹配法和特征点匹配法来综合匹配指纹数据。4.1指纹图像的特征 如下图所示,指纹的特征主要有两类,一类是总体特征,每个指纹都有一个“圆圈“,即由纹线包络而成的类似椭圆形状,该椭圆即可以反应指纹在当前图像中的相对偏移位置,该类总体特征可以用于指纹的定位。第二类是局部特征值,每个纹线的都至少有两个端点,有的纹线有一个甚至多个分叉点,这些点即指纹的局部特征点,在指纹匹配中,局部特征点是衡量指纹是否匹配的最重要依据。如下图所示的纹线图中,有谷线所围成的椭圆为总体特征点,每条脊线的末端和两条脊线相交的地方都是局部特征点20。在基于单指纹的匹配方法中,可以先进行总体特征
36、判断,然后重新校正指纹坐标系,就可以单独对每个点进行匹配,只要匹配的点的数目达到一定的数量,就可以断定两个图像来自同一个指纹。图4-1 脊线谷线分布图指纹识别的基础就是提取出根据脊线谷线判断指纹的端点和分叉点,通过这些特征点来进行识别。4.2指纹图像特征提取算法细化后的二值图像,像素点的灰度仅存在黑白2种情况,255或0,33的模板如下,N为该次计算的中心点,周边的8个像素分别是它的8个邻域点,沿顺时针方向排列,R1-RN是点X1-XN中间的灰度值。假如N待计算的点,则它的8邻域点的运算结果为: (4.1.1)对于结束点该点满足8个点的所有相邻两个点之差为255*2: (4.1.2)对于分叉点
37、满足8个点的所有相邻两个点之差为255*6: (4.1.3)l 纹线的跟踪在特征点的扫描算法中,特征点的提取并不是对所有像素进行的,针对纹线的像素,因此存在的问题就是如何有序地获得纹线的像素,目前使用的方法是判断图像的8领域。在细化后的图像中,纹线的下一节点判断可以通过纹线的8领域,假如图像的8领域中的只有一个像素值,该点就是纹线的断点,假如图像的8领域中有两个像素值,那么该点就是纹线的普通点,图像的8领域中有三个像素值,那么该点就是纹线的分叉点29。 图4-3 特征叉点 图4-4 特征端点l 指纹特征点的属性和方向特征点的属性用来描述特征点的自身特性,使特征点能被预处理后的指纹识别算法所识别
38、,主要分为坐标,方向和以特征点为中心,做圆和其他纹线的三个交点,该属性比较重要,是特征点的主要识别依据。特征的方向对于端点和叉点并不相同,端点的方向为纹线的方向,而分叉点的方向为与之相连的三条纹线中相邻最远两条纹线的方向。l 计算特征点间的纹线数方法两特征点间纹线数目可以判断两点之间连线的像素中出现0以及1的次数来判断纹线的出现次数28。4.3特征点的匹配算法这里我们采用矢量三角法对指纹图像进行匹配。我们使用两个点集A和B,分别代表模板图像中提取出来的特征,另一个点集表示从输入的指纹图中提取出来的特征。在模板文件中的特征点Z,分别获得点Z附近距离最近的两个特征K和H,使用顺时针连接向它们构成一
39、个三角形。将点Z、点K和点H的类型(端点或叉点)分别记为Type1、Type2和Type3;其方向角分别记为ORIGIN1、ORIGIN2和ORIGIN3。把连接点Z与点K,点Z与点H,点K与点H的三角形三边的长度分别记为V1、V2和V3;它们所跨越的纹线数目分别记为LINECROSS1, LINECROSS2和LINECROSS3。对于输入图像中的每一个特征点Q,在指纹图上寻找出与其相距最近的两个特征点,也按上面的方法把它们组成一个三角形并求出相应的Type1、Type2和Type3;ORIGIN1、ORIGIN2和ORIGIN3; D1、D2和D3;LINECROSS1、LINECROSS
40、1um2和LINECROSS1。对于特征点Q如果属于模板图像的特征点集A、特征点Z属于输入图像的特征点集B,并且下面四个式子均成立:(1)abs(AD1BD1)Td and abs(AD2BD2)Td and abs(ADist3BD3)Td(2)abs(A.ORIGIN1B.ORIGIN1)Ta and abs(A.ORIGIN2BORIGIN2)Ta and abs(AORIGIN3B.ORIGIN3) Ta(3)AType1=BType1 andAType2=B.Type2 and A.Type3=BType3(4)abs(A.LINECROSS1BLINECROSS1)+abs(A.L
41、INECROSS2BLINECROSS2)+abs(A.LINECROSS3B.LINECROSS3) Tc就可以认定Q的特性与模板特征文件中某个点存在相同的特性,当Q的数目达到足够多时,就可以认定两个文件是匹配的。在判断过程中,每个步骤都是留有一定余量的,考虑到图像质量的问题,三角形的大小和方向会有小范围的偏差,该方法利用了指纹特征的局部信息,通过比较特征点之间的关系来实现两个指纹间的对比,可以允许一定程度上的指纹图的变形,旋转和位移,但是该算法的效率较低,相对于基于坐标轴旋转的方法并不好10。本章小结:本章主要描述了指纹特征点获取和匹配算法和设计思路,通过匹配两种特征点,就可以获得指纹的特
42、征信息,得到身份信息。5.指纹识别系统的实现本节主要描述了在S3C6410 ARM11芯片上指纹识别系统的实现,该部分的工作主要有搭建程序运行环境,各个模块的接口程序和算法移植,GUI界面的设计。本设计的硬件平台采用了飞凌OK6410开发板作为硬件平台,该平台集成了2G NANDFLASH, 256M SDRAM,具有CAMERA外设,DISPLAY外设,满足了开发指纹识别系统的需求。5.1软件运行环境的设置嵌入式微处理器不同于嵌入式控制器,一般的微控制器的存储设备单一,多为片内FLASH或者ROM,然而嵌入式处理器的存储设备是多样,通过集成总线来实现取指和译码,其中涉及到的存储设备分为包括片
43、内和片外,且设备本身的种类也是多样化的。常见包括NANDFLASH和NORFLASH,SDRAM等。因此在编程时候需要考虑代码的存放位置和运行位置,在GNU C中提供了SCR文件脚本来指定文件的运行域和执行域,在ARMCC中使用SCATTER文件指定,本设计采用RVDS2.2作为开发环境,该环境采用ARMCC编译器21。本设计采用C语言作为编程语言,不同于汇编语言编程,C语言程序设计需要经过编译,链接,直至生成目标文件,其中需要编译器完成的是堆栈的设置,库重新编译,程序的装载等等工作,在嵌入式开发环境中,同样的芯片,硬件平台往往是不同的,因此这些工作编译器无法进行,只能由开发者来实现23。板载
44、的S3C6410支持SD卡启动,NANDFLASH启动,通过修改芯片管脚OM0:4电平,可以修改启动方式,为了软件调试方便,本设计采用SD卡启动作为程序入口,芯片上电的时候将SD卡第一个扇区复制到芯片内部8KB IRAM,由于片内IRAM的容量限制,该程序只能实现最基础的功能,包括PLL初始化,SDRAM初始化,堆栈设置,和代码的搬移,如下流程示意图:图5-1 软件环境设置流程图5.2指纹采集器接口设计OP100-T采集器采用GC0307作为主控芯片,该芯片是一块高分辨率CMOS图形传感器,该传感器使用SCCB作为控制接口,提供YUV,RGB,YCbCr422等图像信号输出。且提供多分辨率图像
45、输出,在CIF分辨率下面可以达到120帧/秒,微控制器接口方面使用6410片内CAMERA作为图像输入口,采用IO口模拟SCCB控制时序。l SCCB控制时序:图5-3 SCCB控制时序图在图像数据接口方面6410提供了CAMERA接口,支持ITU RBT-601/656 YCbCr 8位图像数据格式,最大支持输入像素达到4096*4096,且提供DMA 和图像变换功能。YCbCr图像传输时序:图5-3 ITU601视频信号时序图其中VSYNC代表帧同步信号,HSYNC代表行同步,每帧图像包含由行图形数据组成,在6410片内提供DMA接口将图像数据搬移到SDRAM中,可以通过编码DMA通道将输
46、入的YUV信号直接解码为RGB信号。下图为OK6410的摄像头输入功能示意图:图5-4 CAMERA外设接口图如图所示,OK6410为摄像头提供了两个DMA通道,通道的输入可以为内存和摄像头输入,其中,预览(PREVIEW)通道支持图像的旋转输出,两个通道均可以实现RGB至YCBCR的相互转换。每个通道中均有4个乒乓存储器进行数据操作,乒乓存储器的原理是,当由一帧图像数据进入的时候,放入缓冲区1,第二帧数据进入,通过数据选择端口放入缓冲区2,且通过处理选择端口将缓冲区1内的数据解码为RGB颜色空间的数据输出,如此操作,可以实现数据的无缝输入输出。下图为指纹采集和处理器的的硬件连接图:图5-5 指纹采集器和S3C6410之间的接口5.3显示及UI功能的实现指纹图像通过飞凌6410开发板板载4.3寸液晶屏显示,该液晶屏的分辨率为480*272,本设计采用6410集成的显示控制器来驱动,支持RGB,I-80,NTSC,PAL标准TV输出,同时提供了从内