基于深度学习的人脸识别系统研究_第1页
基于深度学习的人脸识别系统研究_第2页
基于深度学习的人脸识别系统研究_第3页
基于深度学习的人脸识别系统研究_第4页
基于深度学习的人脸识别系统研究_第5页
已阅读5页,还剩28页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

摘要近年来,随着科技的进步与发展,人脸识别技术被广泛应用于各种领域,如安全验证、身份识别等。随着应用领域的增多,应用的场景也正在变得更加复杂,人脸识别系统需要面对光照条件变化、表情变化、遮挡人脸等一系列挑战。本文旨在设计一套人脸识别系统,通过一套程序进行分类,再经由不同深度、广度的深度学习网络进行识别,最终输出结果。该系统的目标是通过分类处理、并行处理的方式,对复杂程度不同的人脸进行高效率的识别处理从而应对大数据时代指数级增长的数据量,满足实际生产生活过程中实时人脸识别的需求。为了达成该目标,我们总结现有模型,如VGGFace、FaceNet等人脸识别模型,发现其结构与性能之间的关联性,找出一种模型在特征提取的方面表现突出用以识别有所遮挡的人脸等。通过一系列的实验总结不同结构参数对识别准确率、计算效率和鲁棒性的影响规律,并在此基础上,最终将多种不同种类的结构与一个分类程序整合为一个全新的模型,进行所需的训练,并完成需要的计算效率和准确度的测试。从结果来看,本文中设计的系统在同时处理不同种类的人脸,尤其是数据量比较大的人脸数据的过程中拥有更好的性能表现。该结果充分展示了本系统在机场、校园、医院等人流量较大的场所中的人脸图像识别能力,例如,在机场中可以快速的寻找未登机的旅客、在学校中可以精准快速识别学生身份信息等。该系统能够有效处理大量的、多样的人脸数据,解决了传统人脸识别对环境的高要求,并且大大减轻了运算成本、硬件部署成本,使得高性能人脸识别技术能够更加广泛服务于日常生活场景中,能够有效满足当代社会生产生活当中对人脸识别技术的需求。总而言之,本文设计了一款基于深度学习的人脸识别系统,通过处理、学习图像信息,有效地应对了复杂场景情况下的人脸识别挑战。本文提出的系统整合了多种目前存在的基于深度学习的人脸识别系统的优势,同时针对光照变化、表情变化、部分遮挡等复杂状况进行了一定的优化,在测试中展现出了较高的效率和准确率。关键字:深度学习;人脸识别;模型训练;优化设计Inrecentyears,withtheadvancementoftechnology,facialrecognitionhasbeenwidelyappliedacrossvariousfieldssuchassecurityverificationandidentityauthentication.Astheapplicationdomainsexpand,theusagescenarioshavebecomeincreasinglycomplex.Facialrecognitionsystemsnowfacearangeofchallengesincludingvaryinglightingconditions,facialexpressions,andocclusions.Thispaperaimstodesignafacialrecognitionsystemthatclassifiesdatathroughadedicatedprogramandthenperformsrecognitionusingdeeplearningnetworksofvaryingdepthandbreadth,ultimatelyoutputtingtheresults.Thegoalofthissystemistohandlelargevolumesoffacialdatawithdifferinglevelsofcomplexityefficientlythroughclassificationandparallelprocessing,addressingtheexponentialgrowthofdataintheeraofbigdataandmeetingthereal-timerequirementsoffacialrecognitioninpracticalsettings.Toachievethisgoal,wereviewedexistingmodelssuchasVGGFace,FaceNet,andDeepFacetoexploretherelationshipbetweentheirstructureandperformance.Forinstance,somemodelsareparticularlyeffectiveatfeatureextraction,makingthemmoresuitableforrecognizingpartiallyoccludedfaces.Throughaseriesofexperiments,weanalyzedhowdifferentstructuralparametersaffectrecognitionaccuracy,computationalefficiency,androbustness.Basedontheseinsights,weintegratedvarioustypesofmodelarchitectureswithaclassificationprogramtoformanovelmodel,conductedtraining,andtesteditscomputationalefficiencyandaccuracy.Theresultsshowthatthesystemdesignedinthisstudyperformswellwhenhandlingdiversetypesoffacialdata,especiallylarge-scaledatasets.Thesefindingsdemonstratethesystem'sstrongfacialrecognitioncapabilitiesinhigh-trafficenvironmentssuchasairports,campuses,andhospitals.Forexample,itcanquicklylocatepassengerswhohavenotboardedatanairportoraccuratelyidentifystudentinformationataschool.Thissystemeffectivelyprocesseslargeanddiversefacialdatasets,overcomingtheenvironmentallimitationsoftraditionalfacialrecognitionsystemswhilesignificantlyreducingcomputationalandhardwaredeploymentcosts.Asaresult,high-performancefacialrecognitiontechnologycanbemorewidelyusedineverydayscenarios,meetingthegrowingdemandsforfacialrecognitioninmodernsociety.Inconclusion,thispaperpresentsafacialrecognitionsystembasedondeeplearningthatemploysclassificationandparallelprocessingtoeffectivelyaddressthechallengesofrecognizingfacesincrowdedandcomplexenvironments.Theproposedsystemintegratesthestrengthsofmultipleexistingdeeplearning-basedfacialrecognitionmodels,anditisoptimizedforchallengingconditionssuchaschangesinlighting,facialexpressions,andpartialocclusions.Itdemonstrateshighefficiencyandaccuracyintesting.Keywords:DeepLearning;FacialRecognition;ModelTraining;OptimizationDesign目录TOC\h\z\t"章,1,节,2,段,3"1绪论 71.1研究背景 71.2深度学习 71.3论文的主要工作 81.4论文结构 82基础理论知识介绍 92.1神经网络 92.1.1神经元 92.1.2前馈神经网络 102.1.3反向传播算法 102.2卷积神经网络 112.2.1局部连接 112.2.2权值共享 112.2.3卷积层 122.2.4池化层 122.2.5全连接层 122.3深度学习框架 122.3.1TensorFlow 132.4本章总结 133人脸识别系统设计与实现 133.1系统总体设计 133.1.1设计目的及成果 153.1.2软件开发与开发硬件 153.2人脸探测模块 163.2.1人脸检测的发展 163.2.2人脸检测网络MTCNN 163.2.3工程详解 173.3仿射变换模块 173.3.1仿射变换计算 173.4特征提取模块 183.4.1InsightFace人脸识别模型 183.4.2模型训练 183.4.3工程实现 193.5人脸识别模块 203.6本章总结 214系统测试与结果 214.1迁移学习 214.2人脸探测模块 214.3仿射变换模块测试 244.4特征提取模块 244.5系统整体调试 265总结和展望 295.1总结 295.2展望 30

