首页 > 编程知识 正文

图像识别毕业设计(关于图像加密的毕业设计)

时间:2023-05-06 14:19:39 阅读:74925 作者:4311

文章目录1概述2指纹识别方式2.1电容式指纹识别2.2光学指纹识别3指纹识别算法实现3.1指纹识别算法流程3.2指纹图像预处理3.3指纹图像目标提取3.4指纹图像增强3.5指纹特征提取3.6指纹识别结果6最后

简介嗨,你好。 这里是丹成校长。 今天介绍指纹识别的相关算法

图像指纹识别算法研究与实现

大家可以用在毕业设计上

技术解答毕设帮助: Q746876041 2指纹识别方式目前市面上有光学和电容式两种指纹识别。

2.1电容式指纹识别电容式指纹识别要比光学复杂得多,其原理是将压力传感器、电容传感器、热传感器等传感器集成在一个芯片上,当指纹按压芯片表面时,电容传感器由指纹csddd和波谷产生的电荷差(或温差)

电容式指纹识别技术复杂,对技术的开发和积累要求很高,而且涉及大量专利,算法实现也比较困难,因此目前世界上只有少数公司能够提供这方面的领先技术产品。

2.2光学指纹识别和光学指纹识别,大家常见的指纹考勤机是光学指纹识别。

这种光学指纹识别主要有四种功能

1 .指纹模块负责指纹图像的采集。 2 .数字信号处理器主要将采集到的指纹图像转换为数字信号。 3 .微控制器是整个系统的控制单元,在这里进行指纹的验证和命令的输出。 4 .液晶显示器输出指纹识别结果。 手指放在指纹核对机上,指纹模块根据镜面反射的原理采集指纹图像

指纹图像通过数字信号处理器转换为数字信号

然后用微控制器将数字信号与指纹库指纹匹配,匹配结果显示在液晶显示器上。 这就是光学指纹识别的机制。

电容式和光学指纹识别主要在指纹采集方式上有很大差异,指纹验证过程中基本相似。 但是由于电容式指纹识别具有体积小、适用性广的优点,越来越多的仪器采用电容式指纹识别,未来的主流是电容式指纹识别。

基于3指纹识别算法的3.1指纹识别算法流程

3.2指纹图像预处理1 .图像归一化2 .图像分割3 .图像二值化4 .细分几个步骤当然,一些算法为了追求极致,中途采用了增强、多重滤波等方式,但基本目的都是在细分后留下指纹信息,然后

预处理后特征点的提取,即找到指纹图像有价值、唯一性和不变性的信息。 主要特征点有端点、分支点几类,提取部分除了通过简单的扫描搜索进行确认外,去除伪特征点也是一个重要步骤,主要针对图像不清晰、不完整导致的断点和边缘端点等。

最后一步是特征点匹配,将指纹库中的指纹信息与提取的目标图像的特征点进行比较。 主流算法是以指纹的中心点为基础,根据特征点所在的角度和距离,确认其位置,根据一致度计算是否为同一手指的指纹。

3.3指纹图像对象提取指纹图像对象提取主要是从指纹图像中提取,也称为指纹图像分割。

从观察中可以看到,照片的前景由条纹状或圆形的一部分构成,而参考底图的其他部分只是均匀的底色。

我们可以用非常简单的手段,根据局部坡度很容易地实现我们的目标。

基于方差梯度法的指纹提取:

指纹图像通常由前景区域(包括有指纹的棱线和谷线)和背景区域两部分组成。 一般而言,在指纹图像前景区域中,由于指纹的棱线与谷线的灰度差大,所以灰度统计特性的局部灰度方差大; 在指纹图像的背景区域中,两者的方差较小。 基于该特性,可以利用指纹图像的局部方差进行分割。 因此,该方法也称为色散梯度法。

的灰度平均值m和方差Var的计算方法:

提取前指纹图像:

提取的指纹图像:

看得出来,前辈还有点杂音,但很容易解决。 做一次形态学操作就可以了。

这样可以消除噪音。

3.4指纹图像增强

3.5指纹特征提取人体指纹特征可以反映给定人类群体中来自不同手指的指纹之间的相似程度。

指纹特征信息很多,所有这些指纹特征信息构成了庞大的指纹特征集合。

指纹的详细特征主要是指线条的端点(RidgeEnding )和线条的分支点。

格线的端点是指格线突然结束的位置,格线的分支点是指格线分成两部分的位置。

大量统计结果表明,使用这两种特征点可以描述指纹的唯一性。

minutia cylinder-code (MCC ),该算法是非常有名的指纹特征识别提取算法,

第一次发布的是IEEE tPAMI

minutia cylinder-code : anewrepresentationandmatchingtechniqueforfingerprintrecognition ',IEEE tP

AMI 2010

MCC提出了一种基于三维数据结构的圆柱编码算法,其从细节的距离和角度出发,构造了圆柱编码为一种多级的指纹匹配方法,其不仅使用了细节点特征也使用了方向场等特征特征视为一种局部结构,也是3D结构

部分实现代码:

# Compute the cell coordinates of a generic local structure# 计算mcc_radius = 70mcc_size = 16g = 2 * mcc_radius / mcc_sizex = np.arange(mcc_size)*g - (mcc_size/2)*g + g/2y = x[..., np.newaxis]iy, ix = np.nonzero(x**2 + y**2 <= mcc_radius**2)ref_cell_coords = np.column_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 np.exp(-0.5 * t_sqr / (mcc_sigma_s**2)) / (math.tau**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. + np.exp(-mcc_tau_psi * (v - mcc_mu_psi))) # n: number of minutiae# c: number of cells in a local structurexyd = np.array([(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 = np.cos(xyd[:,2]).reshape((-1,1,1)), np.sin(xyd[:,2]).reshape((-1,1,1))rot = np.block([[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 = np.transpose(rot@ref_cell_coords.T + xy[:,:,np.newaxis],[0,2,1])# cell_coords[:,:,np.newaxis,:] : n x c x 1 x 2# xy : (1 x 1) x n x 2# cell_coords[:,:,np.newaxis,:] - 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 = np.sum((cell_coords[:,:,np.newaxis,:] - 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 = np.arange(cs.shape[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(np.sum(cs, -1)) 3.6 指纹识别结果

提取特征后,剩下的任务就是对特征进行分类了,可以使用的算法就很多了,比如svm,决策树、神经网络,都可以

6 最后 技术解答毕设帮助:<Q>746876041

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。