基于FPC1011F传感器和综合算法实现嵌入式指纹识别系统的设计

时间:2020-02-26

由于具有其持久性和性,指纹被广泛应用在个人身份识别系统。指纹识别在全世界范围内的广泛应用,不仅为防范犯罪,同时也作为处理个人事务和信息安全的一个关键技术。

在指纹识别技术领域,欧美国家在研究和开发中处于地位。美国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 所示。

基于FPC1011F传感器和综合算法实现嵌入式指纹识别系统的设计

图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):

基于FPC1011F传感器和综合算法实现嵌入式指纹识别系统的设计

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 文档:

图5 EMR 系统指纹采集界面

4 、结论

文中设计的指纹识别系统和指纹图像综合评估算法,对指纹图像进行前、背景分离,对图像做出图像质量、图像有效面积大小、手指干湿程度、手指位置偏向性的综合分析,实现人体指纹的采集和评估,便于指纹图像的后续处理。运用本文提出的指纹识别系统和指纹图像综合评估算法,在医疗系统建立了EMR 系统。在实际应用中,提高了指纹识别的效率,具有很好的稳定性。


上一篇:基于89C51单片机实现曲线切割控制系统的设计
下一篇:变频调速技术的特点及在锅炉系统中的应用与发展研究

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料