1绪论1.1研究背景人脸识别是生物识别领域的一个重要组成部分,自其首次诞生于20世纪60年代以来,一直在不断的发展、进步。早期的人脸识别技术主要依赖于几何特征的分析以及人工编写的特征提取器,例如独立成分分析(ICA)[1]、线性判别分析(LDA)即“费舍尔面”[2]等,然而,上述系统仅适用于较封闭的可控环境内,在面对日常环境中复杂的光照变化、背景变化、人物表情变化时显得力不从心。而到了二十一世纪的今天,随着深度学习概念的提出,人脸识别技术出现了新的突破,通过引入卷积神经网络CNN[3],人脸识别系统开始能够自动学习多层次的特征表示。2014年,研究人员首先提出了DeepFace和DeepID[4]等学习模型,并通过LFW数据集进行训练,取得了积极的结果,随后,FaceNet、ArcFace等算法通过改进损失函数和网络结构,显著提升了在复杂场景下的鲁棒性。这一进步大大提升了人脸识别系统的可用性、鲁棒性,使其逐渐应用于包括身份验证[21]、金融支付、图像识别[20]等一系列领域之中。随着应用范围的扩展,目前人脸识别多用于机场、学校等人流量较大的场所,如何快速、高效、实时地进行识别成为了急需解决的问题,而这也是本文的工作方向。1.2深度学习深度学习是当下的一个热门研究方向,已经在多个领域里展现了其强大的能力,包括计算机视觉、自然语言处理、语音识别、自动驾驶、机器人系统等等。深度学习通常被认为是机器学习的一个子领域,同传统机器学习相比,其最大的优势在于可以直接从原始数据中,尤其是图像和语音等难以处理的数据中提取高层次的抽象特征,而不再需要人工提取和提供。这一优势帮助其能够处理更多更复杂的数据,具有更强的可用性。然而,深度学习对于数据量和算力的高要求同样不容忽视,其前身神经网络早在20世纪40年代就已被初次提出,直到21世纪的今天,随着互联网的广泛应用和GPU算力的增强才开始发光发热。深度学习第一次被提出可用于视觉识别领域是在1989年,加拿大的YannLeCun教授首次提出了由卷积层、池化层、全连接层组成的卷积神经网络的概念,即我们所熟悉的CNN(ConvolutionNeuralNetwork)。历经数十年的发展,2012年,Hinton教授同其学生在大规模图像识别挑战赛ImageNet[8]上利用深度学习的方法达到了85%的准确率,远远大于传统方法的75%正确率,并最终一举夺魁。在这一方法横空出世后,Facebook的研发团队在2014年研发了DeepFace模型,首次采用了用3D建模进行人脸对齐,减少姿态变化影响,并在LFW(LabeledFacesintheWild)数据集中达到了97.35%的准确率。紧随其后的2014-2015年,香港中文大学的团队相继推出了DeepID系列的三个模型,采用了类似于VGG的更深层次的网络,并引入了联合监督学习的方法,为后续的模型奠定了基础。而后Google和牛津大学团队分别推出了FaceNet和VGGFACE推动了大规模数据处理的发展,直到2017年,提出的SphereFace模型进一步完善了损失函数的理论。至此,深度学习在人脸识别领域的应用已经较为成熟。总而言之,深度学习的工作方式与人类的大脑十分相似,利用非线性的模型对特征逐层抽象提取,具有前所未有的优越的表达能力和学习能力,随着算法优化、硬件升级等举措,逐渐克服了其高算力要求、学习成本高的困境[9],可以在人脸识别领域大放异彩。1.3论文的主要工作目前,深度学习在人脸识别领域的发展主要表现在数据处理量的增长、计算能力的增长、算法的创新。随着应用场景的不断拓展,一个人脸识别系统需要更快、更准地处理更多人脸。例如,学校的人脸识别闸机在集中上下课的时段会面对较大的识别压力,需要面对不同角度的人脸,甚至需要同时识别多个人脸,而当前的系统往往会出现无法识别、识别错误等情况。因此,设计一个可以快速识别多角度人脸、同时识别多个人脸的系统势在必行。为了完成上述目标,本文将对如下几点进行研究,并进行改进:探究深度学习的原理和相关知识,了解目前主流的深度学习框架,分析他们的优缺点,进而应用于自己的系统之中。从应用的角度出发,分析系统的需求,设计整个系统的框架功能,以五个主要模块为核心搭建一套人脸识别系统,分别为:人脸探测模块、仿射变换模块、特征提取模块、人脸识别模块、多人脸识别模块。各个模块既可独立使用,也可以整合在一个控制系统下使用。各个模块均使用Python3.6版本开发,使用OpenCV、TensorFlow等软件包辅助开发,便于设计和修改。利用训练集,预先训练出一些人脸识别模型,而后通过搜集、生成等方式取得一些亚洲人脸照片,进行迁移学习。对全套系统进行整体测试,重点关注其整体识别性能,包括准确率以及实时性,并对稳定性进行重点分析。1.4论文结构全文共分为六章,个章内容分别为:第一章是本文的绪论部分,主要介绍了该课题的研究背景与相关技术背景,交代了本文的主要工作内容,给出了全文的行文结构。第二章主要介绍了本文研究过程当中的主要技术及其相关背景。首先,将介绍神经网络和卷积神经网络,并分析其结构和相关原理。除此之外,在该段中对目前主流深度学习框架进行讨论、比较、分析。第三章为本文的核心章节,讲述了本文所提出的人脸识别系统的总体框架与流程。而后,将根据识别的一系列流程依次介绍各个模块:人脸探测模块、仿射变换模块、特征提取模块、人脸识别模块、多人脸识别模块。在介绍相关理论的基础上,说明本文所提出系统的改进。最后,结合实验数据进行分析。第四章主要讲述了迁移学习的相关知识,针对之前提到过的学校应用场景进行分析并进行微调,对整个流程进行了系统的阐述。最后,说明了整个操作系统的一些注意点和操作,并进行实验结果分析。除此之外,进行了系统的检测与分析,确保每个模块都可以单独正常运行,并进行运行分析。第五章将进行总结和展望。在这一章将对本文所做的相关工作进行总结,针对研究和测试过程当中出现的问题进行分析,提出不足之处,并针对这些不足对未来的研究工作提出展望。

