嵌入式手指多模态特征同步采集系统设计
2016-04-09杨金锋孟凡胜史玉坤马永斌
杨金锋,孟凡胜,史玉坤,马永斌
(中国民航大学天津市智能信号与图像处理重点实验室,天津 300300)
嵌入式手指多模态特征同步采集系统设计
杨金锋,孟凡胜,史玉坤,马永斌
(中国民航大学天津市智能信号与图像处理重点实验室,天津300300)
摘要:嵌入式手指多模态特征采集系统对研究基于手指的身份鉴别技术具有重要意义,主要体现在两个方面:一是为理论研究提供可靠的数据,二是为开发实际的身份识别设备奠定技术基础。在前期工作中,已实现了W indows CE下的手指静脉采集系统,但由于W indows CE对高性能硬件系统缺乏完善支持,导致现有单模态系统无法实现功能扩展。面对手指多模态特征采集的实际问题,利用Linux系统开发了嵌入式成像平台,实现了二路视频和一个USB指纹模块的实时成像,从而顺利完成了对手指静脉、指节纹、指纹3个模态的同步采集任务。大量实验结果表明,该采集系统性能稳定可靠,且成像质量能满足理论研究的需求。
关键词:手指多模态识别;静脉图像采集;嵌入式Linux;多线程;多模同步采集
在生物特征识别领域,多模态特征识别技术具有广阔的发展前景[1]。首先,人本身就具有多模态生物特性;其次,模态之间本身就呈现信息互补的特点[2]。获得人体的多模态生物特征信息,必须设计多模态生物特征采集系统,传统上多采集“人脸”、“虹膜”、“指纹”等人体部位的特征图像来实现信息模态融合。在实现架构方面,多采用“外设采集+PC机处理”的形式,完全独立于上位机的嵌入式采集识别系统目前尚少[3]。近些年,作者长期关注并研究手指生物特征识别技术的发展,逐步建立了手指静脉识别系统的研发平台[4]。在以前的工作中,完成了基于W indows CE的嵌入式单模态手指静脉图像采集系统,但它存在以下缺陷:①由于对成像驱动具有依赖性,W indows CE对现有硬件平台的支持能力较差,处理能力远达不到实际要求;②W indows CE开放性不足,缺少有效的开发工具和相关组件、资源,开发难度较大。这些都对进一步扩展开发手指多模态生物特征采集问题造成了很大困难。为了解决实际中面临的问题,并综合考虑后续研究,本文选用Linux系统作为新的开发平台,并提出了新的解决方案。
本文以手指不同部位的指静脉、指节纹、指纹作为3个独立的特征单元,设计了嵌入式Linux综合成像平台,实现了三者同步的多模态生物特征信息采集系统。经反复测试,系统稳定可靠,采集时刻同步性较好。本系统为数据采集提供了更方便的工具,并且为后续的识别算法移植与优化提供了基础。
1 系统软硬件平台的选择
本系统放弃W indows CE 6.0操作系统,采用Linux 3.0.8加Qt 4.5的平台,这对当前的多模态采集任务和未来的识别算法移植都提供极大的便利,扫除了大量的开发障碍。两平台性能对比如表1、表2所示。
表1 Linux系统与原W indows CE系统性能比较Tab.1 Perform ance com parison between Linux OS and previousW indows CE OS
表2 本设计CPU与原CPU性能比较Tab.2 Perform ance com parison between current CPU and previous CPU
通过对比可以看出,现有的Linux系统对高性能CPU的支持以及对摄像头的支持均优于单模态的W indows CE。在多模态显示、采集的需求下,采用S5PV210是必要的,而要实现这一切换,并且为以后的识别算法移植打好基础,就不得不采用Linux操作系统。可见,本设计对Linux系统的尝试是十分必要的。
2 多模态特征同步采集系统的硬件组成
系统整体上由主控芯片和外设组成,硬件架构如图1所示。
图1 采集系统硬件架构Fig.1 Hardware architecture of collection system
主控芯片选用的是Samsung公司的S5PV210,它采用了ARM CortexTM-A8内核,ARM V7指令集,主频可达1 GHZ,64/32位内部总线结构,32/32 KB的数据/指令一级缓存,512 KB的二级缓存,可以实现2000 DMIPS(每秒运算2亿条指令集)的高性能运算能力[5]。
USB摄像头用来采集指节纹图像,它的可选型号范围较大。应满足的基本要求包括,完全支持USB Video Class协议,支持MJPEG或YUV2输出格式,采用内窥镜头。USB Video Class(UVC)是Microsoft与另外几家设备厂商联合推出的为USB视频捕获设备定义的协议标准[6]。目前W indows与Linux均对符合UVC的摄像头提供了通用驱动程序,所以任何符合UVC的摄像头插入接口均能被成功驱动,而无需额外安装驱动程序。
OV3640摄像头用于采集指静脉图像,成像芯片为OmniVision公司的OV3640。这是一款310万像素的CMOS成像芯片,采用兼容I2C的SCCB接口,支持YUV和RGB格式的输出。摄像头采用可手动调焦的广角镜头,并撤去滤光片,增强对红外光的成像能力。
USB指纹模块采用的是杭州指安的ZFM206模块,本实验仅用到其采集功能。输出为256×288的bmp格式指纹灰度图像。
LCD部分采用的是4.3寸电阻触屏,分辨率为480×272,驱动板通过50pin软排线与S5PV210的LCD接口通信。LCD完成摄像头的实时成像、指纹采集结果显示以及提供用户交互界面。串口提供到上位机的通信接口,协助实现串口终端,为程序的开发、调试提供有力工具。以太网接口为RJ45接口,完成与服务器端的连接。
3 多模态特征同步采集系统的软件设计
3.1软件开发平台
平台架构如图2所示。
图2 软件开发平台架构Fig.2 Architecture of software developing platform
嵌入式Linux的开发需要同时使用PC机下的W indows平台和Linux平台,通常的做法是在W indows下安装虚拟机软件,然后在此软件中新建虚拟机,安装Linux。
本文使用的PC-Linux发行版为Ubuntu 12.04,实验已证实在32bitW indows XP虚拟机下运行Ubuntu 12.04效率低下,所以本文使用1台单独的PC机安装Ubuntu 12.04。
3.2交叉开发环境
交叉开发环境如图3所示。上位机即单独安装Linux的PC机,目标板即arm-linux平台。交叉开发即在上位机编写并编译生成可在目标板运行的可执行文件,之后传输到目标板执行[7]。
图3 交叉开发环境Fig.3 Cross-developm ent environm ent
上位机环境为Ubuntu 12.04 LTS,目标板内核版本为3.0.8,两者通过NFS(网络文件系统)实现文件共享。根文件系统为支持Qt 4.5的Ext4文件系统,交叉编译器为arm-none-linux-gnueabi-4.4.6。
3.3与服务器通信
本文实现的仅是三模态的数据采集,后续工作会涉及图像的特征提取、匹配等步骤。将来随着客户终端注册用户的增多,原始数据会大量存积,既会影响识别与匹配的效率,又会造成数据安全的隐患。因此本文采用客服端-服务器的架构,客服端完成采集并处理后,将原始图像数据乃至后续的特征数据均保存到服务器。客户终端的损坏、故障均不影响数据安全,数据为0的新客户端通过下载已有用户数据,即可完成数据同步。
本文服务器为普通PC机,环境为W indows XP系统,与客户端通过ftp协议通信。ftp server端界面如图4所示。
图4 服务器端ftp server应用界面Fig.4 User interface of ftp server
3.4各程序模块
3.4.1USB摄像头
Linux下为符合USB Video Class协议的摄像头提供了通用驱动程序,该驱动程序是建立在USB协议和Video4Linux架构两方面基础上的。
Video4Linux(V4L)是Linux内核中为视频设备提供的驱动程序,它针对市场上的各接口摄像头、视频采集卡等设备提供了供应用程序调用的统一接口函数。应用程序最终通过open、read、write、close、ioctl等函数像操作普通字符设备一样操作摄像头[8]。
V4L下视频编程的流程及对应函数如下:
打开设备→查询并设置设备属性→设置视频的制式和帧格式→设置一种输入输出方法(内存映射,缓冲区管理)→循环获取数据→关闭设备
打开设备:int fd=open(″/dev/video0″,O_RDW R);
取得设备的capability,设置视频的制式和帧格式,向驱动申请帧缓冲,申请物理内存等一系列操作均通过extern int ioctl(int__fd,unsigned long int__request,…)__THROW,这一函数完成。__fd:设备的ID;__ request:具体的命令标志符。
在进行V4L2开发中,一般会用到以下的命令标志符:
这些IO调用,有些是必须的,有些是可选择的。
3.4.2OV3640摄像头
OV3640驱动程序调用了i2c和v4l2的接口函数,在二者基础上完成。最终需要由V4l提供统一的open、read、write、close、ioctl等函数供应用程序完成对摄像头的所有操作。因此在应用程序下的编程与USB摄像头较为一致。
3.4.3USB指纹模块
采用的模块厂家的SDK。其中的主要函数为:
3.4.4LCD成像
首先用open函数打开framebuffer,然后用ioctl函数分别获取framebuffer的固定信息和可变信息,据此算出screensize,之后用mmap按照screensize将framebuffer映射进内存,到此framebuffer初始化完毕[9]。
V4L2调用ioctl发送VIDIOC_DQBUF后,获取一帧数据,经过格式转换后,将得到的RGB数据直接拷贝到framebuffer映射的内存地址处,屏幕区便出现完整图像。此过程快速循环,LCD即可呈现活动视频。
3.4.5ftp通信
用socket函数遵循ftp协议依次实现了ftp_api_ open_srv()(连接服务器)、ftp_api_login_srv()(登陆服务器)、ftp_api_list_srv()(列出服务器文件目录列表)、ftp_api_locallist()(列出本地文件目录列表)、ftp_api_ getfile()(下载文件)、ftp_api_putfile()(上传文件)等接口函数,实现采集端与服务器的文件传输。
3.5同步采集架构
手指多模态融合识别涉及指静脉、指纹、指节纹3个独立的单元。对这3个单元的融合不是简单地机械叠加,而是要利用三者内在的相关性。采集的3个模态必须保证姿态统一,如果姿态不同,会导致图像间失去相关性,致使后面的特征提取与识别算法效果不理想。如果由预处理算法矫正3个模态的姿态,会影响整体算法的效率。所以应该在采集阶段保证采集时刻的同步,进而确保采集时3种模态姿态的一致。
为较好地实现采集的同步性,本文采用了如下的多线程结构,经测试,三模态的采集同步性良好,稳定可靠。多线程同步采集架构架如图5所示。
图5 多线程同步采集架构Fig.5 Architecture of synchronousm u lti thread collection
线程1和线程5为两摄像头循环线程,当检测到拍照标志getpic_USB或getpic_OV3640为0时,把图像帧数据直接显示成像;检测到为1时,先复制数据并保存到本地,然后向线程2和线程4发送信号,线程2、4共用同一互斥锁互斥地传输本地图像数据至服务器。
三模块采集函数先设置getpic_USB及getpic_ OV3640为1,驱动两摄像头的拍照过程,然后采集并保存指纹图像,之后向线程3发送信号,与线程2、4共用一个互斥锁传输图像数据。
3.6Qt交互界面
Qt交互界面如图6、图7所示。
图6 尚未封装结构的预览及采集界面Fig.6 Preview and snap interface of collection system w ithout encapsu lation
图7 采集系统ftp client界面Fig.7 Ftp client interface of collection system
4 采集结果分析
图8为三模态采集得到的部分数据。文件名中,FKP表示指节纹,FV表示指静脉,FP表示指纹,其前面的大写字母串表示被采集者姓名拼音缩写。文件名后面的6位数字表示系统开机后直到采集时刻所度过的毫秒数。
以上数据共6组,每次自动采集一组。各组图像间采集时间差如表3所示,仍有提高的空间。
通过对比可见,三模态采集较好地实现了同时性,该时差已基本满足处理算法对数据的时间差要求,但仍有提高的空间。
图8 采集结果示例Fig.8 Exam ples form results of collection
表3 各组图像采集时刻时间差Tab.3 Collection tim e differences of picture groups
5 结语
本文研究有两项重要目的,一是在更高速的硬件平台下使用Linux平台完成采集,完成旧的W indows CE平台向Linux的转换;二是探究如何在采集时实现
采集时刻良好的同步性。经过大量程序编写、调试与探究,本文较好地实现了在嵌入式Linux平台对三模态的同步采集,初步完成了采集设备结构的设计。本课题的工作为实验数据的便携采集,以及后续完整的身份识别设备的研发奠定了基础,提供了重要的参考方案。
当然本课题的成果仍有不足之处,首先是系统CPU为单核架构,多线程运行难免存在时间差,影响了采集的同步性;其次是采集模具结构与光路的设计仍不完善,这两方面仍需要做出改进。
参考文献:
[1] FRISCHHOLZ R W,DIECKMANN U.Bioid:amultimodal biometric identification system[J].Computer,2008,33(2):64-68.
[2] HAO Y,SUN Z,TAN T,et al.Multi-spectral Palm Image Fusion for Accurate Contact-free Palmprint Recognition[C]//Intl Conf of Image Processing,2008:281-284.
[3] JAIN A K,ROSS A.Multibiometric systems[J].Communication of the ACM,2004,47(1):34-40.
[4]杨金锋,吕恩春.多光谱手指静脉采集系统的优化设计[J].中国民航大学学报,2013,31(2):71-74.
[5]李雪峰.基于指纹与手指静脉的双模态识别算法研究[D].哈尔滨:哈尔滨工程大学,2010.
[6]管凤旭,杨庆国,王科俊,等.基于ARM的手指静脉识别系统的设计与实现[J].电子技术应用,2011,37(9):39-42.
[7] SLASSA N,SYMESD,W RIGHTC.ARM嵌入式系统开发:软件设计与优化[M].沈建华,译.北京:北京航空航天出版社,2005.
[8]韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2008.
[9] STEVENSW R,RAGO SA.UNIX环境高级编程[M].3版.尤晋元,张亚荣,戚正伟,译.北京:人民邮电出版社,2014.
(责任编辑:刘智勇)
Em bedded im aging system for m ultim odal finger feature acquisition
YANG Jinfeng,MENG Fansheng,SHIYukun,MA Yongbin
(Intelligent Signaland Image Processing Key Lab of Tianjin,CAUC,Tianjin 300300,China)
Abstract:Designing a reliable embedded image acquisition system is very important for finger-based biometrics since it can provide reliablemultimodal finger image data for finger-based recognition theory research besidesmaking a technical foundation for real identification system development.In previous work,an embedded device with W indows CE operation for finger-vein image acquisition.However,it can notbe extended sinceW indows CE is incapable of supporting hardwarewithmultiple tasks.To dealwith the problem faced in multimodal imaging,a Linux-based embedded system is developed,which can reliably and synchronously output three image modalities: finger-vein,fingerprint and knuckle print in real-time.Lots of experimental results show that the proposed embedded imaging system is stable and reliable in multimodal finger image acquisition,and the imaging quality canmeet the demand of theory research.
Key words:multimodal finger recognition;finger-vein image acquisition;embedded Linux;multi threads;multimodal synchronousacquisition
作者简介:杨金锋(1971—),男,河南淮阳人,教授,工学博士,研究方向为图像处理、生物识别、计算机视觉.
收稿日期:2014-12-25;修回日期:2015-01-14基金项目:国家自然科学基金项目(61379102,U143310158)
中图分类号:TP391.41
文献标志码:A
文章编号:1674-5590(2016)01-0040-05