毕业设计之--图像指纹识别算法研究与实现

毕业设计之--图像指纹识别算法研究与实现

2023年7月26日发(作者:)

毕业设计之--图像指纹识别算法研究与实现⽂章⽬录1 简介Hi,⼤家好,这⾥是丹成学长,今天向⼤家介绍指纹识别相关算法图像指纹识别算法研究与实现⼤家可⽤于 毕业设计技术解答毕设帮助:7468760412 指纹识别⽅式⽬前市⾯上有两种指纹识别,分别是光学式和电容式指纹识别。2.1 电容式指纹识别电容式指纹识别要⽐光学式的复杂得多,其原理是将压⼒感测、电容感测、热感测等感测器整合于⼀块芯⽚中,当指纹按压芯⽚表⾯时,内部电容感测器会根据指纹波峰与波⾕⽽产⽣的电荷差(或是温差),形成指纹影像,再通过与算法内部的指纹库进⾏匹配,从⽽完成指纹识别。电容式指纹识别技术较为复杂,对技术研发和积累有较⾼要求,并且涉及⼤量专利,算法得实现也相对困难,所以⽬前全球只有少数公司能在这⽅⾯提供领先的技术产品。2.2 光学式指纹识别然后是光学式指纹识别,⼤家常见的指纹考勤机就是光学式指纹识别。这类光学式指纹识别主要包括4个⽅⾯功能1.指纹模块负责采集指纹图像。2.数字信号处理器主要把采集到的指纹图像转化为数字信号。3.微控制器是整个系统的控制单元,在这⾥将进⾏指纹的验证以及输出指令。4.液晶显⽰器将输出指纹验证结果。当我们把⼿指放在指纹考勤机上时,通过镜⾯反射原理,指纹模块就会采集指纹图像接着指纹图像就会被数字信号处理器转换成数字信号然后通过微控制器将数字信号与指纹库⾥的指纹进⾏匹配,匹配结果将通过液晶显⽰器显⽰出来。这就是光学式指纹识别的⼯作原理。电容式与光学式指纹识别主要在指纹的采集⽅式上拥有较⼤差异,⽽在指纹的验证过程中则基本类似。然⽽因为电容式指纹识别拥有体积⼩、适⽤性⼴的优点,已经有越来越多的设备采⽤电容式指纹识别,未来的主流将是电容式指纹识别。3 指纹识别算法实现3.1 指纹识别算法流程3.2 指纹图像预处理1.图像归⼀化2.图像分割3.图像⼆值化4.细化⼏个步骤 当然有⼀些算法为了追求极致,中间还利⽤了增强、多重滤波等⽅式,但最根本的⽬的都是为了在细化之后保留指纹信息并且⽅便后续处理。预处理之后是特征点的提取,也就是找到指纹图像当中有价值,具有唯⼀性和不变性的信息。主要特征点有端点、分叉点⼏类,在提取部分除了简单的遍历检索确认之外,还有⽐较重要的⼀步是伪特征点的去除,主要是针对图像不清晰、不完整导致的断点和边缘端点等。最后⼀步是特征点的匹配,将指纹库中的指纹信息与提取的⽬标图像特征点进⾏对⽐。主流算法是以指纹中⼼点为依据,根据特征点所在的⾓度及距离,确认其所在位置,根据匹配度计算是否是同⼀⼿指的指纹。3.3 指纹图像⽬标提取指纹图像⽬标提取主要是将指纹图⽚中提取出来,也叫做指纹图像分割。图⽚的前景通过观察可知是由条状或者圆形的⼀些组成,⽽底图其他部分只是⼀个均匀的底⾊⽽已。我们使⽤⾮常简单的⼿段,基于局部梯度就可以很容易实现我们的⽬标。⽅差梯度法提取指纹:指纹图像通常由前景区域(包含有指纹的脊线和⾕线)和背景区域这两部分组成。⼀般来说,在指纹图像的前景区域中,指纹的脊线和⾕线的灰度差是较⼤的,因⽽其灰度统计特性局部灰度⽅差很⼤;⽽在指纹图像的背景区域中,两者的⽅差是很⼩的。基于这⼀特性,可以利⽤指纹图像的局部⽅差来进⾏分割。因此,这种⽅法也被称为⽅差梯度法。的灰度平均值 M和⽅差 Var计算⽅法:提取前的指纹图像:提取后的指纹图像:可以看到,学长做的还有些噪点,但是也很好解决,做⼀次形态学操作即可:这样噪点就去除了。3.4 指纹图像增强3.5 指纹特征提取⼈体指纹的特征可以反映在给定的⼈类群体⾥来⾃不同⼿指的指纹之间相似的程度。指纹的特征信息很多,所有的这些指纹特征信息构成了庞⼤的指纹特征集合。指纹的细节特征主要指的是纹线端点(RidgeEnding)和纹线分叉点(RidgeBifurcation)。纹线端点指的是纹线突然结束的位置,⽽纹线分叉点则是指纹线⼀分为⼆的位置。⼤量的统计结果表明,使⽤这两类特征点就⾜以描述指纹的唯⼀性。Minutia Cylinder-Code (MCC) ,该算法是⾮常著名的指纹特征识提取算法,第⼀次发表在:IEEE tPAMIMinutia Cylinder-Code: a new representation and matching technique for fingerprint recognition", IEEE tPAMI 2010MCC提出了⼀种基于三维数据结构的圆柱编码算法,其从细节的距离和⾓度出发,构造了圆柱编码为⼀种多级的指纹匹配⽅法,其不仅使⽤了细节点特征也使⽤了⽅向场等特征特征视为⼀种局部结构,也是3D结构部分实现代码:# Compute the cell coordinates of a generic local structure#