2基础理论知识介绍深度学习的主要优势在于可以将数据的原始形态未加处理地直接输入,经过算法自身层层抽象,将原始数据变为特征表示,最后以特征到任务目标的映射作结,一系列过程无需夹杂任何人为的操作。深度学习当中有多种代表性的算法,其中一种是神经网络算法,包括深度置信网络[5],卷积神经网络和递归神经网络等。其中,卷积神经网络的用途最为广泛,普遍应用于自然语言处理,医学图像处理,计算机视觉技术等领域,也将是本章重点讲述的神经网络2.1神经网络神经网络在诞生之初,是工程师受到生物神经网络的启发,模拟人脑的神经结构构建的机器学习模型,本质上仍属于传统机器学习的范畴。人脑的信息处理方式是信息依次经过1000亿个神经元,以单独的方式进行信息加工。人工神经网络类似,用类似于神经元的节点串联起传统计算机语言的输入与输出部分,数据在经过这些节点时,按照其设定好的函数进行计算。总而言之,神经网络让计算机从被动地接收数据进行计算,变成了主动接收数据进行学习。2.1.1神经元神经元是神经网络的基本计算单元,其数学模型被设计成惊喜模拟生物神经元的关键特性,从而实现复杂的信息化处理功能。人工神经元通常采用的是扩展的McCulloch-Pitts模型进行数学抽象化处理,公式如下:

y(2.1)其中包含了经典的加权求和以及非线性激活分别用以模拟突触强度和动作电位发放阙值,也包含了时间延迟项以及随机噪声用以分别模拟生物膜电位累计过程和生物系统中的信号噪声。除此之外,通常利用改进的Hebbian学习规则来实现突触的可塑性,公式如下:Δ(2.3)该规则同时考虑了一系列的生物学习机制,包括长时程增强(LTP)、抑制(LTD)和时序依赖(STDP)等。除了软件,硬件也是神经元的重要组成部分,现代忆阻器交叉阵列与突触神经管等器件能够从硬件角度物理模仿这种动态可调的连接强度。与人脑相比,人工神经元可实现的纳秒级别的运算远远快于人脑的毫秒级运算,然而,在能耗效率方面人工神经元远不及人脑。人工神经元通过分布式表征与层次化组合两个特点,实现了能够逼近任何复杂的函数的强大计算系统,它的动力学行为不仅可以用离散的迭代方程描述,还可以用连续时间的微分方程进行更为精密的建模,为理解智能计算提供了卓越的研究框架。2.1.2前馈神经网络单一的人工神经元只能提供简单的反馈,对于一个复杂的决策模型,我们需要一个更为复杂的结构,前馈神经网络。前馈神经网络(FNN)是深度学习中最基础且应用最广泛的网络架构,核心特征在于信息的单向流动,数据从输入层到输出层一路到底,层与层之间通过不同的参数形式进行连接,采取激活函数进行非线性激活,过程中不包括任何的反馈链接或循环结构。一个完整的前馈神经网络通常包含几个部分:输入层、输出层、隐层[6]。输入层的主要作用便是输入信号,也可称之为收集原始信号;隐层的主要作用是提取原始数据中的特征,因其不直接接受和发送信号的特征被称之为隐层;输出层的主要作用是输出预测的结果。在前向传播的过程中,每一层的计算公式可大致表示为:a(2.3)其中W为权重矩阵,b为偏置向量,f为非线性激活函数。该结构中采取的层级式非线性变换令前馈神经网络具备了强大的函数逼近能力,甚至理论上单一隐藏层即可达到逼近任何连续函数的效果。2.1.3反向传播算法反向传播算法,又称BP算法[7],是训练神经网络最基础但也是最核心的算法,该算法使用链式法则高效计算损失函数对网络参数的梯度。其具体的过程可以大体分为两个阶段,即前向传播阶段和反向传播阶段:在前向阶段,输入数据将逐层通过网络计算并预测输出,记录这其中的中间激活值;在反向阶段中,首先是计算输出层误差,而后通过链式法则将误差从输出层向输入层逐层回传,依次计算各层权重和偏置的梯度。举例来说,对于第l层来说,其误差项由后一层的误差与本层的激活函数按权重矩阵传播得到,具体公式为:δ(2.4)最终利用梯度下降法更新参数,具体公式为:W←W−η(2.5)整个反向传播算法的关键在于通过动态规划式的梯度回传来避免重复计算,简化了计算过程并解放了算力,使得深层网络的训练成为了可能,但其效果同样受到激活函数的选择、学习率设置以及优化器的显著影响。2.2卷积神经网络卷积神经网络在近年来十分流行,作为一种专为处理网格状数据而设计的人工神经网络,在视频图像处理等诸多领域表现出色。卷积神经网络的历史最早可以追溯到1959年,加拿大神经科学家Hubel和Wiesel在研究猫的初级视皮层的过程中发现:神经元的网络结构可以大大降低反馈神经网络的复杂性,受这一发现的启发,卷积神经网络应运而生。到了二十一世纪的今天,卷积神经网络技术已经被广泛应用于人脸识别领域。CNN的核心组件包括卷积层、池化层、激活函数、SoftMax层等,利用逐层构建、局部连接、权值共享的方式,从图片中提取出更为抽象的特征,有效降低参数数量并保留空间信息,大大提高了相关任务的性能。2.2.1局部连接局部连接被认为是卷积神经网络设计的核心原则之一。人类的视觉神经元感受的是局部图像而不是整体,于是工程师通过限制神经元仅与输入数据的局部区域建立连接来模拟生物视觉系统的感受野机制。相较于传统的全连接神经网络,局部连接网络参数更少,在现代大分辨率图像上更容易训练。具体来说,每一个神经元都只会与前一层的部分区域连接,等同于以一个局部感受野扫描整个图像,而所有的神经元都会被连接到下一层的某个节点上完成输出。局部连接的方式大大减少了网络的连接数和权值参数,降低了训练的难度,将速度提升五至八倍,将准确度提升30%以上。2.2.2权值共享权值共享同样是卷积神经网络设计的核心原则之一,指在整个输入数据的不同位置上使用相同的滤波器进行特征提取,从而在局部连接的基础上,有效地进一步减少了参数。具体地说,由于图片的统计特性和特征所在位置无关,即图片具有平移不变性,因此图像的底层趋于相似。因此,在开始分析后,仅需提取底层特征。所有局部连接的滤波器的权值便可以共享,在不影响特征提取功能的前提下有效减少近千倍的权值参数。从数学的观点来看,权值共享的数学本质是离散卷积运算,因此,无论图片大小,只需滤波器大小的参数便足矣,进而达到减小参数的目的。2.2.3卷积层卷积层[18]是卷积神经网络的核心组件之一,顾名思义,即在图像上进行卷积滤波,通过局部连接和权值共享的卷积运算从输入数据中提取空间层次特征。图像的卷积,即一定大小的滤波器在整幅图像上通过步长控制滑动间隔,使用填充的方法保持空间分辨率,并利用多通道机制融合不同特征。卷积操作中有两个重要的超参数:滤波器尺寸和卷积步长,这两个参数将对最终的模型带来理想的性能提升。卷积神经网络当中的滤波器尺寸并非固定不变的,而是通过学习得到的,囊括了纵向、横向的边缘滤波器和检测纹理、光影、颜色等底层特征的滤波器等。通过合理地组合这些滤波器并加以训练,从低级到高级的视觉特征将被逐级提取为具有高层语义的表示,并对应到具体的样本类别。2.2.4池化层池化层[19]又被称之为降采样层,是卷积神经网络的核心组件之一,主要用途是在不损坏识别结果的前提下,降低样本的空间维度,在减少计算量的同时增强模型的平移不变性和鲁棒性。池化操作根据上文所提过的图像局部不变性进行数据降维,对图像按照赤化的区域进行重新划分,然后依次根据池化规则进行计算。主流的池化规则有两种,最大池化和平均池化。池化层的主要功能是去除冗余的信息并防止“过拟合”现象的产生,并根据池化规则的不同可以进一步增加突出显著特征或去除噪声等一系列的功能。实际上,池化规则也可以被简单理解为卷积操作,在现代网络中也有时被步长卷积所替代,但在经典架构中仍有不可替代的作用。2.2.5全连接层全连接层是神经网络的基础组件之一,作用是把卷积得到的二维图像转化为一维特征向量,通常用于网络的最终分类或回归阶段,其核心特点是每个输入神经元与每个输出神经元均建立连接,实现全局特征的综合映射。但是由于卷积同样易于实现,故在现代常用全局平均池化或1×1卷积替代部分FC层以减少计算量。2.3深度学习框架深度学习框架是为高效实现、训练和部署神经网络而设计的软件工具包,利用其中的部件根据使用者的需求进行搭建,快速得到自己需要的复杂模型。深度学习框架的优势在于简化了使用者编写代码的过程,不必重复地写一些代码。目前常用的一些深度学习框架包括TensorFlow、Pytorch、JAX、MXNet等。下文将着重介绍本文使用的深度学习框架TensorFlow。2.3.1TensorFlowTensorFlow是由GoogleBrain团队开发的开源深度学习框架,第一个版本最早发布于2015年。作为端到端的学习平台,TensorFlow提供了完整的生态系统,包括模型构建、训练、部署和可视化工具。TensorFlow的核心架构基于数据流图,采取静态计算图的方式,通过张量在多维数组上的操作来实现高效的数值计算。TensorFlow可以在多个平台运行,支持在CPU、GPU和TPU等硬件加速器上自动分配计算资源,还提供了分布式训练能力以处理超大规模数据集。在后续的版本中,TensorFlow还整合了Keras以满足不同开发需求。目前,TensorFlow凭借其完备的生态系统使其成为从研究到生产的全流程解决方案,更是凭借其出色的计算优化、丰富的预训练库以及工业部署能力,一跃成为于计算机视觉、自然语言处理、推荐系统等领域不可或缺的深度学习框架。本文提出的人脸识别系统主要使用的是TensorFlow1.12.0版本,该版本发布于2018年11月,保持了TensorFlow1x系列的静态计算图模式,也是该系列的最后一个版本。1.12.0版本主要增强了KerasAPI的集成,优化了分布式计算和GPU计算性能。1.12.0版本作为该系列的最后一个版本,凭借其稳定高效的特性,仍被广泛应用于静态图工业级部署场景,尤其适配移动端以及web端环境。2.4本章总结在本章中,我们主要介绍了本文使用的主要技术的背景资料及相关内容,包括神经网络及其工作原理、卷积神经网络的核心思想及关键部件等、主流的深度学习框架和本文主要使用的TensorFlow1.12.0版本。为后续章节详细阐述本文提出的人脸识别系统做了相关背景及理论知识层面上的铺垫。

