APP下载

基于达芬奇技术的指纹图像采集系统设计实现*

2012-08-09吕柯岩

电子器件 2012年5期
关键词:指纹图达芬奇驱动程序

杨 迪 ,朱 明 ,吕柯岩

(1.中国科学院航空光学成像与测量重点实验室,中国科学院长春光学精密机械与物理研究所,长春 130033;2.中国科学院研究生院,北京 100039;3.中国科学院长春光学精密机械与物理研究所,长春 130033)

在如今互联网飞速发展的时代中,人们的交流和信息获取主要通过网络实现。在网络中进行各种操作的前提就是要先进行用户的认证。目前网络中常用的认证方式是“用户ID+密码的方式”,然而这种方式存在着不小的安全隐患。网络中木马,病毒横行,一不小心就会将个人信息泄露出去,轻则被各种垃圾信息骚扰,重则造成财产损失。为提高安全级别,应采用体现用户唯一性特征的认证方式。而指纹作为人体的身体特征,具有不可复制的特点,并且具有唯一性和稳定性,不易盗用。采用指纹作为身份验证的方式不仅降低了用户信息泄露的风险,同时也为用户省却记住密码的麻烦,因此指纹识别拥有很好的实用性。

实现通过指纹进行身份认证的方式利用自动指纹识别系统[1-2](AFIS)来完成,而指纹采集与预处理作为指纹识别最重要的环节是必不可少的。为能够实现指纹识别的普遍与通用性,我们因此设计了一款通过USB 进行通信的指纹采集系统,该系统具有小巧,便携的特点,即插即用。

达芬奇技术[3]是一种基于DSP 的系统解决方案组建的集合,包括基于达芬奇技术的处理器、优化的应用软件、开发工具和支持。本系统在具有小巧,便携特点的同时,为保证图像处理的高效性,选择TI 公司具有达芬奇架构的DM6446 处理器对采集的图像进行处理,使用开发工具实现自己的指纹处理算法。

1 指纹采集系统硬件开发

1.1 指纹采集芯片选择

指纹芯片的好坏直接影响到指纹图像的质量。芯片按照工作原理可分为:光电式、电容式、压敏式和超声波式。不同原理的传感器各有其优缺,表1中对各种传感器的性能进行了比较[4]。随着半导体技术的进步,90年代中期开始出现的半导体电容式传感器具有价格低,体积小的特点,而采集的图像质量也越来越好,得到了广泛的应用。

表1 传感器性能比较

考虑到指纹采集芯片的性价比,我们选择了Verdicom 公司生产的电容式指纹采集芯片FPS200[5],它具有高性能、低电压、低功耗等优点,采用标准CMOS 工艺制作,在1.28 cm×1.50 cm 的指纹检测区域,像素矩阵为256×300,产生的图像分辨率为500 dpi,分辨精度为50μm。该芯片所需的供电电压为3.3 V~5 V,芯片内置8-bit 的数模转换器并根据所提供的接口分为3种工作模式,MCU、SPI和USB模式,其中USB模式根据其功能又分为内部ROM和外部ROM两种。芯片的模式选择由引脚MODE0和MODE1 的电压决定,在同一时间芯片只能选择一种工作模式,模式与MODE[1:0]的关系如表2所示。

表2 FPS200 接口工作模式

由于USB 总线只是设备和主控制器之间的通信通道,对它所发送的数据没有任何特殊的内容和结构上的要求,同时具有热插拔(Hotplug)的能力,使得USB 有很好的便携性并且成本低廉,同时只要具备驱动和上层应用程序,即可在各种操作系统中实现采集功能,移植方便。而FPS200 内部ROM模式能够很好地实现采集要求,且设计简单,故本文选择USB 的内部ROM模式[6-8]。

1.2 系统的结构设计

