APP下载

嵌入式手指静脉识别系统设计

2017-06-05苏志刚马永斌杨金锋

中国民航大学学报 2017年2期
关键词:线程嵌入式摄像头

苏志刚,马永斌,杨金锋

(中国民航大学天津市智能信号与图像处理重点实验室,天津 300300)

嵌入式手指静脉识别系统设计

苏志刚,马永斌,杨金锋

(中国民航大学天津市智能信号与图像处理重点实验室,天津 300300)

研究嵌入式手指静脉识别系统有利于手指静脉识别设备应用推广。设计并实现一种基于嵌入式Linux平台的手指静脉识别系统,并详细讨论了系统硬件平台的搭建和软件开发。主要贡献如下:①优化系统结构;②嵌入手指静脉图像预处理、特征提取与识别等核心算法;③实现系统动态注册功能;④改进传统的特征数据存储模式,采用新的嵌入式数据库技术。实验结果表明该系统性能稳定可靠、识别效率更高。

嵌入式系统;手指静脉识别算法;嵌入式数据库技术

随着信息技术不断发展,人们对个人信息安全越来越重视,传统的密码锁、指纹锁、人脸识别等原有身份鉴别技术已不能保证信息安全。手指静脉作为人身体内部的活体特征,与传统的生物特征相比,具有不易磨损、不会丢失、难以伪造的优点[1-2],可广泛应用于身份鉴别、安防、民航安全等领域,因此手指静脉识别技术在身份鉴别领域具有广阔发展前景。近些年,课题组长期关注并研究手指生物特征识别技术的发展,逐步建立手指静脉识别系统研发平台。

现阶段,手指静脉识别技术虽应用广泛,但也尚未普及。研究小型化、低成本的嵌入式手指静脉识别设备既有利于手指静脉识别技术的研究,又能促进手指静脉识别设备的推广。针对现有嵌入式手指静脉识别系统性能低下、识别速度慢的缺陷,本文提出的嵌入式手指静脉识别系统,主要从硬件和软件两方面做出改进。在硬件系统上,采用最新的ARM微处理器和嵌入式Linux系统开发平台。嵌入式Linux系统对硬件支持更好,稳定性更高[3]。在软件设计上,采用多线程编程技术,嵌入了适合ARM平台上运行的手指静脉识别算法。通过以上改进,系统的性能更加稳定,识别效率更高。本文通过详细的实验,验证了设计的可行性。

1 系统工作原理及组成

手指静脉图像获取通常采用近红外光透射成像模式。医学研究表明,手指中不同组织对近红外光的吸收情况不同,手指静脉中的脱氧血红蛋白对红外光有较强的吸收作用。利用近红外光在一侧透射手指,会在另一侧形成清晰的指静脉血管影像,然后用CMOS图像传感器采集即可获得手指静脉图像[4]。

本文手指静脉成像方式,如图1所示。手指静脉成像的近红外光光源采用红外激光。激光具有亮度大、不易发散的优点,经实验证明850 nm红外激光成像效果最佳。摄像头模块采用130万像素CMOS摄像头,通过USB接口与嵌入式板相连。为避免可见光对摄像头成像造成干扰,需对摄像头进行改进,镜头前增加850 nm带通滤光片,成像效果良好。

图1 系统结构示意图Fig.1 Schematic diagram of system structure

嵌入式微处理器采用恩智浦公司的i.MX6Q处理器。整个系统工作流程如下:首先嵌入式微处理器初始化系统,驱动CMOS摄像头采集手指静脉图像;其次对采集到的手指静脉图像进行预处理和特征提取,得到手指静脉特征数据并保存到数据库中;最后根据特征匹配算法,把待识别的手指静脉特征与数据库中的注册特征进行匹配,最终实现静脉识别[5]。

2 系统硬件平台的搭建

2.1 嵌入式硬件平台

