基于ARM-Linux指纹识别系统的设计
2012-03-17李春明
王 伟,李春明
(内蒙古工业大学 内蒙古 呼和浩特 010080)
生物识别技术在我们的生活中扮演越来越重要的角色,在很多场合已经取代了传统的认证识别方式[1]。其中指纹识别技术的发展尤为突出,成为目前最广泛的应用之一,比如在门禁系统、考勤系统、刑侦破案以及“社保”系统等。目前的产品大部分以嵌入式软硬件为核心,发展趋势是小型化,低成本,低功耗,高可靠性,快速稳定高效的指纹识别算法实现等方面。
1 硬件平台
本系统的整体结构如图1所示,首先构建以ARM9处理器为核心的硬件平台,移植了Linux内核,在嵌入式Linux系统上进行指纹识别系统的应用程序开发。在指纹分割和增强算法方面根据指纹仪采集指纹的特点进行优化处理。实验表明,设计的指纹识别系统取得了令人满意的效果。的ARM920T,该处理器主频为400 MHz,最高可达533MHz。
图1 系统总体结构Fig.1 Overall system structure
电源为外接5 V直流电源,通过电压转换电路形成系统所需要的 3.3 V 和 1.25 V 电压。
采集模块为U.are.U4000B指纹采集仪,该采集仪是目前体积最小的光学采集仪,厚度不到1cm,采集的指纹图象分辨率等于500 DPI,最高可达700 DPI。采用通用的USB接口与上位机连接,自身集成了A/D转换电路。该指纹仪的优点是采集图像质量好;受指纹干湿度影响较小;采集的指纹图像为灰度8-bit,不用转换可以直接进行预处理。
显示模块为3.5寸LCD触摸显示屏,供电电压为5 V,系统独立工作时可以满足。在系统调试时为观看方便,可用PC机显示器作为终端登陆。
FLASH为Nand型,掉电非易失。考虑后期的系统升级和扩容,大小选用256M。
SDRAM我们通常称为内存,大小为64M,文中采用两块32M并接而成,这样形成32位数据线,可以提高数据传输速度。
本系统的硬件平台如图2所示,各个模块接口功能介绍如下。
处理器为三星公司的S3C2440,其核心架构为ARM公司
图2 系统硬件组成Fig.2 Block diagram of platform structure
JTAG接口用来烧写Linux引导程序Bootloader;串口用来移植内核,编译调试程序等;USB接口用于连接指纹采集仪;以太网口为备用端口,可以作为整个系统工作后与远程PC机进行通信。
2 Linux移植
Linux移植硬件连接如图3所示。首先通过JTAG接口将Bootloader烧写到FLASH的起始地址,通过串口操作Bootloader将编译好的Linux内核下载到FLASH。
图3 PC机与ARM的通信方式Fig.3 PC and ARM communicationmode
2.1 Bootloader选择与移植
Bootloader是操作系统启动之前运行的一小段引导程序,它也是启动Linux内核的必备条件。目前的版本很多[9],比如韩国ZIMI公司设计的vivi,美国红帽公司设计的Redboot,德国DENX公司设计的Das U-boot和国内友善之臂公司的supervivi等。它们的使用根据硬件架构选择的差别略有不同。通过功能应用和通用性两个方面比较,最后选择U-boot作为Bootloader。
U-boot即 Universal Boot Loader, 它是由 Das U-boot发展而来。通过交叉编译环境将编译好的U-boot通过JTAG接口烧写到FLASH的前4 K范围内。因为硬件系统在上电后,首先执行的命令是将FLASH中前4 K内容读入内存,这样就可以进行下面的操作。FLASH中文件存储的顺序如图4所示。
图4 Flash中文件存储顺序示意图Fig.4 Schematic of files storage order in Flash
2.2 Linux内核移植
文中选择的 Linux内核版本为 2.6.29。 移植分为 5步[3]:1)获取内核源文件;2)修改部分源代码以支持S3C2440处理器 ;3) 修 改 MTD(Memory Technology Device) 分 区 ;4) 移 植YAFFS(Yet Another Flash File System);5)进行编译、烧写、启动并测试内核。
3 算法结构
指纹识别算法的总体结构分为4大部分[4]:指纹图像采集,预处理,特征提取和特征匹配等。其中预处理部分又分为指纹图像分割,指纹图像增强,二值化,细化等过程。算法的详细处理过程如图5所示。
下面对指纹识别算法的几个关键步骤进行介绍说明。
图5 指纹识别算法总体结构Fig.5 Overall process of the fingerprint image processin
3.1 指纹图像的梯度场和方向场
指纹图像场的概念是依据人眼对图像的识别判断功能进行的数学模型化描述。其中,梯度场描述了纹线脊骨的变化,方向场描述了纹线的走向。图6是指纹图像和其梯度场、方向场效果图。
图6 指纹图像与其梯度场、方向场图Fig.6 Fingerprint image, gradient field value drawing and orientation field drawin
3.2 指纹图像的分割与智能增强
通过梯度场图可以很容易选取阈值将指纹图像前景与背景分割开来;通过方向场,容易找到指纹图像的中心,根据纹线走势,可以很好的对图像进行增强,形象地称之为“智能”增强。分割和增强后的效果如图7所示。
图7 分割和增强Fig.7 Segmentation and enhancement
3.3 指纹图像的二值化与细化
二值化是在指纹图像增强之后,选取一个阈值,将指纹图像变成只有黑(0)和白(255)两种像素,阈值的选取是关键。
细化过程是将二值化后的指纹纹线进行骨架化,变成只有一个像素组成的纹线线路。细化采用快速的细化算法,细化后会有毛子,短线等伪特征,需要进行去除。二值化细化后的效果图如图8所示。
3.4 特征提取
在特征点提取上,以端点、分叉点和奇异点为细节特征,其中,奇异点分为中心点和三角点。特征点描述如图9和图10所示。
图8 二值化和细化Fig.8 Binary drawing and thinning drawing
图9 端点和分叉点Fig.9 Ending and bifurcation point
图10 中心点和三角Fig.10 Center of the fingerprint and triangular point
通过算法提取,标记的特征点示意如图11所示。
图11 特征点提取Fig.11 Feature point extraction drawing
3.5 特征匹配
在匹配过程之前,首先要找一个基准点。通过获取指纹特征点拓扑结构数据,首先查找是否有中心点,如果有通过中心点配准,否则查找三角点,如果都没有,则通过其它特征点配准。匹配算法使用全局匹配算法[5,11],此算法速度较快,但对图像质量要求较高,采集仪获取的指纹质量可以满足要求。
4 应用系统设计与实验结果
系统内部结构如图12所示,工作原理:应用程序通过指纹传感器控制模块控制传感器采集指纹图像,采集的图像经过传感器内部A/D转换电路变为数字图像,数据被识别算法调用进行预处理,特征提取,最后根据需要进行识别。
图12 系统内部结构图Fig.12 Within the system structure diagram
系统上电后,启动内核,自动加载应用程序,并进行初始化。整个系统工作方式如图13所示。
图13 系统工作方式流程图Fig.13 Flow chart of system work
指纹匹配是否成功是根据相似度来判定,相似度值是0到100。首先进行同一枚指纹特征提取的相似度实验。因为同一种算法,对不同的采集仪的要求不一样,如果采集的指纹图像质量好,相似度会偏高;如果采集的指纹质量不好,相似度就会偏低,这样如果阈值设置过高,就增加了拒识率。如果盲目降低阈值,会提升误判率的风险。表1是本系统外接U.are.U4000B指纹采集仪对两枚指纹保存模板后,分别进行的十次采集对比试验,得到的相似度。
由表1相似度分析,两轮匹配相似度最小值是10,最大值33,对于同一枚指纹,相似度很好的稳定在相似度10以上,由表1设定相似度阈值为10。当相似度大于等于10,认为比对成功,否则失败。
其中人员管理模式可以用1:1指纹比对模拟,在进行的20对不同指纹的录入比对实验如表2所示。
表1 相似度值Tab.1 Sim ilarity values
表2 1:1模式实验结果Tab.2 1:1m ode experim ental results
正常工作模式可以用1:M比对来模拟,指纹库指纹数M=500(模拟中小公司的人数范围),实验结果如表3所示。
表3 1:M模式实验结果Tab.3 1:Mmode experimental results
5 结束语
1:1主要目标是高的通过率和相对高的准确率;1:M主要目标是高的比对速度和相对高的准确率.。指纹比对受到多方面因素影响,比如指纹采集部位,采集的质量以及指纹本身有无损坏等,最终的实验结果较为满意。基于ARM9的嵌入式指纹识别系统稳定性良好,功耗低;指纹图像分割和智能增强算法根据采集仪采集指纹图像特点进行选取和优化,缩短了预处理时间,提高了算法的准确性,对于从事生物识别技术的嵌入式应用开发,有一定的参考价值。
[1]吴作好.几种人体生物特征的生物识别技术比较[J].现代电子技术,2007,253(14):121-124
WU Zuo-hao.Several biometric biometric technology[J].Modern Electronic Technology,2007,253(14):121-124.
[2]LIU Dan.Fingerprint Identification Simulation System[C]//DCABES, 2010, 9th:533-538
[3]韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2008.
[4]FU Qingqing.Fingerprint Identification System Based on SOPC[C]//WiCOM, 2011,7th:1-4.
[5]李昊.傅曦,指纹识别系统算法及实现[M].北京:人民邮电出版社,2011.
[6]CHEN Chao, ZHANG David.Segmentation of Fingerprint Image by Using Polarimetric Feature[J].IEEE,2010.
[7]FENG Jian-jiang,Jain A K.Fingerprint Reconstruction:From Minutiae to Phase[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2011,33(2):209-223.
[8]田泽.嵌入式系统开发与应用教程[M].北京:北京航空航天大学,2010.
[9]友善之臂.U-boot使用及移植详细手册 [EB/OL].2010.http://www.armq.net.
[10]徐诚,高莹婷.Linux环境C程序设计[M].北京:清华大学出版社,2010.
[11]Anil K.Jain, Salil Prabhakar.Filter bank-Based Fingerprint Matching[J].IEEE Transactions on Image Processing,2000.