3人脸识别系统设计与实现本章详细介绍了提出的基于深度学习的人脸识别系统的算法原理以及实现办法。详细介绍了该系统的结构,并分别介绍了各个模块的功能,包括:人脸探测模块、仿射变换模块、特征提取模块、人脸识别模块四个部分。3.1系统总体设计本文提到的基于深度学习的人脸识别研究系统主要包括了四个大模块,分别为人脸探测模块、仿射变换模块、特征提取模块、人脸识别模块四个部分。总体结构如下图3.1所示图3.1系统结构下图3.2讲述了整个系统的工作流程,主要包括了1:1验证、1:N比对、数据库处理三大模块,及若干步骤,具体如图所示:图3.2系统工作流程图第一步:选择需要的功能进入对应的模块。第二步:选择从摄像头中已经提取好的图像。第三步:进行人脸对其等一系列操作,包括:人脸及关键点检测,该步骤大致检测出人脸数量、人脸范围并进行提取,输出人脸的位置坐标及关键特征点的坐标,利用MTCNN进行关键点的定位;人脸对齐,在该步骤中预处理图像,将人类面部五个重要点位,即双眼、鼻尖、双嘴角校准至相同位置,并利用关键点坐标进行仿射变换处理,完成归一化处理;提取特征向量,本文提出的代码基于InsightFace项目中提出的ArcFace人脸特征提取模型进行特征提取,旨在通过训练得到一个基于深度学习的人脸特征提取模型,有效解决了手工特征选择的繁琐步骤。第四步:根据选择功能的不同,分别利用计算余弦相似度和遍历数据库比对的方法来进行1:1验证或1:N比对。第五步:返回结果。3.1.1设计目的及成果在当下社会,人脸识别逐渐被应用到多种场景之中,例如智能打卡、身份验证等,因此我们需要用到一个轻量化的、高效的、准确的、独立性高的人脸识别系统,这也是本文所要达成的设计目的。为了达成上述目的,本文设计了如下功能进行1:1人脸比对,对同一个目标在不同的表情、背景当中都能做到较为精准的识别进行1:N人脸识别,可以从后台数据库中找到匹配的人脸并给出对应的目标名称。与此同时,还可以给后台人脸图片数据丰富扩充数据库。四个独立的模块可以独立工作并应用在不同的场景中,系统简洁便于检查、修改,同时便于用户自定义相关功能。3.1.2软件开发与开发硬件本文提出的系统开发使用的是个人电脑,搭载了RTX3060Laptop及IntelCoreI7CPU,内存容量32G。该系统软件部分的开发环境包括:本文的深度学习和视觉识别系统主要应用了TensorFlow和OpenCV。因为本文主要的开发语言为Python,故选用二者作为主要的开发环境。该系统使用的Python版本为Python3.6.0,TensorFlow版本为1.12.0,OpenCV版本为3.4.2,选用软件包版本的主要原则是高效率、高稳定性以及适配程度。本文的数据库开发技术主要使用的是数据库储存方案,该方案的主要优势在于系统密闭性较好,数据轻量化,保密性较好,可以应用在部分嵌入式系统之中,避免了大型数据库数据冗杂的不便性。本文选用的集成环境为PyCharm,因为Python3.6.0版本已经推出多年,不受官方支持,因此我选择采用Conda虚拟环境,能够提供稳定便捷的编程环境。3.2人脸探测模块人脸探测模块主要的功能包括人脸的检测以及关键点提取,主要应用了MTCNN的完整人脸检测和关键点定位系统。该系统主要应用于人脸识别的与处理流程,检测结果通常会以可视化的形式进行呈现,利用红色方框标记处人脸的位置并利用红色点标记出关键点位置。该系统的主要优势在于可以灵活地处理单张图片及视频,能够提供一个标准、稳定的输出数据。除此之外,代码也具有完善的异常处理机制,能有效地应退图片加载错误或未检测到人脸的情况,大大增强了整个系统的鲁棒性。3.2.1人脸检测的发展人脸检测是一项重要的生物特征信息检测技术,从开始提出至今已经经过了二十余载的研究历程,如今已经取得了长足的进步。在漫漫的发展长路中,最重要的便是2001年Viola和Jones提出的基于Haar特征的AdaBoost人脸检测算法,该算法利用的是Haar特征来训练级联分类器。该方法需要不断调整检测窗口位置、比例,从而最终找到人脸,有着出色的实时检测效果,是人脸检测领域的重要研究之一。然而,这种传统的方式具有一定的局限性,在非限定条件下检测效果十分有限,容易受外部环境的影响。在人脸检测越来越多地应用到生活场景中的当下,算法需要在非限定的实际场景下有较好的鲁棒性,除此之外,多人脸、多姿态、多尺度、多障碍的现实需求也摆在了工程师面前。因此,伴随着深度学习的发展,人脸识别领域的研究也得到了跨越式的发展。3.2.2人脸检测网络MTCNNMTCNN,全名多任务级联卷积神经网络,是于2016年提出的一种基于深度学习的人脸检测和对齐算法。MTCNN的核心创新点在于将人脸检测和人脸关键点定位整合到一起,作为一个整体的端到端的框架。MTCNN算法采用三级级联的CNN结构,分别是:P-NET、O-NET和R-NET,每个网络都同时执行人脸分类、边界框回归和关键点定位三个子任务。该过程的具体的步骤大致有三步:P-NET作为第一级网络,是一个全卷积网络,即不包括全连接层。全卷积网络当中的全连接层全部被卷积的形式所替代,该做法在上文当中有所涉及,卷积核为1*1大小。该级网络负责快速扫描图像并生成大量候选窗口,通过浅层网络结构和12*12的输入尺寸实现高效率处理。R-Net作为第二级网络,在结构上较之P-Net网络来说更为复杂,对P-Net输出的候选框进行进一步筛选和校准,使用边框回归和NMS来去除大量假阳性样本。得益于全连接层的分类作用,相比于P-Net网络增加了筛选框O-Net作为最后一级网络,采用48×48的输入尺寸,,O-Net比R-Net网络层次更深,人脸检测效果更好,输出精确的人脸边界框和5个关键点坐标。3.2.3工程详解该部分代码的工作具体流程如下图3.1所示:图3.1(a)图3.1(b)人脸检测模块工作流程该模块的总体工作可以分为两部分,其中第一部分为CNN基础部件工作,以及MTCNN网络结构工作。首先在第一部分里,我们通过OpenCV读取输入图像并进行必要的预处理,利用卷积、池化等一系列方式调整好尺寸并进行归一化操作。该系统采用了图像金字塔技术处理多尺度问题,通过0.7的缩放因子构建不同尺度的图像集合,确保能够检测从最小20像素到最大图像尺寸范围内的所有人脸。然后进入第二部分,因上一段中我们已详细介绍了MTCNN[23]的工作方式,这里便不再多做赘述,总而言之便是在完成三次NMS处理后得到最终检测结果。值得注意的是,在整个流程中,系统采用TensorFlowGPU加速计算,利用动态显存分配优化资源使用,大大减少了所需的算力,并对输出结果进行包括坐标转换、关键点格式调整和边界检查在内的三项操作。最终通过OpenCV可视化模块绘制红色边界框和关键点标记,完整呈现检测结果。该系统能够在人脸具有表情、有光照和遮挡等多种干扰前提下进行有效检测,且检测准确率具有一定的水平。3.3仿射变换模块该模块被用于进行人脸图像与处理等相关工作,使用的核心技术包括仿射变换计算、SVD分解、仿射变换应用、标准化关键点等技术。通过上述关键技术,系统在可以处理正常人脸的基础上,还能够处理不同表情姿态、不同角度的人脸图像,大大增加了系统在复杂工况下的鲁棒性。3.3.1仿射变换计算仿射变换计算技术是该模块的关键技术之一,核心的目标是找到一个原始人脸关键点映射到预定义标准位置的变换矩阵。该计算过程主要为:第一步进行中心化和标准化,主要目的是消除位置和尺度差异,有助于识别小人脸以及非常规角度人脸。第二步是进行奇异值分解,主要目的是计算两组关键点之间的最优旋转矩阵。这一步步骤通过将转之后的原始关键点矩阵与目标关键点矩阵相乘后分解为U、S、Vt三个矩阵,并从中提取旋转分量。第三步是组合缩放因子与旋转矩阵。其中,缩放因子为目标标准差与原始标准差之商。第四步为组合过后再叠加平移分量,最终构建一个3*3的齐次变换矩阵,该变换矩阵的前两行包括了线性变化和平移参数,最后一行为[0,0,1]以保证齐次坐标的兼容性。最终,这个矩阵被截取前两行后输入OpenCV的warpAffine函数,对原始图像进行像素级重采样,最终实现人脸对齐。整个过程当中通过最小二乘法进行优化,保证了变换后关键点与目标位置的误差最小化,有助于消除人脸姿态和尺度的非线性影响。3.4特征提取模块 该模块主要的功能是通过加载训练的模型,并提取输入图像的512维特征向量,用于人脸比对或识别任务。研究表明,深度学习中损失函数会对最终模型的质量好坏有着至关重要的影响。本文采用了基于ResNet-50的InsightFace人脸识别模型,令特征更容易被判别。3.4.1InsightFace人脸识别模型InsightFace是一个基于深度度量学习的人脸识别框架,可以进行人脸检测、对齐、识别等一系列的任务。该框架通常使用的主干网络包括ResNet-50、MobileNet、EfficientNet等,在本文当中,训练所使用的人脸识别模型利用到的是ResNet-50。InsightFace人脸识别模型的核心创新点在于其损失函数[22]使用了ArcFace,有效地使特征具有更强的判别性。Arcface损失函数是在Softmax的基础上引入了角度边缘得到的结果,有助于增强类间可分性,其公式为L=−(3.1)其中s是缩放因子,m是角度边缘。3.4.2模型训练由于InsightFace训练需要有足够多的类别以提升泛化性,因此我们选用了VGGFace2数据库,即一个拥有3.3万ID的数据库进行训练。选择完数据库之后,我对数据库中的图片进行预处理,因为每个模块具有较强的独立性,故使用上文所提到过的人脸探测模块进行预处理,使用MTCNN检测并进行仿射变换。在仿射变换完成之后,为了使模型的鲁棒性更好,我进行了数据增强的处理,即随机水平翻转、模糊、亮度调整等操作。该模型的训练需要注意几个关键的训练技巧:难样本挖掘、混合精度训练、分布式训练。在训练过程中,我采取的训练框架为Tensorflow框架;设置学习率为0.1,余弦退火衰减;batchsize设置为256以稳定Arcface;优化器使用的是SGD+动量;损失函数为Arcface。在进行了训练之后,我进行了模型评估:利用LFW数据库,达到了约99.8%的准确度;为了测试该模型的鲁棒性,我选用了megaface数据库,识别100万干扰图片,进行了鲁棒性测试;为了进行更极端环境的测试,即对跨姿态人脸、强光环境人脸识别效果进行测试,我选用了IJB-C数据库进行测试。在测试效果达到满意的水平之后,我又进行了一系列优化,包括压缩模型、减除冗余神经元等操作,最终完成模型的训练。3.4.3工程实现该模块的工作流程如下图3.2所示图3.2(a)图3.2(b)特征提取模块工作流程该模块的工作可以分为三个阶段第一阶段为模型加载与初始化阶段。该阶段的主要目标是完成预训练模型的加载和环境准备。该阶段首先要恢复完整的计算图结构,该步骤重建了网络架构,但尚未加载权重参数,这样便可以获得图中所有的张量和操作;而后,要建立TensorFlow会话,加载模型权重,使模型具备完整的实际计算能力;最后要进行关键张量定位,精确获取模型的输入输出接口。第二阶段为图像预处理阶段。该阶段的主要目标是将原始图像转化为模型可接受的标准化输入。该阶段有几个关键步骤:输入适配处理,通过OpenCV读取图像,转化为RGB格式,并进行双线性插值缩放使其尺寸满足112*112大小;执行严格的数值归一化,进行色彩值转换、均值归一化、尺度缩放、批次维度扩展等一系列操作。第三阶段为特征计算与输出阶段。该阶段的主要目的是核心计算过程及优化细节。在该阶段中,首先进行的是计算图的执行,精确地传入预处理后的数据并确保所有的神经元都参与了计算的过程;而后进行的是输出特征的后处理,令特征相似度可以直接用余弦相似度进行计算,无需额外的归一化操作,除此之外,还使得欧氏距离与余弦距离存在直接换算关系。在三个阶段进行的过程中,需注意严格匹配输入尺寸(112x112RGB)和归一化方式以满足TensorFlow1.x的静态图机制,否则将影响特征的质量。3.5人脸识别模块该模块的核心内容是导入前问所提到各个模块的输出数据,并进行相似度计算。上文中提到过,特征提取步骤完成后,可直接使用余弦相似度直接进行计算。余弦相似度的数学原理是通过计算两个向量的夹角余弦值来衡量相似性,公式如下:similarity(3.2)通过计算之后,我们计算的余弦相似度若大于0.6便认为可能为同一人,若大于0.8则极大概率为同一个人。3.6本章总结本章介绍了文章提出的系统的总体系统框架和基本流程,并逐步介绍了其中的四个模块:人脸探测模块、仿射变换模块、特征提取模块、人脸识别模块,介绍了各个模块所用到的核心技术及其基本原理,并且介绍了工程的实现方法和技术要点,完成了系统的设计和研究。

