基于FPGA的混沌加密虹膜识别系统设计(一)
扫描二维码
随时随地手机看文章
项目信息
1.项目名称:基于FPGA的混沌加密虹膜识别系统设计
2.应用领域:工业控制、科研、医疗、安检
3.设计摘要:
基于虹膜的生物识别技术是一种最新的识别技术,通过一定的虹膜识别算法,可以达到十分优异的准确性。随着虹膜识别技术的发展,它的应用领域越来越宽,不仅在高度机密场所应用,并逐步推广到机场、银行、金融、公安、出入境口岸、安全、网络、电子商务等场合。在研究了虹膜识别算法,即预处理、特征提取和匹配的基础上,我们设计了一种可便携使用的基于FPGA的嵌入式虹膜识别系统。本系统由6个模块组成:电源管理和监控、虹膜图像采集(CMOS图像传感器,ADV7183)、虹膜图像处理(FPGA)、存储器(SDRAM和FLASH)、人机交互(LCD和键盘)和网络传输模块,同时从硬件、软件和算法三个方面提出设计方案
4.虹膜识别原理
虹膜是一种在眼睛中瞳孔内的织物状各色环状物,每一个虹膜都包含一个独一无二的基于像冠、水晶体、细丝、斑点、结构、凹点、射线、皱纹和条纹等特征的结构。据称,每个人每只眼睛的虹膜都是唯一的,即使是整个人类,也没有任何两个虹膜在数学细节(mathmatical detail)是相似的,即便是一对双胞胎,他们的虹膜也不会相同。
虹膜是位于眼睛黑色瞳孔和白色巩膜之间的圆环状部分,总体上呈现一种由里到外的放射状结构,由相当复杂的纤维组织构成,包含有很多相互交错的类似于斑点、细丝、冠状、条纹、隐窝等细节特征,这些特征在出生之前就以随机组合的方式确定下来了,一旦形成终生不变。
从一定的距离之外可以看到虹膜,这样可视性为生物测量方案的操作上提供了理想的条件,不像DNA这种生物特征的不可视。登记时获得图像,以及身份识别都是很容易完成的,最重要的是这种技术的抗干扰性(抗插入性)。其他生物测量技术在数学算法的确定性、速度以及非干扰性这些方面与虹膜识别不可同日而语。在当今世界,虹膜识别仍被公认为是识别精度最高的生物识别系统。
虹膜识别技术就是应用计算机对虹膜纹理特征进行量化数据分析,用以确认被识别者的真实身份,是目前世界上最尖端的生物识别技术。
一个自动虹膜识别系统包含硬件和软件两大模块:虹膜图像获取装置和虹膜识别算法。分别对应于图像获取和模式匹配这两个基本问题。
采集:
从直径11mm的虹膜上,Dr.Daugman的算法用3.4个字节的数据来代表每平方毫米的虹膜信息,这样,一个虹膜约有266个量化特征点,而一般的生物识别技术只有13个到60个特征点。266个量化特征点的虹膜识别算法在众多虹膜识别技术资料中都有讲述,在算法和人类眼部特征允许的情况下,Dr. Daugman指出,通过他的算法可获得173个二进制自由度的独立特征点。在生物识别技术中,这个特征点的数量是相当大的。
算法:
第一步是通过一个距离眼睛3英寸的精密摄像头来确定虹膜的位置。当摄像头对准眼睛后,算法逐渐将焦距对准虹膜左右两侧,确定虹膜的外沿,这种水平方法受到了眼睑的阻碍。算法同时将焦距对准虹膜的内沿(即瞳孔)并排除眼液和细微组织的影响。
单色相机利用可见光和红外线,红外线定位在700-900mm(这是IR技术的低限,美国眼科学会在他们对macularcysts研究中使用同样的范围)的范围内。
在虹膜的上方,算法通过二维Gabor子波的方法来细分和重组虹膜图象,第一个细分的部分被称为phasor,要理解二维gabor子波的原理需要很深的数学知识。
精确度:
虹膜识别技术是精确度最高的生物识别技术,具体描述如下:两个不同的虹膜信息有75%匹配信息的可能性是1:106等错率:1:1200000两个不同的虹膜产生相同虹膜代码的可能性是1:1052
录入和识别:
虹膜的定位可在1秒钟之内完成,产生虹膜代码的时间也仅需1秒的时间,数据库的检索时间也相当快。处理器速度是大规模检索的一个瓶颈,另外网络和硬件设备的性能也制约着检索的速度。由于虹膜识别技术采用的是单色成像技术,因此一些图像很难把它从瞳孔的图像中分离出来。但是虹膜识别技术所采用的算法允许图像质量在某种程度上有所变化。相同的虹膜所产生的虹膜代码也有25%的变化,这听起来好象是这一技术的致命弱点,但在识别过程中,这种虹膜代码的变化只占整个虹膜代码的10%,它所占代码的比例是相当小的。
在身份识别或确认过程中会有错误。有两个重要的测量因子——拒假率(FRR)和容假率(FAR)可以表明任何一种生物测量技术的正确性,可靠性。
拒假率(FRR)
在进行生物测量时,对某对象的某一生物特征进行生物测量所得结果与该对象已经记录在系统中的模板不匹配,这时拒假事件发生。理论上拒假事件的发生概率或者实际发生的频率(在有足够的历史数据可用的情况下)就是拒假率。 拒假率FRR在不同的生物测量体系和技术中值不同;而在任何一个单独的生物测量体系中,尽管用于识别或确认的过程不尽相同,但拒假率(FRR)可能会一样。因为在一个体系中仅有一个有效模板与该系统所获得的数据匹配。
FRR值在生物测量时又会因为环境的不同而不同, 比如使用者合作的程度,操作条件等都可以影响FRR。
容假率(FAR)
在生物测量时,有一种可能性——对某一个对象的某一生物特征扫描取得的数据与数据库中另外一个非该对象的模板足够相似以至于匹配,这种错误叫做接受假事件,相关的概率叫做容假率FAR。 一个生物测量系统的FAR反映了该系统所使用技术的基本性能及系统独特性。为了获得一个低的FAR值,在测量生物实体的模板时,一定要使用这个个体的独一无二的生物个性,同时用于测量该生物个体的算法一定要能够有效地抓住这种唯一的个性。
5.系统平台概述与资源分析
硬件架构部分:系统采用Xilinx公司XUP Virtex-II Pro系列FPGA作为核心的控制和运算芯片,数据采集模块由GD-A118型CCD传感器和ADV7183B视频编码器组成。其中,GD-A118型CCD传感器可以完成虹膜图像的采集,ADV7183B视频编码器负责将采集到得虹膜图像转换成数字信号,(利用SPI接口)传送至FPGA进行处理。当处理图像数据时,FPGA处理模块这一部分是本设计的核心部分,主要用于对已获取的高清晰虹膜图片结合算法作进一步的处理,从而获得重要的虹膜图像信息。
处理之后的图像会根据当前的操作模式被存入FLASH中作为建档模板,或者与当前模板进行匹配。工作前可用键盘对工作模式进行选择,另附带有LCD显示器用来显示模式选择和识别结果。
软件架构部分:采用ISE和EDK开发平台进行以MircoBlaze为系统控制器,以CORE Generator开发的并行处理IP作为复数迭代计算单元的系统结构。软件算法流程图如图2所示:
6.项目内容简述:
本系统可以分为五个模块:
6.1 图像采集模块:核心部分为GD-A118型CCD传感器,ADV7183B视频编码器。主要用于获取高清晰虹膜图片。
6.2 实时图像处理模块:核心部分为XUP Virtex-II Pro开发板。
这一部分是本设计的核心部分,主要用于对已获取的高清晰虹膜图片作进一步的处理。其中包括质量评估、虹膜定位、虹膜分割、归一化、展开、二值化、增强、特征提取及编码等步骤。
6.3 视频输出模块:核心部分为ADV7179视频编码器。
主要用于将采集到的虹膜图像实时清晰的展示在PC机上,以提高虹膜图像的采集质量。
6.4 数据存储模块:核心部分为SDRAM和FLASH存储器。
主要用于提高系统存储空间,进一步提升平台处理图像的能力。
6.5 结果输出模块:核心部分为3.5英寸液晶屏。
主要作用是更加直观的展示比对结果。
6.6网络传输模块:该模块主要实现将加密后的图片信息传输到远程的中央服器。
7. 虹膜识别算法介绍
7.1虹膜内外边缘的识别及定位
通过虹膜采集设备采集到的虹膜图像,通常不可能仅仅包含虹膜,往往还有眼睛的其它部分,比如眼睑,睫毛,眼白等等,因而准确的虹膜定位是虹膜识别与分析的前提,虹膜及其解剖特征如图3所示。
7.1.1 虹膜内边缘的特征分析
如上图中所显示的虹膜图像来看,瞳孔的灰度最为趋向一致,也是图像中灰度最低的部分,图4(a)展示了图3的灰度直方图,由图可以看出,瞳孔的灰度集中在直方图的左侧,具有明显地峰值,图4(b)显示了对该图进行灰度分割后的结果。
由此可见,阈值分割不失为一种初步分离瞳孔的途径,但是应当指出,当我们采用的虹膜图片为标准图片时,即图像聚焦良好,光照均匀,对于此类图像,可以直接采用投影的方式确定瞳孔的半径和圆心,但是,对于光照不均匀的图像,特别是本实例中所使用的虹膜图像,阈值分割之后会出现许多干扰点。
如图5,就是是一幅光照不均匀情况下的虹膜图像及其阈值变换,可见关照不均匀的情况下阈值变换后的瞳孔边界有棱角,而且周围有很多干扰点,这对确定虹膜的内边缘增加了不少难度。
7.1.2 虹膜内边缘的确定
如上所述,阈值分割可以初步地将瞳孔分割出来,但是考虑到算法的抗干扰能力,应对不同光照情况下阈值分割图像的差异情况予以充分考虑,对于光照均匀程度所带来的噪声与干扰也应能够很好处理。本文拟对阈值分割后的图像进行精确取点,然后采用hough 变换来确定圆的圆心和半径。
(1) 圆的Hough 变换
Hough 变换是对图像进行某种形式的坐标变换,它将原始图像中给定的形状的曲线或直线变换成变换空间的一个点,即原始图像中曲线或直线上所有点都集中到变换空间的某个点上形成峰点,这样,把原始图像中给定形状的曲线或直线的检测问题,变成寻找变换空间的峰点问题,也即把检测整体特性(给定曲线的点集)变成检测局部特性的问题。
由上述原理,可得圆的Hough 变换的方法:在x-y 平面上,中心在(
),半径是
的圆周C上一点(x,y)满足:
(7-1)
如果将圆心(a,b)看作为变量,则在a-b 平面上可以画出中心在(x,y),半径
的圆
。在圆C 上的每一点(
),在a-b 平面上有中心在(
,
),半径为rc 的圆
与之对应,且这些圆组成了相交于一点(
)圆群,进一步把圆的半径r 作为变量,在a-b 平面得到由不同半径的圆CHi 构成的圆环。在a-b-r 空间中建立三维数组,数组中元素 ai,bi,ri P 的值代表a-b 平面上通
过点(ai,bi),半径为ri 圆的个数。如果图像中存在满足方程(7-1)的圆,则
的值最大。即
(7-2)
因此,数组中最大值元素所对应的参量(
)就是图像中圆的中心和半径。
(2) Hough 变换的改进PHT 变换
上述变换方法虽然由使用广泛,但是因为它要在三维空间内搜索,计算复杂性较大,为此采用点Hough 变换,原理如图6所示,设K,L,M为圆周上三点,由圆的几何性质可知,KL 的中垂线L(KL) 与LM 的中垂线L(LM)必然相交于圆C 的中心O。设K、L、M 三点的坐标分别为
、
、
,则L(KL) 和L(LM) 的方程分别为:
L(KL):
(7-3)
L(LM):
(7-4)
利用(7-3)和(7-4)式,计算出圆C 的圆心(
)和半径
:
(7-5)
(7-6)
(7-7)
可见, 半径ri,中心(
)的圆周上任意不共线的三点(以下称为点组)对应a-b-r 空间中一点(
),所以我们称之为点Hough 变换(Point Hough Transform)。
用向量
表示a-b-r 空间中的点, 则图像中圆(
)上的点组对应于a-b-r 空间中的向量
。在图像中选取N 个点组,得到包括
,N 组来自同一圆上的点组对应的向量相同。向量组中不同编号的向量可能相同。向量组中出现次数最多的向量就是图像中圆的参量。用数组P[n](n=0, …, N-1),表示向量组中向量
出现的次数,则有:
,其中 if(
),kk=1 else kk=0 (7-8)
确定数组P[n]后,就可以找出图像中圆的参量值。
if
(7-9)
根据实际应用,我们将式(7-8)中kk=1的条件改为
,
为一微小增量,更为符合实际应用。
PHT 不需搜索变量空间,只对选取的点组进行统计,计算复杂性决定于所选择点组的数目。
PHT 过程包括两个步骤:确定参量向量组和找向量组中出现频率最大的向量。设选取的点组数为M,从上述分析可知, 过程的计算复杂度为O(M),过程最大数组是3×M。对于CHT 过程, 设图像中圆参量的取值范围分别为A、B、R,边缘点的数目为N。