嵌入式指纹识别系统开发
摘要:介绍了指纹识别技术的基本原理,嵌入式操作系统的选择及定制。计算机控制单元的软件及硬件设计包括:指纹并口采集板设计及初始化程序,前台指纹建档(比对程序,局域网通讯程序,数据处理程序等。
关键词:指纹识别 嵌入式 通讯 操作系统
生理测定技术是当前研究的热点之一。目前,有很多技术等生物测定技术可用于身份认证,包括:虹膜识别、视网膜识别、面部识别、签名识别、声音识别技术、指纹识别技术等。其中指纹因具有终生不变性及稳定性,是目前应用前景较好的生物识别系统。但指纹识别目前在国内乃至世界仍未普及的主要原因是:(1)速度慢:目前一般系统辨别需要数秒钟甚至更长;(2)性能差:错误拒识率(FRR)和错误接受率(FAR)过高,目前市场上出现的系统一般FRR<3%,FAR<1/106;(3)价格高:由于目前国内主要引用国外成熟的指纹识别技术,并且比对系统采用PC机处理,体积庞大,不便移动。本系统在对指纹识别技术优化的基础上,与嵌入式技术相结合,可较好地解决上述问题。
1 指纹识别原理
指纹识别的基本原理为:采用细节点坐标模型来做细节匹配,即对指纹的脊线末梢和指纹的脊线分支点提取特征点鉴定指纹。具体的自动指纹识别系统框图见图1。
javascript:window.open(this.src);" style="cursor:pointer;"/>
指纹图像的预处理:目的是去除指纹图像中的噪音,将其转化为一幅清晰的点线图,便于提取正确的指纹特征。预处理影响指纹识别的效果,具有重要的意义。它分四步进行,即灰度滤波、二值化、二值去噪、细化。
对图像细化后,采用细节点模反提取出指纹图像的脊线末梢和脊线分支点的位置,将指纹认证问题转化成为点模式匹配问题。建档时将特征位置点坐标转化为极坐标后存入数据库,作为建档模板。指纹比对时,采用同样的方法,得到比对模板。由于要考虑指纹的平移和旋转(对极坐标只考虑旋转),对每个关键点A,在指纹图像上寻找两个与其最后的关键点R、S,把A、R、S点的类型(末梢或分支点)分别纪录为nType1、nType2、nType3;把连接点A与点R、点A与点S、点R与点S的3条虚拟线段所跨越的脊线数分别记为nCrossNum1、nCrossNum2、nCrossNum3。如果这两点满足一定茶杯条件,则认为点A与点B初匹配成功,如此可选择出最好的3组对应点,计算出比对模板相对建档模板的旋转角度,将比对模板矫正后,再进行细节点的精细匹配,根据隶属函数可计算两个指纹的相似度。如大于某个阈值,则认为是同一指纹。
2 系统的定制
2.1 选择嵌入式操作系统
随着微电子技术的进步,芯片的制造成本和销售价格都大大降低了,而功能和内部支持的端口却大大扩展了,16位和32位嵌入式处理器逐渐成为电子产品设计的主流。为了缩短产品设计周期和运行时间,使工作更稳定、更可靠和更高效并实现需要的复杂功能,需要运行于嵌入式处理器上的嵌入式操作系统,才能形成完整的系统平台。当前嵌入式操作系统包括Microsoft Embedded NT 4.0、Microsoft Windows CE、Nucleus PLUS、pSOSystem等。由于指纹识别对系统计算能力要求较高,需要具有强大的管理功能,并不需要硬实时功能,在实际开发中选用Microsoft Embedded NT 4.0嵌入式操作系统,它具有操作系统的完善功能和强大的TCP/IP网络功能;开发环境可选用Visual C++ 6.0并支持组件对象模型、MFC、ATL等。经过实验验证,可满足设计要求。
2.2 系统硬件选择及开发
系统硬件框图见图2。
javascript:window.open(this.src);" style="cursor:pointer;"/>
(1) 工控主板选用研祥PI6584V工控主板,并配如下部件:CPU(AMD K6-2)、内存(168线64MB)、PC 104以太网卡、32MB DOM。该部分采用5V供电,静态耗电50μA。峰值耗电量50mA。体积为50mm×80mm×20mm。工控主板在系统中所起作用:搭载系统应用软件;使用EPP1.9模式,通过并口从并口板读取指纹图像数据;将指纹图像数据通过指纹建档算法转化为指纹特征值存入DOM中;实时采集指纹与DOM中指纹特征值进行比对;接收键盘输入键值并根据按键功能定义进行相应操作;系统状态信息通过串口输出到控制板中,完成人机操作界面显示。
(2) 指纹采集头组件(COMS板)。COMS板的主要功能为:实时通过光学指纹采集仪将指纹图像折射到采像芯片上,由采像芯片完成模拟量到数字量的转换,并送往并口板存储器中暂存。COMS板的核心器件为OV7120和指纹采集仪。OV7120为黑白单元COMS VGA采像器件。指纹采集仪为光光采像头,型号为ZYZ202A。该型号采像头为长春方圆定型产品,主要技术参数:手指接触面:光学玻璃;采像有效面积:22mm×22mm;成像方式:棱镜折射式;图像分辨率:450dpi。
(3) 并口板主要功能为:通过I2C总线对COMS板中采像芯片OV7120设置有关参数;从COMS板提取指纹采像数据并暂存于存储器中;每存取一帧图像数据即通过并口(EPP模式)向工控主板发出请求信号;根据工控主板发出的数据提取信号将指纹图像数据输入系统进行有关处理;实时检测整机内部环境温度并控制相关排风扇的工作。并口板的核心器件为EPM7032、AT89C2051、IS61C1024L。EPM7032为FPGA,其主要作用是完成COMS板指纹图像数据到工控主板的数据传递。AT89C2051是通用8位单片机。IS61C1024L为128K×8bit高速COMS静态存储器,与并口板之间采用IDC-20P双排针接口。
(4) 控制板主要功能为:接受外部命令并将对应键值输入工控主板以完成相关操作,通过串口从控主板获取显示内容并转化为液晶屏显示所需格式。控制板含有15个铵键,为导电胶方式。按键包括:Menu、Cancel、OK、0~9、<、>共15个键。控制板的核心器件为键盘扫描芯片EM83050和标准8位单片机AT89C2051。与工控主板之间采用TJC3-3P插座;与液晶屏之间采用TJC3-9P插座。
(5) 液晶屏主要用来显示系统所处状态。液晶屏型号为WGM12232H,点阵大小122×32。
串口LED显示采用RS232/485接口与计算机通信,通信方式:RS232接口、115200bps、异步8位、1位起始位、8位数据位、1位停止位。
发送数据格式如下:
55H AAH XX显示数据
其中,55H AAH为数据头标志,XX为背光控制字:48H点亮背光,其余不点亮背光。
通信说明:通信主动方为PC,被动方向LCD。首先PC发送数据头命令55H、AAH,LCD接收到数据头后,判断是否正确。若正确则开始接收背光控制字并显示数据;否则退出接收状态。传输数据中,当LCD端检测到传输中断超时,即退出接收状态。LCD值守状态时处于背光熄灭状态,当检测有键按下或有指纹时,上位机发送背光控制字(48H)使背光点亮。
完成硬件设计,通过编写测试软件在PC平台上进行测试,基本可满足系统要求。
javascript:window.open(this.src);" style="cursor:pointer;"/>
3 软件及驱动编写
3.1 嵌入式NT系统定制
硬件测试完成后,根据硬件的中断号、插槽及系统要求的性能,需要对嵌入式NT进行定制。在NT系统裁减器中,主要选择如下:
(1) 选择Minimal With Network Copy至Minimal With Network;
(2) System中Devices选择Display-NullVga,Serial Ports-com1/com2(中断号:5/6),Parallel Ports-LPT1;
(3) Networks:Network adapters-Novel NE2000 Compatile Adapts,Network Protocol-TCP/IP,Network Services-LAN Manage Workstations、Simple TCP Service、DHCP client Winsock;
(4) Share System Component中选择Display Common、Keyboard driver common、Network Common、Virtual memory mamage;
(5) Applications中选择Shell-command Shell,Utilities-Windows NT Command Prompt。
生成操作系统后,做一张嵌入式NT启动盘,用启动盘格式化DOM,键入NTBoot>后将操作系统拷贝至DOM,NT操作系统即可运行。
3.2 软件编写
系统流程图见图3。
系统启动部分主要功能:初始化指纹识别模块InitFp();初始化串口和刷新液晶LCDInit(int(hWnd));初始化字库IniFontLib();初始化键盘响应InitKeySys();初始始化字库IniFontLib();初始化键盘响应InitKeySys();初始化并口采像设备InitParrel();初始化液晶显示InitDispary();将指纹库,密码库装入内存LoadAll()。系统启动完成后开始线程ThreadMain(),在线程中进入程序死循环,在循环中主要响应按键和采集图像进行指纹比对其中按键响应分三部分;
(1) 当输入的按键个数等于设定个数(人员代码长度+密码长度)时,进行密码考勤;
(2) 指纹考勤分为分组考勤(即输入接键的数字键数目为1时进行)、1:1考勤(即输入按键数目等于人员代码长度时进行);
(3) 值守状态下,按MENU键,输入正确系统密码进入管理状态。
系统菜单包括:值守,指纹建档,1:1建棣,密码建档,指纹删除,密码删除,指纹查询,指纹分组查询,密码查询,系统日期,系统时间,默认组设置,修改IP地址,语言设置,代码长度设置,系统密码。
采集图像进行指纹比对:在大循环中,先读图像:ReadImg(Img,50);如果读图像成功,进行比对:SysMatch(Img);比对成功后,显示人员代码、姓名。
3.3 数据传输部分
定义流水帐结构为:考勤时间:_SYSTEMTIME T;人员代码:char Code[16];出入标志:Byte Inout。网络传输采用标准TFTP和UDP协议进行通信,详细通信协议如下:
上传下载采用TFTP协议,主要完成的功能包括:上载人员名单、备份、下传流水帐、备份数据至主机。UDP主要负责打开、关闭TFTP服务。网络通信模块采用标准TFTP协议:
报头==0x81 下载
报头==0x82 上载
传递文件只能为流水账、配置表、指纹数据、密码装饰。
4 实验及测试结果
系统设计完成后,可脱机值守工作。122×32点阵LCD实时显示时钟、操作状态,并具有15键操作键盘,可独立完成建档及查询等功能。系统核查指纹1:N、1:1两种方式兼容,体积小巧,支持桌面及壁挂放置(外形尺寸:255mm×176mm×100mm),提供RS232/R485、RJ45接口,支持局域网连接。提供识别记录的标准数据格式,可用于二次开发或与人事工资等管理软件挂接。指纹登记个数≥3000枚,数据存储容量≥50万条记录。
为验证系统性能,选取1000枚指纹作实验,其中每300枚指纹为一组,实验结果如下:
(1) 指纹核查通过时间:<2s;
(2) 误识率(FAR):<0.001%;
(3) 拒识率(FRR):<1%;
(4) 功耗:<60W;
(5) 分辨率:450dpi。
上述指纹管理系统已初步通过实验检测,运行正常,并通过了有关部分初步验证。本系统将指纹识别与嵌入式技术结合在一起,降低了系统成本,可广泛用于生活小区物业管理,学校的考场管理,军事、政府部门的身份鉴别。应用前景广阔。
但是,该系统还存在两个问题:(1)对指纹质量比较差的指纹存在建档较难的问题(FFR过高);(2)算法过于复杂,影响系统性能。还对应算法和操作系统性能进一步优化。