计算mcc_radius = 70mcc_size = 16g = 2 * mcc_radius / mcc_sizex = (mcc_size)*g - (mcc_size/2)*g + g/2y = x[..., s]iy, ix = o(x**2 + y**2 <= mcc_radius**2)ref_cell_coords = _stack((x[ix], x[iy]))mcc_sigma_s = 7.0mcc_tau_psi = 400.0mcc_mu_psi = 1e-2def Gs(t_sqr): """Gaussian function with zero mean and mcc_sigma_s standard deviation, see eq. (7) in MCC paper""" return (-0.5 * t_sqr / (mcc_sigma_s**2)) / (**0.5 * mcc_sigma_s)def Psi(v): """Sigmoid function that limits the contribution of dense minutiae clusters, see eq. (4)-(5) in MCC paper""" return 1. / (1. + (-mcc_tau_psi * (v - mcc_mu_psi)))# n: number of minutiae# c: number of cells in a local structurexyd = ([(x,y,d) for x,y,_,d in valid_minutiae]) # matrix with all minutiae coordinates and directions (n x 3)# rot: n x 2 x 2 (rotation matrix for each minutia)d_cos, d_sin = (xyd[:,2]).reshape((-1,1,1)), (xyd[:,2]).reshape((-1,1,1))rot = ([[d_cos, d_sin], [-d_sin, d_cos]])# rot@ref_cell_coords.T : n x 2 x c# xy : n x 2xy = xyd[:,:2]# cell_coords: n x c x 2 (cell coordinates for each local structure)cell_coords = ose(rot@ref_cell_coords.T + xy[:,:,s],[0,2,1])# cell_coords[:,:,s,:] : n x c x 1 x 2# xy : (1 x 1) x n x 2# cell_coords[:,:,s,:] - xy : n x c x n x 2# dists: n x c x n (for each cell of each local structure, the distance from all minutiae)dists = ((cell_coords[:,:,s,:] - xy)**2, -1)# cs : n x c x n (the spatial contribution of each minutia to each cell of each local structure)cs = Gs(dists)diag_indices = ([0])cs[diag_indices,:,diag_indices] = 0 # remove the contribution of each minutia to its own cells# local_structures : n x c (cell values for each local structure)local_structures = Psi((cs, -1))3.6 指纹识别结果提取特征后,剩下的任务就是对特征进⾏分类了,可以使⽤的算法就很多了,⽐如svm,决策树、神经⽹络,都可以6 最后技术解答毕设帮助:746876041

发布者:admin,转转请注明出处:http://www.yc00.com/news/1690332502a333966.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信