各种生物识别技术发展概况 所有生物识别设备都需要进行不断地完善才能更加精确和可靠,由于生物识别技术已经被广泛接受,因此它将进入到我们生活的更多领域中。 生物识别技术和智能卡的结合,使得这两项技术的发展有了长足进步,希望在不久的将来,人们能够在生物识别技术标准上达成共识,使得众多厂家的录入技术能够在同样的系统配置下得到运用。手指扫描技术 手指扫描技术大体可分为两类:确认(identification)系统,例如afis(自动指纹确认系统)和核对(verification)系统。手指扫描系统都是以人类指纹的唯一性特征为基础的。手指的唯一性特征包括涡、拱、环、脊断点和脊分岔的特征。 核对系统是拾取一个手指的平面图象来完成一对一的核对,核对能够在几秒中之内完成。 afis的运用主要有两个方面:刑侦和民用。刑侦afis拾取十个手指的一组图象。这组图象能够为刑侦调查提供更多的数据。此系统是在一些罪犯尽量避免留下指纹的情况下用来获得罪犯指纹信息的专门设备。民用afis的应用是拾取一些手指的平面图象,afis能在几秒中之内完成一对多的检索。实际检索的时间因指纹数据库的大小而不同。 手指扫描录入设备有三类。现有afis仅使用光学录入头。在核对系统中三类设备都有应用。光学录入技术 光学录入技术是最成熟也是最古老的指纹录入技术,只要将手指放在一个台板(通常是用加膜的玻璃制成)上,就能完成手指图象的录入。在过去几年中,这种设备已经变地越来越小,价格也越来越便宜了。光学录入设备的生产厂家大约有50家·超声波录入技术 虽然超声波技术已经存在多年,但它的应用范围始终不是十分广泛。手指在放在玻璃台板上,超声波扫描开始时会听到蜂鸣声并感觉到震动。由于使用了声波,因此,在录入图象时,手指不必直接接触台板。·基于芯片的录入技术 基于芯片的传感器,它的面积只有一枚邮票那么大,使用者直接将手指放在硅芯片的表面来完成指纹图象的录入。生产商 大约有50家手指扫描系统生产厂家,大多数厂家的产品是采用光学录入技术的。主要的光学指纹录入系统生产商有:北京北大高科指纹技术有限公司,american biometric company, identix, identicator, bac, sas, crossmatch 和digital persona.。ultrascan 是唯一生产超声波指纹录入技术的厂家(主要部件有kodak公司生产)。基于芯片的指纹录入生产厂家主要有:thomson-csf, infineon, st microelectronics, authentec, veridicom和who vison。afis软件生产商afis软件生产商主要有 北京北大高科指纹技术有限公司,printrak, sagem, nec, cogent, trw。afis硬件生产商 刑侦用afis硬件生产商主要有 北京北大高科指纹技术有限公司,printrak,identix和digital biometrics。民用afis硬件生产商主要有 北京北大高科指纹技术有限公司,identix,digital biometrics,crossmatch, identicator和trw。应用 民用afis在纽约、洛杉机和西班牙的福利发放以及在牙买加的选民注册登记中都得到了广泛应用。例如,在洛杉机,当地政府使用afis来确认享受福利人员的身份。每次在一个福利享受者申领抚恤金时,它的手指都要经过扫描并同数据库中上百万的指纹进行比对以确定申领抚恤金的人没有以别人的身份冒领抚恤金。美国联邦调查局,州、市警察局都利用afis来帮助抓捕嫌疑犯。 在金融领域,核对系统的应用更加普遍。包括在atm,银行保险箱中都有应用。pc安全方面,包括在网络登陆、数据库访问权限的方面的广泛应用,都给核对系统提供了相当广阔的市场前景。compaq公司已经将identicator公司的指纹录入设备同它所生产的计算机结合起来。手指扫描在物理访问(如门禁等方面)和考勤方面应用也十分普遍。在澳大利亚,woolworth百货公司利用identix公司的手指录入设备对其80,000名员工进行考勤管理。大众接受度 手指扫描技术同其他生物识别技术相比,它所引发的大众接受度的讨论比其他生物识别技术要多的多。尽管手指扫描设备工作耗时短,易操作,但仍然许多人不愿提供他们的指纹,因为在他们的心目中,只有罪犯才提供自己的指纹。这样不接受手指扫描技术的事例便相当多了。成本 核对系统手指扫描设备的成本在100美元到几千美元不等。这些成本还包括硬件和软件成本。随着sony,motorola和infineon公司相继进入芯片录入技术市场,相信不久的将来手指扫描设备的价格肯定会进一步降低。 afis系统,主要是完成一对多的确认检索,它的价格比较昂贵。成本主要和每天需要完成的检索数量、检索时间的长短、是民用还是刑侦用等因素有关。刑侦用afis由于存储的指纹数据多,因而它的价格比民用afis高许多。一个刑侦用afis,假设数据库中有三百万个指纹资料,并且需要每天执行5000个检索,检索需在5分钟内完成,这样一套afis需要耗资数百万美元。嵌入式系统(embedded system)与连接pc的桌面应用 利用指纹识别技术的应用系统常见有两种方法,即嵌入式系统和连接pc的桌面应用系统。嵌入式系统是一个相对独立的完整系统,它不需要连接其他设备或计算机就可以独立完成其设计的功能,象指纹门锁、指纹考勤终端就是嵌入式系统。其功能较为单一,应用于完成特定的功能。而连接pc的桌面应用系统具有灵活的系统结构,并且可以多个系统共享指纹识别设备,可以建立大型的数据库应用。当然,由于需要连接计算机才能完成指纹识别的功能,限制了这种系统在许多方面的应用。 当今市场上的指纹识别系统厂商,除了提供完整的指纹识别应用系统及其解决方案外,可以提供从指纹取像设备的oem产品到完整的指纹识别软件开发包,从而使得无论是系统集成商还是应用系统开发商都可以自行开发自己的增值产品,包括嵌入式的系统和其他应用指纹验证的计算机软件。 指纹识别技术应用实例 指纹识别技术可以通过几种方法应用到许多方面。本文在上面已经介绍的通过使用指纹验证来取代各个计算机应用程序的密码就是最为典型的实例。可以想象如果计算机上的所有系统和应用程序都可以使用指纹验证的话,人们使用计算机就会非常方便和安全,用户不再讨厌必要的安全性检查,而it开发商的售后服务工作也会减轻许多。ibm公司已经开发成功并广泛应用的global sign on软件通过定义唯一的口令,或者使用指纹,就可以在公司整个网络上畅行无阻。 把指纹识别技术同ic卡结合起来,是目前最有前景的一个方向之一。该技术把卡的主人的指纹(加密后)存储在ic卡上,并在ic卡的读卡机上加装指纹识别系统,当读卡机阅读卡上的信息时,一并读入持卡者的指纹,通过比对卡上的指纹与持卡者的指纹,就可以确认持卡者是否是卡的真正主人,从而进行下一步的交易。在更加严格的场合,还可以进一步同后端主机系统数据库上的指纹作比较。指纹ic卡可以广泛地运用于许多行业中,例如取代现行的atm卡、制造防伪证件(签证或护照、公费医疗卡、会员卡、借书卡等)。目前atm提款机加装指纹识别功能在美国已经开始使用。持卡人可以取消密码 (避免老人和孩子记忆密码的困难)或者仍旧保留密码,在操作上按指纹与密码的时间差不多。 近年来,自动发送信息的互联网络,带给人们的方便与利益,正在快速增长之中,但也因此产生了很多的问题,尤其在信息安全方面。无论是团体或者个人的信息,都害怕在四通八达的网络上传送而发生有损权益或隐私的事情。由于指纹特征数据可以通过电子邮件或其他传输方法在计算机网络上进行传输和验证,通过指纹识别技术,限定只有指定的人才能访问相关信息,可以极大地提高网上信息的安全性,这样,包括网上银行、网上贸易、电子商务的一系列网络商业行为,就有了安全性保障。在sfnb(security first network bank安全第一网络银行),就是通过互联网络来进行资金划算的,他们目前正在实施以指纹识别技术为基础的保障安全性的项目,以增强交易的安全性。 在医院里,指纹识别技术可以验证病人身份,例如输血管理。指纹识别技术也有助于证实寻求公共救援、医疗及其他政府福利或者保险金的人的身份确认。在这些应用中,指纹识别系统将会取代或者补充许多大量使用照片和id的系统。 总之,随着许多指纹识别产品已经开发和生产,指纹识别技术的应用已经开始进入民用市场,并且发展迅猛,相信这一技术的普及应用已经指日可待。下面是电脑的指纹识别基于Nios II的自动指纹识别系统设计摘要: 介绍基于Nios II处理器的嵌入式自动指纹识别系统的实现方法;具体说明自动指纹识别系统的基本原理、系统总体结构、硬件结构设计、用户自定义指令的设计,以及指纹识别算法的处理流程和实现方法。 关键词: 嵌入式 指纹识别 Nios II 定制指令 引 言 指纹识别作为生物特征识别的一种,在身份识别上有着其他手段不可比拟的优越性:人的指纹具有唯一性和稳定性的特点;随着指纹传感器性能的提高和价格的降低,指纹的采集相对容易;指纹的识别算法已经较为成熟。由于指纹识别的诸多优点,指纹识别技术已经逐渐走入民用市场,并应用到许多嵌入式设备中。 目前的嵌入式处理器种类繁多。Altera公司的Nios II处理器是用于可编程逻辑器件的可配置的软核处理器,与Altera的低成本的Cyclone FPGA组合,具有很高的性能价格比。本系统采用Nios II和Cyclone EP1C20嵌入式系统开发板,以及Veridicom公司的FPS200指纹传感器芯片,实现了一个嵌入式自动指纹识别系统。 1 总体设计及系统架构 本系统有两大功能:指纹登记和指纹比对。指纹登记主要包括指纹采集、指纹图像预处理、特征点提取、特征模板存储和输出显示;指纹比对的前三步与指纹登记相同,但在特征点提取后,是将生成的特征模板与存储在指纹特征模板库中的特征模板进行特征匹配,最后输出显示匹配结果。自动指纹识别系统的基本原理框图如图1所示。 本系统在结构上分为三层:系统硬件平台、操作系统和指纹识别算法。系统层次结构如图2所示。图1自动指纹识别的基本原理框图 图2系统层次 最底层——系统硬件平台,是系统的物理基础,提供软件的运行平台和通信接口。系统的硬件平台在Altera的Nios II Cyclone嵌入式系统开发板上实现,指纹传感器采用美国Veridicom公司的FPS200。FPS200可输出大小为256×300像素、分辨率为500 dpi的灰度图像。 第二层是操作系统,采用μC/OSII。μC/OSII是一个基于抢占式的实时多任务内核,可固化、可剪裁、具有高稳定性和可靠性。这一层提供任务调度以及接口驱动,同时,通过硬件中断来实现系统对外界的通信请求的实时响应,如对指纹采集的控制、对串口通信的控制等。这种方式可以提高系统的运行效率。 最上层是指纹识别核心算法的实现。该算法高效地对采集到的指纹进行处理和匹配。采用C语言在Nios II的集成开发环境(IDE)中实现。 2 系统硬件的设计与实现 Nios II嵌入式软核处理器简介 Nios II嵌入式处理器是Altera公司于2004年6月推出的第二代用于可编程逻辑器件的可配置的软核处理器,性能超过200 DMIPS。Nios II是基于哈佛结构的RISC通用嵌入式处理器软核,能与用户逻辑相结合,编程至Altera的FPGA中。处理器具有32位指令集,32位数据通道和可配置的指令以及数据缓冲。它特别为可编程逻辑进行了优化设计,也为可编程单芯片系统(SoPC)设计了一套综合解决方案。Nios II处理器系列包括三种内核:一种是高性能的内核(Nios II/f);一种是低成本内核(Nios II/e);一种是性能/成本折中的标准内核(Nios II/s),是前两种的平衡。本系统采用标准内核。 Nios II 处理器支持256 个具有固定或可变时钟周期操作的定制指令;允许Nios II设计人员利用扩展CPU指令集,通过提升那些对时间敏感的应用软件的运行速度,来提高系统性能。 硬件平台结构 系统的硬件平台结构如图3所示。 图3系统硬件平台结构 本系统使用FPS200指纹传感器获取指纹图像。FPS200是电容式固态指纹传感器,采用CMOS技术,获取的图像为256×300像素,分辨率为500 dpi。该传感器提供三种接口方式:8位微机总线接口、集成USB全速接口和集成SPI接口。本系统采用集成SPI接口。指纹采集的程序流程是:首先初始化FPS200的各个寄存器,主要是放电电流寄存器(DCR)、放电时间寄存器(DTR)和增益控制寄存器(PGC)的设置;然后查询等待,指纹被FPS200采集进入数据寄存器后,通过DMA存入内存。 由于从指纹传感器采集到的指纹图像数据在80 KB左右,以DMA方式存入片内RAM。Nios II对指纹图像数据进行处理后,生成指纹特征模板,在指纹登记模式下,存入片外Flash中;在指纹比对模式下,与存储在Flash中的特征模板进行匹配,处理结果通过LCD和七段LED显示器输出显示。 本系统的硬件平台主要是在Altera的Nios II Cyclone嵌入式开发板上实现,选用Altera的Cyclone版本的Nios II开发套件,包括Nios II处理器、标准外围设备库、集成了SoPC Builder系统设计工具的QuartusII开发软件等。系统的主要组件Nios II的标准内核、片内存储器、SPI、UART、DMA控制器、并行I/O接口、Avalon总线、定时器等都集成在一块Altera的Cyclone FPGA芯片上,使用SoPC Builder来配置生成片上系统。 SoPC Builder是功能强大的基于图形界面的片上系统定义和定制工具。SoPC Builder库中包括处理器和大量的IP核及外设。根据应用的需要,本系统选用Nios II Processor、On�Chip�Memory、Flash Memory(Common Flash Interface)、SPI、JTAG UART、DMA、Interval timer、LCD PIO、Seven Segment PIO、Avalon Tri�State Bridge等模块。对这些模块配置完成后,使用SoPC Builder进行系统生成。SOPC Builder自动产生每个模块的HDL文件,同时自动产生一些必要的仲裁逻辑来协调系统中各部件的工作。 使用Nios II的定制指令提高系统性能 使用Nios II的定制指令,可以将一个复杂的标准指令序列简化为一个用硬件实现的单一指令,从而简化系统软件设计并加快系统运行速度。Nios II的定制指令是与CPU的数据通路中的ALU相连的用户逻辑块。其基本操作是,接收从dataa和/或datab端口输入的数据,经过定制指令逻辑的处理,将结果输出到result端口。 在指纹识别算法中,对指纹图像的处理数据运算量大,循环数目多;而Nios II的定制指令个数已增加到256个,可以使用定制指令完成许多循环内的数据处理,从而加速数据处理的速度。 在对指纹图像的处理中,频繁地用到坐标转换,将图像的二维坐标转换为一维的存储地址;通过定制指令来完成坐标的转换,用一组易于用硬件实现的位移和加法运算替代乘加运算,可将转换时间缩短1/3。在方向图计算中,要进行离散反正切变换,使用优化过的用硬件实现的定制指令来替代C语言中的atan函数,更可以将变换时间缩短到原来的1/1000。 定制指令逻辑和Nios II的连接在SoPC Builder中完成。Nios II CPU配置向导提供了一个可添加256条定制指令的图形用户界面,在该界面中导入设计文件,设置定制指令名,并分配定制指令所需的CPU时钟周期数目。系统生成时,Nios II IDE为每条用户指令产生一个在系统头文件中定义的宏,可以在C或C++应用程序代码中直接调用这个宏。 3 系统软件的设计与实现 本系统的指纹图像处理及识别算法采用C语言在Nios II IDE中实现。指纹识别算法的流程如图4所示。图4指纹识别算法流程 背景分离是将指纹区与背景分离,从而避免在没有有效信息的区域进行特征提取,加速后续处理的速度,提高指纹特征提取和匹配的精度。采用标准差阈值跟踪法,图像指纹部分由黑白相间的纹理组成,灰度变化大,因而标准差较大;而背景部分灰度分布较为平坦,标准差较小。将指纹图像分块,计算每个小块的标准差。若大于某一阈值(本文取20),则该小块中的所有像素点为前景;否则,为背景。 方向图是用纹线的方向来表示原来的纹线。本文采用块方向图,将源指纹图像分成小块,使用基于梯度值的方向场计算方法,计算出每个小块的脊线方向。 图像增强的目的是改善图像质量,恢复脊线原来的结构;采用方向滤波,设计一个水平模板,根据计算出的方向图,在每个小块中将水平模板旋转到所需要的方向进行滤波。 图像的二值化是将脊线与背景分离,将指纹图像从灰度图像转换为二值图像。 二值化后的图像经过细化,得到纹线的骨架图像。细化采用迭代的方法,使用Zhang�Suen并行细化算法,可对二值图像并行处理。 特征提取阶段,选择脊线端点和分叉点作为特征点,记录每一个特征点的类型、位置和方向信息,从而得到指纹的特征点集。但由于在指纹扫描和预处理阶段会引入噪声,产生大量伪特征点,因此需要进行伪特征点的去除。去除伪特征点后的特征点集作为特征模板保存。 特征匹配阶段采用基于特征点的匹配算法,通过平移和旋转变换实现特征点的大致对齐重合,计算坐标变换后两个模板中的特征点的距离和角度。如果小于某一阈值(本文的距离和角度阈值分别取5个像素和10°),则认为是一对匹配的特征点。计算得出所有匹配的特征点对后,计算匹配的特征点占模板中所有特征点的百分比S。根据系统的拒识率(FRR)和误识率(FAR)要求设置阈值TS。如果S大于或等于阈值TS,则认为是同一指纹;否则,匹配失败。 结语 本文提出了一种基于Nios II嵌入式处理器软核的自动指纹识别系统实现方法。使用Altera的Cyclone FPGA实现,且具有开发周期短、成本低等特点;同时,采用Nios II的定制指令来提高系统性能,利用硬件实现算法速度快的优点,使以Nios II处理器为核心的系统能够快速地完成大量数据处理。 参考文献 1 Frank Vahid,等. 嵌入式系统设计.骆丽等译. 北京:北京航空航天大学出版社, 2004 2 任爱锋,等.基于FPGA的嵌入式系统设计.西安:西安电子工业大学出版社, 2004 3 Nios II Custom Instruction User Guide. 4 Vizcaya P, Gerhardt L. A nonlinear orientation model for global description of fingerprints. Pattern Recognition, v. 29, no. 7 5 柴晓光,等.民用指纹识别技术.北京:人民邮电出版社,2004