4系统测试与结果本章首先讲述了系统调试之前进行的迁移学习的工作。在此之后,对于该系统进行了测试,并将展示系统及各个模块的测试效果。最后,将对测试结果进行分析。4.1迁移学习迁移学习的本质是将一个场景的学习成果带入到另一个应用场景当中。在本文当中,由于训练模型的时候使用的数据库大部分由欧美人种组成,需要对亚洲人脸的识别进行额外的训练,将全新的亚洲人脸的数据输入系统进行训练。迁移学习的优势在于模型的训练效率更高、模型泛化能力变强、训练目标数据量变小。因为系统已经通过欧美人脸数据库进行了训练,初始参数更接近最优解,因此,我们仅需少量亚洲人脸数据带入系统中,经过少量的训练迭代次数便可以对亚洲黄色人种人脸进行有效的识别。迁移学习的过程中,我们有三种常用的迁移学习的方法:在原任务上训练模型、用目标任务数据对模型最后一层进行小幅调整、冻结预训练模型的前几层且训练新增的分类层。基于本文的应用场景,我们将使用chatgpt生成一些人脸图片进行迁移学习和测试工作。4.2人脸探测模块本文所提出的系统中,第一步也是最重要的一步便是人脸检测,即人脸范围检测和人脸关键点检测。这一步所提取出来的人脸的五个关键点,即双眼、鼻子、双嘴角五点,将直接决定了人脸识别系统的识别能力。上文中提到过,本文的人脸探测模块主要应用的是深度学习级联网络MTCNN,检测人脸区域的同时也会给出五个关键点的坐标位置。我们将输入一些AI生成的人脸照片,输出捕捉好人脸范围和关键点的图像,通过检查关键点位置是否正确我们将验证该模块能否够实时准确地检测人脸及人脸关键点,并模拟实际应用场景中带有表情或成偏移姿态的人脸进行检测,以此测试算法的可靠性。首先第一组我们提供了针对单人情况下人脸检测的测试样例,用于测试基本的正对摄像头的状态能否快速准确检测人脸,如下图4.1所示:图4.1男子单人素色背景识别结果由上图中我们可以清晰地看到人脸区域被红框圈起来,并且双眼、鼻子、双嘴角五个关键点位被红点标记,成功地提取了关键点。第二组我们将提供带有颜色的背景,用以模拟现实生活中的识别场景,测试其检测情况能否满足要求,如下图4.2所示:图4.2男子单人现实生活背景识别结果由上图中我们不难发现,人脸同样被清晰地框出,五个标志点被顺利地提取,提取结果准确无误,证明了系统的鲁棒性足够。第三组我们提供远距离的小人脸的测试样例,用以模拟现实生活中因距离较远造成的人脸图像小的情况,用以测试其对小人脸的识别能力,如下图4.3所示:图4.3远距离人脸模拟从图中我们不难发现,人脸较之前一张图片明显更小,但是框选的人脸范围同样准确无误,关键点被准确地提取,因此可以证明,不管现实三维距离如何,人脸检测结果不受影响。第四组我们将提供几张人向左向右扭头的图片,用以模拟现实生活中多姿态的人脸情况,用以证明系统对多姿态人脸的检测情况,如下图4.4所示:图4,4多姿态人脸模拟从上图中我们可以看到,在人脸向右偏离时,人脸范围、五个关键点均检测无误,足以证明在面对日常生活之中的多姿态人脸的情况时仍能正常检测关键信息。从上述一系列的实验我们可以看出,该系统能够在面对日常生活当中的复杂情况时,正常提取人脸的范围和关键信息,人脸检测模块能够精确地完成输出。人脸检测模块在本文所提出的人脸识别系统当中起到了极其重要的作用,为后续一系列的过程起到了基础的铺垫作用。除此之外,该检测模块也可以单独用于其他的识别系统当中,例如表情识别等应用场景。4.3仿射变换模块测试图象在进行识别前要进行预处理,在本文提出的系统中,主要的预处理过程便是图像归一化和人脸对齐。尤其是对于非理想正对情况下的人脸,在识别前进行对齐操作是十分必要的,有助于显著提高人脸识别的准确率。因此,我们将给出一个测试样例用以测试仿射变换模块能否正确预处理图像。我们选取了网络中一张七人合照,并通过人脸检测模块提取了人脸和特征点,如图4.5所示:图4.5提取特征点后的七人合照我们不难看出,在这张合照中,七人的姿态并不是完全正对镜头的,因此我们选取左二女生进行仿射变换测试。经过仿射变换的图像如下图所示:图4.6经过仿射变换的头像从上图中我们可以看出,经过仿射变换后,头像变为了基本正向面对镜头的姿态,且图片大小亦被裁剪为了规定的大小,足可见系统的仿射变换模块可以正常地工作。4.4特征提取模块由上文中我们可以得知,该模块输入图像信息后输出512维特征向量,因此,当我们向系统提供上述经过仿射变换的图像之后,即可得到相关的特征向量:图4.7(a)图4.7(b)图4.7(c)图4.7(d)图4.7(e)得到的特征向量4.5系统整体调试目前,本文中所提出的系统中主要包括三个主要功能:1:1人脸比对;1:N人脸识别;人脸数据库管理。其中1:1人脸比对是指,用户提供两张图片,系统分别对两张图片进行人脸识别,而后比对其识别出的信息是否为同一个人;1:N人脸比对是指,用户提供一张图片,系统与数据库中已经储存的人脸数据作比对,输出符合的人脸数据的ID;人脸数据库是指,用户通过上传图片,系统进行人脸数据分析,并将数据存在数据库文件之中,赋予其ID,在日后的1:N人脸比对中使用。在本节内,我们将对三项功能进行一一验证;首先,系统的UI界面如图所示:图4.8系统UI页面人脸1:1比对功能需要我们提供两张照片进行比对,具体过程如下图所示:图4.9选取图片文件而后点击获取结果,获取相似度,特别注意的是,此处相似度大于70%时,我们便认为两张图片极大概率为同一人,文中选取的两张图片皆为作者实拍图像,故为同一人,具体效果如下图所示:图4.10图片比对结果由图中我们可以看到,相似度达到了80%,即极大概率为同一人。除此之外,两张图片中的人像表情有所变化,再次印证了本系统在面对具有表情变化的人脸数据时仍能保持准确率,系统具有较强的鲁棒性。人脸1:N比对需要我们现在数据库中录入相关的人脸数据,如下图所示:图4.11添加人脸数据至人脸数据库而后,我们选择人脸1:N识别模块,添加另一张照片后,结果如下图所示:

图4.12人脸1:N比对结果由图中我们可以清晰地看到,识别的对象名为zhanghe无误,由此可以证明,该系统运行准确无误且正确率较高。

5总结和展望5.1总结在计算机技术高速发展的今天,人脸识别技术作为生物信息检测技术的一个重要分支,一直是学者们热衷研究的对象。随着算法的不断更新,计算效率不断提升、准确度不断提高、鲁棒性不断增强,在历经了数十年发展后直到今天,该技术已经逐步走向实用化,在日常生活中的多个领域大放异彩。本文针对日常生活中可能出现的复杂情境,提出了一种基于深度学习的人脸识别系统。为了完成研究目标,本文结合了深度学习理论,最终完成了各个功能模块的设计,以及系统的整体编写。本文主要工作内容如下:对人脸识别系统进行功能规划并对整体框架进行设计。为了最终编写出系统,本文对深度学习的相关内容进行了研究和剖析,探究了深度学习网络的结构,并对功能和效率的影响因素进行了分析。最终完成了系统的研究、设计和调试工作。应用深度学习领域的成熟技术,基于深度学习框架TensorFlow为平台,Python3.6为语言编写了整个系统。系统中,利用了MTCNN级联网络设计了人脸检测模块;利用VGGFace2数据库训练了一个Insightface模型;基于余弦相似度计算法设计了人脸识别模块。在实现模块一系列功能的同时,充分考虑实际应用场景的特性,应用了许多工程相关技巧,达成了实时人脸检测和人脸识别,还尽可能地达到了轻量化的要求,出色完成了既定目标。在训练得到人脸识别模型的基础上进行了迁移学习的相关工作,得到了更具有普适性的、更具有应用价值的人脸识别模型。实验和测试结果表明,该系统能够较好地达到目标需求。5.2展望为了设计与实现该系统,本文引用参考了许多有价值的文献,且在长时间的研究与实践过程中,积累了很多相关领域的知识。最终,凭借这些知识完成完善了该系统。然而由于经验学识的匮乏、硬件的不足等一系列原因,本文所提出的系统尚存许多不足,有一些工作仍待完成,有一些高级的功能尚待开发。完善数据库系统,建设一个可以容纳更多、更丰富的人脸信息数据库,便于其他模型学习借鉴使用。对于开源网络的结构提出改进意见,训练更加适合工程使用的人脸识别网络。由于电脑的算力不足,本次模型训练、测试的过程中未选用更多的大型数据库,若日后有机会,可选用更好的硬件设备在不同的训练集上进行学习和测试,全面了解、提升模型的鲁棒性。参考文献[1]VeryDeepConvolutionalNetworksforLarge-ScaleImageRecognition.[J].KarenSimonyan;AndrewZisserman.CoRR.2014[2]Atutorialsurveyofarchitectures,algorithms,andapplicationsfordeeplearning[J].LiDeng.APSIPATransactionsonSignalandInformationProcessing.2014[3]DengJ,DongW,SocherR,etal.ImageNet:Alarge-scalehierarchicalimagedatabase[J].Proc.ofIEEEComputerVisionandPatternRecognition,2009,2009:248-255.[4]Y.Sun,X.Wang,X.Tang,Hybriddeeplearningfacerepresentationfrompredicting1000classes.InProv.CVPR,2014.[5]HintonGE,

温馨提示

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

最新文档

评论

0/150

提交评论