指纹识别技术在整个生物特征识别领域占据着重要地位,目前传统的指纹识别系统在指纹匹配准确度上也已经达到了比较理想的效果。然而,随着数据信息的膨胀,在很多应用场合下指纹数据库的规模越来越大,当系统需要处理大容量的指纹数据库时,如果采用传统的一对一的指纹识别模式,则将消耗相当长的时间。这对于实时性要求较强的应用系统而言,显然是不可接受的。为了提高大容量数据库下指纹识别的效率,一种基于指纹检索策略的快速搜索方案被提出,这一方案将有效降低整个指纹识别过程的耗时量。
此外,在嵌入式技术高速发展的今天,市场对于高度集成化、便携化、智能化的嵌入式指纹系统有着强烈的需求。考虑到嵌入式指纹系统需要进行现场指纹采集、指纹查找和验证等过程,则更需要合理的策略来保证系统的实时性和可靠性。因此,设计高效的嵌入式指纹检索算法,并在具有大容量指纹数据库的嵌入式系统下实现指纹的快速检索与匹配,有着重要的研究意义和广泛的商业价值。
1.自动指纹识别系统研究
随着计算机和信息技术的发展,FBI和法国巴黎警察局于上世纪六十年代开始了对自动指纹识别系统AFIS(Automatic Fingerprint IdenTIficaTIon System)的研究。自动指纹识别系统(AFIS)最初使用于刑事案件侦破之中,到了九十年代,被广泛用于个人身份的鉴定。
自动指纹识别系统(AFIS)是一个典型的生物特征识别系统,它包括了指纹图像采集模块、图像预处理模块、指纹特征分析与提取模块、指纹对比匹配模块等几个部分。在实际应用中,一个完整的自动指纹识别系统一般可以实现指纹注册和指纹匹配两大功能。在进行指纹注册时,系统首先通过指纹图像采集模块采样得到待注册用户的指纹图像数据;随后将这些数字化的图像信息传入主控制器,并由图像预处模块进行预处理加工;接着由指纹特征分析与提取模块提取出需要的指纹特征,并生成指纹特征模板;最后将特征模板存放到指纹数据库中。在进行指纹匹配时,首先依然是采集待鉴定用户的指纹图像数据;接着同样进行图像预处理和指纹特征提取;然后利用提取到的待测指纹特征与指纹库中的指纹特征模板进行对比;最后给出认证结果以确认身份是否匹配。自动指纹识别系统基本工作流程如图1所示。
在提取指纹细节点时,首先为细化图像中的每个像素点P建立一个8邻域像素区,如图4所示。其中P1~P8为像素点P周围的邻近环绕像素点。P1~P8中黑色点的值设为1,白色点的值设为0.
最后按上述方法对细化指纹图像中的所有像素点进行CN值计算,当CN值为1时,可判定所检测的P点为脊线端点,当CN值为3时,则可判定P点为脊线分叉点。检测到细节点之后返回该点的坐标(x,y),并根据CN的值返回细节点的类型T,然后再读取该点的方向角θ。因此,在本算法中一个指纹细节点的具体特征最后用M(x, y,θ,T)算子来表征。
2.3 指纹索引与检索算法
在得到一系列的指纹特征后,接下来就是设计指纹综合索引因子。索引因子以多维向量的形式表示,概括了一枚指纹图像的综合特征。指纹检索时通过将待查询指纹的索引因子与数据库中指纹的索引因子相比较,可快速计算得出与目标指纹相似度较高的一批候选指纹,达到有效缩减匹配范围的目的。指纹综合索引因子的设计描述如下:
其中dj=θ[j]-θ’[j], (j=1,2,…,m×n;θ[j]为指纹图像第j块的局部脊线方向角)。
公式7中μ表示各部分相似度值的权重因子。根据实际测试,在保证检索效果最佳时,μ的各项经验值分别取:μ1=0.28,μ2=0.16,μ3=0.30,μ4=0.26。检索算法按照索引因子比对法则将待查询指纹与数据库中的所有指纹进行检索对比,在遍历完整个指纹数据库以后,得到了一系列的相似度分数。最后根据设定的阈值分数,选出分数最高的一部分指纹,从而降低指纹对比识别的范围。
2.4 软件程序设计
3.2嵌入式软件系统配置
嵌入式软件系统主要涉及到操作系统和设备驱动配置两个方面。
3.2.1.嵌入式Linux操作系统
本设计采用Linux2.6内核操作系统作为嵌入式底层软件基础平台。Linux操作系统作为一个开源软件系统,有着良好的可配置、可裁剪特性,同时其开发周期短、成本低、安全性高,非常适用于嵌入式系统下指纹检索应用软件的开发和测试。
3.2.2.驱动程序配置
为了使操作系统能够控制USB指纹采集器和LCD等外设工作,必须为Linux内核配置相关的设备驱动程序。对于USB指纹采集器,本设计采用V4L2驱动框架对图像数据进行控制管理,V4L2是Linux下开发视频设备驱动的一套新框架,该框架为驱动程序定义了一系列对应的回调函数,同时为应用程序定义了一套标准的API调用,便于用户在应用层通过URB获得指纹图像数据。此外,对于LCD液晶显示屏也需要提供相应的驱动支持,LCD通常由微处理器的LCDC(LCD Controller,LCD控制器)进行控制。
4.系统测试与分析
在系统设计完成之后,笔者对系统的性能和效率等指标做了相应的测试。实验中采用了两个指纹数据库进行系统验证,分别是国际标准指纹测试库FVC2000-DB3和本系统采集自建的指纹数据库库OWN-DB.FVC2000-DB3包含800张指纹图像,OWN-DB包了含500张指纹图像,两库中的图像都以8位灰度的BMP格式保存,图7和图8分别为两个指纹数据库的示例图像。
从实验数据图可知,在FVC2000-DB3数据库上,当检索穿透率为10%时,系统检索错误率在6%左右。而在OWN-DB数据库上,当穿透率为10%时,系统错误率则可降低至4.6%以内,充分验证了本设计的可靠性。此外作为嵌入式系统,软件程序的执行效率也是一项重要指标。在实验中,当系统进行1:800检索时总耗时1.63秒;当进行1:500检索时总耗时0.99秒。总体来看,系统的实时性也达到了比较良好的指标。
结语
文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux25295 人正在系统学习中 相关资源:segtool.tar.gz_matlab时频脊线_小波脊线提取_脊提取_脊线_脊线…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!