达芬奇技术包含完整的开发系统、参考设计和全面的ARM/DSP 系统级集成开发环境以加速所有数字图像和视频应用的设计和开发,并且达芬奇技术支持实时操作系统Linux 与Window CE,可移植性较好,同时用户可以通过文件系统接口访问CF-、SD/MMC、ATA 等存储器,保存采集的数据。因此文中选取支持达芬奇技术的TMS320DM6446[9]作为图像处理器以保证处理的实时性。该处理器是基于ARM+DSP 的系统级芯片(SoC),其中ARM 处理器采用ARM926EJ-S,工作主频为297 MHZ,DSP 处理器采用TI 的高端DSP 核C64x+,工作主频为594 MHz,并集成了用于加速处理的协处理器引擎。其中ARM 负责Linux 下的用户界面,OSD 屏幕菜单显示和设备驱动,DPS 负责图像的处理。图1 是本文所设计的指纹采集系统的结构框图。

图1 指纹采集系统结构框图

FPS200 指纹采集芯片将采集到的模拟指纹图像进行A/D 转换,得到数字图像后通过USB 接口传送给TMS320DM6446 处理器,一方面将采集的图像通过显示器进行显示,另一方面对图像进行去噪增强,并存储到SD 卡中,便于指纹库的建立。

1.3 采集系统的输入和输出

采集系统的指纹图像数据输入是通过USB 接口完成的。在FPS200 芯片工作在USB 内部ROM模式时,DP 引脚用做USB 接口的D+数据线,DM 引脚用做D-数据线。USB 接口的供电电压为标准的5 V 电压,而FPS200 芯片的工作电压为3.3 V~3.6 V,因此选用AMS1117 将5 V 电压降为3.3 V再接入电路中。ISET 引脚与模拟地之间连接一个200 kΩ 电阻设置内部参考电流,FSET 引脚与数字地之间接56 kΩ,用于设置多谐振荡器和自动指纹检测的频率。采集电路仅用到两根数据线与少量电源线,设计简单、体积小,极具灵活性,方便携带。

TMSDM6446 处理器通过与USB Host 相连的引脚向FPS200 写寄存器信息,接收指纹芯片发来的中断与指纹图像数据。

TMS320DM6446 的MMC/SD 卡控制器提供了一个外部MMC/SD 卡接口,用于实现MMC/SD 卡控制器和MMC/SD 卡协议。指纹图像经处理后通过此接口保存在SD 卡中。使得采集的指纹数据可以构建一个移动的指纹库。其中MMC/SD 控制器的配置图[10]如图4所示。

图2 FPS200 硬件电路图

其中CMD 管脚用于所连接的卡与控制器之间的双向通讯;DAT0-3为数据传输时SD 卡使用的数据线,SD 卡可以使用1 根或4 根数据线;CLK 用于控制器向存储卡提供时钟。

图3 DM6446 与USB host 连接图

图4 MMC/SD 配置图(4-bit模式)

2 指纹采集系统软件开发

当指纹图像采集模块与USB 接口相连时,可以采集指纹图像到TMS320DM6446 中进行处理。为实现指纹图像的处理,软件部分我们需要完成两方面的内容:①FPS200 芯片的USB 驱动开发;②指纹采集处理程序的开发。

达芬奇技术体系中引入了Codec Engine[3],并创建了一整套的应用开发平台。Codec Engine 是一系列用于表示和运行数字多媒体标准化DSP 算法接口(XDAIS)及算法的API,它定义了4 类编解码器算法接口标准,分别是视频、图像、语音、音频,简称VISA。Codec Engine 的特点是:①容易使用,应用程序的开发者制定所要使用的算法,而不是如何运行或在什么地方运行;②可扩展可配置,新的算法可以由任何人使用标准的工具和技术来添加;③可以转移,API 独立于目标、平台、甚至是Codec。使用Codec Engine 完成软件开发,采用标准的API 接口,使软件更易读,更易更新和添加新功能。同时,Codec Engine 会协调ARM 与DSP 的使用,使处理性能得到最优化。本文在Codec Engine 的基础上实现指纹采集的软件功能,结构如图5所示。其中ARM 端完成FPS200 芯片的驱动程序,并通过USB 接口与芯片进行通信。同时,ARM 通过TI 的Codec Engine 机制调用DSP 侧的Codec,在DSP 端对采集的指纹图像进行处理。

图5 软件工作结构图

2.1 FPS200 芯片的USB 驱动开发