系统硬件主要包括嵌入式微处理器、USB摄像头、LCD显示屏和外围接口等部分。整个硬件系统的结构示意图,如图2所示。i.MX6Q处理器采用基于Cortex-A9的四核架构模式,主频为4×1 GHz,支持2 G的DDR3运行内存和8 G存储空间。该处理器性能强劲、浮点运算能力强、图像处理速度快,集成了丰富的外围接口电路,能够满足图像实时采集、存储和成像显示的要求。

为得到更好的交互效果,LCD部分采用5寸电容触屏。该屏幕显示清晰、触控灵敏,大大提高了系统的易用性。上位机通过串口与嵌入式平台连接,通过发送操控命令实现对程序的调试。嵌入式端通过网口与PC机建立网络连接,实现数据传输。

图2 系统硬件结构图Fig.2 System hardware structure

2.2 嵌入式操作系统

文献[4]中采用的嵌入式WinCE系统存在一些不足。一方面,嵌入式WinCE对高性能硬件缺乏完善的支持;另一方面,嵌入式WinCE对大部分USB摄像头驱动支持都不是很好,图像采集效率也不高,因此本文采用全新的嵌入式Linux开发平台。嵌入式Linux操作系统是一种开源的、可移植、可剪裁的小型操作系统,该系统占用内存空间小、稳定性好,并且支持多任务、多线程开发。本文采用Qt/Embedded搭建嵌入式Linux系统的GUI。Qt是一个跨平台的C++图形用户界面应用程序框架,能够提供搭建图形用户界面所需的所用功能[6]。利用Qt搭建用户交互界面,实现了从成像显示、用户注册到识别结果显示等全部功能。

2.3 开发环境的搭建

开发环境搭建同时使用Windows平台和Linux平台[2]。Windows平台做上位机使用,负责发送操控命令。Linux平台用于搭建软件开发环境,负责完成嵌入式软件平台搭建和驱动移植以及软件开发等工作。由于嵌入式微处理器为专用处理器,不能完成编译工作,因此需采用交叉编译方式[7]。交叉编译环境搭建在Linux系统上完成。Linux系统下,程序通过Qt Creator编辑完成并仿真测试,然后通过交叉编译生成可执行文件下载到ARM平台上运行,完成整个开发过程。

3 系统软件设计

软件设计主要包括图像采集、信息注册和识别算法3个部分。为充分发挥四核处理器的性能,并保证整个识别系统稳定高效的运行,程序采用多线程技术。程序的主要框架由1个主线程和2个子线程组成。主线程是成像显示线程,保证成像显示的稳定性,子线程1为注册线程,子线程2为识别线程。下面从采集、注册、识别对整个软件系统进行论述。

3.1 静脉图像采集

OpenCV是一个跨平台计算机视觉库,利用OpenCV的库函数进行图像处理,大大降低开发难度[8]。通过交叉编译可得到在嵌入式系统内运行的OpenCV库。首先初始化硬件设备,成像主线程开启,驱动摄像头循环获取视频帧并在屏幕上显示。摄像头的打开是通过Video4Linux2(V4L2)驱动实现的,具体流程如图3所示。其次图像采集,通过调用OpenCV库函数处理当前视频帧,得到8位BMP格式灰度图像,然后以注册用户信息命名图像并保存到本地。采集完成后,通过网络将原始图像数据上传到PC机保存。

图3 静脉采集工作流程图Fig.3 Flowchart of finger-vein acquistion

3.2 图像预处理和特征提取

准确定位并提取手指静脉图像的感兴趣区域(ROI)是手指静脉识别过程中的关键步骤。因为不同的手指摆放姿势对手指静脉特征的提取造成不同影响,为尽可能消除这个影响,一般做法是在设备的外壳上面做一个凹槽来固定手指,但这种方法简单却精度不高。本文采用一种新的手指静脉定位与ROI提取方法:①采用梯度法从当前静脉图像中提取单像素的手指轮廓线,这样就可以基本上确定手指静脉形态;②根据手指的生理特征,在红外光透射的条件下,指关节腔位置具有较高的透光强度,采集到的手指静脉图像在指关节处有更高的亮度[9]。根据以上两个步骤可以快速确定手指静脉的ROI区域。图4为ROI提取的示意图,曲线是用于检测手指的轮廓,方框表示检测到的手指ROI区域。

