超详细|基于MATLAB的指纹识别系统

在这里插入图片描述

超详细|基于MATLAB的指纹识别系统

指纹识别技术是众多生物特征识别技术中的一种,是一项集计算机、网络、光电技术、图像处理、智能卡、数据库技术于一体的综合技术,利用人体所固有的生理特征或行为特征来进行个人身份鉴定。指纹是与生俱来、在手掌面这一特定部位出现的遗传学表型特征,在正常情况下,指纹具有独一无二、各不相同、终身基本不变、触物留痕、排列规整等特点,指纹中有许多特征点,特征点提供了指纹唯一的确认信息。

本文是作者指纹识别系统V1.0,主要实现指纹预处理、特征提取以及指纹匹配的功能,在FVC2004DB1数据库上取得了不错的效果。

00 目录

1 应用背景
2 研究现状
3 DB1数据库介绍
4 系统设计
5 系统实现
6 源码获取
7 展望

01 应用背景

指纹识别技术应用过程通过指纹采集、指纹预处理、指纹检查和指纹模板采集进行指纹记录,并通过指纹采集、预处理、特征比对和匹配进行指纹比对。相对而言,指纹识别技术是目前最成熟的一种生物识别技术,在过去主要应用于刑侦系统,但随着计算机技术日新月异,图像处理技术、模式识别技术的迅猛发展,以及高效价廉的数字信号处理芯片出现,指纹识别技术进入现代化发展阶段,理论研究、指纹采集、指纹显现、比对鉴定技术等各方面都取得了较大的进步,近几年已逐渐地走向了民用市场,在出入境检查、智能手机解锁、软件登录、考勤打卡、门禁等多方面均有应用。

02 研究历程

中国是最早利用手印进行侦查活动的国家,唐朝时期以“按指为书”为代表的指纹捺印已经在文书、订立抵押借贷、田宅人身买卖契约等民事活动中被广泛采用,宋朝时指纹则开始被用作刑事诉讼的物证。指纹最早应用在中国,但指纹识别技术系统化科学化的发展在西方,具有现代意义的指纹学研究发端于Purkinje、Henry Faulds、William Herschel、Francis Gahon 等人,1823 年Purkinje 首次提出“皮肤纹理具有基因以及诊断意义上的重要作用”,1880 年Henry Faulds在Nature 期刊上发表论文,建议在犯罪现场采集指纹作为证据,之后William Herschel 在Nature 上发表了他20 多年来的指纹研究成果,1892 年Francis Gahon 出版了《Fingerprints》一书,确定了指纹独特和稳定两个重要特征,并提出指纹分类系统,这标志着近代指纹科学理论的开始,此后指纹识别技术的应用从经验上升为科学,在技术方法、鉴定理论等方面不断取得突破。

早期的指纹识别是由专业技术人员根据指纹分类方法和细节特征肉眼进行辨识比对,效率低、速度慢,同时因视觉误差、视觉疲劳、个人经验等因素,精确性难以确保。计算机技术的兴起为指纹识别技术的发展铺平道路,把传统的人工识别转化为数字化自动识别过程,首先将用户指纹加密并存储到智能芯片上,然后转载至指纹识别读卡器,通过对智能芯片中存储的指纹与用户指纹进行对比分析,最后完成身份鉴定。现阶段指纹识别系统包括指纹图像扫描技术、特征提取和自动匹配技术,通过运用模式识别原理,搭建自动判别指纹相似度的算法模型,并对算法模型进行程序化设置,最后计算机执行对比。

03 DB1数据库介绍

本文的部分数据库采用公开的FVC2004指纹数据库DB1,DB1数据集是由Optical Sensor “TouchView II” by Identix 传感器采集而得. 官方地址:http://bias.csr.unibo.it/fvc2004/databases.asp
在这里插入图片描述

04 系统设计

一个好的指纹识别算法对每一幅指纹图像应具有尺度、平移以及旋转的不变性。对于尺度不变性,现在的指纹采集设备所获得的图像基本都能达到此要求,DB1数据库的图像都满足此要求,具有相同的尺寸、灰度级和分辨率。对于平移和旋转不变性,可以根据指纹图像的内在特性来建立一定的参考结构。这里考虑通过确定一个固定的参考点(指纹参考点)来解决。Gabor 滤波器具有良好的频率和方向指纹图像选择性,对指纹进行滤波操作时能够较好的突出脊线。特征提取考虑将指纹分为小区域,每块小区域代表了指纹的局部特征,把这些局部确定参考点特征按照规则进行排列,也能体现指纹的总体特征。指纹识别的一般过程如图所示,
在这里插入图片描述

4.1 指纹图像预处理

4.1.1 参考点定位

指纹的参考点是指在指纹中间附近脊线和谷线的凸曲率最大的点,也叫作指纹的中心点。因为在中心点附近,指纹的纹理性最强,包含指纹较为明显的纹理特征,能够较好地表征指纹的特征信息。指纹参考点定位的算法目前仍在不断完善中,这里采用基于指纹方向场的参考点定位方法。

