【基于CNN的人脸识别系统设计10000字(论文)】_第1页
【基于CNN的人脸识别系统设计10000字(论文)】_第2页
【基于CNN的人脸识别系统设计10000字(论文)】_第3页
【基于CNN的人脸识别系统设计10000字(论文)】_第4页
【基于CNN的人脸识别系统设计10000字(论文)】_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于CNN的人脸识别系统设计目录14799摘要 摘要随着计算机技术和光学成像技术的高速发展,人脸识别技术被广泛应用到我们生活当中。作为一项生物识别技术,它被广泛用于移动支付、小区门禁、车站等众多系统中的身份审核环节。是最便捷、最安全的生物识别技术之一,且具有唯一性。人脸识别系统通常包括由四个部分组成:人脸图像的采集及检测、人脸图像的预处理、人脸图像的特征提取、人脸图像的匹配与识别。CNN为卷积神经网络的英文简称。卷积神经网络是一类含卷积运算的神经网路,在深度学习中有显著的代表地位,卷积神经网络广泛用于计算机视觉、自然语言处理等领域。在图像识别及分类的问题中与其他神经网路相比较表现优异。其神经网络结构核心部分在其隐含层,其隐含层包含卷积层、池化层、全连接层。其中卷积层、池化层成对且多次出现,卷积层、池化层的数量越多,其结构越复杂,运算量越大,效果越好。本文主要借助卷积神经网络对人脸识别技术展开研究。其主要用到的工具有python、TensorFlow。关键词:人脸识别;卷积神经网络;python;TensorFlow1绪论1.1课题背景及意义随着互联网技术的高速发展与突破,我们的生活方式也随着互联网技术的发展得到了改变。互联网让我们的生活更加便捷、多彩。例如移动支付、网上购物、网络社交、网络游戏等等。但与此同时也会有产生一些新的问题产生较大的社会危害。例如网络诈骗、隐私泄露、虚拟财产被盗等等。我们在互联网上注册的各种各样的账号,通常是采用口令来验证我们的身份,通过口令及验证码来确认操作者是否为账号所有人。然而这里存在一个重大问题,当口令被第三方通过非正规手段得知后,系统对口令进行单一验证的方式无法保护真正账号持有者的权益;此外随着天网系统的覆盖,在打击非法犯罪方面,警方也亟需一种节省人力物力迅速筛出嫌疑人的技术手段;2019年疫情期间小区封闭管理也给很多疫情工作人员带来了诸多不便。那么找到一种快速识别验证个人身份信息的技术就成为了大众所需,鉴此,研究人员将视线转移到了生物识别技术。生物识别技术是利用人体固有的生理特征(包括但不限于指纹、唇纹、瞳孔、面部)借助计算机与光学、声学和生物统计学原理等,来对个人身份进行鉴定。相比于传统的身份鉴定方法,由于生物识别的技术设计具有密钥不容易被遗忘,特征不容易仿制等特点,所以生物识别技术更具有安全性。在身份识别验证领域有着强大的竞争力。现阶段应用较广的有指纹识别、人脸识别。由于手指在日常生活中的损耗以及意外损伤可能性比较大,因此就容易导致系统识别认证失败,而人脸识别的算法问题使得人脸识别的宽容度更高,因此本文主要是对人脸识别技术进行讨论。人脸识别技术的技术路线是从图片或视频流中提取人脸进行特征提取并与数据库匹配识别。人脸识别技术具有如下特点:(1)唯一性:人脸是人与生俱来的特征,人脸及其相似的双胞胎其人脸特征也存在些许差异;(2)非接触性:用户无需与设备直接接触就可进行人脸识别,指纹识别就需要直接接触才可进行识别,相较而言人脸识别技术更加快捷方便,在特殊时期如疫情期间有着重要的战略意义;(3)非强制性:不需要用户专门配合采集设备,在用户有意无意的状态下任意取的一定数量人脸图像数据就可以;(4)并发性:设备同时可对多个人脸进行采集、识别,相对于指纹验证或虹膜验证效率大大提高。除此之外,人脸识别所需要的设备也比较普通,采用普通的像素符合条件的摄像头就可完成,在现有的技术条件下市面上的手机都可以完成这项工作,采集成本极低,不需要使用传感器等其他精密设备。在这些优点的加持下,目前人脸识别技术已被广泛应用于政府、金融、教育、医疗、工业等众多领域并将在更多领域中发挥着重要作用。然而由于人脸的外形有着及其不稳定的特点,稍许的情绪改变就会使面部产生较大的变化,随着年龄的变化面部也会有较大幅度的改变,此外,光照条件也会对人脸识别产生一定的影响,不如采集时光线偏暗而应用时强光导致图像过曝将无法成功识别人脸,当然也会有遮挡物(如口罩和眼镜等)遮挡人脸使系统无法顺利检测人脸。另一方面所有人的人脸结构在骨骼构成上基本都是相似的,在大框架上看个体之间的区别不是很大,对于系统区分人脸个体是极其不利的。即便人脸识别的技术在今天已经得到了广泛的应用,为提高其准确性、消除一些不确定因素的影响,也还需对其研究,进一步提高人脸识别技术的准确性,这样随着技术的进一步发展、改进完善,人脸识别技术才能在更多的领域上得以应用。1.2国内外研究现状对人脸识别系统的研究早在20世纪60年代就开始了,我国的研究则起步于80年代。由于计算机技术与光学成像技术的落后,在取得一定研究成果后其并未得到应用,随着计算机技术和光学成像技术的发展,最终在90年代后期进入了初步应用阶段。对人脸识别的研究最早可追溯到19世纪法国人Galton的各种。人脸识别大致可分为三个发展阶段:第一阶段是默认状况下脸部特征研究,主要的技术方案是基于人脸几何结构特征,Bertillon用简单的语句将人脸与数据库中特征数据联系。人工神经网络也曾一度被用于研究人脸识别问题上。第一阶段是人脸识别的初级阶段,所取得的重要成果不多,跟多的还是依赖人工识别,基本没有实际应用。第二阶段是人脸识别的成果的收获阶段,期间产生了许多具有代表性的人脸识别算法,也出现了商业化的人脸识别系统,如著名的VisionICs的FaceIt系统。同期美国军方也组织了著名的FERET人脸识别算法测试。第三阶段是真正的机器自动识别,研究人员在这一阶段主要克服了光照、姿态、表情变化时对人脸识别结果准确性的影响。Pentland等人提出了基于视角的特征脸方法为每个视角构建一个特征空间,取得了比标准特征脸方法更高的性能。较国外相比,我国对于人脸识别技术的研究起步较晚,始于上世纪80年代,主要研究单位:清华大学、复旦大学、中国科学院计算技术研究所、哈尔滨工业大学等。其主要工作集中在三大类方法的研究:基于代数特征的人脸正面自动识别方法、基于几何特性的人脸正面自动识别方法和基于连接机制的人脸正面自动识别方法。在算法技术层面上也有周洪翔、何震亚、张辉采用对称主元分析神经网络,用权值和去冗余结合的办法对人脸特征进行提取和识别。此方法所用特征数据量小,特征提取运算量也较小,可以较好地实现人脸快速的识别和大量人脸样本的存储。为了应对表情变化和遮挡物的影响也有冯友兵团队基于CNN和SVM系统的联用设计。这些技术的发明已经使我国人脸识别技术研究与世界先进水平看齐。综合来看人脸识别技术虽然日趋成熟,但目前尚处于发展期,虽然已经克服了实际应用的诸多问题,但是如何更快、更多、更精确的完成识别任务仍然存在着不少技术屏障,人脸识别技术还有很长的一段路要走。从发展趋势来看以CNN为基础多种技术联用的方式已经成为了主流。2相关技术与理论2.1人脸识别基本框架图2-1-1人脸识别流程框架图人脸识别是通过图像采集提取待测人脸图像,将待检测人脸图像与数据库中保存的人脸图像集相比较匹配识别的过程,比如我们手机中常用的刷脸支付或人脸解锁,就是系统先将你的人脸特征进行采集后,等下次需要验证时使用摄像头再次获取新的图片信息与先前采集的图像进行对比验证,当匹配验证成功后才能继续完成后续的操作。一个完整的人脸识别系统分为四个部分:人脸图像采集及检测、人脸图像预处理、人脸图像特征提取、人脸图像匹配与识别。流程框架图如图2-1-1图2-1-1人脸识别流程框架图人脸识别的第一步是检测人脸:通过算法系统检测采集器传入的图像数据中是否具有人脸,并确定数据源中采集到的人脸的位置。第二步图像预处理:将已经检测到人脸的图像进行预处理,消除采集图像时产生的噪声、对图像进行光线补偿以及灰度变化、平滑处理,使得图片规格高度统一,以此减少图片采集过程中出现的误差,同时在预处理阶段也可以对图片进行反转等操作进行扩充训练,从而应对识别过程中的各种问题进一步提高识别的精确性。预处理完后就需要对人脸图进行特征提取,这一步是用本文主要探讨的方法即利用卷积神经网络来完成。与传统的图像处理技术相比,使用卷积神经网络进行图像特征的提取速度更快,分类效果更佳。提取特征后就是最后一步人脸图像识别与匹配,将提取到的人脸特征与数据库中预存的人脸图片特征进行比较,通过欧式距离进行相似度比较,通过设置一个阈值进行判断是否是同一个人,当相似度超过阈值时,输出匹配结果。2.1.1人脸识别的算法介绍目前主流的人脸识别从技术层面上可以分为三类:基于几何特征法、基于模板法、基于模型法。基于几何特征法:基于几何特征法是最早也是最为传统的识别方法,其原理是将人脸分解为眼睛、鼻子、嘴巴、下巴等部件,每个部件又拥有不同的形状和大小的差异,利用这些部件的几何结构差异实现人脸识别,但是随着技术的发展Roder团队对几何特征提取的精确性进行了验证,其结果不容乐观,为了改善此方法的精确性进而可变形模板法应运而出,通过定义一个参数可以调整的器官模型,并通过能量函数来作为该器官的几何模型,但是函数中的各项权值系数及其依赖经验,而且能量函数的优化十分耗时,而人脸识别又需要迅速高效。因此几何特征法慢慢的淡出设计者的视线。基于模型法:包括隐马尔科夫模型,主动形状模型等模型,其中特征最为显著的就是隐马尔科夫模型,但是其在应用过程中又牵扯到Baum-Welch算法以及ReversedViterbi算法,使得其应用难度、技术门槛颇高,在技术普及层面让人望而却步。基于模板法:基于模板法是目前的主流算法,包括相关匹配法、特征脸法、线性判别法、奇异值分解法等,而本文重点基于卷积神经网络法也在其行列之内,卷积神经网络法是一种非线性动力学系统,有着良好的自适应能力,而且因为其提取了相邻像素之间的相关性知识,可以得到非常好的识别效果,因此本设计在基础层面上将应用卷积神经网络完成人脸识别功能。2.2卷积神经网络卷积神经网络实际上就是一种特殊的人工神经网络,人工神经网络是一种模拟生物神经系统的结构进行信息处理的算法数学模型。卷积神经网络实质上是一种包含卷积运算的人工神经网络,由若干卷积层和池化层组成,在图像处理尤其是图像分类识别方面的表现十分优异。2.2.1卷积神经网络的特点及应用卷积神经网络(CNN)是一类包含卷积计算且具有深度结构的前馈神经网络,其发展现在已经到了很高的水平和层次。卷积神经网络有着表征学习的能力。表征学习是学习一个特征的技术的集合:可以将原始的采集数据转换成为能够被应用机器学习来有效开发的一种形式,在这种技术支持下它使人们解放了双手不需要手动提取特征信息,节约了大量的工作时间,这种技术还允许机器自己学习如何提取信息进而机器能从输入信息中自主自动的提取高阶特性,从另一种角度来看卷积神经网络具有生物学相似性的特点。目前卷积神经网络被广泛在众多领域如:计算机视觉、自然语言处理、高能物理学、遥感科学等领域。本文设计的人脸识别系统属于计算机视觉应用的分支,其核心思路是把卷积神经网络作为最核心的算法用来进行人脸图像的识别与分类,最终完成人脸识别的目的。2.2.2卷积神经网络一般结构及常见框架卷积神经网络一般具有三层结构,分别为输入层,隐含层,输出层;卷积神经网络的输入层可处理多维数据,在计算机视觉应用中一般设置为平面上的二维像素点和RGB通道的三维输入数据,与其他的神经网络系统一样,卷积神经网络系统也需要对输入特征进行标准化处理即对输入的像素进行归一化,具体的可以将分布于[0,255]的原始像素归一化到[0,1]的区间内。隐含层包括卷积层、池化层、全连接层3类常见的构筑。卷积层和池化层一般会存在多个且交替设置,一个卷积层连接一个池化层,池化层后再连接一个卷积层,交替设置的数量越多结构也就越复杂,相应的精度也会越高。卷积层中输出特征图的每个神经元与其输入局部连接,通过权值与局部输入加权后在加上偏置值,得到的及为该神经元的输入值,其过程等同于卷积,卷积神经网络也是以此命名的。卷积神经网络的输出层因为其上游通常为全连接层,所以在结构工作原理等方面与传统前馈神经网络的输出层相同,在本文所涉及的人脸识别问题中,输出层可设计为输出物体的中心点坐标、大小和分类。常见的卷积神经网络构筑框架有:时间延迟网络(TDNN)应用于语言识别问题的一维卷积神经网络,这也是最早被提出来的卷积神经网络算法之一,随着时间的发展同为一维卷积神经网络的WaveNet算法加强了学习能力,但是其设计之初是为了面向序列数据,其结构和现在我们常见的卷积神经网络有着巨大的差异;LeNet-5神经网络是专门应用于图像分类问题的二维神经网络,其学习目标是从一系列单位手写的灰度图像中识别区分0-9,其隐含层设计中卷积层、池化层、全连接层均有两层,LeNet-5网络框架图如图2-2-1所示,从现代深度学习的角度来看LeNet-5神经网络规模很小现在已逐渐被更为优化的算法取代。图2-2-1LeNet-5网络图2-2-1LeNet-5网络框架图图2-2-2:VGGNet网络结构图VGGNet是牛津大学视觉几何团队(VGG)开发的一组卷积神经网络算法目前包括VGG-11、VGG-11-LRN、VGG-13、VGG-16、VGG-19这5个版本,由于VGG-16优异的性能和良好的应用程度本文中以此为例进行描述,VGG-16的隐含层由13个卷积层、3个全连接层和5个池化层组成,此构筑中使用3图2-2-2:VGGNet网络结构图2.2.2卷积层卷积层的功能是对输入数据进行特征提取,内部组成包含多个卷积核,组成卷积核的所有元素都对应着一个权重系数和一个偏差值,整体结构类似一个前馈神经网络的神经元。卷积层的基本参数包括卷积核大小、步长和填充,三者共同决定输出特征图的尺寸,其中卷积核的大小可以自由地被定义为任意一个小于原输入图像大小的值,且一般的当该数值越大时能够提取的图像特征也就越多越复杂;卷积步长则决定了卷积核扫描两次相邻特征图时的位置和距离;填充则是为了抵消卷积堆叠卷积层堆叠造成计算中尺寸收缩影响的方法。在卷积层中,输入项与卷积核进行点积运算,在传入结果至激活函数,就可得到输出特征图。卷积层l的第j单元的输出值aᶥⱼ的计算公式(1):aⱼᶥ=ƒ(b其中Mᶥⱼ表示选择的输入特征图的集合,k表示可学习的卷积核。图2-2-1所示,展示了卷积层的计算过程和操作过程——将5*5输入图像与3*3的卷积核进行卷积,得到3*3的输出图像。图2-2-3卷积图2-2-3卷积层计算过程2.2.3池化层通常在连续的卷积层中间会周期性插入一个池化层。其作用是起逐渐降低数据体的空间尺寸的作用,能减少网络参数的数量,减少计算资源耗费。简单一点就是对输入的特征图压缩,一方面使特征图变小,简化网络计算复杂度减少运算压力;另一方面进行特征压缩,提取主要特征和信息过滤。池化层选取区域与卷积核扫描区域的步骤原理基本相似,因此池化层也有大小、步长、填充这三个参数控制,在此不再赘述。池化操作一般有两种,一种是是均值池化法(average-pooling)、还有一种是最大池化(max-pooling)通常来讲,最大池化效果要好一点,但均值池化在全局池化操作中应用较广。需要注意的是池化窗口一般为2*2或3*3的大小,如果窗口过小无法达到权值参数的效果,同时如果窗口过大就会比较容易过多丢失局部特征。图2-2-4所示,输入为一个4*4的图像,通过一个2*2的池化口,池化步长为2,采用max-pooling操作第一个池化口覆盖值为5、7、8、5,最大为8,同理第二个最大为6,依次第三为9,第四为7。最终得到2*2的输出结果。显著的降低了计算特征向量的计算量,并因此有效提高了图像处理的速度。图2-2-4最大图2-2-4最大池化操作示例2.2.4全连接层卷积神经网络中的全连接层等价于传统前馈神经网络中的隐含层。位于卷积神经网络隐含层的最后部分,并只向其它全连接层传递信号。其作用是连接所有特征,将输出值送给分类器(如softmax分类器)。全连接可以近似理解为矩阵乘法,相当于一个特征空间变化,将有用的信息提取整合。再加上激活函数的非线性映射,多层全连接层理论上可以模仿任何非线性变化。全连接的一个作用是维度变化,将高维的变成低维,同时保留有用信息。另一个作用是,映射原始特征到各个隐语义节点。对于最后一层全连接而言,实质上为分类的显示表达。也可用支持向量机SVM、softmax分类器,进行分类。在人脸识别中,全连接层将人脸图像处理后用用特征向量表示,人脸识别就可以通过比较特征向量相似度完成,利用这类技术可以处理复杂的表情识别问题、面部遮挡、光线影响等问题,当然在一些简单的卷积神经网络中,全连接层的功能也可以完全由全局均化池取代。2.3神经网络的训练与优化前文介绍了卷积神经网络大致框架的设计,其中卷积核及其他的一些结构中的参数需要通过训练来获得。训练的目标是卷积核,主要目的是得到相关参数,得到的相关参数使识别结果更加精确,提高卷积神经网络模型的通用性。提高通用性就需要对卷积核进行改写。经过成千上万的训练集来训练,每次加入新数据,都可能改变卷积核里的值。常用BP算法(backpropagation反向传播算法)进行训练。2.3.1反向传播算法反向传播(backpropagation)是“误差反向传播”的简称,是一种用来训练人工神经网络的常见方法,一般与梯度下降结合使用。对网络中所以的权重计算损失函数的梯度。这个梯度会反馈给最优化方法,用以更新权值已最小化损失函数。通常被认为是一种监督学习方法,反向传播需要根据输入期望得到的已知输出,计算损失函数的梯度,进而更新权值。反向传播算法算法主要是由激励传播、权重更新循环迭代构成,直到网络满足一定条件才停止。激励传播分为两个阶段:前向传播阶段、反向传播阶段。前向传播阶段将输入数据送入网络以获得激励响应,计算每层的预估值;反向传播阶段将激励响应同对应的目标输出求差,获得隐层与输出层的响应误差。权重跟新将输入激励和响应误差相乘获得权重梯度;将得到的梯度乘上一个学习率,取反后加到权重上。2.3.2卷积神经网络系统的优化(1)正则化,在卷积神经网络运行过程中难免出现过度拟合的情况,为了防止过度拟合的发生可以采用各种正则化手段,包括但不限于Lp正则化、随机失活、链接失活等方法。(2)分批归一化(BN),由于数据要在隐含层内进行逐级传递,其均值和标准差会发生一定的改变,此现象被称为协变漂移,而此现象的发生也会导致深度网络发生梯度消失,从而使得卷积神经网络无法正常工作,俗称BN的分批归一化法通过引入一个机器额外学习的参数来解决此类问题,由于卷积神经网络的学习能力,BN参数会在运行过程中不断更新修正,在实践中有着良好的效果(3)跳跃链接,此技术的引用来源于循环神经网络,常与分批归一化法联用,共同缓解深度网络中梯度消失的问题,两类技术的联用虽然不能完全解决这一问题,但是也在相当大的程度上缓解了此类问题的发生。(4)量化,量化通过使用低数值精度的方式来提升计算速度,并且已经在一些深度网络中得到了尝试,对于卷积神经网络来说XNOR所搭建的卷积神经网络就是利用此类方法提升运算速度。(5)FFT,FFT卷积可以应用在卷积和池化两个计算步骤中,此手法可以降低计算的复杂度,同时前文所提到的VGGNet包含了GPU设备的FFT,可以在进一步加速的同时降低内存的利用。(6)权重稀疏化,利用此方法可以减少卷积核的冗余,降低计算的难度。以上前三条均为针对卷积神经网络精确度方面的优化后三者均为运算速度方面的优化提升,在实际应用中应注意根据情况合理联合利用3开发工具简介3.1开发环境简介本次实验是在win10操作系统上使用python语言在开源的深度学习平台Tensorflow上完成的。采用的CPU为intercorei710870H,未使用GPU加速,人脸检测算法由调用dlib库来实现,也可使用opencv来实现。实际使用过程中,dlib的识别效果优于opencv,但opencv识别速度快很多。开发工具:微星笔记本电脑GP76开发系统:Windows10开发软件:python3.7.6、tensorflow2.4.1、VisualStudioCodepython库:numpy、opencv、dlib3.2Python简介Python是由荷兰数学家和计算机科学研究学会的GuidovanRossum在1989年圣诞节期间,为打发无聊的圣诞节而编写的一个编程语言。Python有许多内置模块及基础代码库,覆盖网络、文件、GUI、数据库、文本等大量内容,还有大量第三方库。Python是用来编写应用程序的高级编程语言,使用Python开发可以有效的节省大量开发时间,许多功能可直接调用现成的库。例如YouTubu、豆瓣等大型网站就是主要使用Python开发完成。Python程序的优点是简洁,代码看上去很易懂,对于初学者很友善。其缺点也很明显,运行速度慢,代码安全性欠妥,python的程序发布即对源码进行发布。Python是解释型语言,在执行的时候无法将源码直接翻译成机器语言,需先翻译为中间代码,再由解释器对中间代码进行解释运行。对于我们众所周知的C语言就是一门编译型语言。在程序运行前需先编译,将源码编译为计算机能直接理解的机器语言。因此在处理速度方面编译型语言要比解释型语言快得多,这也是Python程序运行起来较慢的原因。3.2.1python安装图3-2-1python安装从Python官网()选择所需下载的python版本根据Windows版本选择64位安装程序或者32位安装程序。下载完成后,运行exe安装程序。界面如图3-2-1:图3-2-1python安装切记勾选AddPython3.7toPATH,点击InstallNow即可完成安装。3.3TensorFlow简介TensorFlow是由谷歌AI(ArtificialIntelligence)团队谷歌大脑开发和维护的,是一个基于数据流编程开源的符号数学机器学习系统。被广泛应用于各类机器学习算法的编程实现。其前身是谷歌的神经网络算法库DisBelief。TensorFlow拥有多层级结构,可部署与各类服务器、PC终端和网页并支持GPU和TPU高性能数值计算。支持C、Python、JavaScript、C++等多种编程语言。TensorFlow即支持CPU,也支持CPU+GPU。GPU加速需显卡额外支持。TensorFlow是基于VC++2015开发的,在windows下安装需下载VisualC++RedistributableforVisualStudio2015

来获取MSVCP140.DLL的支持。还需下载安装Anaconda以及Python3.X版本的编译器。3.3.1TensorFlow安装Windows环境可以安装MicrosoftVisualStudio2017,里面包含windows环境下的各种python开发工具。如图3-2-3-2,直接在官网下载软件安装程序等待下载完成安装即可。图3-2-2VisualStudio2015python组件图3-2-2VisualStudio2015python组件安装安装完成后,运行Windows命令提示符(或使用键盘快捷键win+R输入cmd按回车),在命令提示符窗口输入pipinstalltensorflow等待程序运行完毕,出现successfully即安装成功。3.3.2其他Python程序库的安装本实验还需要安装dlib、opencv、numpy库来完成人脸识别的部分,安装dlib、numpy、opencv与安装tensorflow基本类似,在Windows10命令提示行下输入pipinstall+库名即可,这里要注意的是安装dlib库需要先安装cmake库以及boost库。3.4LFW人脸数据库LFW(LabledFacesintheWild)人脸数据集是人脸识别中常用的数据集,由美国马萨诸塞州立大学阿默斯特分校计算机视觉实验室整理完成的数据库。其提供的人脸图片来源于生活中的自然场景,在表情、年龄、遮挡等因素的影响下同一人的照片差别也会很大。每张图片尺寸为205*250,绝大多数均为彩色图像,只有少许黑白人脸图片。图2图2-4-1LFW人脸数据集示例图片

3.5MicrosoftVisualStudioCode简介MicrosoftVisualStudioCode简称VSCode是由微软公司发布的一款纯文本的编辑器,不是集成开发环境,需要配置相关编译器来完成各种语言的程序开发。可在官方网站进行下载安装,软件是完全开源免费的。其本身支持各种安装各种插件对其扩展。图3-2-3VSCode图3-2-3VSCode程序使用界面

4系统方案设计4.1方案简介本实验在Windows10环境下,基于深度学习开源平台TensorFlow,使用Python语言完成具有人脸识别功能的程序开发。系统流程大致分为四部分:第一部分采用电脑摄像头采集待识别的人脸数据集,第二部分是录入网络上收集的人脸数据集与第一部分一起作为此次实验用到的数据集。第三部分是使用实验制作的人脸数据集进行学习训练,得到训练模型。第四部分用得到的人脸模型进行人脸识别,打开摄像头判断摄像头前是否有人脸,在判断采集到的人脸是否为第一部分采集的人脸,是则在程序尾打印ture,相反打印false。4.2系统布局本文设计采用的布局由三个部分组成:获取人脸图像集、训练模型、使用模型识别。第一部分制作人脸图像集由两个程序完成。4.2.1人脸训练集获取图片集可以通过程序给自己拍照,或者使用其他的人脸图片集。本文通过程序获取本人图像约1000张和lfw数据集约5749人的13233张照片制为本文的人脸数据集。程序使用dlib来对人脸部分进行处理。Dlib是一个先进的C++工具包,里面包含机器学习算法和工具,此文中主要使用其图像处理中高品质的人脸识别。用其自带的frontal_face_detector作为特征提取器,采集收集到的图像中的人脸部分,完成程序算法中的识别图像中人脸部分的功能。也可使用opencv来识别人脸,速度相对较快,但是识别质量还是使用dlib效果要好些。4.2.2机器学习模块制作好训练数据后,通过CNN来训练数据,就可以计算机记住录入的人脸特征,学习如何识别人脸。4.2.3使用模型识别使用训练得到的模型进行人脸识别。通过打开摄像头判断摄像头采集到的图像信息中是否由人脸,在通过模型判断捕获的图像是否为录入的人脸图像。参考文献[1]姚敏.数字图像处理[M].北京:机械工业出版社,2006.[2]霍宏涛.数字图像处理[M].北京:机械工业出版社,2004.[3]张德丰.MATLAB数字图像处理[M].机械工业出版社,2009[4]基于测地线环的三维人脸快速识别算法[J].项聪颖,周大可,杨欣.电子测量技术.2018(04)[5]深度学习在人脸识别和安防大数据中的应用[J].王春茂,杨彭举,浦世亮.中国安防.2016(09)[6]基于尺度不变特征变换优化算法的带遮挡人脸识别[J].周玲丽,赖剑煌.计算机应用.2011(S1)[7]复杂光照条件下的人脸识别方法[J].程乔,游锦海,欧阳宁,莫建文.计算机仿真.2010(12)[8]多视角三维人脸识别中的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论