图像采集综合评估的嵌入式指纹识别系统
由于具有其持久性和唯一性,指纹被广泛应用在个人身份识别系统。指纹识别在全世界范围内的广泛应用,不仅为防范犯罪,同时也作为处理个人事务和信息安全的一个关键技术。
在指纹识别技术领域,欧美国家在研究和开发中处于领先地位。美国ZK Software在1992年就发布了ZKFinger 1.0版,2008年发布了ZKTime7.0、ADMS解决方案、指纹锁、集成具有美国联邦政府推出的FIPS201认证的Lumidign和Secugen指纹仪;法国Segam公司,是安全解决方案的市场领导者之一,有遍布5大洲超过85个分公司和分支机构,其生产的集成系统部署在100多个国家和地区。亚洲在指纹识别技术上较为先进的公司有:韩国现代、朝鲜的培富士、日本的NEC等。
中国虽然在指纹识别技术方面发展较晚,但目前也已有具备指纹识别专用芯片研发生产和应用能力的企业,如杭州晟元芯片技术有限公司、国民技术股份有限公司等。
在指纹图像评估算法研究领域,Tabassi等人通过提取指纹图像各子块的对比度和曲率特征评估指纹图像质量,但这种方法只是从指纹图像局部纹理进行分析,不足以反映指纹图像全局信息;Hong等人通过计算指纹图像每一图块指纹纹线垂直方向上的灰度方差评估指纹图像质量,它在图像噪声较大时并不能很好获得指纹图像的方向图,从而影响最后的评估效果。
文中采用一种指纹图像综合评估算法,设计具有信息提示功能的指纹识别系统,并将评估结果输出到显示屏,实现了提高指纹识别成功率,让用户直观了解指纹采集的某个环节出现问题,以及如何进行修正的目的。
1指纹识别系统硬件设计
1.1嵌入式指纹采集系统组成
具有提示信息的指纹识别装置包括处理器,系统结构图如图1所示。处理器以不同的接口分别连接LCD汉字显示屏、指纹传感器、JTAG调试接口、复位电路、外部SRAM数据存储器、串口及USB接口;电源管理模块为上述各部分中的芯片和电路提供电源管理。其中,汉字显示屏用来显示指纹图像初始评估的结果,提示用户手指的放置是否正确、若不正确如何修正;指纹传感器用来获取手指的指纹图像信息;JTAG调试接口用来与上位机连接进行调试;复位电路用来初始化指纹识别装置;FLASH程序存储器用来存储指纹识别装置运行的程序;外部SRAM数据存储器用来存储指纹识别装置运行过程中产生的临时数据;串口和USB接口用于与上位机的连接通信;安全控制器是指纹识别装置的核心,控制指纹识别装置的运行。
图1指纹采集系统结构图
指纹专用芯片,是指内嵌指纹识别技术的芯片产品,能够片上实现指纹的图像采集、特征提取、特征比对的芯片,使开发过程变得简单,开发者可以方便的实现指纹识别的功能,同时芯片价格适中,利于普及使用。
指纹专用芯片采用杭州晟元芯片技术有限公司生产的AS602芯片,采用哈佛结构32位RISC处理器内核,内置专用DSP指令集和加速器。其主要特点是具有SEA/RSA加速引擎、内置存储器(Flash/OTP)、指纹处理加速器和专用算法软件。AS602芯片主频高达128 MHz,内置128 KB高速静态随机存储器(SRAM),嵌入了1 MB大容量FLASH,64 kB ROM和4 kB OTP ROM,并具备丰富的对外接口:除了USB2.0全速接口外,还具备3组USART接口、4通道PWM接口、ISO7816智能卡接口、APC主接口、片上实时钟、对称算法引擎(SEA)加速器、RSA加解密引擎、真随机数产生器(TRNG),以及51路GPIO.
1.3指纹采集传感器
FPC1011F指纹传感器由152×200个传感器阵列组成,每一个阵列是一个金属电极。放在传感面上的手指的对应点则作为另外一极,其工作原理是改变极板间距的电容式传感器,整个传感器(或其中的一部分)是通过读取感应器的指令来读取的,采集区域的大小是由寄存器XSHIFT和YSHIFT值的决定的。
FPC1011F与处理器芯片的接口原理图如图2所示。将AS602的USART0配置为SPI模式。AS602的61脚作为时钟输出,60脚作为数据主输出,连接FPC1011F的6号脚;59脚作为数据主输入,连接FPC1011F的1号脚。FPC1011F 4号引脚SPI_CK与AS602的61脚连接得到系统时钟。
图2 AS602与FPC1011F的接口原理图
将FPC1011F的CPHA和CPOL分别置为0,此时FPC1011F为从设备。指纹图像数据通过传感器输入FIFO.指纹采集通过查询方式,用rd_spidtat指令不停地查询SPI_STATUS寄存器的DA状态是否为1.当SPI_STATUS的DA状态为1时,用rd_spidata指令来读取FPC1011F的FIFO中的数据。
1.4指纹图像评估状态显示模块
HS1602A LCD是16×2行,5×7字符点阵液晶模块,其内部的字符发生器ROM中自带数字和英文字母及一些特殊符号的字符库,虽然没有汉字,但是利用HS1602A可以建立5×7点阵自定义字库的特点,形成所需要的汉字点阵。HS1602A与传感器芯片的接口原理图如图3所示。
图3 AS602与HS1602A LCD显示屏模块接口原理图
2指纹图像评估研究与分析
2.1指纹图像评估流程
在指纹采集输入过程中,由于手指的指纹质量、安放位置及干湿状态等原因,都可能无法正确识别指纹信息。为提高指纹识别效率,先对采集的指纹信息进行评估。安全控制器对指纹图像进行指纹灰度图像隔点采样,指纹图像点方向图计算,指纹灰度图像的前、背景图分离,指纹前景图面积分析,指纹图像质量分析等图像处理过程,并对评估的结果用汉字进行显示。若评估不合格,根据显示信息,重新采集指纹图像信息,直到通过评估。系统工作流程图如图4所示。
图4系统工作流程图
2.2指纹图像隔点采样
用隔点的方式对指纹灰度图像进行采样,隔点获得原始指纹灰度图像,在不改变指纹特征码的基础上减少数据采集量。
2.3指纹灰度图像的前、背景分离
用点方向图表示所述隔点原始指纹灰度图像中每一像素点处的局部纹理走向,具体如下:
指纹图像是由局部平行的脊线和谷线构成的一种方向模式。通过指纹图像点方向图计算,可将指纹图像中的各个图像块划分为前景块或背景块。采用7×7模板,基准点位于模板中心,从水平位置开始每隔π/4确定一个方向,定义I=1,2,3,4,对应0,π/4,2π/4,3π/4,π四个方向。按公式(1)计算各个方向的灰度变化DI,比较DI,找到最小值,就代表该点的方向,见公式(1):
式中,是沿I方向上点的灰度均值,f1(ik , jk)是I方向上点的灰度值。
图像的前景块是分布有指纹脊线的图像块,其余部分为背景块。将前景块设置为1,背景块设置为0,实现指纹灰度图像的前、背景图分离。具体如下:
1)使用公式(2)进行计算:
其中,f(i, j)为(i, j)点的灰度值;为I方向上灰度值的累加和;Smax为累加和值的上限值;Smin为累和值的下限值。如果满足公式(2)的条件,则当前点为前景点;否则为背景点。
2)依据小块内背景点的比例,判断各图像块是前景块或背景块。如果小块内背景点的数量超过阈值Tb,则认为该图像块属于背景块,否则为前景块。
2.4指纹图像质量分析
通过图像质量判断条件,比较质量评估参数Q与阈值TQ.若Q≤TQ,说明图像质量未达到要求,需要进行手指干/湿状态分析,并在汉字显示屏上提示分析结果;若Q >TQ,说明图片质量达到要求,但还需判断手指位置是否放置正确。具体如下:
1)依据该块内的各点是否大部分属于某一特定方向,判断一个前景图像块是否具有方向优势;
2)计算各图像块的方向,求出各块的方向直方图。如果具有某一个方向D的像素数目超过预设值T1,则该块的优势方向被标记为D;
3)指纹图像的质量可以通过计算连续的优势方向区域占所有指纹前景图的比例进行描述。采取一种加权的方法,距离参考点越远的图像块,它所包含的信息越可靠,其权值也就越高;
4)对于指纹前景图中的任一图像块xi,可以用公式具有连续优势方向块的权值与所有指纹前景块的权值之比来确定其图像质量;
q为相对权值常数,xc为指纹前景质心,Q为质量比例;
5)将指纹图像质量比例Q与指纹图像质量评价的下限值TQ进行比较,若Q >TQ,表示指纹图像质量合格。若手指位置正确,则提示“指纹输入正确”,进行图像预处理;若手指位置有偏向,则对手指位置的偏向进行分析,并显示相应的提示内容。
6)若Q≤TQ,表示指纹图像质量不合格,则进入手指干/湿状态分析,根据分析结果,提示手指的干/湿状态。
2.5手指干/湿度分析
根据指纹图像分析,过干手指的指纹图像对比度较小,灰度较大;过湿手指的指纹图像对比度较小,灰度较小。手指干/湿度分析算法要计算指纹图像的灰度均值和标准差。具体步骤如下:
1)分别计算每一个前景图像块的灰度均值m、各前景块所有像素的标准差δ、块内小于均值m的所有像素的灰度均值μ;
2)求图像块的对比度Cd:
Cd =μ/δ(5)
若Cd大于干图像块对比度阈值DTH1,则该图像块确认为干图像块;
3)若Cd≤DTH1,还需用图像块8邻域中对比度最大值和最小值的差值Var(Cd)与阈值DTH2进行比较。如果Var(Cd)> DTH 2,则将该图像块标记为干图像块;
4)计算所有干图像块占前景图像的比例,即为干度。如果干度超过阈值DTH3,则认为该手指过干,在汉字显示屏上提示用户手指过干;否则进行手指湿度分析;
5)为分析、计算手指湿度,引入湿度特征量:
Cs =μ/δ(6)
如果Cs小于预设的阈值STH1,则标记该图像块为湿图像块;
6)统计所有湿图像块占前景图像的比例,即为湿度。若湿度超过湿图像块比例阈值STH2,则提示用户手指过湿。若湿度≤STH2,则该指纹图像判定为低质量图像。
2.6手指位置分析
无论何种类型的指纹,其脊线都呈抛物线形,可通过分析指纹图像中心区域是否存在一条较为完整的脊线来确定手指是否放偏。本文使用基于方向图的跟踪方法判断手指的放置位置是否正确。具体如下:
1)构造坐标系,以前景图的质心为原点,构建坐标系;
2)在x轴的左半轴,选择一个优势方向不为0的图像块作为起始参考位块;
3)根据块内的各点是否大部分属于某一特定方向来判断图像块的优势方向。若块优势方向为0,则重新选择起始参考位块;若块优势方向不为0,则根据当前图像块的方向,向右搜索下一个图像块;
4)判断该图像块与前一个图像块的方向变化。如果图像块与前一个图像块的方向变化超过90°,表明当前图像块的方向发生突变,根据脊线的连续性,将当前图像块的方向替代前一个图像块的方向,在此基础上搜索下一个图像块;
5)若图像块的方向没超过90°,则还需判断是否搜索到一条完整的脊线。
若找到完整的脊线,采集的指纹图像正确,在显示屏上提示输入正确,结束指纹图像搜索;否则,说明当前图像块没有足够接近x轴的正半轴,还需继续搜索下一个图像块;
6)判断x轴的负半轴是否完成搜索。若未搜索完毕,则继续搜索;若x轴的负半轴已经完成搜索,还需搜索x轴的正半轴;
7)搜索x轴的正半轴的方法与x轴负半轴类似,方向相反。
如果搜索到一条完整的脊线,则在显示屏上提示输入正确,结束指纹图像搜索;否则还需继续搜索。如果从x轴的正、负半轴都无法确定一条完整的脊线,则表明该指纹图像过偏,按照质心的位置提示用户,需重新采集指纹。
根据所选质心的位置和判断的结果,分别在信息提示显示屏上进行显示。
3指纹信息的数字水印技术应用
具有指纹采集状态显示功能的指纹识别仪可应用于多种场合,如基于指纹技术的门禁系统、交易系统、电子病历和电子处方的签名认证、银行内部管理、电子政务系统和企业内部办公系统等诸多领域。
实现电子病历(EMR)是医院信息系统的一个重要研究课题。应用本文设计的系统,已建立医疗机构的EMR系统,如图5、图6所示。
图5 EMR系统指纹采集界面
图6 EMR系统病号信息录入界面
XML可在不同平台下进行数据交换。利用XML语言将电子病历生成XML文档,使用Rijindael算法,加密、解密使用同一密钥。加密时,用密钥将明文加密后写入文档;解密后,将明文写入结果文件中。
部分电子病历的XML文档:
4结论
文中设计的指纹识别系统和指纹图像综合评估算法,对指纹图像进行前、背景分离,对图像做出图像质量、图像有效面积大小、手指干湿程度、手指位置偏向性的综合分析,实现人体指纹的采集和评估,便于指纹图像的后续处理。运用本文提出的指纹识别系统和指纹图像综合评估算法,在医疗系统建立了EMR系统。在实际应用中,提高了指纹识别的效率,具有很好的稳定性。
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码