100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > [计算机毕业设计]机器视觉指纹识别图像识别

[计算机毕业设计]机器视觉指纹识别图像识别

时间:2020-09-28 19:24:21

相关推荐

[计算机毕业设计]机器视觉指纹识别图像识别

前言

📅大四是整个大学期间最忙碌的时光,一边要忙着准备考研,考公,考教资或者实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

🚀对毕设有任何疑问都可以问学长哦!

本次分享的课题是

🎯机器视觉指纹识别图像识别

课题背景与意义

传统的基于细节点的指纹识别是通过一系列的图像处理和操作技术才能完成,随着近年来人工智能技术的不断发展,将卷积神经网络应用在指纹识别匹配上成为了可能。在本文章中,首先介绍了孪生神经网络的定义,之后会讲解如何利用Tensorflow2.X结合孪生神经网络来完成基于公开指纹数据集的指纹识别任务。

课题实现技术思路

孪生神经网络

孪生神经网络英文简称为Siamese网络,它的主体结构是由一对共享相同权值的神经网络所组成的,通常被用于来计算数据之间的相似度,也正是因为具有相同的权值,因此才被称为“孪生”。值得注意的是,它并不是一个具体的神经网络模型,而只是一个架构,其中两边的输入网络可以被自定义设置为具体的CNN卷积神经网络或其它模型,其示意图如图1所示。

图1孪生神经网络

虽然这里强调的是共享相同权值的一对神经网络才能被称为孪生神经网络,但事实上也可以让它们的权值各不相同,但这样的网络则有另一个称呼,即被称为伪孪生神经网络,其示意图如图2所示。孪生神经网络由于共享权值,因此适合于处理输入是一对较为类似或近似的数据的情况,这样共享的权重才能对两边的数据都有着较好的适应性。反之,如果输入的一对数据本身存在着较大的差异,例如图像和字幕之间的关联,那么即可以通过伪神经网络来进行处理。

图2伪孪生神经网络

通常来说,输入到孪生神经网络里的一对数据最后都会被分别转换成一个向量的形式,之后根据这二者向量之间的差异来得到它们之间的相似度,例如常见的度量指标有欧氏距离和余弦距离等。整个网络的训练目标是让两个相似的输入距离尽可能的小,而让两个不同类别或差异较大的输入距离尽可能的大。以人脸识别为例,同一个人的脸被认为是相似输入,而不同人的人脸即被认为是不同输入,其示意图如图3所示。

图3 孪生神经网络的输入数据

另外可以计算输入图像相似度的网络不单单只有孪生神经网络和伪孪生神经网络,例如三输入的三元组Triplet网络同样也可以实现。虽然事实上分类网络也可以达到这样的效果,但通常来说它更多被应用于判断事物的总体分类,例如猫狗分类,而较少去关注个体分类,例如判断输入的猫是不是同一只猫。因此就目前来看,较为主流的相似度评判网络还是以孪生神经网络、伪孪生神经网络和三元组网络这三者为主。

将孪生神经网络应用到当前的指纹识别实战任务中去,即是将网络的输入数据替换成指纹图像。同一个人的指纹输入即为相似输入,不同人的指纹输入即为不同输入,而该网络的设计目的便是让它可以根据输入的指纹图像来判断这对指纹是否属于同一个人,即达到指纹识别的目的。通常其中一个输入可被视为是保存在数据库里的指纹模板,另一个输入则是当前用户访问服务时被采集到的指纹数据,其模型示意图如图4所示。

图4 基于孪生神经网络的指纹识别

CASIA指纹数据集

在本小节中,所使用的指纹数据来自于中国科学院生物特征与安全研究中心里的指纹数据库,其数据下载网站为: /findTotalDbByMode.do?mode=Fingerprint

登录到网站之后,会看到如图5所示的页面,其中左侧上方是数据的分类,包含了常见的生物特征数据如虹膜、指纹、脸和掌纹等,而右侧则是当前所定位到的多个版本的指纹数据集,在本次实战中这里选用右侧最上方出现的指纹数据集即CASIA Fingerprint Subject Ageing Version 1.0.

图5 CASIA指纹数据集下载页面(1)

由于在该网站中下载相关数据集需要以个人账户的形式进行访问,因此需要事先注册一个账号。首先点击右上方Register按钮跳转至如图6所示页面,之后点击右下方的IAgree按钮并同意相关协议后跳转到如7所示的个人信息页面。在填报好相关内容之后,会对指定的个人邮箱发送验证信息,通过之后便可以拥有一个可以访问于该网站的个人账号。

图6CASIA指纹数据集下载页面(2)

登录账号并点击先前的CASIA Fingerprint Subject Ageing Version 1.0.数据集进行下载,下载完成并解压之后一共会得到和两个年份收集到的指纹数据集,其中具体文件结构如图8所示。

图8CASIA指纹数据集文件结构

