DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 298|回复: 0
打印 上一主题 下一主题

基于DSP的指纹识别模块的实现

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 20:17:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  
         
    摘要:介绍了用硬件实现的独立指纹识别系统。讨论了指纹识别的算法概述、设计方法及其在DSP板上的实现。


随着指纹识别技术的不断发展和成熟,高度的精确性使其已应用到身份认证的各个领域。与其他生物统计学特征相比,指纹特征更容易提取、更可信,且特征尺寸也很小。这些特点使指纹识别系统在有限资源平台上实现并维持一定性能(FAR、FRR及匹配时间等)成为可能。
本文讨论了指纹识别系统的设计和实现方法。

介绍运用细节的脊线形状特征作为本算法的基础;基于这种思想,建立了指纹识别算法流程。该算法很容易在任何平台上实现。笔者选择了高效的DSP平台,设计了一个专业的用来单独实现指纹模块的DSP板。最后,讨论了这种指纹识别系统的现状和未来的发展。
1 细节脊线的形状特征
指纹图像上各种各样的线条被称为脊线,脊线之间的空白称为谷。指纹的细节特征是指纹识别的依据,最常用的细节特征是脊线的端点和分*点。图1显示了端点和分*两个细节特征。端点就是脊线的终点,分*表示一条脊线从一条路径在Y型结合点变为两条路径。细节比较运用细节类、坐标(x,y)以及方向作为比较的特征。
一种运用细节脊线形状特征进行指纹识别的新思想。细节脊线形状是指脊线与作为指纹图像相关特征的细节进行关联后所得的形状。当一个细节在被提取和记录时,可以得到其关联脊线分割后的迹线点。这些细节和迹线点能够描述脊线,特别是其对应的细节位置。这种新方法是基于迹线点的相对距离来描述脊线的形状。这种描述方法更为精确,因为这种相对距离不会因指纹在获取中的位移和旋转而改变。这也是该方法相对其他特征点求取方法的优势。
如图2所示,细节和其轨迹点能够用来描述脊线,特别是连接到具体的细节位置。脊线上轨迹点的采样间隔被设定为一固定值D,如果5个点被采样作为1个细节点和4个轨迹点,用3个相对参数d1、d2、d3对脊线形状进行描述。


对于固定的采样间隔D,为了增加精确度,使用内插法定义正确的轨迹点位置。因而,指纹图像的重要数据(脊线形状数据)能通过一种独立于位移和旋转的简单途径获得。每一个参数能够以6bit的数据表示。因此一个有25个细节脊线形状的指纹图形能够以6×3×25位=56.25字节存储。
2 识别流程
指纹识别系统如图3所示,可以分为存储和匹配两部分。记录的目的是提取指纹特征(模板)。在比较处理过程中,将输入的指纹图像特征与模板进行匹配,通过比较决定匹配结果。
图4显示了该指纹识系统的算法处理过程,主要过程包括:
·图像处理——获得高质量的二值图像;
·纹路细化——获得细化后的二值图像;
·细节提取——提取端点和交*点形状;
·细节比较——比较模板和输入图像的细节。
图像处理的目的是把输入的灰度图像转化为高质量的二值图像。指纹图像是一种噪声较大的图像,因此需要图像增强减少这些噪音,并增强脊线。



   第一步,使用高通滤波器和低通滤波器预滤波进行平滑处理。通过第一次二值化处理,过滤后的灰度图像转化为二值图像。第一次二值化处理后,每个二值图像块的方向被提取,并且最大方向被计算出来。然后,过滤后的灰度图像沿着已经查明的方向通过方向滤波器进行平滑处理。最终的二值图像通过对最后的灰度图像进行第二次二值化处理后得到。
经过图像预处理,指纹二值图像被细化以便脊线图案成为一个像素宽的连接线段。图5中a、b、c分别为原始输入灰度指纹图像,以及细化前和细化后的二值图像。


详细的细节是从细化后的二值图像中提取的。详细的分支被发现后,就从分*点或终点开始描绘轨迹。包括细节点的至多五个点被作为完好的细节标准提取。然后,通过这些点,细节的形状数据被计算出来。这种形状数据作为特征数据和细节类型以及它们的位置都被记录下来。

    两个指纹的匹配指数是基于细节形状的相似程度、细节的类型和它们的位置计算出来的。位移和旋转作为评估两个指纹匹配指数的考虑因素。
3 DSP平台的优化
为了达到快速识别的目的,图像处理通过对指纹输入图形进行块处理取得。这种方法同时可以减少对内存的要求。由实验得知:16×16像素高通滤波和4×4像素的低通滤波可以得到最好的预滤波效果。为了计算一块16×16像素的最大方向,方向滤波器被屏蔽在块图像上。然后,用5×5的方向滤波器屏蔽灰度级图像。
表1给出了DSP平台实现的内存要求。内存优化主要集中在达到最小运行内存?穴图像输入缓冲、预滤波中间结果和输出二值图像?雪的要求。对于当前应用,从传感器接收的图像大小为224像素×288行。图像被传感器逐行扫描,在缓冲区满了以后,进行块处理并得到一行二值图像。这个处理过程不断循环重复。

表1 内存需求

[table]

[tr]

类  别[/td]

名  称[/td]

大小(word)[/td][/tr]
[tr]

程序[/td]

指纹算法
查表
应用[/td]

8492
462
3672[/td][/tr]
[tr]

数据[/td]

工作区应用数据[/td]

18414
397[/td][/tr]
[tr]

模板[/td]

数据和状态(*)[/td]

990[/td][/tr]
[tr]

其他[/td]

堆栈等[/td]

640[/td][/tr]
[tr]

合计[/td]

内部
外部(*)[/td]

32077
990[/td][/tr]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-7-21 11:55 , 耗时 0.085862 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表