基于嵌入式的指纹识别系统的设计

时间:2022-08-02 12:12:09

基于嵌入式的指纹识别系统的设计

摘要:详细地描述了基于指纹芯片FPS200的指纹采集系统的硬件设计和软件的开发,研究了适应指纹芯片FPS200所采集指纹图像的处理算法,同时针对指纹识别算法对系统运行速度的影响进行了研究,给出了实验结果,证实了该方法能够较好的构造嵌入式指纹识别系统。

关键词:指纹识别;FPS200;嵌入式系统

中图分类号:TP391文献标识码:A文章编号:1009-3044(2009)24-6975-02

Design of The Embedded Fingerprint Recognition System

JI Yu-ru, WANG De-zhong

(Jilin Institute of Chemical Technology, Jilin 132022, China)

Abstract: This Paper describes in full detail the design and development of fingerprint acquisition system based on fingerprint chip FPS200. Some algorithms that are suitalbe to process fingerprint images acquired by FPS200 are studied. Meanwhile, this paper proves the effectiveness and feasibility of such embedded fingerprint recognition system through evidence that suggests a minimal diminishment of the running speed of computing system using the tested fingerprint recognition system.

Key words: fingerprint recognition; FPS200; embedded system

指纹识别作为生物特征识别的一种,在身份识别上有着其他识别方法不可比拟的优越性,指纹自动识别技术的应用非常广泛,几乎所有需要进行安全性防范的场合均可以运用指纹自动识别技术。嵌入式指纹识别系统具有极高的安全性和易用性,高性能价格比的DSP已逐渐应用于指纹识别技术中,并且发挥着越来越重要的作用。

目前的多数指纹识别系统是将指纹图像采集到计算机中,然后利用计算机进行识别。但该方法不但占用了主机系统的资源,同时也限制了指纹图像处理的速度。而本文介绍的采用Veridicom公司的固态指纹传感器件FPS200和TI公司生产的DSP芯片TMS320VC5416(以下简称:C5416)作为核心处理器构造的指纹识别系统不但可脱机工作,也可通过接口进行二次开发,并可快捷地整合到其它系统中[1]。

1 指纹识别算法

指纹识别是用取像设备读取指纹图像,并通过软件提取指纹图像中的特征数据,然后根配算法得到的结果来鉴别指纹所有人的身份,大多数指纹识别系统都是依靠提取指纹的细节特征点来实现指纹的识别[2],其特征提取过程主要分为指纹图像归一化、计算方向图、计算图像有效区域、计算指纹频率、指纹图像增强、二值化、指纹图像细化以及细化后处理等步骤组成[3]。整个的算法运行流程如图1所示。

指纹图像归一化主要是将读取到的指纹图像数据进行预处理,以便于后续的处理。计算方向图用于实现指纹图像增强,所以计算方向图是一个重要步骤,它直接影响到图像增强的效果,错误的方向图最终会导致错误的图像增强。目前,计算指纹方向图主要分为两类:预先规定若干离散方向的方法与使用连续方向的方法。指纹图像的采集必然包含许多无效的区域,计算图像有效区域就是去除这些无效的区域,以免影响最终的识别效果。指纹图像的增强需要指纹的频率信息,所以在进行指纹图像增强以前,必须要先计算指纹图像的频率。由于指纹采集设备的光照不均匀、采集设备的精度的限制、指纹的干湿程度的不同等实际情况的普遍存在,采集的原始图像绝大部分都是质量较差的图像,所以,在对图像进行进一步的处理之前,必须要对指纹图像进行图像增强。所以指纹图像增强是一个非常重要的步骤。用于指纹图像增强的方法主要有方向加权中值滤波、各项异性滤波、基于规则的图像增强、基于模糊逻辑的图像增强、Gabor图像增强等。通过比较与实践,用Gabor滤波器进行指纹图像增强的方法,其性能较为优良,故本文采用基于Gabor滤波器的方法来进行指纹增强算法的设计。二值化是将灰度图像转化为二值图像的过程。常用的二值化的方法包括固定阈值的二值化和动态阈值的二值化。本文采用了动态阈值的二值化方法。指纹图像的细化以及细化后处理都是为了便于提取指纹特征点而必须进行的步骤。

经过以上的一系列步骤后,便可以提取出指纹的特征点,可以进行下一步的录入或是匹配的工作了。

2 指纹识别系统硬件平台

指纹识别软件需要在特定的硬件平台上运行,这个硬件平台是软件运行的载体。指纹识别系统的硬件平台有以下几个部分组成:图像传感器、DSP、CPLD、程序存储器、数据存储器以及控制电路。系统原理框图如图2所示。

图像传感器用来读取指纹图像,本系统采用了Veridicom公司推出的新一代FPS2OO固态指纹传感器,它是一款专为嵌入式系统设计的高性能、低功耗、低价格指纹传感器,可以很方便地集成到各种Internet设备。可输出像素256*300、分辨率500dpi的灰度图像,工作电压范围为3.3~5 V,传感器内部有8位ADC,并具有两组采样保持电路。DSP采用了TI公司生产的DSP芯片TMS320VC5416处理器。程序存储器采用了Atmel公司的AT91LV1024型号的Flash存储器。数据存储器则采用了SRAM来实现。CMOS图像传感器读取的原始图像如图3所示。

3 指纹识别系统的硬件设计