TMS320DM6446 提供Linux 操作系统,因此USB 驱动的设计是基于Linux 操作系统完成的。FPS200 的USB 驱动程序的工作[11-14]主要分为4 部分:识别驱动程序支持的设备,注册和注销驱动程序,探测和断开,传输数据。

系统根据设备的厂商和ID 调用相应的探测函数,在驱动程序中需要将FPS200 芯片的VENDOR_ID和PRODUCT_ID 以模块形式加入系统的设备表中以便查找:

USB 驱动程序首先要向Linux 内核注册自己,并告诉系统它所支持的设备类型以及它所支持的操作。这些信息通过一个usb_driver 结构来传递。当系统找到设备后,会调用FPS200 指纹芯片的probe函数,为其数据输入端点和中断端点分配地址,并通过struct_class_driver 从USB 核心得到次设备号并将设备注册到devfs和驱动程序核心中,系统在/dev下创建名为fps200usb 的设备文件。驱动程序与上层应用程序通过file_operations 结构相连。

应用程序以文件的方式调用open 函数打开设备,read 函数从FPS200 芯片采集指纹图像数据传输到处理器中。当完成采集模块的使用与系统断开时调用disconnect 函数完成设备的断开,注销USB 设备。

2.2 指纹采集处理程序开发

系统在指纹采集处理程序中主要完成指纹采集芯片FPS200 的打开和数据读取与存储。

在指纹采集处理程序中我们的设计需要符合xDM(xDAIS(eXpress DSP Algorithm Interface Standard)for Digital Media)标准。算法执行的流程如图6所示。

图6 指纹采集处理算法

代码示意如下:

FPS200 指纹芯片所采集指纹图像的质量与DTR,DCR,PGC 寄存器有关[5]。DTR 作为电容放电时间控制寄存器,对图片背景有很大的影响,过小则会使得背景区域过暗;DCR 作为控制电容放电电流寄存器,对图片背景区和前景区有很大影响;PGC是可编程增益寄存器,对图片的前景有很大影响。另外THR 门限值寄存器收到温度、湿度的影响,若设置不当,当没有手指按下是也会产生中断。经实验证明,当DTR=0x40,DCR=0x01,PGC=0x0b,THR=0x2a 时图像质量较好。

由FPS200 芯片采集得到的指纹图像因手指的干湿程序,按下的轻重,使得图像存在断裂和粘连的问题。传统的滤波算法如中值滤波[15-16]可以较好地去除噪声影响,但是却会使边缘模糊。指纹图像具有明显的纹理特征,边缘模糊直接影响到指纹识别中特征点的获得,本文采用偏微分进行图像的去噪增强[17-18]。利用偏微分方程进行图像处理有以下优点:

①具有坚实的数学理论基础,如偏微分方程的数值解法等

②能够很好地结合尺度分析的理论,利用偏微分方程进行图像处理一般满足欧式变换不变性等;

③可以很容易的将各种图像特征引入到模型中去,如方向信息。

利用散度形式的相关扩散方程增强指纹图像最早由德国科学家Joachim Weickert 提出,主要思想是将扩散限制在沿纹路变化的方向上进行,可表示成如下方程:

式中:u为图像,div为散度算子,D为2×2 的正定二维举证,称为扩散向量,它反映了图像局部的方向信息。可以表示为:

根据上述方法对采集的指纹图像进行处理(图7)。

图7 指纹图像处理对比

以上3 图均由FPS200 芯片采集得到,因手指按压的力度不同,手指表面的清洁度不同而有所区别。在图像采集的过程中,并未出现指纹图像中存在明显信息丢失等问题,说明系统工作稳定。

从指纹芯片FPS200 采集得到的图像存在断裂和对比度低的问题,利用中值滤波的方法可以在一定程度上修补断裂,但同时造成了边缘模糊,而使用偏微分的方法可以较好地修补图像中的断裂,同时保证指纹边缘的清晰度,而且图像更加平滑,可以更好地为指纹识别提供方便。

