论文部分内容阅读
[摘要]指纹识别技术是一种重要的生物身份识别技术,也是目前生物识别技术发展的最为成熟的一个分支。在linux的环境下,架构嵌入式指纹识别系统,并对指纹系统的四大步骤:指纹图像的获取、图像的预处理、特片点的提取以及特征匹配进行阐述,对嵌入式指纹识别的研究起到一定的借鉴作用。
[关键词]指纹识别 嵌入式系统 指纹图像处理;
中图分类号:TP2 文献标识码:A 文章编号:1671-7597(2008)1120059-02
一、引言
指纹识别技术(Fingerprint Verification Technology)是利用人体指纹特征进行身份认证的一种技术,是目前生物检测学中研究最深入,应用最广泛,发展最成熟的技术。近年来,随着电子商务、网上贸易、网上银行等飞速发展以及人们对个人信息的要求的不断提高,嵌入式指纹识别系统将大有用武之地。研究指纹识别系统,把握社会对指纹识别的需求,使嵌入式系统的开发应用能够紧紧把握住当前指纹识别的发展方向,是具有巨大应用价值的。
二、嵌入式系统的开发平台
嵌入式系统由硬件和软件两大部分组成。硬件部分组成是处理器系统、存储器、外设、接口等。软件结构包括操作系统、设备驱动程序和应用软件等。嵌入式系统的软件要求有更好的可靠性、实时性,更高的效率和更小的体积。在有操作系统时,可靠性和实时性很大程度上依赖于操作系统。相对于RTlinux来说,linux因其卓越的性能,广泛地被应用于嵌入式开发领域。
由于指纹识别对系统计算能力要求较高,需要具有强大的管理功能,在实际开发中为了软件功能扩展方便,本系统选用Linux嵌入式操作系统,它具有操作系统的完善功能和强大的TCP/IP网络功能。近年来,由于ARM公司的支持,基于linux的研发更是发展迅速。在市场上,基于linux的方案,产品更是层出不穷,linux系统的稳定性和可开发性受到了考验。嵌入式Linux系统从软件的角度看通常可以分为4个层次[1]:
(1)引导加载程序。包括固化在固件中的启动代码(可选)和Bootloader两大部分。
(2)内核。特定于嵌入式板子的定制内核以及控制内核引导系统的参数。
(3)文件系统。包括根文件系统和建立于Flash内存设备之上的文件系统。它是提供管理系统的各种配置文件以及系统执行用户应用程序良好运行环境的载体。
(4)用户应用程序和驱动。特定于用户的应用程序和驱动程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。
三、嵌入式指纹识别系统的架构
基于linux的嵌入式指纹识别系统从结构上分为三层,系统架构如图3-1所示:
底层是系统硬件,作为物理层,是系统的通信介质,提供可靠的机械、电气功能以及无误码的比特流。中间层包括指纹识别的核心算法、通信协议、任务高度以及接口驱动。该算法高效地将采集到的指纹进行处理、身份验证后,完成各种预定的控制功能。算法和接口驱动、任务调度同属软件部分。上层就是用户层,实现系统信息与用户的交互。在本系统中,除了进行指纹的注册识别等操作之外,还要实现指纹采集的控制和身份验证通过后的执行控制,以及外设的控制如串行口、USB的通信、传感器的控制等。为了能够使系统实时响应上位机的通信请求,本文通过硬件中断来实现[2]。这种实现方案可以极大提高系统运行的效率。
四、指纹识别系统的设计
因为嵌入式系统的特有限制,不可能装备很大的存储设备和友好的人机交互界面,所以一般开发环境都需要安装在PC 上。而通过Toolchain 生成的最终目标文件可以运行在相应的目标平台上。我们将Toolchain 安装到/usr/local/arm-linux 目录下, 为了之后在任何目录下面都能够使用Toolchain,必须要对路径进行设置:打开/root/.bash_profile 文件来设置路径,用VI 编辑器打开/root/.bash_profile 文件并添加下述的路径:PATH=$PATH:/usr/local/arm-linux/bin,便实现在任何的目录下都能打开/usr/local/ arm-linux/bin。同时可以使用source 命令来使其路径起作用。另外,使用arm-linux-命令时,Toolchain 中的工具会被使用。接下去,就可以进行指纹识别系统的详细设计,主要经过四大步骤:指纹图像的获取、图像的预处理、特片点的提取以及特征匹配。
(一)指纹识别算法的基本思想
指纹图像是典型的纹理图像,除了在指纹细节点和奇异点等处以外,指纹的大部分区域是由互相近似平等的纹线组成。在端点处,指纹纹线突然终止,在分叉点处,三条指纹纹线汇集在一起。由于细节点和非细节点以及不同类型的细节点之间具有不同的纹理结构,因此,本系统的指纹识别算法采用的是纹理特征来描述细节点的本质特征。
本系统的指纹识别算法的目的是判决一个自动提取出的细节点在给定的位置和方向上究竟是纹线端点、纹线分叉点还是虚假细节点,为后续的指纹细节点匹配环节提供更可靠的依据。算法的主要内容包括细节点邻域的选取和预处理,邻域特征分析等。
(二)指纹图像的获取
指纹图像的采集是自动指纹识别系统(AFIS)的重要组成部分。指纹传感器根据探测对象的不同可分为光学传感器、热敏传感器、压敏传感器和超声传感器等。根据器件的不同,又可分为CMOS器件传感器和CCD器件传感器[3]。它们的工作原理都是将生物特征经过检验后转化为系统可以识别的图像信息。在指纹识别系统中,可靠的和廉价的图像采集设备是系统运行正常、可靠的关键。
本文采用电容式指纹传感器技术。电容传感器是在单个晶片上集成了10多万个电容传感器,其外面是绝缘的表面,当用户的手指放在上面时,手指皮肤组成了电容阵列的另一极,电容器的电容值由于导体间的距离(指纹的脊和谷相对于另一极的距离)而不同。通过测量空间中不同的电容值而得到完整的指纹图像。该类型较典型的产品为Veridicom公司的FPS200指纹传感器,在指纹采集过程中,根据反馈信息调节电容放电时间等参数以增强其灵敏度。它的面积只有1.5cm*1.5cm,集成90000个电容,且带有高速A/D转换器件,该产品的分辨率为500dpi。系统提供USB接口、SPI接口和8位数据总线接口。电容式指纹传感器具有难于欺骗、消除日常的指纹变化、体积小、高分辨率、消除周围灯光光线的影响、指纹图像质量高、感应区不易磨损、1:1的图像尺寸等特点。由于电容式指纹传感器的优点及其适中的价位,成为指纹识别系统中主流的传感器。
(三)图像的预处理
刚获得的图像有很多噪音,这主要由于平时的工作环境引起的,比如,手指被弄脏,手指有刀伤、疤、痕、干燥、湿润或撕破等。想得到比较清晰干净的并不容易,这需要对指纹图像进行预处理。首先要进行归一化、图像增强、图像分割、二值化、细化及细化后处理。细化后,一般还要对处理过的图像再进行细化后处理[4]。因为,细化图中还有毛刺、短线、断点、小孔等四类噪声它们会形成假的特征点,因此必须去除。
(四)特征点的提取
特征提取把指纹图像的纹线走向,纹线断点、交叉点等能充分表示该指纹唯一性的特征用数值的形式表达出来。为了比对的准确性,要求特征提取算法尽可能多地提取有效特征,同时滤除由各种原因造成的虚假特征。对细化后的指纹图像,一般可简单的通过3x3的模板检测出常用的特征点。有的则还需要寻找总体特征点如核心点和三角点等。
匹配时主要依据下述信息:细节点的位置、方向、指纹的纹型、脊线的趋势、细节特征点之间的脊线数目等[5]。指纹是由脊线和谷线相间交错构成的,指纹图像二值化后我们可以很清楚地看到这种结构,经分析发现指纹脊线上的端点与指纹谷线上的分叉点对应同一个特征点,脊线上的分叉点与谷线上的端点对应同一个特征点。因此我们只需对两幅细化图像提取端点即可将指纹的所有端点和分叉点都提取出来。
(五)特征匹配
特征匹配是将新输入指纹的特征值与指纹库中所存指纹的特征值进行比对,找出最相似的指纹作为识别的输出结果。也就是所说的指纹验证/辨识过程。由于各种因素的影响,同一指纹两次输入所得的特征模板很可能不同。因此,只要有输入指纹的特征模板与所存储的模板相似时,就说这两个指纹是匹配的[6]。于是产生了有关的衡量标准的问题。
通常,匹配结果用“匹配度”来表示。当匹配度大于某一阐值时,认为两指纹匹配;相反,当小于该阐值时,认为不匹配。闭值大小通常根据经验、系统安全级别等因素人为设定。阐值较大时,系统安全性增加,但FRR将升高;反之,系统易用性好,但FAR要升高。
最后,我们对嵌入式系统上的Linux 过程进行了研究,若要使其能够自动运行,我们需要改写其脚本文件,在etc/profile 脚本中,做如下添加:
PATH=/usr/qpe/bin:$PATH
LD_LIBRARY_PATH=/usr/qpe/lib:$LD_LIBRARY_PATH
QTDIR=/usr/qpe
QPEDIR=/usr/qpe
cd /usr/qpe/bin
export PATH LD_LIBRARY_PATH QTDIR QPEDIR
目标文件启动后自动执行,界面里包含指纹识别程序,点击图标既可以使程序执行。
五、小结
生物特征识别是近些年来模式识别研究的一个热点领域,而指纹识别技术作为最为成熟的一项生物特征识别技术,是应用最为广泛的生物识别技术,其独有的特点决定了它必将有着广阔的发展空间及市场前景。特别是近年来随着指纹传感器价格的不断降低和各种数字信号处理芯片功能的不断完善,指纹识别系统已经开始走向了民用市场,必将在各行各业中得到了广泛地应用。本文所设计的嵌入式指纹识别系统已经初步实现了整体功能,最重要的是为以后其它方面的研究开发提供了基础和开发模式。
参考文献:
[1]MehtreB .M.F ingerprint Image Analysis for Automatic Identification[J].Machine Vision and Application,2003,6(2):124-139.
[2]A K Jain,L hong,S R Bolle.An Identity Authentication System Using Fingerprint[J]. IEEE,Proc.2007,85(9):1365-1388.
[3]Jain,et al.On-line Fingerprint Verification[J].IEEE Trans on Pattenr Analysis Machine Intellegence.2005,19(4):302-313.
[4]刘旭、田捷,自动指纹识别算法在嵌入式系统上的实现[J].计算机工程与应用.2002.
[5]王田苗,嵌入式系统设计与实例开发[M].清华大学出版社.2002.
[6]张成海、张泽,现代自动识别技术与应用[M].清华大学出版社.2003.
作者简介:
赵海峰,男,硕士研究生,北京市顺义区,计算机应用技术专业,研究方向:嵌入式操作系统。
[关键词]指纹识别 嵌入式系统 指纹图像处理;
中图分类号:TP2 文献标识码:A 文章编号:1671-7597(2008)1120059-02
一、引言
指纹识别技术(Fingerprint Verification Technology)是利用人体指纹特征进行身份认证的一种技术,是目前生物检测学中研究最深入,应用最广泛,发展最成熟的技术。近年来,随着电子商务、网上贸易、网上银行等飞速发展以及人们对个人信息的要求的不断提高,嵌入式指纹识别系统将大有用武之地。研究指纹识别系统,把握社会对指纹识别的需求,使嵌入式系统的开发应用能够紧紧把握住当前指纹识别的发展方向,是具有巨大应用价值的。
二、嵌入式系统的开发平台
嵌入式系统由硬件和软件两大部分组成。硬件部分组成是处理器系统、存储器、外设、接口等。软件结构包括操作系统、设备驱动程序和应用软件等。嵌入式系统的软件要求有更好的可靠性、实时性,更高的效率和更小的体积。在有操作系统时,可靠性和实时性很大程度上依赖于操作系统。相对于RTlinux来说,linux因其卓越的性能,广泛地被应用于嵌入式开发领域。
由于指纹识别对系统计算能力要求较高,需要具有强大的管理功能,在实际开发中为了软件功能扩展方便,本系统选用Linux嵌入式操作系统,它具有操作系统的完善功能和强大的TCP/IP网络功能。近年来,由于ARM公司的支持,基于linux的研发更是发展迅速。在市场上,基于linux的方案,产品更是层出不穷,linux系统的稳定性和可开发性受到了考验。嵌入式Linux系统从软件的角度看通常可以分为4个层次[1]:
(1)引导加载程序。包括固化在固件中的启动代码(可选)和Bootloader两大部分。
(2)内核。特定于嵌入式板子的定制内核以及控制内核引导系统的参数。
(3)文件系统。包括根文件系统和建立于Flash内存设备之上的文件系统。它是提供管理系统的各种配置文件以及系统执行用户应用程序良好运行环境的载体。
(4)用户应用程序和驱动。特定于用户的应用程序和驱动程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。
三、嵌入式指纹识别系统的架构
基于linux的嵌入式指纹识别系统从结构上分为三层,系统架构如图3-1所示:
底层是系统硬件,作为物理层,是系统的通信介质,提供可靠的机械、电气功能以及无误码的比特流。中间层包括指纹识别的核心算法、通信协议、任务高度以及接口驱动。该算法高效地将采集到的指纹进行处理、身份验证后,完成各种预定的控制功能。算法和接口驱动、任务调度同属软件部分。上层就是用户层,实现系统信息与用户的交互。在本系统中,除了进行指纹的注册识别等操作之外,还要实现指纹采集的控制和身份验证通过后的执行控制,以及外设的控制如串行口、USB的通信、传感器的控制等。为了能够使系统实时响应上位机的通信请求,本文通过硬件中断来实现[2]。这种实现方案可以极大提高系统运行的效率。
四、指纹识别系统的设计
因为嵌入式系统的特有限制,不可能装备很大的存储设备和友好的人机交互界面,所以一般开发环境都需要安装在PC 上。而通过Toolchain 生成的最终目标文件可以运行在相应的目标平台上。我们将Toolchain 安装到/usr/local/arm-linux 目录下, 为了之后在任何目录下面都能够使用Toolchain,必须要对路径进行设置:打开/root/.bash_profile 文件来设置路径,用VI 编辑器打开/root/.bash_profile 文件并添加下述的路径:PATH=$PATH:/usr/local/arm-linux/bin,便实现在任何的目录下都能打开/usr/local/ arm-linux/bin。同时可以使用source 命令来使其路径起作用。另外,使用arm-linux-命令时,Toolchain 中的工具会被使用。接下去,就可以进行指纹识别系统的详细设计,主要经过四大步骤:指纹图像的获取、图像的预处理、特片点的提取以及特征匹配。
(一)指纹识别算法的基本思想
指纹图像是典型的纹理图像,除了在指纹细节点和奇异点等处以外,指纹的大部分区域是由互相近似平等的纹线组成。在端点处,指纹纹线突然终止,在分叉点处,三条指纹纹线汇集在一起。由于细节点和非细节点以及不同类型的细节点之间具有不同的纹理结构,因此,本系统的指纹识别算法采用的是纹理特征来描述细节点的本质特征。
本系统的指纹识别算法的目的是判决一个自动提取出的细节点在给定的位置和方向上究竟是纹线端点、纹线分叉点还是虚假细节点,为后续的指纹细节点匹配环节提供更可靠的依据。算法的主要内容包括细节点邻域的选取和预处理,邻域特征分析等。
(二)指纹图像的获取
指纹图像的采集是自动指纹识别系统(AFIS)的重要组成部分。指纹传感器根据探测对象的不同可分为光学传感器、热敏传感器、压敏传感器和超声传感器等。根据器件的不同,又可分为CMOS器件传感器和CCD器件传感器[3]。它们的工作原理都是将生物特征经过检验后转化为系统可以识别的图像信息。在指纹识别系统中,可靠的和廉价的图像采集设备是系统运行正常、可靠的关键。
本文采用电容式指纹传感器技术。电容传感器是在单个晶片上集成了10多万个电容传感器,其外面是绝缘的表面,当用户的手指放在上面时,手指皮肤组成了电容阵列的另一极,电容器的电容值由于导体间的距离(指纹的脊和谷相对于另一极的距离)而不同。通过测量空间中不同的电容值而得到完整的指纹图像。该类型较典型的产品为Veridicom公司的FPS200指纹传感器,在指纹采集过程中,根据反馈信息调节电容放电时间等参数以增强其灵敏度。它的面积只有1.5cm*1.5cm,集成90000个电容,且带有高速A/D转换器件,该产品的分辨率为500dpi。系统提供USB接口、SPI接口和8位数据总线接口。电容式指纹传感器具有难于欺骗、消除日常的指纹变化、体积小、高分辨率、消除周围灯光光线的影响、指纹图像质量高、感应区不易磨损、1:1的图像尺寸等特点。由于电容式指纹传感器的优点及其适中的价位,成为指纹识别系统中主流的传感器。
(三)图像的预处理
刚获得的图像有很多噪音,这主要由于平时的工作环境引起的,比如,手指被弄脏,手指有刀伤、疤、痕、干燥、湿润或撕破等。想得到比较清晰干净的并不容易,这需要对指纹图像进行预处理。首先要进行归一化、图像增强、图像分割、二值化、细化及细化后处理。细化后,一般还要对处理过的图像再进行细化后处理[4]。因为,细化图中还有毛刺、短线、断点、小孔等四类噪声它们会形成假的特征点,因此必须去除。
(四)特征点的提取
特征提取把指纹图像的纹线走向,纹线断点、交叉点等能充分表示该指纹唯一性的特征用数值的形式表达出来。为了比对的准确性,要求特征提取算法尽可能多地提取有效特征,同时滤除由各种原因造成的虚假特征。对细化后的指纹图像,一般可简单的通过3x3的模板检测出常用的特征点。有的则还需要寻找总体特征点如核心点和三角点等。
匹配时主要依据下述信息:细节点的位置、方向、指纹的纹型、脊线的趋势、细节特征点之间的脊线数目等[5]。指纹是由脊线和谷线相间交错构成的,指纹图像二值化后我们可以很清楚地看到这种结构,经分析发现指纹脊线上的端点与指纹谷线上的分叉点对应同一个特征点,脊线上的分叉点与谷线上的端点对应同一个特征点。因此我们只需对两幅细化图像提取端点即可将指纹的所有端点和分叉点都提取出来。
(五)特征匹配
特征匹配是将新输入指纹的特征值与指纹库中所存指纹的特征值进行比对,找出最相似的指纹作为识别的输出结果。也就是所说的指纹验证/辨识过程。由于各种因素的影响,同一指纹两次输入所得的特征模板很可能不同。因此,只要有输入指纹的特征模板与所存储的模板相似时,就说这两个指纹是匹配的[6]。于是产生了有关的衡量标准的问题。
通常,匹配结果用“匹配度”来表示。当匹配度大于某一阐值时,认为两指纹匹配;相反,当小于该阐值时,认为不匹配。闭值大小通常根据经验、系统安全级别等因素人为设定。阐值较大时,系统安全性增加,但FRR将升高;反之,系统易用性好,但FAR要升高。
最后,我们对嵌入式系统上的Linux 过程进行了研究,若要使其能够自动运行,我们需要改写其脚本文件,在etc/profile 脚本中,做如下添加:
PATH=/usr/qpe/bin:$PATH
LD_LIBRARY_PATH=/usr/qpe/lib:$LD_LIBRARY_PATH
QTDIR=/usr/qpe
QPEDIR=/usr/qpe
cd /usr/qpe/bin
export PATH LD_LIBRARY_PATH QTDIR QPEDIR
目标文件启动后自动执行,界面里包含指纹识别程序,点击图标既可以使程序执行。
五、小结
生物特征识别是近些年来模式识别研究的一个热点领域,而指纹识别技术作为最为成熟的一项生物特征识别技术,是应用最为广泛的生物识别技术,其独有的特点决定了它必将有着广阔的发展空间及市场前景。特别是近年来随着指纹传感器价格的不断降低和各种数字信号处理芯片功能的不断完善,指纹识别系统已经开始走向了民用市场,必将在各行各业中得到了广泛地应用。本文所设计的嵌入式指纹识别系统已经初步实现了整体功能,最重要的是为以后其它方面的研究开发提供了基础和开发模式。
参考文献:
[1]MehtreB .M.F ingerprint Image Analysis for Automatic Identification[J].Machine Vision and Application,2003,6(2):124-139.
[2]A K Jain,L hong,S R Bolle.An Identity Authentication System Using Fingerprint[J]. IEEE,Proc.2007,85(9):1365-1388.
[3]Jain,et al.On-line Fingerprint Verification[J].IEEE Trans on Pattenr Analysis Machine Intellegence.2005,19(4):302-313.
[4]刘旭、田捷,自动指纹识别算法在嵌入式系统上的实现[J].计算机工程与应用.2002.
[5]王田苗,嵌入式系统设计与实例开发[M].清华大学出版社.2002.
[6]张成海、张泽,现代自动识别技术与应用[M].清华大学出版社.2003.
作者简介:
赵海峰,男,硕士研究生,北京市顺义区,计算机应用技术专业,研究方向:嵌入式操作系统。