基于ARM9的指纹识别系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于ARM9的指纹识别系统
*第一部分设计概述/Design Introduction
信息化时代,生物识别技术作为信息安全和个人身份识别技术越来越受到人们的重视。
指纹作为人体中最明显的外表特征,具有独一无二的特性、普遍性、唯一性、易于采集等优点。
指纹鉴定技术利用人类指纹稳定性和独特性的生理特征,将其作为人们的一种“活的身份证”,更因指纹具有的不可替代性,使通过指纹进行身份鉴定的安全性大大提高,且随着图像处理_模式识别方法的发展和指纹传感器技术的日臻成熟,指纹鉴定方法在金融、公安、门禁、户籍管理等领域都有着良好的应用前景。
同时随着指纹传感器性能的提高和价格的降低,指纹的采集相对容易;指纹的识别算法已经较为成熟。
由于指纹识别具有扫描指纹的速度很快,方便,小型化等多优点,指纹识别技术已经逐渐走入民用市场,并应用到许多嵌入式设备中。
指纹防盗系统也由此产生,指纹防盗系统是一种能够自动鉴别个人身份的技术,对于其他的指纹报警,技术特性使得生物识别身份验证方法不依赖各种人造的和附加的物品来证明人的自身,而用来证明自身的恰恰是人本身,所以,它不会丢失、不会遗忘,很难伪造和假冒,是种“只认人、不认物”,方便安全的保安手段。
从而对财产起到保护作用。
指纹防盗系统可以广泛用于政府、学校、税务机关、银行、部队、智能小区及交通等各个领域,倍受各界用户的青睐。
目前市场上有各种各样的嵌入式处理器。
意法半导体公司提供的STR912芯片是一种硬核处理器,具有很高的性价比。
本文提出一种基于ARM9处理器为核心的嵌入式自动指纹识别系统设计,以STR912芯片设计为硬件平台,配以指纹传感器芯片和VGA接口控制电路实现的。
该系统具有低成本、开发周期短、上市快等优点。
第二部分功能描述/Function Description
本设计系统主要实现指纹的采集、处理、特征模板提取、结果显示,以及完成个人身份识别/注册功能。
主要有以下几个模块,指纹采集模块,ARM9处理模块,VGA控制模块,结果显示模块。
主要结构框图如图1所示。
图1识别系统结构框图
指纹采集模块:模块核心部分为Veridicom公司的FPS200传感器芯片,该芯片是一种触摸式CMOS传感器件,其传感区域为1.28cm×1.50cm,256×300传感阵列,500dpi 分辨率,内置有8位模数转换器,且有微处理器总线、SPI总线和USB总线三种接口模式,工作电压为3.3V~5V。
本指纹防盗系统采用了传感器的USB模式,传感器的数据线直接与STR912x芯片扩展口相接,对FPS200图像传感器进行初始化控制和图像读取。
数据处理模块:主要完成指纹识别的整个处理过程,包括指纹图像软化、方向图提取、图像增强、二值化、图像滤波、图像细化、特征点提取,特征值存储、模板匹配等。
该模块我们主要采用了意法半导体公司的STR912芯片,32位 Burst Flash ,256KB/512KB主Flash,32KB从Flash,32位宽度SRAM,使用FLASH和SDRAM分别用作ARM 处理器的程序存储器和数据存储器。
为了提高速度,对一些核心算法进行了优化。
VGA显示输出模块:该模块包括了VGA显示器以及相应的接口控制电路,采用了ARM处理器的VGA接口对其进行操作,通过直接对显存的读写来控制图像的显示,最大可以显示640×480(即显存为307.2kb)象素,刷新频率为60Hz的256级的灰度图像,能够满足指纹图像的显示以及处理结果的输出需求。
*第四部分设计结构/Design Architecture
1 硬件平台结构
基于ARM9内核,片内自带Flash、USB、CAN、以太网、AC马达控制、ADC、RTC、DMA等。
主要应用于工业控制、网络通信、楼宇安防、电力电子、消费类电子、测量与测试等方面。
主要特征:
1、96MHz ARM9E核:哈佛结构、5级流水线、TCM存储器;96MHz 内部Flash 运行单周期DSP指令;兼容ARM7代码。
2、双组32位 Burst Flash
3、32位宽度SRAM 64KB/96KB,可电池
保持数据
4、11个通信接口
5、时钟、复位、电源管理
6、多达80个GPIO,
7、向量中断控制器(VIC)
8、8 通道10位ADC(2us转换时间)
图2 STR91x结构示意图
2 软件结构
整个系统主要工作流程如图3所示。
右边流程为系统独立工作时指纹识别的整个过程,
图3 系统主要程序流程图第五部分设计方法/Design Methodology
1 硬件设计
(1)VGA外设
图像的显示有许多种设备,常见的有VGA、SVGA,LCD等。
本设计采用VGA来显示指纹图像处理的过程。
对于普通的VGA显示器,其引出线共含5个信号:G、R、B:三基色信号;HS:行同步信号;VS:场同步信号。
VGA显示器时序驱动,严格遵循“VGA工业标准”,即640×480×60Hz模式。
通常我们用的显示器都满足工业标准,因此我们设计VGA控制器和自定义外设的时候参考了显示器的技术规格。
图5,6所示为VGA行扫描、场扫描的时序图。
图4 行扫描时序图
行扫描时序要求(单位:象素,即输出一个象素Pixel的时间间隔):Ta(行同步头):96 Tb:40 Tc:8 Td(行图像):640 Te:8 Tf:8:Tg(行周期):800
图5 场扫描的时序图
场扫描时序要求(单位:象素,即输出一行Line的时间间隔):Ta(场同步头):2 Tb:25 Tc:8 Td(场图像):480 Te:8 Tf:2 : Tg(场周期):525
(2)指纹采集电路
FPS200内含13个寄存器,其中DTR、DCR用于指定放电电流时间,RAH、RAL、REH、REL 用于指定要采集的行,CAL、CEL用于指定要采集的列,CTRLA、CTRLB、CTRLC三个控制寄存器,主要用于控制传感器的初始化,时钟的选择及P0、P1的输出,PGC用于指定采集指纹图像的增益等。
传感器的初始化,在获得整幅图像之前应该启功传感器和图像参数调整,主要是对DTR,DCR,PGC三个寄存器的配置。
微处理器读、写模式时序图分别如图7和图8所示。
图 6 微处理器读模式时序图图7 微处理器写模式时序图
图所示为VGA控制模式下整幅图像的读取工作流程图。
本指纹识别系统采用传感器的USB模式,且获取整幅图像,其他的行或子图的获取,只是其中的写入寄存器的值不一样,指纹采集流程图如图9所示。
图8 整幅图像读取流程图
2 软件设计--指纹处理算法
2.1系统功能
本统有两大功能:用户身份识别(即指纹识别)和新用户注册(即指纹模板存储)。
指纹模板存储主要包括指纹采集、指纹图像预处理、特征点提取、特征模板存储以及VGA输出
显示;指纹识别则根据与前面存储的指纹登记比较,是否匹配,最后输出显示匹配结果。
指纹识别算法是指纹识别的核心,本系统中采用的指纹识别算法流程如图10所示。
图9 指纹识别算法流程
2.2 处理过程
2.2.1 图像增强
图像增强中要解决的核心问题是指纹图像预处理,其目的是为了减弱噪声、改善图像质量,以便于特征提取。
指纹纹理由相间的脊线和谷线组成,它们蕴涵了纹理方向、纹理密度等大量信息。
这些信息在不同区域显示不同特征。
指纹图像增强算法就是利用图像信息的区域性差异来实现的。
本系统中采用的是参考了指纹图像纹理频率信息,以GABOR 变换这个能够同时对图像局部结构的方向和空域频率进行解析的最优滤波器作为滤波器的模板,因而极大改善了增强算法的效果。
2.2.2脊线方向
除奇异区外,指纹图像在一个足够小的区域内,纹理近似于相互平行的直线,这就是指纹图像的方向性特征。
方向性特征是指纹图像中最为明显的特征之一,它以简化的形式直观的反映指纹图像的基本形态特征,因而被广泛应用于指纹图像的分类、增强、特征提取等方面。
提取脊线方向方法为:
(1) 将指纹图像分割成足够小的子块,以满足块中纹理近似平行的条件。
(2)对每个子块的每一个点(,)(,0,1......-1)p s t s t w =利用Sobel 算子分别计算其x 的方向梯度x g 和y 的方向梯度y g ;
(3)每个子块方向,m n θ()
的计算公式如下: 1112
2
112(,)(,),tan (,)(,)w w x y s t w w x y s t g s t g s t m n g s t g s t θ====⎧⎫''''⎪⎪⎪⎪⎨⎬⎪⎪''''⎡⎤-⎣⎦⎪⎪⎩⎭
∑∑∑∑-1()=2 s s mW '=+ t t nW '=+ ( ) 2.2.3脊线频率
指纹纹理除了具有稳定的方向性特征外,还具有稳定的频率性特点。
在指纹图像的一个局部区域内,脊线和谷线的纹理走向平行,同时沿脊谷方向的灰度分布近似于正弦包络。
脊线频率被定义为两条脊线之间间距的倒数。
通过定位该包络中极大、极小值点,就能得到相应的脊线间距和谷线间距,进而计算出脊线频率。
2.2.4GABOR 滤波器
GABOR 变换由于具有最佳时域和频域连接分辨率的特点,能够同时对图像局部结构的方向和空域频率进行解析,可以很好地兼顾指纹图像的脊线方向和脊线频率信息。
本系统中采用GABOR 滤波器函数的实部作为模板,以与子块纹线方向垂直的方向作为滤波器方向,以脊线频率作为滤波器频率来构建滤波器。
滤波过程如下式所示:
2222
1(,)|x,y,,,,(,)|W
W E g x y W W
y x G s t h m n f m n G s x t y S θσσ=-=-=++∑∑((),(),) 其中,(,)G s t 为原始灰度图像,(,)E G s t 是GARBOR 滤波后的图像灰度,W 为滤波器,模板的大小。
S 为模板系数和,θ为子块的域方向值。
需要注意的是GARBOR 滤波器的θ与指纹纹理方向垂直。
对x σ和y σ的取值需要进行折中,取值越大,滤波器的抗噪声性能越好,但也可能形成假的脊线。
我们取值4x σ=和4y σ=
2.2.5 指纹匹配
本系统中指纹匹配采用基于特征点集合匹配的校准算法,该算法多为简单的比较逻辑和加减运算,不需要用到DSP 处理单元。
通过现场采集的指纹如图10所示,Nios II 软核处理器上平台上,经过一些列处理后的指纹图像分别如图11-图15所示。
图10原始图像 图11脊线方向图 图12滤波后的图像
图13 二值化图像图14 细化图像图15特征点提取图
通过上面的处理结果来看,在一个适合的样本范围内,选取判断阈值为130时可以达到比较高的识别率。
另外,在从指纹采集到特征点提取过程中,时间主要消耗在方向图的计算和图形滤波两部分,原因有二:第一,这是由图像处理本身的算法原理决定的,在计算方向图和滤波器运算时,要进行大量的浮点和超越函数的计算,且循环的次数特别多;第二,由于硬件本身的限制,因为Nios Ⅱ处理器本身不带浮点运算单元,在进行浮点运算的时候需要用软件仿真库或是自定义指令来实现。
如果能够使用ARM9处理器,性能将会得到极大的提高,特别是处理时间方面将会进一步缩短.。