本指纹识别系统中的特征匹配和数据库模块可在主机上通过软件实现,指纹采集、图像的预处理以及特征提取部分则可由DSP+CPLD完成。该指纹自动识别系统由DSP、CPLD、FPS200指纹传感器、SRAM、FLASH和USB接口等硬件组成。CPLD可作为系统中的接口和逻辑控制器件,控制着整个系统的逻辑,同时负责协调取指器、DSP和USB三部分之间的工作;用户通过小键盘输入ID号码,FPS200指纹传感器负责现场采集用户的指纹,CPLD则可将指纹图像存储到SRAM中,并在采集完一幅图像后通知DSP数据已准备好。进行数据处理时,由DSP将SRAM中的数据分块取到其内部的128 KB RAM中,以进行指纹图像预处理及特征提取,再由DSP将指纹模板经USB接口上传给PC,然后与指纹库中的特征指纹进行匹配,最后显示匹配结果。

指纹图像的数据量大(FPS200采集的指纹图像为256×300象素),因此,运行指纹识别算法和存储特征模板均需大量存储空间。本系统对存储资源进行了合理的分配管理,系统外部存储器包括256 KB的FLASH和256 KB的SRAM。程序代码放在FLASH中,算法运行过程中的临时指纹图像数据则存放于片外SRAM,最后的指纹特征模板则存储于FLASH EEPROM中。

4 指纹识别系统的软件设计

当选用DSP处理器开发嵌入式系统时,选择合适的开发工具可以加快开发速度,节省开发成本。因此,一套含有编辑软件、编译软件、汇编软件、调试软件、工程管理以及函数库的集成开发环境(IDE)是必不可少的。使用集成开发环境开发基于DSP的应用软件,包括编辑、编译、汇编、链接等工作全部在PC机上即可完成。调试工作则需要配合其他的模块或产品方可完成。本文选用的是TI公司的DSP集成开发工具CCS2.0集成开发环境, 它是一种快速而节省成本的完整软件开发解决方案,调试工具选用JTAG仿真器[4]。

1) 系统初始化:嵌入式系统在启动或复位之后,需要对系统硬件和软件运行环境进行初始化,这些工作由启动程序完成,通常启动程序都是用汇编语言书写的。系统启动程序所执行的操作与具体的目标系统和开发系统相关。

2) 指纹采集程序设计:FPS200可以工作在中断方式,也可以工作在查询方式。本系统采用的是查询工作方式。程序流程大致如下:先初始化FPS200各寄存器,向相应的寄存器写入控制字,设置采集指纹的参数,主要是设置DCR、DTR、PGC这几个寄存器;查询等待,当指纹被FPS200自动采集进入数据寄存器时,就把指纹数据存入到指定的存储空间,程序用CCS2.0编写。

3) 与计算机(PC)之间的通信:该系统使用MAX3111E连接DSP与PC机,MAX3111是一种兼容于SPI/MICROWIRE接口的UART,将全功能通用异步收发器(UART)与带有±15kV ESD保护的2收发RS-232收发器、电荷泵电容集成于单片28脚IC内,适用于小尺寸、低成本、低功耗等应用。TMS320C5416的UART可工作在中断模式或DMA模式下。本系统选用的是中断模式,也可以用查询方式,可以通过程序控制端口的波特率、数据宽度(8,16位)、停止位(1到2位)、极性控制(polarity)等通信协议。

5 实验结果与研究

通过对指纹识别系统的测试,表1列出了指纹识别中各部分所占用的时间。

从表1中可以看出指纹图像增强部分运行时消耗的时间在整个指纹识别系统运行时消耗的时间中占50%,所以这个部分需要进行优化。根据本系统的硬件特点,用汇编语言重写了指纹增强部分,采用了Scratch pad技术以及指令并行执行技术[5],在处理指纹图像中,采用易于硬件实现的位移和加法运算替代乘法运算,转换时间约为原来的1/4;对于指纹增强算法中大量多重循环的特点,采用了硬件循环以及动态分支预测的方法,试验结果显示改进后的指纹增强部分运行时间减少了53%。

6 结论

嵌入式指纹识别系统设计的一个关键因素是运行的时间,本文采用了基于FPS200和DSP的嵌入式技术硬件平台,设计了一个完整的、独立运行的嵌入式自动指纹识别系统。 系统能实现快速的指纹采集,采集如图3的指纹所需的时间能控制在0.3s以内,完全能满足用户的需要。并且其成本也较低,对于实际构造指纹识别系统具有很大的意义。

本文作者创新点:1) 指纹识别系统不但可脱机工作,也可通过接口进行二次开发,并可快捷地整合到其它系统中;2) 采用软件编程优化算法来缩短运算时间。

参考文献:

[1] Devices A. Inc., Blackfin DSP Family Publications,2002.

[2] Qi Y, Tian J, Deng X. Genetic algorithm based fingerprint matching algorithm and its application on automated fingerprint identification system[J].Journal of Software,2000,11(4):488-493.

[3] 佟喜峰.基于指纹的身份鉴别技术[D].哈尔滨: 哈尔滨工业大学,2003.

[4] 胡小虹,李见为,刘元兵.基于DSP的指纹识别模块设计与实现[J].重庆大学学报,2004,27(9):26-28.

[5] 苑玮琦,张永辉.基于DSP5402的指纹识别系统实现问题研究[J].微计算机信息,2007,11(2):195-196.

上一篇:基于数字签名技术的Intranet信息安全 下一篇:基于量子遗传算法的知识分布优化研究