以DSP为基础的基于TMS320VC5402的虹膜识别系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘 要
本文是以TM320VC5402 DSP 为核心的虹膜识别系统的硬件设计 ,提出了一种由FPGA 、 OV5017 与 TMS320VC5402 组成的DSP 应用硬件平台 ,并详细介绍了系统的设计方案和关键硬件的结构设计以及软件设计方法。
关键词: DSP 虹膜识别 TM320VC5402
1 概述
在高度信息化的现代社会, 信息安全问题日益受到人们的关注。
近年来兴起的生物特征识别技术具有很好的可靠性,虹膜识别技术是一种最新的生物识别技术 ,它以虹膜识别算法为基础 ,可达到优异的识别准确度 ,即使全人类的虹膜信息都录入到一个数据库中 ,出现认假和拒假的可能性也很小。
由于虹膜识别技术所具有的高精度使它被广泛应用于各识别领域。
本系统使用的核心处理器是德州仪器公司 ( TI) 的TMS320VC5402(以下简称 C5402) ,该芯片为一款性价比较高的定点数字信号处理器(DSP) 。
它采用先进的修正哈佛(Harvard)结构体系 ,片内共有 8条总线、 CPU 、 片内存储器和外围电路等硬件 ,加上高度专业化的指令系统 ,使其具有功耗小、 高度并行等特点。
下面着重讨论基于该芯片的系统设计。
2 硬件设计
2.1 系统硬件结构
本 系 统 由 C5402、CCD 、 Flash 存储器、 SRAM 等芯片组成 ,如图 1 所示。
图1 系统硬件框图
FLASH 存储器AT29LV020
SDRAM 存储器 K4556132E CF 卡 EMIF
TMS320VC5402 VP2 VP0 VDD
CCD A/D 转换器TVP5145 CPLD MAX3000 LCD 显示器 电源 TPS3307
CCD 机负责虹膜图像的采集 ,SDRAM 用于程序执行和虹膜数据暂存。
FLASH 实现 OV5017 配置、 虹膜图像存储空间的地址生成、C5402 寻址片外存储器的页地址管理和 C5402 与外围器件之间通信的仲裁等功能。
RS2232 用于数据传输 ,PC 可以通过该接口得到虹膜特征数据 , Flash 存储器用于存储程序、 初始化数据和虹膜特征数据库。
键盘用于用户输入 ID 号 ,系统依据用户 ID 号从虹膜特征库中读样本图像编码数据。
2.2 虹膜图像采集硬件设计
本文选用 Omni Vision 公司的 OV5017 作为图像采集芯片。
OV5017 是一种高度集成的黑白数字摄像芯片 ,集成了 CMOS 传感技术。
带有一个1/ 4英寸镜头 ,并支持多种格式。
像素数最大可达384 ×288。
支持外部水平、 垂直同步输入格式 ,包括8bit 的A/ D 转换器 ,支持模拟视频、 数字视频输出。
该芯片数字视频输出为不间断比特流 ,片内可实现包括帧速率、 曝光设定以及图像大小编程等功能。
OV5017 与 FPGA 的接口如图 2 所示。
图2 OV5017 与 FPGA 的接口
图中 FPGA 为一片 Altera 公司的 EPM9320215 ,用于初始化 OV5017 的控制寄存器 ,图像数据地址生成以及把采集来的虹膜图像存入 SRAM 存储器中。
FPGA 具体功能如下:
配置 OV5017 的控制寄存器 ,A[ 0. . 3 ]为内部寄存器地址 ,D[ 0. . 7 ]复用。
设置 CSB = 0、 OEB =1、 WEB = 0 ,OV5017 进入写使能状态。
写 0xC4 到寄存器 FCTL ,设置 OV5017 为单帧输出模式;写0x01 到寄存器 FDIV ,设置帧速率 FR(f rame rate)为25f/ s ,像素时钟 PR(pixel rate)为3. 579 5MHz ;其他寄存器为系统默认值。
虹膜图像取系统默认值 384×288。
(2) 图像数据地址生成并存储图像。
图像数据地址由 FPGA 利用 OV5017 输出的行同步信号(HREF) 、 场同步信号 (VSYNC) 和图像像素时钟(PCL K)生成 ,并把采集来的一帧图像存入图像存储器中。
2.3 接口硬件设计
PCLK OEB WEB CSB HREF A[0..3] VXYNC D[0..7] I/O I/O A[0..17] I/O I/O DO[0..17] I/O AR[0..3] I/O I/O I/O DI[0..7] A[0..17] D[0..7] WE CS OE
C5402 有两个多通道缓存同步串口(McBSP) ,若要与计算机通信须把同步通信转换成异步通信。
本模块中采用 Maxim 公司 MAX3111E 接口芯片 ,同一个 McBSP 实现 DSP 与PC 的通信。
MAX3111E芯片中集成了 UART、 RS2232 和可编程的波特率发生器 (可用于300baud~230kbaud) 。
UART具有 8 个字的接收存储 FIFO ,使处理器的开销最小 ,并且可以提供 4 个可屏蔽的中断。
在保证UART和 RS2232 共同接地和供电的情况下 ,它们可以配套使用 ,也可以单独实现其功能。
最大波特率为230bit / s。
另外 ,本系统中还预留了一个McBSP和C5402 的 HPI接口 ,以备扩展使用。
3 系统软件设计
3.1 系统流程
系统流程图如图 3 所示。
( 1 ) 系统上电之后首先对 OV5017 和MAX3111E进行配置 ,其次经并行 16 位数据线将程序从 Flash 存储器写入 C5402 的程序存储区 ,系统进入等待状态;
(2) 用户从键盘输入个人 ID ,C5402 读取样本图像编码数据到数据缓存 ,当 CMOS数字摄像机采集触发信号传至 FPGA 时 , FPGA 利用 OV5017 提供的行场同步信号产生存储空间地址 ,将采集所得的数据存入图像存储器( SRAM) ,一帧图像存储结束之后 ,FPGA 通知C5402 ( INT0) ;
( 3) C5402利用DMA方式从图像存储器读取图像数据 ,并进行虹膜识别核心算法处理[3 ] [4 ]。
本系统中虹膜图像为110 ×8kbit ,在算法编号中是以32 ×8kbit的数据为一个单
元进行处理 ,中间结果存入数据存储器中 ,这样可以提高运算速度 ,简化了FPGA中页地址管理寄存器的软件编写;(4) C5402 处理结束后 ,计算结果经 RS2232 接口传回计算机。
3.2 Bootloader程序设计
C5402片内设置有Boot 程序 ,Boot 程序的主要作用是在开机时将用户程序从外部装入到程序存储器。
当用户程序很大超过了 32K,必须采用以下特殊的Boot 方法。
(1) 在 Reset 后 ,将 Flash 存储器译码在数据区 ,RAM译码在程序区 ,利用片内 Boot 程序将自己编写的初始化程序从外部数据区搬移至内部 RAM中;(2) 用户初始化程序发出一个 I/ O 命令(如XF) ,将 Flash 存储器译码到程序区的高地址 ,开放数据用于其他的 RAM。
(3) 用户初始化程序中包括第二次 Boot 程序(此程序必须用户自己编写) ,将 Flash 存储器中没有Boot 的其他代码搬移到 RAM 中。
(4) 开始运行用户处理程序。
自己编写的第二次Boot 程序如下:
. def load start
. sect″ load prg″
load start :
ssbx intm
ld # 0 , dp
nop
ld # address1 , a
stm # address2 ,ar1
rpt # length
reada
3
ar1 +
endboot :
orm # 020h , @1dh
ld # address3 , a
bacc a
. End
其中address1 为 Flash 存储器中没有Boot 的代码源地址 ,address2 为没有Boot 的代码目标地址 ,length为代码长度 ,address3 为主程序代码开始执行地址。
3. 3 虹膜识别核心算法程序的设计
虹膜识别核心算法程序的设计本系统虹膜核心算法包括三部分:图像预处理、虹膜纹理特征提取与编码和模式匹配。
具体算法如下:
(1)图像预处理:获得眼睛图像后的下一个任务就把虹膜部分从图像中分离出来 ,即虹膜定位 ,这是虹膜识别系统中重要的一部分。
虹膜是瞳孔和巩膜间的环形可视部分 ,对虹膜的定位就是要找到虹膜内外边缘。
为更好的说明定位过程 ,用 I ( x , y)表示所获得的眼睛图像的灰度函数 ,虹膜内外边缘的圆形轮廓用中心点为( x0 , y0) ,半径为 r 的参数模型表示。
虹膜定位算法如下:
其中:
G σ是均值为 r0 ,方差为σ的高斯函数 ,用来平滑滤波、消除噪声 ,以利于检测边界处的梯度变化; 3 表示卷积;a/a r为微积分算子表示求方向梯度。
微积分算子作用于图像 ,通过不断增大半径 r ,沿以半径为r和中心坐标为( x0 , y0)的弧 ds 进行线积分。
用式(1)算法定位虹膜内外边缘的过程就是在参数空间( r , x0 , y0)搜索灰度变化的最大绝对值的过程。
(2) 特征提取与编码:2D2Gabor 滤波器具有方向选择性。
利用这个特点对虹膜图像提取局部相位信息 ,其实现公式如下:
其中 G( x , y , f ,φ)为二维 Gabor 函数 ,φ表示滤波方向 , f 表示正弦曲面的频率 , Gabor 函数具有方向选择性和频率选择性(二维 Gabor 函数的具体特性参见文献 5) 。
Gabor 滤波器的尺寸为 M ×N , ( i ,j)为每块图像的中心位置。
式(2)得到的局部相位信息的值为复数 ,虹膜识别系统中选定一个阈值来量化信息的实部和虚部 ,即如果大于阈值时值为 0 ,小于阈值时值为 1。
由于选取了四个方向的 Gabor基函数进行滤波 ,则每个方向可用 2bit 表示 ,并且每个图像块的编码为实部加虚部 ,所以每块用 4bit 表示。
虹膜图像分块的数目不同 ,特征编码的长度就不同。
(3) 模式区配:编码后的模式匹配基于汉明距离:
其中©表示异或运算 , L 为码长 , x i 和 t i 为待识别图像编码和样板图像编码的第 i 个码字。
如果两个编码相同 ,则 HD 为0 ;如果两编码各位相反 ,则 HD为 1。
由于一幅虹膜图像的相位编码的码字为 C和为1 的概率等同 ,且不同虹膜之间不相关 ,因此 E( HD)为0. 5。
根据以上的算法 ,DSP 的编程实现被分解成三大任务模块:即图像预处理、特征提取与编码以及模式匹配。
需要注意的是每一个模块都必须注意页面管理寄存器的值 ,因为如果程序仅在 SRAM 中运行会浪费大量的时间 ,所以可以把部分程序和数据放入DSP的内部运行。
在 C和汇编混合编程的时候 ,存在 C语言和汇编语言的变量以及函数的接口问题。
在进行 C 语言移植时也涉及到两个问题:一是库函数的使用 ,二是字长问题。
TI的 TMS320C54x
C编译器提供符合ANSI C的函数库。
至于字长 ,要注意int 型在不同的系统中的区别 ,如在VC 环境中 ,int 型为 32 位 ,而对于 TMS320C54x C编译器来说 ,int 型则为 16 位。
因此 ,在将 C源程序由仿真环境向 TMS320C54x平台移植时 ,应根据各变量的取值范围 ,尽可能地将 int 型归类为 short 型或 long型[6 ]。
此外 ,虹膜算法的常用算子 ,如卷积、sobel 算子和积微分算子等 ,都必须用汇编来实现 ,这样才能提高效率。
最后 ,因为 C5402
是定点型DSP ,所以还要对整个系统进行定标处理。
4 总结
本文详细介绍了基于 DSP 芯片的虹膜识别系统。
从实际的测试结果来看 ,该虹膜采集识别通用平台峰值处理能力可达60MIPS ,能够快速、有效、稳定地工作。
另外虹膜识别系统处理核心部分是由DSP完成 ,这可以增强系统的保密性 ,防止非法拷贝。
参考文献
[1]沈庭之,方子文。
数字图象处理及模式识别.北京:北京理工大学出版社1998
[2]李方慧,王飞,何佩琨。
TM320C6000系列DSP原理与应用(第二版).北京:电子工业出版社,2003
[3] 戴明帧,周建江,TMS320C54X DSP结构、原理及应用.北京航空航天大学出版社,2001
[4] 彭启琮,李玉柏,管庆.DSP技术的发展与应用.北京高等教育出版社,2002
[5]乔瑞萍,崔涛,张方娟。
TMS320C54X DSP原理及应用.西安电子科技大学出版社,2004。