采用文献[10]的方式对图像进行预处理和特征提取。通过上一步骤得到100×180像素的手指静脉ROI图像。首先对该图像进行滤波和增强,得到特征图像;其次对图像进行区域划分,得到10×18的区域块;然后通过该区域块进行特征变换,得到特征数据;最后将此特征数据作为注册特征保存到SQLite数据库中。

3.3 静脉信息注册

手指静脉信息注册采用SQLite数据库。SQLite是一种轻量级数据库,常用在嵌入式开发之中[11]。把注册信息和手指静脉特征信息保存到SQLite之中,方便数据的存储和查询,提高了识别速度。Qt本身自带SQLite数据库,不需要再做移植。SQLite数据库为每个用户建立两个数据表,一个用于记录注册用户的身份信息,另一个用于记录手指静脉特征信息,如表1所示。为实现系统的动态注册功能,系统移植了嵌入式输入法。点击LCD屏幕上的注册按钮时,弹出注册界面,然后注册用户的姓名,选择左右手的手指。注册完毕后,系统更新数据表,保存静脉注册信息。

图4 手指静脉ROI提取Fig.4 ROI extraction of finger-vein

表1 用户信息数据表Tab.1 User’s information data

当完成个人信息注册后,注册线程开启,根据上一步骤的方法,获取注册用户的手指静脉特征,并保存在SQLite数据库中。

3.4 静脉识别

手指静脉识别是一个特征匹配的过程。点击屏幕上识别按钮,识别线程开启。系统会根据当前用户手指静脉的ROI区域提取手指静脉特征,并与数据库注册特征进行匹配。本文采用文献[12]使用的相似度量方法,在此给定一个合适的阈值,若相似度量值在此阈值之内,则识别成功,输出用户注册信息,否则,识别失败。另外,为了提高识别速率,当识别成功后,会把本次匹配成功的特征数据作为注册特征保存到数据库中,这样会消除每次因摆放姿势差异带来识别速度上的差别。

4 实验结果与分析

本文以嵌入式技术以及静脉识别技术为基础,实现了了基于嵌入式的手指静脉识别系统的设计。本文提出的嵌入式手指静脉识别系统具有许多优点。首先具有良好的手指静脉采集效果;其次能够实现用户信息的动态注册;最后采用嵌入式数据库技术,提高了识别速度。图5为整个系统的显示界面。图6为手指静脉采集样张,图6(a)为较为粗大的男性手指静脉图像,图6(b)为较为细小的女性手指静脉图像。

图5 手指静脉识别系统界面Fig.5 Finger-vein recognition platform

图6 采集样本部分Fig.6 Partial finger-vein image samples

实验测试中,采集30个用户左右手的食指、中指和无名指,每个手指采集10幅图像,共1 800幅手指静脉图像,构成手指静脉数据库。根据本文的方法来验证系统的有效性。本文采用1∶N的匹配方法[13],经过200次识别测试,成功191次,成功率高达94.5%,达到了良好效果。如果手指位置摆放合适,每次的识别需要大约1 s,系统各项性能指标如表2所示。

表2 系统性能参数Tab.2 System performance parameters

从实验中可以看出本文研制的手指静脉识别系统识别速度快,识别率较高,可见该系统具有一定的使用价值和推广价值。

5 结语