为了较好地解决指纹噪声情况,参考点定位方法应该考虑指纹参考点周围较大的邻域;另一方面,为更好地定位参考点,需要该方法对区域的微小变化比较敏感。利用指纹方向场定位参考点可满足这两个相互抵触的要求。计算指纹参考点的过程如下:

(1)计算指纹图像每一像素点f(I,j)的水平梯度gx和垂直梯度gy
在这里插入图片描述

(2)将指纹图像进行分块(w×w),以各子块作为元素组成新的矩阵F(M/w×N/w),则子块在矩阵中的位置为(m,n),m=1,2,…,M/w,n=1,2,…,N/w。计算子块的平均方向a(m,n):
在这里插入图片描述
(3)修正方向
因为a(m,n)-pi/4~pi/4之间为了和后续的Gabor滤波保持一致,需修正到(0,pi),修正方式:
在这里插入图片描述
(4)矩阵二值化,得F‘若a’ (m,n)在0~pi/2,则F’ (m,n)=1,反之赋0.

(5)沿正交方向扫描F’,若F’ (m,n)=1,记录子块坐标,每次扫描都将计算扫描次数,若F’ (m,n)=0,则停止,扫描次数最大的子块的中心就是参考点。
设当前块的坐标为(m,n),方向为a’ (m,n),下一个子块方向为a’ (m,n)-pi/2,子块坐标为
在这里插入图片描述
K是子块行数与脊线平均宽度比值。
(6)计算参考点坐标(x0,y0),设参考点所在子块坐标为(m,n),方向为a0(m,n)
在这里插入图片描述
4.1.2 扇区化

一幅指纹图像,就指纹识别的目的而言,往往包含很多无用信息。最能代表指纹属性的那些信息高度集中于参考点周边的区域,这个区域称为指纹有效区域。

有效区域选为以参考点为中心的175×175的矩形区域,也即将指纹图片以参考点为基准,将指纹图像裁剪成大小为175×175的矩形区域。扇区化时,以参考点为圆心将矩形区域划分成宽度为20个像素的3个同心环,每一个同心环再分割成12个扇环,这样指纹图像的有效处理区域就为36个扇区。同心环内的有效扇区依次编号为1,2,3,…,36,由于半径小于12的区域靠近参考点,方向场不连续;半径大于72的区域包含的指纹信息较少,分别编号为37和38,不用于特征匹配,扇区编号如图所示。由图可知,每个扇环块的编号由其与指纹参考点的半径以及指纹参考点与其连线的斜率确定。
在这里插入图片描述
4.1.3 归一化

指纹图像在采集的过程中,有可能因为手指的压力不均匀,或传感器自身存在噪声,而造成图像在灰度上的差异,因而有必要进行灰度归一化处理。归一化将指纹图像的灰度和对比度调整到一个相同的级别上,以便为后续的处理提供一个统一的图像规格。归一化是基于像素层次的操作,不会改变指纹图像脊线和谷线的清晰度和结构,具体如下式,式中M。和V。为期望的各扇区平均值和方差。
在这里插入图片描述在这里插入图片描述
f(x,y)表示图像在x,y处的灰度值,Mi表示第i个扇区灰度均值,Vi表示第i个扇区像素方差,Ni表示归一化后的灰度值,Xi,Yi表示第i个扇区的像素个数,M0,V0取50.
4.1.4 效果图
指纹图像进行以上的预处理后效果如下所示。
在这里插入图片描述

4.2 Gabor滤波

理论上,指纹图像是由脊线和谷线组成的线条状图像,因此其灰度直方图会表现出明显的双峰特性,但由于指纹采集时各种噪声的影响,实际得到的灰度直方图往往不能呈现双峰性质,因此运用一般的基于灰度的图像滤波与校正方法很难达到期望的效果。每个指纹的纹线都近似于具有特定方向和特定频率的正弦波,所以在局部指纹图像的傅里叶频谱中,纹线信息和噪声信息的频谱具有很好的可分性,而且指纹纹线对应的傅里叶频谱的位置和方向与指纹纹线的频率和位置有关。在相位恒定时,脊线和谷线近似于正弦波,有缓慢的变化,因此具有频率相关和相位协调性能的带通滤波器可以有效的消除噪音,从而保护脊线和谷线的结构。

Gabor滤波器是一种具有方向选择性和频率选择性的带通滤波器,且其特性的描述与人的神经视觉感受视野具有高度相似性,因此可利用Gabor滤波器对指纹图像进行特征提取。对于一幅二维指纹图像I(x,y),Gabor小波可以方便地提取指纹图像在各个尺度和方向上的纹理信息,同时在一定程度上降低了图像中光照变化和噪声的影响。因此,设计一个八方向的二维 Gabor滤波器实现指纹图像的纹理信息,滤波器如下。该算法对指纹图片质量要求较低,对较为模糊的指纹图片仍具有较好的鲁邦性,但是该算法的识别精度在很大程度上取决于参考点的精确定位。

