基于TMS320DM6437的虹膜采集和识别系统设计
扫描二维码
随时随地手机看文章
摘要:虹膜识别技术被认为是最有前途的生物认证技术之一,并且已经广泛应用于金融、电子商务、国防等领域。本课题基于TI公司的TMS320仁)M64.37设计了一款实时的虹膜采集和识别平台,介绍了系统的框架,并分析了相关的软件设计,如Codec Engine软件框架和网络传输。该平台也可以应用于不同的图像识别领域。
引言
虹膜识别技术被认为是最有前途的生物认证技术之一,依靠虹膜进行身份识别具有以下明显的优势:
①唯一性。虹膜具有丰富的纹理信息,不同人的虹膜的细节特征是绝不相同的,这是利用虹膜识别的最根本前提条件。
②稳定性。虹膜受到眼皮、角膜等其他人体器官的保护,不易受到外界物质的伤害,虹膜本身也没有生理上的病变因素。因此相比指纹、掌纹等其他部位具有更高的稳定性。
③天然防伪性。虹膜包围的瞳孔会因为肌纤维不停地震颤而规律性地变化,瞳孔还会因为光线强弱而收缩或扩张,通过对虹膜的内边缘进行定位,也就是对瞳孔大小的实时监测,就可以轻易分辨虹膜的生物学真伪。
④无侵犯性。虹膜识别过程中不需要用户进行任何物理形式的接触,因此更容易被接受。所以,虹膜识别是目前身份认证中最有发展前途的认证技术,有着广泛的市场前景和科学研究价值。
随着计算机和信息技术的飞速发展,数字信号处理(Digital Signal Processing)技术应运而生并得到迅速的发展。它是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字、数据解译回模拟数据或实际环境格式。在过去的二十多年时间里,数字信号处理已经在各个领域得到极为广泛的应用。TI、Freescale等半导体厂商开发的一系列DSP芯片可以很好地对采集、提取、归一化后的虹膜信息进行处理和识别。国外相当数量的公司正在试图采用虹膜识别取代人们手中的各种身份验证卡和密码,并且很多机场、银行的电子设备上进行了实际应用。
在国内,主要偏重于虹膜识别的理论研究。目前主要有以下两种:
①采用Gabor滤波和小波变换提取特征,匹配采用方差加权欧式距离方法;
②用Hough变换找出虹膜中心和半径,利用半径求比例因子,用相关系数测度匹配结果的方法。
综上所述,从世界范围来看,国外的虹膜市场比国内要成熟,并已经在金融系统、飞机场等小范围试运行。可以预计未来几年,我国将大规模利用DSP深化虹膜识别技术应用到某些领域。在硬件上,我国和发达国家的差距是比较大的。为此,本文提出了基于TMS320DM6437的虹膜识别系统设计。
1 系统整体简介
该系统通过CMOS摄像头采集人眼虹膜图像,对信息进行解码后交由TMS320DM6437进行处理,然后图像处理子系统调用算法处理,继而把处理结果传输给PC。拟定系统主要由4个部分组成:虹膜图像采集、虹膜图像处理、存储器,以及数据传输部分。CMOS图像传感器负责采集虹膜图像,采集的数据由CPLD分配地址存储在RAM中;当一帧图像采集完毕后,CPLD产生外部中断信号,将存储在SRAM中的字节位图拷贝至SDR AM等待DSP处理,采用闪存存储程序代码和虹膜特征库。整个系统中,DSP要完成数字图像处理工作以及控制其他外部设备。CPLD主要是来实现系统的控制逻辑。系统框架如图1所示。
2 主要硬件简介
2.1 核心处理器
系统采用TMS320DM6437数字信号处理器作为核心处理器,它是TI公司推出的专门为高性能、低成本视频应用开发的,主频为600 MHz,基于32位定点DSP达芬奇技术的处理器。它采用2级Cache存储器体系结构,片上具有64通道增强型DMA控制器EDMA,支持复杂的数据类型的传输,有利于图像数据的高效传输和格式变换。它有8个并行处理单元,采用甚长指令字(CLIW)结构体系,有强大的处理能力。它还集成了一些外设接口,包括图像处理子系统、以太网接口、I2C总线接口、DDR2接口和EMIF接口等.其中,VPSS上提供了一个输入接口和一个输出接口,输入接口VPFE用来连接前端外部设备图像传感器,它由5部分组成,分别是CCDC、IPIPE、H3A、Resizer和Histogram。输出接口VPBE可以连接显示设备,如analogy SDTV显示器、数字LCD面板等,它包含On-Screen Display模块、带数字LCD和模拟DAC接口的VENC(用以生成模拟式输出)。DLCD控制器产生数字RGB/YCBCR,输出时间信号和数据。
2.2 网络模块
根据7层OSI网络模型的定义,网络接口工作在其物理层和数据链路层。在TMS320DM6437芯片上带有EMAC/MDIO接口,即提供数据链路层控制,所以选择网卡芯片时只需要有物理层相关功能即可满足需要。
2.3 存储器模块
系统存储主要依靠DDR2存储器,它拥有两倍于DDR内存的预读取能力,也就是DDR2内存每个时钟能够以4倍于外部总线的速度读/写数据,并且能以内部控制总线4倍的速度运行。采用了专用的DDR2存储控制器接口拓展了64 MB的DDR2 SDRAM,为图像处理应用提供了高吞吐率、高容量存储带宽,而且可以继续根据需要扩展到256 MB。此外,还有256MB的Nor Flash为图像处理应用程序脱机使用提供了充足的容量保证。
2.4 硬件预设
在运行整个视频采集系统之前,需要对芯片的引脚进行定义,根据需求来决定芯片各引脚的作用和输出的信号类型。芯片引脚定义通过设置芯片内部PINMUX1、PINMUX2寄存器来确定,所以首先需要运行芯片初始化函数。然后进行前端处理,用来配置CCDC为10位Raw Bayer模式接口,接收来自数字摄像头的裸数据,同时定义了虹膜图像的分辨率为720×576。接着设置CCDC的视频输出分辨率以及数据路径流向预览器。设置接口接收来自CC—DC的10位Raw Bayer模式图像数据,在缓冲器接口模块中选择图像数据流为外部存储器DDR2,指定图像存储地址和偏移地址。继而通过I2C总线来配置CMOS摄像头,需要对PLL设置寄存器进行配置,设置好的时钟信号则作为像素输出时钟使用。还需要设置图像格式寄存器和一些控制寄存器,用于模拟信号和数字信号的增益、黑电平校正和数字偏移的更正。这些寄存器的设置可以使我们得到更理想的图像。
最后进行后端处理,用来配置视频处理后端(VPBE)。VPBE中的图像存储器读取地址就是VPFE中的图像存储地址。设置输出信号为NTSC制的复合视频信号(CVBS信号)。在虹膜采集系统中对摄像头的分辨率设置为720×576,观察采集到的图像,帧数稳定、色彩均衡,能够满足要求。当需要改变分辨率的时候,只需改变程序中相应的寄存器设置,硬件无需变更,降低了开发成本。
3 系统软件设计
在本系统中,片上的软件有:图像采集驱动程序、Codec Engine应用软件和网络模块(NDK)软件程序。总体框架图如图2所示。
在DSP/BIOS实时操作系统下,先将系统上电执行初始化,从程序入口点运行到main函数,然后对相关寄存器的复用引脚和外设接口等进行配置。芯片工作后根据main函数的设置启动任务线程。main函数返回后,由DSP/BIOS对程序控制进程进行调度,包括内存管理、中断处理和任务管理等。本系统包括PreviewTask和TskNdkStackTest两个静态配置的任务线程,前者负责对图像处理驱动模块和Codec Engine框架进行初始化,实时获取虹膜图像、执行处理算法以及输出最终结果,是整个系统的主线程;后者负责网络模块的运行。
3.1 图像采集驱动程序
驱动程序是软件和硬件之间的桥梁,是软件设计中不可或缺的一部分。该驱动程序主要是用于前端的图像采集端,后端则将处理结果通过网络传输至PC。TI公司开发了专门的驱动接口函数,函数名均以“FVID”为默认字头,它由GIO的APIS按需再次封装得到。所用到的主要函数如表1所列。
紧接上文步骤,DSP/BIOS启动图像处理主线程,然后主线程使用FVID的API函数获取传感器发来的图像。接着用FVID_crcat函数创建通道,返回句柄,将其作为函数FVID_control的参数,根据不同的命令字符串对接口进行配置。下一步使用FVID_alloc和FVID_queue两个函数向驱动申请3个数据帧,编入buffer队列。然后用FVID_dequeue函数释放队列中的首个buffer,作为FVID_exchange函数的起始参数。之后进入while循环,利用FVID_exchange函数实现图像数据的实时更新。
3.2 Codec Engine应用软件
Codec Engine软件是TI公司专门为达芬奇系列DSP设计推出的一个标准软件框架,能够极大地简轻软件人员的工作量。它是介于应用层和信号处理层之间的软件模块,需要和以下软件模块、工具配合使用:
Framework ComponentS 1.20.02 xDAIS 5.21/XDC Tools 2.93.01/C6x Code Generation Tools version 6.0.8/DSP/BIOS 5.31.05/MontaVista Linux v4.0/Red Hat Enterprise Linux 3 (SMP)
使用Codec Engine软件,首先需要使用初始化函数CERuntime_init(),然后采用Core Engine APIs创建Engine对象并调试。继而通过VISA接口创建算法对象,并通过不同的数据模式和接口函数调用符合XDM标准的算法库。该软件的实现流程图如图3所示。
3.3 网络模块软件程序
本系统采用C6000系列DSP的官方网络开发套件NDK。它基于TCP/IP协议,网络接口较为丰富,使用灵活方便。各部分模块名称以及功能如表2所列。
NDK由5大模块组成,其各种网络功能的实现都利用了Socket接口。在本系统中,Socket服务器端就是DSP端,系统创建多个Socket对象,分别负责数据的收发操作。同步执行的操作是并行而互不影响的。
具体实现过程是这样的:网络工具模块程序利用NDK为系统设置一个IP地址,然后在网页窗口输入DSP的网口IP地址,进入DSP端的HTTP服务器,从而实现远程实时监控。此外,利用Socket编程,可以与PC端编写的软件进行通信,于是用户可以通过PC端的软件给DSP发送控制指令来实现不同操作。
模块中共包含1个主线程和3个子线程,主线程TskNdkStackTest已经根据DSP/BIOS的.tcf配置文件进行了静态的配置。3个子线程分别是sendTsk、receiveTsk和cmdparseTsk,分别用于发送数据、接收数据和解析PC端软件的控制命令。每个子线程中都必须创建一个Socket。
结语
本文研究了基于TMS320DM6437的虹膜识别系统的软硬件框架设计方法。系统对核心处理器以及主要硬件器件作了介绍,并针对所用到的软件框架进行了详细的分析,对虹膜采集和识别平台的设计具有一定的参考价值。