《基于卷积神经网络的人脸识别考勤软件设计和实现 电子信息工程专业、.docx》由会员分享,可在线阅读,更多相关《基于卷积神经网络的人脸识别考勤软件设计和实现 电子信息工程专业、.docx(21页珍藏版)》请在课桌文档上搜索。
1、题目基于卷积神经网络的人脸识别考勤软件设计摘要1Abstract21 .绪论31.1 人脸识别发展历史31.2 国内外研究情况41.3 本文主要研究与创新52 .采用MTCNN进行人脸检测和采集62.1什么是MTCNN62.2MTCNN实-现流程62. 2.1构建图像金字塔63. 2.2P-Net74. 2.3R-Net85. 2.4O-Net83.人脸图像特征提取93.1 FaceNet模型93. 1.1什么是FaceNet93. 1.2FaceNet的网络结构93.2生成FaCeNet模型103. 2.1Stenl的结构123. 2.2InceptionresneLA的结构123. 2.3
2、Inception-resnet-B的结构133. 2.4Inception-resnet-C的结构146. 2.5TripletLoss154.实验结果及界面介绍167. 1实验测试结果168. 2界面介绍169. 论文总结185.1论文的总结185.2对未来的展望18参考文献19致谢20基于卷积神经网络的人脸识别考勤软件设计摘要:本项目的目标是实现一个基于人脸识别的教室考勤机,该设备主要包括考勤系统以及人脸识别系统。考勤系统使用PythOn进行编程,使用Qt作为界面框架TensorFIow这个数据库是我们人脸识别系统里面有关于去计算分别人脸的一个基本的构造。人脸识别这个高级智能的科技在安全
3、技术领域一直是一个热门的话题,经常用于公司、学校、车站等人流量较为巨大的场所,因此人脸识别的准确性和快速性一直是一个值得深入研究的课题,运用卷积神经网络搭建模拟环境,然后把这项技术所需要的数值数据加入到这个人脸识别的系统里面去适应训练般炼提升它的机能,然后根据所给的数据去把人脸的特征提取出来形成图像,之后再对于这上千上万的数值做一个区分识别。这个软件里面包含了两个方面一是人脸识别计算,二是软件自身设计的系统。关于人脸识别计算这里对它有一个详细的阐述,它里面主要使用的是模式区别方法与计算机视觉的科技。再人脸区分的这个过程里面还有如下对人脸图像数据的搜集,处理图像数据,区分提取人脸独特特性,对于搜
4、集的数据进行区分与识别这些环节。这个过程中间使用的是TenSOrFloW这个基本的结构构造,再与DeepFace同FaceNet相互结合运用,将算法落地。软件系统设计:主要包含结构框架的搭建和界面设计。本项目采用PythOn语言进行系统框架构建,基于Qt界面库完成软件图彩界面设计。硬件方面主要包含设备选型和集成,硬件由摄像头、显示屏和支持深度学习算法的主机组成。关键词:深度学习;人脸识别;卷积神经网络;特征提取;三元组。AbstractFacerecognitionattendancesoftwaredesignbasedonreelneuralnetworkAbstract:Thegoalo
5、fthisprojectistoachieveafacerecognition-basedclassroomattendancemachine,whichmainlyincludestheattendancesystemandthefacerecognitionsystem.TheattendancesystemisprogrammedusingPythonandQtastheinterfaceframework.ThefacerecognitionsystemusestheTensorFlowlibraryasthebasicframeworkforfacerecognitionalgori
6、thms.Facerecognitiontechnologyinthefieldofsecuritytechnologyhasalwaysbeenahottopic,oftenusedincompanies,schools,stationsandotherplaceswithrelativelylargetraffic,sotheaccuracyandspeedoffacerecognitionhasalwaysbeenatopicworthyofin-depthstudy,theuseofreelneuralnetworkstobuildasimulationenvironment,face
7、datatraining,extractthecharacteristicsoffaceimages,andthenmakeacomparedjudgment.Softwareaspectsincludefacerecognitionalgorithmapplicationandsoftwaresystemdesign.Facerecognitionalgorithm:Appliedtopatternrecognitiontechnologyandcomputervisiontechnology,themainprocessoffacerecognitionincludesthefollowi
8、ngsteps:faceacquisitionanddetection,faceimagepre-processing,faceimagefeatureextraction,faceimagematchingandrecognition.Theprojectusestensorflowsdeeplearningframework,combinedwithprovenfacerecognitionalgorithmssuchasDeepFaceandFaceNet,tobringthealgorithmtotheground.Softwaresystemdesign:mainlyincludes
9、theconstructionofstructuralframeworkandinterfacedesign.ThisprojectisbuiltinPylhonlanguage,andthesoftwaregraphicalinterfacedesignisbasedontheQtinterfacelibrary.Thehardwareaspectmainlyincludesdeviceselectionandintegration,thehardwareconsistsofthecamera,thedisplayandthehostthatsupportsthedeeplearningal
10、gorithm.KEYWORDS:Deeplearning;Facerecognition;Reelneuralnetwork;Featureextraction;Triplegroup.1.绪论自二十世纪以来,人们的生活一直在不断地趋向信息化和智能化,人们在生产活动中甚至生命中,引用了先进技术,使生产工业的自动化程度达到一个新高度;其次,计算机与网络通讯的高速发展,再加上电子通信技术的不断发展,能够获得的信息不再局限,世界上大部分信息都是互通的,使人类在各个方面表现出信息活动的特点;最后,信息与信息传输的机器也加入其中,一些算法较高的机器,甚至可以获得人类概念、感知和原动等,并进行计算分析,
11、从而获得更深的信息。其中,人脸识别这一技术也在生活中得到广泛的运用,但如何高效、安全、稳定的使用这一技术也是值得我们进行深入研究的动力,而如何在合适的场所使用人脸识别技术并让其发挥合适的作用也是研究的重点之一。1.1 人腌识别发展历史人脸识别技术的研究是一段漫长且丰富的历程,其漫长在于:这项技术自上世纪50-60年代开始,到至今已有半个多世纪的时间;其丰富在于:该技术研究主要经历了早期研究阶段;蓬勃发展阶段;实际应用阶段这三个阶段错误!未找到引用源。早期算法的实现,中期技术的快速发展,到后期人脸识别技术的成熟落地以及进一步的研究,都是花费了科研人员不少的努力。现如今,更为先进的人脸图像建模方法
12、和更加成熟的人脸识别算法的成立,人脸图像识别的精准性和识别速度都有了飞跃式的提高,不仅如此,研究人员还对识别的干扰因素和人脸图像库的采集进行了深入研究,取得的相当不错的成就。当今社会,人脸识别技术主要应用于公司、学校的门禁考勤、公共区域的安全防护、金融领域的交易安全等地方,具有较高的通用性,涉及范围十分广泛,而且有不少研究人员在进一步提升其识别精度和速度,减少外部因素的影响,所以,人脸识别技术在未来也将具有极为广阔的发展前景。(一)早期研究阶段人脸识别技术的研究大致始于上世纪50-60年代,一直到上个世纪的八十年代,这个时期还是我们人脸区别的一个前期的探究时期。在这个时期,这个探究的高科技项目
13、只是单纯的被看作一个简单的有关于人脸识别的技术进步的表现,探究工作者最核心的任务是基于检测人脸自身的几何特征来实现人脸识别的功能,也就是主要研究包括眼睛、鼻子、耳朵、下巴、额头等具体人脸图像的视觉特征之间的几何关联,我们是根据计算机里面的高科技技术去组建有关于人脸灰度成像的一个模型,然后才达到去检验出区分出各个不同人脸图像的机能。这个时期的关于人脸区分技术的探究主要是通过再各个高效的实验室里面进行的并没有推广开来,知道的人也是有限的,操作空间也有限,操作的方式更是有限主要都是依靠人们手动进行,所以并不能像现在如此高科技的自动化进行这一过程。所以根据上面这些情况显而易见,在这个时期有关于人脸识别
14、这项新的技术没有什么突破性的进展和突出的成果出现,还只是单纯的有一个理论的提出与摸索。(二)蓬勃发展阶段人脸识别技术的蓬勃发展主要出现在上世纪的90年代,尽管总体上的持续时间并不是很长,但是人脸识别技术在实质上取得了重大的突破。在此期间,科研人员在人脸识别技术的研究上取得了丰硕的成果,其主要表现如下所示:一是诞生了非常著名的“特征脸”人脸识别的方法;二是采用了一些更具代表性的人脸识别先进算法,其中值得一提的是,在这个过程里面发组建了一个系统成功的实现了把人脸识别的这个系统在实际的生活中使用的目标,这里面很核心的一个计算的方法就是顶级高端的人脸区分计算法,第三点是组建了搜集了一个巨大的关于人脸区
15、分的一个数值资源的储存库,就拿美国的的例子来说,在关于这项技术里面他们在进行了大量的人力物力的投资与探究之后,就建立一个为世界知名的数值资料库FERET,并且在之后的发展过程中这个资料库也发展成了使用借鉴数据最宽广的一个资料库之一。在这个时期人脸识别技术发展的成就给未来这项技术的发展的推动起了非常重要的作用,也把这项技术的发展向前推进了一大步,并且同时也为我们当今的发展奠定了更坚实的基础给我们提供了很多经验的借鉴以及理论的指导。(=)实际应用阶段在二十一世纪的时候人脸识别的技术已经广泛的被应用于各个领域了,这项技术的推广应用给我们的生活带来了极大的便捷。人脸识别技术这个高科技的项目在二十一世纪
16、这么宽泛的被各个领域所采用的主要原因还要归功于以下四个方面:一是因为其人脸图像的建模方法取得了不小的进步,其中给出了不少优秀的建造方式,例如:我们借鉴采用Kernel的方式里面的有关于非线性组建模型的方式:根据线性的方法去判别我们的线性组建模型的方法并且把我们的3D人脸组建的模型的方式的基础判断是3D信息等若干种构造方法错误!未找到引用源。;二是科研人员对识别精度以及识别速度进行了不少深入研究,影响的因素包括了识别时周围环境光特征的一个改变、还有人们身体姿势的一个改变又或者是人们脸上所具备的各种神态都发生了改变所造成的一个作用的探究与剖析:第三点就是有关于人脸成像数据的一个探究考察,以前关于这
17、方面的研究的话主要是太单一不完整,就是简单的对图像一个区分,但现在的区分识别要求有进一步的提升,基于不同图像的识别方式,例如:视频获取、红外成像以及绘画素描等错误!未找到引用源。;四是对人脸图像的特征提取方法的研究分析,其中基于神经网络、基于人脸几何特征和基于子空间等人脸识别方式是现在最为流行的几个人脸识别方法错误!未找到引用源。1.2 国内外研究情况随着识别技术和算法的成熟,越来越多的科研人员投身图像识别这一领域,进行着深度的探索,人脸识别技术也取得了与日俱增的进展。回首我们人脸识别发展的这一过程,我们可以看到我们与人脸识别的最早相遇是在1888年,而且带领我们与它相遇的功臣功不可没的主要是
18、高尔顿,他在这个Nature上面发表了一篇文章引领人们步入人脸识别的殿堂错误!未找到引用源。,可谓是人脸识别道路上的引路人;1966年美国德克萨斯大学的布莱索(BIedSoe)可以算是道路上的导游,他率先研发了半自动的人脸识别系统,此系统是基于人脸关键部位如:双眼、鼻尖、嘴巴等等这些构造进行了一个成像的比较根据这样然后来完成人脸识别的这一过程。在这个时候,我们的探究工作者在这项探究里面也还是处于一个最前期的摸索时期,这个时期探究的主要方面还是关注在于人们面部的特征结构进行的。在二十世纪结尾的这个阶段是我们这项技术发展的一个黄金时期,在这个时期它得到了快速的发展进步。著名的EigenfaCe方式
19、就是在这个阶段被研究总结出来的,并一直沿用到现在,LDA算法中的FiSherfaCe方法是经典的模式识别算法,由BeIhUmeUr等人提出,也是一种有较高泛用性的识别方法,在这一阶段,人脸识别积累了不少的重要理论,为之后的高速发展打下了夯实的基础。从1998年到2014年,人脸识别的技术逐渐成熟,这一阶段的人脸识别技术已经有了不少的成就,但是还是存在不少的干扰因素,所以研究人员为了提高人脸识别的精度,开始着手研究外界干扰给人脸识别带来的误差。在研究人员不断寻找和钻研过后,一些改进算法被提出,其中包括:基于PCA和基于LDA的方法错误!未找到引用源。,因此,人脸识别的精度又进一步的提高。流形学习
20、的人脸识别方法是一种更为先进的识别方式,相对于先前的人脸识别方式也取得了不少进步,对人脸信息的采集有了更高的精度,同时也更加的全面。局部特征的人脸识别方法在这一阶段也达到了非常棒的成就,我们使用频率最高的关于面部局部的一个探究的方式主要有:局部二值形式与Gabor小波等等形式。通过提取人脸面部的细节来优化识别,可以很好地解决外界因素带来的干扰,得到了大部分界内人士的认可。2014年前后,人脸识别开启了新的篇章,取得这个成就的主要的原因还是因为我们对其的学习的投入的增加以及了解的加视,在这个的基础上然后我们的人脸区分的计算方法也就慢慢的被探究问世了出来,然后大数据在于更深层次的学习的结合就当作了
21、人脸区分技术的核心方式,基于上面的这些成就相关的公司比如Facebook企业以及LFW企业等等提出的一系列项目都在它们的试验上取得了百分之九十七点二五精准度的好成绩,这些好的成就都离不开我们对于人脸识别技术的重视与更深层次的探究脱离干系并同时这些成就也是这个领域的一个奠基之就。香港中文大学研究团队又将其提升到一个新的高度,由SUnYi等人提出了一系列基于深度学习的人脸识别方法DeepIDl,DeepID2,DeePID2+和DeepID311,快速发展的网络结构以及其层次的逐步深入,使得Deepld3在LFW测试集中取得了99.53%的好成绩12,成为人脸识别历史上一次突破性的里程碑。在201
22、5年,由谷歌公司提出的FaCeNeu15算法,该算法首次选用Iriplelkjss函数,同时搜集了两亿图片里面包含了各种各样不同的人像用此来对我们的技术进行训练,然后结果就是我们在LFW里面的相关的数据的测验精准率达到了百分之九十九点六三的好成绩。同年,像腾讯、百度等大公司也都相继提出了他们公司所研究的基于深度学习的算法。算法的发展也带动了硬件平台的快速发展,深度学习的网络模型的层次也越来越深入,但与此同时也带来了不少问题,由于网络层次深入,会导致人脸图像训练也随之越来越难,其中包含的问题有:训练难以收敛,训练所消耗的时间太长等。因此有不少开始研究应对技巧,不出多久具有针对性的训练技巧被提出:
23、BN里面有一个关于这个训练的名叫加速机制的方法,它的意思是根据网络裁剪的方式去更加深层次的快速的把我们网络的速度进行一个提升的训练与锻炼,比如这两个著名的构建的网络模型ResNet与DenseNet就是在网络结构的角度来设计的。在我们有关的计算方法发展进步的同时我们的人脸区分的相关数据搜集与评价这方面也在随之发生着改变与进步,这也证实说明了以LFW测验作为祭奠的人脸区别这方面的功能的竞争的时代已经过去了。现如今,人脸识别的研究越来越成熟,成为一项实用型项目被广泛使用,人们开始关注其实用场景,一些研发人员发布了新的测试数据集,例如UB-AH8数据集和微软百万名人数据库MS-Celeb-IM,Me
24、gaFaCe数据库,这些数据集更具研究性和挑战性,也有越来越多的人投身于此,因此人脸识别这一研究永不过时。1.3 本文主要研究与创新在我们的科学这个领域,不应该只是局限于某一个方面或者是某一个途径我们应该灵活变通敢于尝试不同的途径,当我们在发现某一个方法行不通路径走不了的时候其实也是在为这项科技排除困难错误道路,这在一定程度上来说也是一个贡献。美国从2006年开始就全面推行人脸识别和指纹技术,与此同时,中国也同时引进,这也是人脸识别技术的早期引用。而人脸识别在人们生活中最早和最普遍的运用是从iPhoneX的人脸识别解锁开始,相比之前的指纹识别解锁,人脸识别更受广大人民的喜欢,把苹果8和苹果8升
25、级版的销售数量进行比较的话,这两者的区别都不是很大但如果加入苹果X的话,这个区别就出来了后者较前两者的销售数量要多的多,苹果iPhoneX已经成为当年最为畅销的手机品牌,销量更是比身为竞争对手的三星S9超出两倍多。但不得不承认的是,人脸识别虽然方便快捷,但是也同时有不少的外在因素和内部因素影响着识别的准确率。内在因素包括人员的年龄增长、脸部表情的变化以及人物动作姿态等;外在因素包括面部的装饰,例如:眼镜、耳环和口罩等,还有人脸采集的角度、光线条件以及采集设备与人脸之间距离问题等。本软件采用的是MTCNN作为主要算法,相比其他传统的识别算法,MTCNN算法的具有更好的性能,其优势在于可以同时完成
26、人脸对齐和检测两个任务,可以更加精准的确认人脸的位置,同时还运用了tripletloss训练模型进行训练,提高人脸识别的精度,另外还在软件中附加了员工考勤以及员工注册的功能,在人脸识别的同时还可以实时记录考勤信息,便于实施人员管理的功能。2.采用MTCNN进行人脸检测和采集2.1 什么是MTCNNMTCNN,多任务卷积神经网络,它所起到的功能主要有两个方面一是测验二是使我们的人脸对齐,相比其他传统的算法,它的性能更为优秀,检测速度更加快速,是人脸检测中运用较为广泛的一个算法。2. 2MTCNN实-现流程其主要实现流程为:生成图像金字塔、P-Net生成人脸框架、R-Net初步判断人脸的存在、和O
27、-Nel错误!未找到引用源。准确采集和识别人脸图像。这个是2016年由我国的科学院深圳研究院发现出来的它的主要功能是关于测验人脸把它组建的模型命名为多任务神经网络模型,以下对这个模型做一个简单的介绍,一是它使用了3个级联网络,二是使用了分框架分结构这样分类别的思想,三是使用的人脸测验的方法是高效率且迅速的。四是这个模型其实和绝大多数的模型的相似处还是很多它里面也使用了像图像金字塔与边框回归以及非最大值抑制等等这些项目的高科技技术。2.1.1 构建图像金字塔在现实生活中,我们的眼睛和大脑就是一个高精度高效率的人脸识别“机器”,我们通过眼睛捕捉对方人脸图像,传输给大脑进行识别,找出匹配的人脸以及其
28、信息。而计算机该如何识别呢?想要计算机能够准确识别出人脸图像,我们就首先就要让计算机的摄像头也和人的眼睛一样能够准确的捕捉到人物图像。但一开始摄像头能捕捉到的不只有要识别的人脸图像,还有不少其他因素在其中,所以我们要通过MTCNN人脸检测网络来寻找人脸的位置。首先我们将摄像头捕捉到的图片进行不同尺度的缩放,生成图像金字塔,摄像头捕捉到的图片按照不同尺度缩放后得到的图片合集就是图像金字塔,它按照缩放大小顺序,最上面的是分辨率最高的,然后一层一层逐步降低,且整个金字塔都是来自于同一个图片的,层数越高,图像越小,分辨率越高;反之,层数越低,图像越大,分辨率越低。然后将这些图像传输给p-net,下图2
29、-1为MTCNN人脸检测流程。图2-1MTCNN人脸检测流程2.1.2 P-Net还有一个名叫全连接网络的技术它的英文表述的全称是ProposalNetwork,简称这里就不叙述了。如上图所显示传输过来的全部图片,他们的形状都有限制,输出的map是(m,n,16),然后我们对其进行筛选,此时pnet相对于一个筛网,筛网的网格大小为12*12*3,就是通过3层卷积计算之后,判断在这个12*12的区域内是否存在人脸图像或者是和人脸图像相关的人脸因素。网格一共分成三个部分:faceclassification、boundingboxregression和faciallandmarklocalizat
30、ion错误!未找到引用源。三个部分。我们的第一个层次的产出的目的是用来去识别上传过来的这些图像到底有没有真实的这个人的存在,我们这个传输量的一个大小的比例是1*1*2;网格的第二部分称为框回归,是用来给出框的精确位置,由于在旋转人脸框的时候并不是每个框都会选出完美的人脸框位置,有时候并不能完美的选中是方形的人脸框,该图像框可能会有所偏移,为了选出位置相对于完美的位置框,第二部分就制定了一个偏移量,所有偏移大小在1*1*4,表示框的坐标的偏移误差,在这个范围内的人脸框都可以被选用输入给下一个部分;第二部分的主要作用就是获得相对正确的人脸框,然后就轮到第三部分,第三部分的精度相比第二部分更加准确,
31、它给出五个关键点,相对应的就是人脸的五个器官:左眼、右眼、鼻子、嘴巴的左半边和嘴巴的右半边。每个器官需要2个维度来表示,因此输出的向量就是1*1*10,将这些区域输入R-Net进行进一步处理,图2-2P-Net所示。这一部分的基本思想是使用较为浅层、较为简单的CNN快速生成人脸候选窗口。Conv: 3x3 Conv: 3x3 Conv: 3x3 MP: 2x2input size12x12x35x5x103x3x16 1x1x32曦 faceclassification1x1x2喧 bounding boxregression1x1x4卮 Facial landmark. localizati
32、onIxlxlO图2-2P-Net2.1.3 R-NetR-Net全称为RefineNetWOrk,相比于P-Net网络多一个fullyconnect(全连接)的连接层,它的作用是在P-Net的基础上更好的抑制false-positive的作用,和P-Net的作用相似,但是R-Net的精度更高,我们可以根据边界框回归与我们的NMS去把大部分的falsepositive的面积进行一个去除删掉。R-Net会对P-Net传输过来的人脸候选框截后的一个图像进行一个区分,然后我们就会根据这个区分识别所产生的结果做一个评估与打分,在这个时候,我们同时也还会把之前已有的人脸成像做一个订正。根据Proposa
33、INetworkt的功能,我们会获得相对正确的人脸框,该精度会比P-Net的高很多,然后我们再把识别精确的人脸候选框传输给下一个网络O-Net中。如图2-3所示。Conv: 3x3 Conv: 3x3 Conv: 2x2 fully 1UD Qv7 1UDinPut size 11x11x284x4x48 3x3x64 12824x24x3face classification2 U4bounding box regressionFacial landmark localization图2-3R-Net2.1.4 O-Net全称为OUtPUtNetWOrk,这个是MTCNN里面所有网络中最精准
34、的一个网络了,它会在我们之前过程中进行的一系列的操作的基础上然后再对我们的人脸成像做一个区分识别与打分,最后还会在一步把之前已有的人脸成像做一个最终的订正。最后得到的数据就是我们需要的人脸坐标的位置。其基本结构和前面的网络相似,这里面都包含这个卷积神经网络,然而如果要与我们的PrOPoSaINeIWOrkI进行比较的话那么它确实是多了一个卷积层,因此,其精度也会更高,两个网络的区别在于O-net的网络结构会通过更多次的筛选,还会对人的面部特征点进行校正,最终输出五个人脸面部特征点的坐标,从而得到一个完整的人脸坐标位置。O-Net有一个自己的独特的优势那就是它相比起其它的网络它的输入可以更多同时
35、它的网络的构造也要更加的复杂多样,这当然也可以说明它比其他网络的功能更加好,在这个层次里面的输出的这一行为是被当作的是最后的网络模型输出,如图2-4所示。Conv: 3x3MP: 3x3Conv: 3x3MP: 3x3Conv: 3x3 Conv: 2x2 fullyMP: 2x2connectface classificationbounding box regression10x10x643x3x128 256Facial landmark localization图2-4O-Net3.人脸图像特征提取3.1 FaceNet模型在我们的实际的操作里面,要把人脸区分这一过程彻底完成的话需要完
36、成下面这三个步骤,一是判断识别的这个人与我们的成像是否吻合二是和原有的信息进行匹配三是在原有的数据库里面寻找这个人的数据,但在现实生活中多多少少会面临一些问题,比如环境和背景带来的干扰因素。人脸识别一般经过检验人的面部、把人的面部对称等等环节,再把人脸图像映射到欧式空间进行欧式距离的计算,通过比较欧式距离的大小来进行相似度的判断。但是由于算法的不断改进,先前的网络和算法都被挤下神坛,这时,谷歌大神FlorianSchroff5DmitryKalenichenkoJamesPhilbin发表了FaceNet:AUnifiedEmbeddingforFaceRecognitionandCluste
37、ring21,给不少研发人员提供了研发兴趣。3.1.1 什么是FaceNetFaceNet采用的是选取人们的一个面部的特征的神经网络结构,使用的另一个网络是多层卷积神经,学习来将获取的人脸图像转换到欧式空间中,再与之前获取的人脸图像库中的人脸图像进行欧氏距离的计算,这样就可以通过计算特征点之间距离长度来表示人脸的相似性,同一个人脸在该空间内的空间距离很小,计算得到的阈值也很小,反之,不同人脸的距离会很大,阈值相差的也很大。因此,我们就可以从阈值着手,通过设定一个指定阈值来进行人脸识别。可以用于人脸的验证。区分与搜集,这个数据的精准度是非常高的在LFW上可以达到百分之九十九点六三,在YOUTUb
38、eFacesDB上可以达到百分之九十五点一二。3.1.2 FaceNet的网络结构FaceNet的模型的主要作用是用来识别采集到的人脸图像和人脸图像库内的人脸信息是否匹配,其特点是:该流程的先前部分采用的是很平凡的多层卷积网络,和其它的更深层次的关于学习的构架有所区分的是,FaceNet使用的不是以前的不完整的函数的数据在这个的基础上学习研究的,而是采用一个L2嵌入层(embedding),而嵌入层的含义就是从中抽取任意一层作为特征向量,采用数据向量在欧式空间的技术方式进行编码,把我们搜集的人的面部信息反应到这个欧式空间,然后下一步是根据欧式距离计算的公式方法去把我们的人的面部特征的类似的特征
39、表现出来,根据这个可以知道不同的人的面部特征之间的一个距离的差异还是很大的,但是我们采取根据同一个人的面部距离总是会小于不同的人的面部距离这个方法与知识去做一个网络的锻炼与训练,就可以得到一个训练效果相当不错的训练集。最后基于这个编码提取人脸图像的特征,从而实现人脸识别、人脸验证和人脸聚类等功能。3. 2生成FaceNet模型在运用阶段,我们首先要了解的是FaCeNet的网络框架的组成,大致分为5个部分:1.首先就是获取人脸图像:2.通过深度学习网络提取特征值;3.通过L2的归一化统一其标准;4.得到一堆特征向量为128维度的数组;5.根据TriPIelLOSS的里面的损失函数的这个方法做一个
40、简化的方便的计算。FaceNet的构造图如图3.1可见:BatchDEEP ARCHITECTURE O图3-1FaceNet的网络结构其中Bateh是人脸图像训练结束后所得的数据;下一步的DEEPARCHrrECTURE(深度卷积神经网络),也是整个FaCeNet网络框架中的主干部分,其中InCeption-ReSNetVl是FaCeNet使用的主干网络,Inception-ResNetVl的主干网络如图3-2所示:SoftmaxDropout(keep0.8)AveragePling5*1nception-resnet-CReduction-B10*lceptio-resnet-BRedu
41、ction-A5*lnception-resnet-ASteminput(160*160*3)图3-2Inception-ResNetV1的主干网络Inception-ResNetV1的主要组成部分有以下四个:1. Stem2. Inception-resnet-A3. Inception-resnet-B4. Inception-resnet-C3.2.1 Stem的结构整个Stem结构由多个卷积函数组成,第一步的长是二,通道的数据是三十二的三乘三的一个卷积,之后又是我们的一个通道的数据是64的3x3卷积;我们先会把它传入一个最大池化网络;其次传入一个调整通道数的卷积网络,通道数为80:紧接
42、着我们还会进行2次3x3的卷积,一个通道为192,另一个是256通道步长为2的卷积网络。Stem的主干结构如图3-3所示:t图33 Stem的结构3.2.2 Inception-resnet-A的结构Stem的输出会传入一个5次的InCePtion-resnet-A网络,InCePtiOn-resnet-A一共有四个分支:1.不经过任何计算,直接输出:2.经过一次32通道的Ixl卷积进行计算之后的一个产出数据;3.有过之前的三十二的通道的数据一乘以卷积之后又有一个三十二通道的三乘三的卷积的最终计算得出。4.经过一次三十二通道的一乘一卷积后再经过二次32通道的三乘三卷积计算后输出。InCePti
43、on-resnet-A的结构如图34图所示:图34Inception-resnet-A的结构3.2.3 Inception-resnet-B的结构Inception-resnet-A结束后会进行一个10次的Inception-resnet-B网络,Inception-resnet-B一共有三个分支:1.在没有任何情况的条件下去进行一个计算就这样简单的产出。2在有一次的一百二十八通道的一乘一卷积进行计算然后产出。3又再一次的三十二通道的一乘一卷积之后又一百二十八的通道一乘七卷积与一次的一百二十八的七乘一的卷积计算在产出。Inception-resnet-B有关表现的图如3-5可见:图3-5Inc
44、eplion-resnet-B的结构Inception-resnet-B结束后会进行一个5次的InCePtiOn-resnet-C网络,Inceptioirresnet-C一共有三个分支:L在没有任何情况的条件下去进行一个计算就这样简单的产出;2在有一次的一百九十二通道的一乘一卷积进行计算然后产出。3又再一次的一百九十二通道的一乘一卷积之后又一百九十二的通道一乘七卷积与一次的一百九十二的七乘一的卷积计算在产出。Inception-resnet-C的结构如图3-6所示:图3-6Inception-resnet-C的结构再运用L2归一化操作,得到人脸图像的特征表示;最后为三元组(TriPletLo
45、SS)的损失函数。图37为FaceNet中所采用的InCePtiOn架构错误!未找到引用源。的深度卷积神经网络:conv1(773,2)11211264maxpool+norm565664inception(2)5656192norm+maxpool2828192inception(3a)2828256inception(3b)2828320inception(3c)1414640inception(4a)1414640inception(4b)1414640inception(4c)1414640inception(4d)1414640inception(4e)771024inception
46、(5a)771024inception(5b)771024avgpoolll1024fullyconn11128L2normalization11128图3-7Inception架构的深度卷积神经网络3.2.5TripletLoss人们面部模型的一个结尾的一个选取的方法是使用的是tripletloss函数这个以前的方法对我们人们面部的成像做了一个分类别的选取,在这个里面对于人们面部成像的使用的tripletloss函数的方法的数据与一些方法的根基主要是在传统loss函数的基础上进行的,但是这个函数的最终的一个大体的趋势与走向是把这些相似的面部反应到一个一起的空间维度里面,然后把这些相似的成像和
47、数据做一个积聚。我所使用的tripletloss函数是在其基础上有进一步的提升,其原理是把不同个体的人脸图像分开存放,把这个三元组分别取三个样例,就比如:Anchor,PoSitiVe,Negative”三个量,其中AnChor相当于需要别检测的人脸图像;Positive相当于是人脸库中相似度较高的人脸图像;Negative反之就是相似程度相差比较大图像,再利用AnChOr与Positive和NegatiVe之间距离长度不同的联系来做操作的时候,在这三个组合里面,我们可以知道在Anchor与Positive之间的一个正相关的数据的差距是小于这两者之间的一个负相关差距的一个数据,如图3-8所示:
48、根据这三组里面的各个样本来说,要把一个共享数据和不共享的网络进行锻炼的时候,就需要把这三组里面的各个样本的特点显示出来,分别记为f(),f(邸)J(*i),tripletloss的一个最终想要的结果就是要根据学习这个方式的,把让x_a与x_p特征这两者里面的一个差距拉小,然后让x_a与x_n这两者的差距能够变大,而且还需要这两组的关系之间的差距有一个最小的间隔的,其公式表达如下所示,对应的目标函数也就一目了然了。11/()一八婢)II;+IIfaf)/(M)I族(3-1)V(/(%n(xf)W)e(3-2)W)-F(W)II-llW)-W)I1+(3-3)MiniBalCh在训练的该需要的模型时,是通过计算出对应TriPlelLoS