本文研究有两项重要目的:一是研究如何提高嵌入式识别设备的性能,系统采用最新的ARM微处理器和嵌入式Linux系统,运行速度快,对硬件兼容好;二是如何提高嵌入式静脉识别系统的识别效率,通过嵌入式数据库技术和手指静脉识别算法,使识别更加快速准确。本文为嵌入式设备向小型化和产品化方向发展奠定了基础,并提供了参考方案。

当然本课题的成果仍有不足之处。一方面移植的嵌入式输入法还不支持中文,在注册用户姓名时还不能输入中文字符;另一方面近红外光源亮度还不可调节,成像没有达到最佳效果,需做进一步改进。

[1]FRISCHHOLZ R W,DIECKMANN U.BioID:A multimodal biometric identification system[J].Computer,2009,33(32):64-68.

[2]JAIN A K,ROSS A.Multibiometric systems[J].Communication of the ACM,2004,47(1):34-40.

[3]弓 雷.ARM嵌入式Linux系统开发详解[M].北京:清华大学出版社,2014.

[4]闫锋欣,曾泉人,张志强.C++GUI Qt4编程[M].2版.北京:电子工业出版社,2008.

[5]杨金锋,张海金.手指静脉图像感兴趣区域提取方法研究[J].山东大学学报,2012,42(3):7-13.

[6]杨金锋,贾超云.嵌入式手指静脉采集系统的研制[J].中国民航大学学报,2015,33(1):50-53.

[7]管凤旭,杨庆国,王科俊,等.基于ARM的手指静脉识别系统的设计与实现[J].电子技术应用,2011,37(9):39-42.

[8]YANG Jinfeng,YANG Jinli.Multi-Channel Gabor Filter Design for Finger-vein Image Enhancement[C]//2009 5th International Conference on Image and Graphics,2009:87-91.

[9]YANG Jinfeng,SHI Yihua,WU Renbiao.Finger-Vein Recognition Based on Gabor Features[M]//RIAZ Z.Biometric Systems,Design and Applications.Rijeka:InTech,2011:17-32.

[10]刘瑞祯,于仕琪.OpenCV教程[M].北京:北京航空航天大学出版社, 2007.

[11]余成波,秦华锋.生物特征识别技术:手指静脉识别技术[M].北京:清华大学出版社,2008.

[12]韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2008.

[13]邱 铁,周 玉,张民垒.Linux环境下Qt4图形界面与MySQL编程[M].北京:机械工业出版社,2012.

(责任编辑:刘智勇)

Design of embedded finger vein recognition system

SU Zhigang,MA Yongbin,YANG Jinfeng
(Intelligent Signal and Image Processing Key Lab of Tianjin,CAUC,Tianjin 300300,China)

The research of embedded finger-vein recognition system is beneficial to the application and popularization of finger-vein recognition device.A finger-vein recognition system based on embedded Linux platform is designed and implemented,the construction of system hardware platform and the software development are discussed in details.The main contributions are as follows:a.the system structure is optimized;b.finger-vein image preprocessing,feature extraction and recognition algorithm are embedded in the system;c.system dynamic register function is realized;d.the traditional feature data storage mode is improved,and the new embedded database technology is adopted.Experimental results show that the system is stable and reliable,and has a higher recognition efficiency.

embedded system;finger-vein recognition algorithm;embedded database technology

TP391.41

A

1674-5590(2017)02-0051-04

2016-06-14;

2016-08-31

国家自然科学基金项目(61379102,U1433120)

苏志刚(1972—),男,黑龙江尚志人,教授,博士,研究方向为信号与信息处理、谱估计等.

猜你喜欢

线程嵌入式摄像头
浙江首试公路非现场执法新型摄像头
实时操作系统mbedOS 互斥量调度机制剖析
摄像头连接器可提供360°视角图像
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
基于国产化环境的线程池模型研究与实现
TS系列红外传感器在嵌入式控制系统中的应用
嵌入式PLC的设计与研究
嵌入式单片机在电机控制系统中的应用探讨
奔驰360°摄像头系统介绍
计算机中的多线程问题