在这里插入图片描述

而指纹图像中,指纹脊线和谷线之间的距离较为一致,主要的特征信息为脊线和谷线间的方向性特征。所以,我们在设计滤波器的时候可以尽量减少尺度信息,增加方向信息。在本文中,构造的提取指纹特征的二维Gabor滤波器为单尺度、八方向的二维 Gabor滤波器。尺度信息根据脊线和谷线之间的距离取为 10 个像素大小,方向选择0°,22.5°, 45°, 67.5°, 90°, 112.5°, 135°, 157.5°八个方向。

用8个方向的滤波器在指纹图像上对选定的区域分别处理从而产生8幅图像。使用0度方向滤波器处理的指纹强调与x轴平行的脊线,同时对其他方向的脊线作平滑处理,其他各个方向的滤波器工作方式类似。滤波效果如图 。

在这里插入图片描述

4.3 特征提取

特征提取就是给指纹的局部特征和全局特征赋予一些参数、标记,使得这些参数、标记能够将每个指纹从众多指纹中唯一区别出来。这里,我们在指纹图像的每一个扇区内,应用灰度尺度不变性,先将所有像素与灰度平均值的差求平方,然后按照扇区编号将这些和值有序排列,形成特征向量。这种方法得到的特征向量充分利用了指纹的全局特征和局部特征:一方面各扇区的平均偏差平方和反映了指纹的局部特征;另一方面各个扇区的有序排列有效地表征了指纹的全局特征。指纹图像被划分为38个扇区,其中用于特征匹配的有36个(即1~36为有效扇区),每一个有效扇区可得到一个有效特征。由于采用了8方向的Gabor滤波,因此每一幅指纹图像总共有36×8=288个有效特征。

特征提取结束后,对特征进行可视化有助于加强对特征提取过程的理解。可视化后可以得到指纹特征的可视化图形,如图

在这里插入图片描述

4.4 指纹识别

指纹识别是通过比较两枚指纹来判断其是否来自于同一个手指的过程。从上述介绍可知,本文获取指纹图像中的局部信息和全局信息,并将其组成一个定长的特征向量(称之为指纹码)。指纹匹配时,计算待识别指纹的特征向量与库中指纹码间的差,差值最小的对应的指纹为最佳匹配指纹。这里将两个指纹码间的差值定义为:
在这里插入图片描述

其中M表示每个方向的特征向量所包含的特征数目,N表示所采用Giabor滤波器的方向数;V和V分别表示待检测指纹和指纹数据库中指纹特征向量的差。d越小表示越匹配。

05 系统实现

本文利用MATLAB GUI做出指纹识别系统,系统界面如下:
在这里插入图片描述

系统的操作包括训练指纹库、载入指纹图像以及指纹图像处理与特征提取、识别,打开GUI界面后,首先需进行指纹数据库训练,得到特征库,其中指纹数据库是由FVC2004DB1的指纹库组成,数据库如下:

在这里插入图片描述

在这里插入图片描述

点击“指纹数据库训练”
在这里插入图片描述

训练完成后
在这里插入图片描述

完成训练即可对载入的指纹图像进行识别,载入图像进行处理的顺序按从上到下进行处理,处理后的界面如下:

在这里插入图片描述

对于非库内的指纹(指纹测试库的6.bmp、8.bmp、11.bmp),会有警告提示
在这里插入图片描述

06 源码获取

https://mbd.pub/o/bread/ZJmZmpdp

(保证运行,有任何问题私信作者)

07 展望

本文实现的功能是指纹识别,虽然指纹处理以及识别效果良好,但仍有许多优化的方向,比如8方向的滤波后特征维数大,可以进行降维,同时有些指纹图像参考点定位不精以及指纹识别错误的问题,这都是往后V2可以改进的方向,欢迎关注~

参考文献

[1] 张洪刚,陈光,郭军.图像处理与识别[M].北京: 北京邮电大学出版社,2006. [2]吴夏平,王福明,赵景媛.基于Gabor 滤波器的指纹图像增强研究[D].太原:中北大学,2004. [3]吴夏平,王福明,赵景媛.基于Gabor滤波器的指纹图像增强研究[J].现代电子技术,2008,20:145-147. [4]李晨丹,徐进.指纹图像预处理和特征提取算法的Matlab实现[J].计算机工程与科学,2009,31(7):61-64. [5]贺颖,蒲晓蓉.应用Gabor滤波的指纹识别算法的研究和实现[J].计算机工程与应用,2010,46(12):172-175. [6]张新淼.基于改进的Gabor滤波器组指纹图像识别的研究与实现[D].天津:天津师范大学,2009.

[7] 何阿妹,蔡贤玲,陈珉惺.指纹识别技术发展及应用现状[J].产业创新研究,2023(06):102-104.

[8] 梁晓菊. 论指纹识别技术的发展现状及发展方向[J]. 科学技术创新,2019(22):76-77.

猜你喜欢

转载自blog.csdn.net/sfejojno/article/details/130950708