1 嵌入式系统总体结构
比较完整的手指静脉识别系统应具备采集和识别这两个基本的功能。首先通过嵌入式采集装置获取使用者的相关信息,并将该使用者的手指静脉特征添加到手指静脉特征数据库;然后根据数据库中使用者信息与采集的手指静脉图像比对,判定其身份是否正确。为此,将该嵌入式手指静脉识别系统分为硬件平台、嵌入式操作系统和应用软件三部分。
嵌入式系统硬件主要由嵌入式微处理器S3C6410及其外围扩展电路组成。其中,S3C6410是一款基于ARM11内核的微控制器,其主频达667 MHz,具有丰富的外围接口控制器,可以满足图像识别所需性能要求。嵌入式操作系统采用 WinCE6.0,其模块化设计使得嵌入式系统和应用程序开发者能够方便地根据需求定制产品,同时还具有100%开放WinCE 6.0内核源代码。采用微软的多媒体DirectShow技术,在Visual Studio 2005环境下开发图像采集应用程序,在PC机上调试成功后移植到嵌入式系统平台下运行并实现身份识别。
2 嵌入式系统硬件设计
系统硬件设计采用模块化设计原则,把嵌入式系统硬件平台分为微处理器核心模块、手指静脉成像模块、自动调光控制模块和辅助操作模块。其硬件结构如图1所示。
本设计选取S3C6410作为嵌入式微处理器,其上外接DRAM接口、Nand Flash接口以及丰富的总线接口电路。同时S3C6410还集成了电源电路、复位电路、RS232接口电路和USB接口电路等部分。其中,DRAM接口用于连接动态存储器,本设计采用Mobile DDR存储器,用于运行操作系统及存取应用程序。Nand Flash则用于固化嵌入式操作系统Windows CE内核、手指静脉识别软件等,以及储存采集的图像等数据资料。
手指静脉成像模块包括红外光源、红外滤光片和图像传感器。本设计选用微型OV9650图像传感器模组,它由30针的CMOS图像传感器和手动微调镜头组成,需要为其提供必须的电源。摄像头电源电路如图2所示。通过S3C6410的摄像头接口从S3C6410获取+5 V电源,分别转换为3路电压值为摄像头电路供电。
本文通过转接板来实现摄像头模组与S3C6410的连接,其接口电路如图3所示。其中,J1用于 S3C6410摄像头接口与转接板的连接,U10则是摄像头模组与转接板的接口。
对于近红外光源,选用波长为850 nm、型号为TSHG5210的高速红外发光二极管,设计中排成直线形阵列。由于环境不同,可见光对手指静脉成像影响也有所不同,因此,在镜头前放置型号为IR780的近红外滤光片来滤除可见光。
自动调光控制模块使红外光源能够根据被采集对象手指的不同粗细进行自动调光,使摄像头接收到的光强不变,采集到的图像亮度适中。本设计在原来研制的积分调节电路[2]基础上改进为带PID控制器的红外光强自动调节电路。当采用PID电路进行串联校正时,可以使得系统型别提高一级;同时还为系统提供两个负实零点,进行调节时,可进一步提高系统稳定性,改善系统动态性能。PID控制器电路图如图4所示。
辅助操作模块包括LCD、USB鼠标和8×8矩阵键盘等,用于对嵌入式系统进行控制。
3 嵌入式识别系统应用软件开发
本文采用多媒体DirectShow技术来设计摄像头图像采集应用程序。为了完成对图像数据的处理,创建多个过滤器并连接,数据流从源过滤器经过中间过滤器移动到渲染过滤器,最终提供给用户。在这个过程中完成对数据的读取、解码、将数据输出到相应设备上。本文将视频预览和视频捕捉封装成视频采集过滤器,如图5所示。其中,“智能Tee”是为了调节PCI总线分流数据。
通过Visual Studio 2005开发环境的MFC智能设备应用程序向导创建一个基于对话框的应用程序;然后创建类、设计采集界面以及编写程序,实现视频采集与预览、图像保存等功能。所用到的主要函数如下:
GetFirstCameraDriver():获取系统中注册的第一个视频捕捉设备名。
FreeDShow():释放创建DirectShow接口对象。
PreviewCamera():用于预览视频,同时负责DirectShow接口的初始化工作。
SnapPicture():抓拍视频中的一幅图片,并以文件形式保存。
此外,把手指静脉识别算法加入到应用程序中,并移植到WinCE 6.0操作系统下。该软件功能包括:录入手指静脉图像并保存所有相关信息至数据库中,测试当前采集手指静脉图像与数据库中图像是否匹配;调取数据库中手指静脉图像进行算法研究。
当需要用本系统进行手指静脉识别时,先启动操作系统,用户从可视化界面输入相应信息,开始采集图像。
4 手指静脉识别算法
手指静脉识别算法是本系统软件的核心部分,目前该算法在计算机上已达到较高水平。但将其移植到嵌入式系统时,由于受嵌入式处理器硬件性能的限制,达不到预期的效果。因此,本文采用了一种适合于嵌入式系统的手指静脉识别算法。
4.1 图像预处理
(1)格式转换与灰度归一化。本文中通过图像采集装置采集的手指静脉图像是24 bit JPG格式的真彩图像,采用Imaging技术[3]循环解码将其转化为24 bit BMP格式的图像。
通过改变各个分量(R,G,B)的权重,把三个点合成一个点就可以将24 bit BMP图像转换成256色的灰度图像。本设计采用加权平均值法可以得到较合理的灰度图像,即:
(4)滤波与去噪。在经过前面图像分割后的特征图像中存在许多孤立点、块状噪声以及一些细小空洞。为了便于以后处理,必须填充这些细小空洞和除去噪声。首先采用中值滤波法,消除图像中的高斯噪声和脉冲干扰信号,接着进行面积去噪,以消去孤立的噪声。
(5)纹路细化。经过一系列处理后的图像静脉纹路很粗,所以采用改进的条件细化算法进行处理,即在条件细化后的静脉图像上,加入模板算法去掉分叉点处冗余的像素。目的是通过连续剥离图像最外层元素直到获得单像素的连通线,去掉冗余信息,且保留纹路的拓扑连接关系,以利于后续的特征提取。
其中,Np为点集P中元素的个数。
5 实验结果
把在PC机开发的应用软件移植到ARM11板,上电开启操作系统运行该软件,开始采集和测试手指静脉图像的效果图如图7所示。
本软件把图像采集、预处理等一系列过程合成到一起进行操作,实现一键完成,使其更加接近产品化。录入用户图像信息时,图像处理达到了每次约0.5 s的速度,令人满意。实验测试中,采集50个手指的静脉图像,每个手指采集4次,一共采集了200幅静脉图像,构成手指静脉数据库。根据本文的方法,来验证算法的匹配识别效果。测试1:1匹配识别,将每个手指的1个样本分别与其他3个样本进行比对完成识别,每次识别过程达到约0.4 s的速度,得到的结果如表1所示,达到了预期的效果。
本文构建了一种基于ARM技术的嵌入式手指静脉识别系统。设计的硬件平台稳定性好、集成度高;采用的WinCE 6.0界面友好、画面清晰;开发的识别应用软件可以开机启动,便于操作,使本识别系统具有很好的人机交互特性。同时针对嵌入式系统采用一套合适的手指静脉识别算法。实验表明,该手指静脉识别系统可以实现快速图像处理和识别,与基于PC机的识别系统相比,具有体积小、重量轻、易于移动与操作、易于集成等优点。
上一篇:基于ARM920T和Linux的SOHO路由器设计
下一篇:μC/OS-II实时操作系统内存管理的改进
推荐阅读最新更新时间:2024-03-16 15:10