在图8中,从上至下,和代表的是指纹数据收集的年份,uru4000、T2和uru4500代表的是传感器的类型,1、2表示的是收集指纹的批数,1代表第一批,2代表第二批。而0000等数字表示的是被采集者的ID,最后获得到的数据格式会是诸如RRRR_IIIIF_XXXX_Z_S.bmp这样的形式,其不同序号表达的具体信息如图9所示。以图9.20所示的0403_00001_0000_0_S.bmp为例,0403表示的是当前采集这个指纹所使用的传感器ID(不是类型),第一个0000表示的是被采集者的ID,紧接其后的1表示的是采集的是右食指,第二个0000表示的是图像的索引序号,而最后一个0则是表示被采集的当前次数。

图9 CASIA指纹数据名称含义

整个CASIA指纹数据集一共由5880张指纹组成,它们分别采自于不同的实验对象,其中针对每个实验对象的左、右食指和中指进行一共20次指纹图像的采集,即每个手指分别会被采集5次,图10展示了CASIA数据中的一个试验者被采集到的左、右食指和中指的指纹图像。

图10CASIA指纹数据集案例

指纹对齐实战

由于在CASIA指纹数据集中,采集到的指纹数据特征有可能各不相同,有些采集到的指纹特征甚至已经遭到破坏(如潮湿、刮伤等),因此分析这种包含各种真实情况的指纹数据集会更加具有实际意义。而在利用孪生神经网络对不同人的指纹进行匹配之前,最重要的一步那便是指纹的对齐操作。

由于在指纹采集的过程中手指会产生旋转、偏移或错位,因此采集到的指纹图像其中很多都是无法正常对齐的,特征点无法直接进行匹配,图10展示了一幅在CASIA数据集中同一个人相同手指在不同时间点时被采集到的指纹图像,从图中可以观察到即便被采集的是相同的手指,但所被标注的重点区域却是各不相同的且无法通过肉眼直接将它们对应起来。而倘若指纹识别系统没有对某个人验证时采集到的指纹进行对齐或矫正,那么该指纹就很难与储存在数据库中的指纹模板匹配起来,由此则会产生验证失败。

图10 同一个人相同手指被采集的指纹图像

针对指纹的对齐算法来说,目前应用较为广泛的其中一种是SIFT算法或SURF算法。SIFT算法全称为Scale-invariant feature transform,即尺度不变特征变换。而SURF则可以看作为是SIFT算法的一种改良,通过一种更高效的方式来完成特征的提取和描述,其全称为Speeded Up Robust Features,即加速稳健特征。由于在本实战中更注重的是神经网络模型的搭建和训练,因此这里仅仅只对SIFT特征点匹配算法进行简要的介绍,后续其可以通OpenCV第三方库来进行直接调用。

SIFT算法于1999年被David Lowe所提出,其之后被广泛应用于计算机视觉里的各个领域里,如图像识别、图像匹配和目标检测等,它是一种基于局部兴趣特征点的算法,不受图像尺度和旋转的影响,同时也对光照和外部因素有着很强的抗干扰性,因此适合被用作于图像的分析上,尤其是在目标检测领域里一直备受关注,即便是今日,该算法依旧被许多研究学者所采用。

SIFT算法主要可以被划分为2个步骤,即特征点的检测和特征点描述。在特征点检测阶段,SIFT会利用DoG(Difference of Gaussian)算法先进行角点检测,将一些变化明显的区域如边缘和角当作特征点,因为它们相对于平滑区域来说变化相对更加明显。之后在特征点描述的建立阶段,SIFT首先会计算得到图像局部区域的梯度直方图,并将它转换成一定维数的特征向量。之后在计算出特征向量后会再对领域的特征向量进行归一化处理并计算出该区域关键点的主方向,而领域的特征可以根据主方向进行特定方向的旋转,使其具有旋转不变性,同样地,也可以根据领域中各像素的大小进行指定尺度的缩放,从而实现尺度不变性。

旋转不变性和尺度不变性是图像分类和目标检测等任务中最重要的两个性质,而迁移到图像对齐任务中来,同样也十分重要。以刚才提到的指纹对齐为例,在利用了SIFT算法后,即便采集到的是旋转、偏移的指纹图像也能和数据库中的指纹模板进行匹配,而其中原因便是SIFT算法具有旋转不变性和尺度不变性,能够从这些有着旋转、偏移的指纹图像中提取出正确的特征点,之后根据输入指纹的特征点位置与数据库存储的指纹模板的特征点位置进行比较和矫正,便可完成指纹的对齐工作。

🚀海浪学长的作品示例:

大数据算法项目

机器视觉算法项目

微信小程序项目

Unity3D游戏项目

最后💯

🏆为帮助大家节省时间,如果对开题选题,或者相关的技术有不理解,不知道毕设如何下手,都可以随时来问学长,我将根据你的具体情况,提供帮助。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。