作为一套指纹采集系统,实时性尤为重要,需要保证采集与处理同步进行,而不会因处理速度过慢增加采集的时间间隔。FPS00 指纹芯片在USB模式下的传输速度为13 帧/s,平均采集一幅图像的时间小于0.3 s,可以保证传输速度的高效性。在图像处理方面DM6446 中DSP 算法的执行时间是7 000 次/s,即应用程序可以使用Codec Engine 来运行或控制算法7 000 次/s。在实际的图像处理过程中,本文算法处理256×300 的指纹图像时,运行时间在0.7 s 左右,采集和处理的总体时间少于1 s,足以保证系统工作的实时性。

3 总结与展望

文中所设计的指纹采集系统首次在采用达芬奇技术的硬件平台上实现,同时完成了Linux 下的设备驱动程序开发。TMS320DM6446 处理器由ARM+DSP双核架构组成并配备协处理器,在图像处理方面性能强劲。本文所设计的系统具有很快的采集处理速度,同时采集和存储分别选择USB 方式和SD 卡,具有很好的便携性。达芬奇技术的Codec Engine 提供了一个算法规范化的标准,使得程序的阅读、后续人员对程序的完善改进变得更加方便。目前本系统只是完成了采集系统的开发,在后续的工作中,系统可以继续在程序中添加指纹图像的识别功能。

[1]黄鸿,李见为,王玮.基于FPS200 自动指纹识别系统[J].SensorWorld,2005:33-36.

[2]田捷,杨鑫.生物特征识别技术理论与应用[M].北京:电子工业出版社,2005:2-3.

[3]彭启琮.达芬奇技术[M].北京:电子工业出版社,2008:5-7.

[4]陈娟利.嵌入式指纹采集系统的设计及其预处理算法研究[D].西安:西安理工大学,2008:7-11.

[5]Veridicom.FPS200 Solid-State Fingerprint Sensor[DB/OL].http://www.verdicom.com,2000-5-27.

[6]耿国庆.基于USB 接口的指纹图像采集与处理的研究[D].北京:首都师范大学,2004:20-23.

[7]项希.基于ARM 的指纹采集系统研究[D].武汉:武汉理工大学,2007:14-16.

[8]彭寿星.基于USB 接口的指纹采集与识别系统的设计[D].南京:南京理工大学,2006:10-15.

[9]合众达电子.SEED-DVS6446 实验手册[DB/OL].http://www.seeddsp.com.2008.

[10]合众达电子.SEED-DVS6446 用户指南[DB/OL].http://www.seeddsp.com.2008.

[11]Jonathan C,Alessandro R,Greg Kroah H.LINUX 设备驱动程序[M].北京:中国电力出版社,2006:324-342.

[12]张平,何向阳.基于嵌入式指纹采集器USB 驱动程序研究[J].通信技术,2009,42(5):210-212.

[13]金鑫,孙松林,景晓军.Linux 下有中断端点的USB 设备驱动的实现[J].计算机工程与设计,2010,31(7):1576-1579.

[14]Sreekrishnan Venkateswaran.精 通Linux 设 备 驱 动 程 序 开 发[M].人民邮电出版社,2010:225-233.

[15]肖蕾,何坤,周激流,等.改进自适应中值滤波的图像去噪[J].激光杂志,2009,30(2):44-46.

[16]隋雪莉,梅园.基于中值滤波的指纹增强算法[J].现代电子技术,2009,32(10):107-109,115.

[17]苏永利,张博,张书玲.基于各向同性逆扩散方程的指纹图像增强方法[J].西北大学学报(自然科学版),2009,39(1):9-12.

[18]徐叶雷,黄青华,方勇.一种基于偏微分方程的车辆加速度信号自适应降噪方法[J].传感技术学报,2009,22(11):1606-1611.

猜你喜欢

指纹图达芬奇驱动程序
轻松做完大手术——聊聊达芬奇手术机器人
指纹图像干湿度评价及亮度自动调节方法研究
计算机硬件设备驱动程序分析
达芬奇想飞
手术室的“阿尔法狗”:达芬奇机器人
沉香GC-MS指纹图谱分析
基于模板检测法的指纹图像的细节特征提取
2型糖尿病患者肠道菌群两种分子指纹图谱分析研究
基于MPC8280的CPU单元与内部总线驱动程序设计
信息速递:达芬奇进入我国肝胆外科领域