登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 电子信息类 > 电子信息工程 > 正文

基于迁移学习的人脸识别算法的设计与实现毕业论文

 2020-02-17 23:14:09  

摘 要

随着人工智能的发展,人脸识别成为了机器学习与模式识别等领域的研究热点之一。目前,人脸识别技术已经被运用到很多场景之中,比如视频监控,信息安全等。同时,采用深度学习的方法已经能够非常好地实现人脸识别,但训练一个完整地神经网络模型需要庞大的数据集以及漫长的训练过程,因此,使用已经训练好的模型针对目标任务进行迁移就显得十分必要了。本文利用Keras架构建立的迁移学习算法模型,在迁移学习方法上使用的是基于模型的迁移学习方法,该方法可简单表述为固定加微调。本文针对VGG16网络模型进行迁移学习,固定VGG16的全部卷积层,加入自己定义的全连接层网络,在训练时只训练全连接层部分。此外,为了优化网络,在全连接层中加入了dropout层,该层能使训练和测试很好地拟合。在训练时,使用了Adadelta优化器,该优化器对训练有很好地加速效果。同时,网络中使用了ReLu激活函数,它能使网络输入与输出保持非线性,增加网络复杂度。最终,训练出来地模型能够达到85%左右的精确度,并能够准确的识别人脸图像。

关键词: 人脸识别、Keras、迁移学习、VGG16

Abstract

With the development of artificial intelligence, face recognition has become one of the research hotspots in machine learning and pattern recognition. At present, face recognition technology has been used in many scenarios, such as video surveillance, information security and so on. At the same time, the method of in-depth learning has been able to achieve face recognition very well, but training a complete neural network model requires huge data sets and a long training process. Therefore, it is necessary to use the trained model for target task migration. In this paper, the migration learning algorithm model based on Keras architecture is built, the model-based transfer learning method is used in the transfer learning method, which can be simply expressed as fixed and fine-tuned. This paper focuses on the migration learning of VGG16 network model, fixes all the convolution layers of VGG16, and adds the self-defined full-connection layer network. Only the full-connection layer part is trained during training. In addition, in order to optimize the network, dropout layer is added to the full connection layer, which can make training and testing fit well. In training, Adadelta optimizer is used, which has a good acceleration effect on training. At the same time, relu activation function is used in the network, which can keep the input and output of the network non-linear and increase the network complexity. Finally, the trained model can achieve about 85% accuracy, and can accurately recognize face images.

Key words: face recognition, Keras, transfer learning, VGG16

目录

第一章 绪论 1

1.1 研究背景及意义 1

1.1.1人脸识别的应用背景和意义 1

1.1.2迁移学习背景和意义 1

1.1.3 基于tensorflow的Keras 2

1.2 国内外研究现状 2

1.2.1 国内研究现状 2

1.2.2 国外研究现状 3

1.3 本文的主要工作 4

1.4论文的组织 4

第二章 基于模型的迁移学习 5

2.1 迁移学习的定义 5

2.2 迁移学习方法 5

2.2.1 基于模型的迁移学习的实现 6

2.2.2 常用迁移学习网络介绍 6

2.2.3 构建迁移学习网络 8

第三章 实验结果与分析 12

3.1 常用的人脸数据集 12

3.2 使用云服务器 12

3.3 训练、测试及验证 14

3.3.1 读入训练集和测试集 14

3.3.2 训练过程展示 15

3.3.3 加入dropout层 17

3.3.4 优化器 19

3.3.5 激活函数 20

3.3.6 测试结果 21

3.4 识别人脸图像 22

总结与展望 25

参考文献 26

致谢 27

第一章 绪论

1.1 研究背景及意义

1.1.1人脸识别的应用背景和意义

人脸识别技术是根据提取出的人的脸部特征,对人脸图像进行人的信息识别。人脸识别首先判断图像中是否存在人脸,若存在人脸,则进一步提取人脸的位置、大小和人脸器官等特征。并根据这些特征,进一步提取人脸所蕴含的身份信息,最后与人脸库进行对比,从而识别人脸的身份。

目前,人脸识别技术已经十分成熟,并应用于各个场景之中。比如,最近比较热门的人脸支付功能,就是先进行人脸识别,提取人脸信息,达到确认身份的目的。由于人脸信息涉及到信息、财产安全等问题,所以设计一个安全、有效的人脸识别系统是十分有必要的。

1.1.2迁移学习背景和意义

2005年,美国国家高级研究计划署(DARPA)在一份广泛机构公告中给迁移学习提出了一个新的任务:一个系统应具有识别和应用之前任务中学到的知识和技能到新任务的能力。也就是说,迁移学习就是将一个或多个源任务到目标任务的迁移,它关注的重点在于目标领域。与传统机器学习相比,迁移学习的好处在于其可以实现多目标任务的学习,传统的模型对于不同的任务,需要训练多个不同的任务模型。而对于迁移学习,可以先实现简单的任务,将简单任务中学习到的知识迁移到更难的问题上。传统机器学习和迁移学习的示意图如下:

学习系统

学习到的知识

学习系统

学习系统

学习系统

(i) 传统机器学习 (ii) 迁移学习

图1 传统机器学习和迁移学习的区别

也就是说,迁移学习就是让新一代神经网络在前人的基础之上更进一步,而不必重新建立一个新的网络。使用一个由他人预先训练好的神经网络,应用在其他领域,可以大大减少训练时间,极大地提高了神经网络的效率。

1.1.3 基于tensorflow的Keras

Keras是一个高级神经网络API,它由Python编写而成,并基于tensorflow、theano以及CNTK后端。Keras面向的是人而不是机器,它旨在减少人们搭建神经网络的负担,让使用者能够快速创建复杂的神经网络,灵活地选取训练参数来进行网络训练。Keras的优点在于简易和快速的原型设计(Keras既有高度模块化,极简和可扩充特性),支持CNN和RNN或二者结合,支持任意的连接方案(包括多输入和多输出训练)以及无缝CPU和GPU切换。

Keras有以下几点优点:

  1. 模块性。Keras架构可以高度模块化,网络层、损失函数、优化器、初始化策略、激活函数、正则化方法都是独立的模块,使用者可以极为方便快速地建立自己地模型。
  2. 提供了很多经典网络,例如VGG、Inception、ResNet等,使用者可以很方便地进行fine-tune。
  3. 使用简单,Keras在构建网络的时候可以以流水线的形式逐层添加网络层,使代码变得直观易懂。

1.2 国内外研究现状

1.2.1 国内研究现状

2009年,Pan和Yang在发表的文章[1]中针对源领域和目标领域样本是否标注以及任务是否单一将迁移学习划分为归纳迁移学习、直推式迁移学习和无监督迁移学习三类。同时,文章给出了迁移学习的定义。文章指出,迁移学习的基本方法可以分为四种:基于实例的迁移学习、基于特征的迁移学习、基于模型(参数)的迁移学习以及基于关系的迁移学习。

  1. 基于实例的迁移学习

上海交通大学Dai等人[2]提出了TrAdaboost方法,将AdaBoost的思想应用于迁移学习中,提高有利于目标分类任务的实例权重、降低不利于目标分类任务的实例权重,并基于PAC理论推到了模型的泛化误差上界。

  1. 基于特征的迁移学习

基于特征的迁移学习方法是当今迁移学习中最热门的研究方法。在2011年发表的文章[3]中,香港科技大学的Pan等人提出迁移成分分析方法(Transfer Component Analysis, TCA)是基于特征的较为典型的一个方法。2014年,清华大学龙明盛等人在文章[4]中将实例和特征迁移方法进行了有机地结合,他们提出在最小化分布距离的同时,加入实例选择的迁移联合匹配(Tran-fer Joint Matching, TJM)方法。

  1. 基于模型的迁移学习

该方法强调源域和目标域之间存在共同的参数信息。2013年中科院计算所的Zhao等人发表了文章[5],并提出了TransEMDT方法,该方法针对已有标记的数据,通过决策树构建鲁棒性的行为来识别模型,然后针对无标定数据,利用K-Means聚类方法寻找最优化的标定参数。基于模型的迁移学习主要是通过固定加微调的方式对现有神经网络模型进行修改,然后加入领域适配层,并联合训练实现的。该方法也可以看作是基于模型、特征方法的结合。

  1. 基于关系的迁移学习

这种方法着重于源域和目标域样本之间的关系,目前关于该方法的研究较少。

1.2.2 国外研究现状

2014年, Karen Simonyan和 Andrew Zisserman发表了论文[6],该论文以比赛为目的,设计了神经网络模型。该模型在同年的ILSVRC竞赛中分类第二,定位任务第一的成绩。

在同年的ILSVRC竞赛中获得第一名的GoogleNet使用的是Inceptio模块该模块使用大量 trick 来提升性能,包括速度和准确率两方面。它的不断进化带来了多种 Inception 网络版本的出现,例如InceptionV1、InceptionV2、InceptionV3和InceptionV4。Inception模块发表于论文[7]中。

2015年, 微软研究院的Kaiming He等四名华人提出ResNet[8]。该网络创造性的使用了残差网络,成功地解决了梯度消失的问题。作为ILSVRC2015比赛中的冠军,该网络在top5上的错误率为3.57%,同时参数量比VGGNet低,效果非常突出。ResNet的结构可以对神经网络的训练有非常好的加速效果,其模型在准确率上也有很大的提升。同时ResNet的泛化性能非常好,甚至可以直接用到InceptionNet网络中。

2016年,康奈尔大学博士后黄高博士等人提出了DenseNet网络模型[9], 作为CVPR2017最佳论文,DenseNet脱离了加深网络层数(ResNet)和加宽网络结构(Inception)来提升网络性能的定式思维,从特征的角度考虑,通过特征重用和旁路(Bypass)设置,既大幅度减少了网络的参数量,又在一定程度上缓解了梯度消失问题的产生。

在2019年ICML-19收录的一片文章中[10],与当下非常流行的采用领域自适应方法提高精确度不同,作者另辟蹊径,从根源上研究不同架构的深度网络的迁移方法,并提供了行之有效的解决犯法。作者脱离了固定加微调的模式,创新性地使用两种不同结构的网络进行迁移,比如用训练好的ResNet帮助VGG网络进行迁移。

1.3 本文的主要工作

在神经网络的实际应用中,通常会出现训练集过大、神经网络过于复杂、训练时间过长等缺点。针对这样的问题,本文采用了迁移学习的方式,使用少量数据集,调用已有网络的权重,来达到缩短训练时间的目的。

本文采用了基于模型的迁移学习方法,简单的说就是利用预训练网络,采取固定加微调的方式,构建出一个针对目标域的模型。本文使用的是VGG16网络模型,同时根据自己的任务设计了相应的全连接网络。此外,为了处理过拟合地的问题,本文在全连接层中加入了dropout层。同时,为了优化模型,本文尝试了各种优化器和激活函数,最终使模型达到了一个较好的性能。

1.4论文的组织

第一章为绪论,主要介绍了本文的研究背景,国内外目前的研究现状以及本文的主要工作。

第二章主要介绍了本文使用了基于模型的迁移学习方法,以预训练的VGG16网络为基础,采用固定加微调的方法并加入自定义网络层。这一章主要讲的就是整个神经网络模型的框架。

第三章介绍的是实验内容。首先介绍的是使用云服务器训练神经网络,其次讲述了神经网络的训练过程和优化过程。其中优化包括加入dropout层处理过拟合以及调试训练参数等。最后介绍了神经网络的训练过程和结果。

第四章是结束语。对本文进行总结,并阐述了下一步的工作期望。

第二章 基于模型的迁移学习

2.1 迁移学习的定义

近年来,人们在深度神经网络领域有了很大的发展,但是训练出来的模型仍然极度缺乏泛化到不同训练环境的能力。换句话说,就是模型运用到其他领域时,就会变得不太适用。而迁移学习则要求模型在对信任务或目标数据有一定了解的情况下,充分结合已经学到的知识,指导模型进一步地学习,从而更好地应对新任务。

在迁移学习中存在两个概念,分别是域(Domain)和学习任务(Task)。具 体来说,域上又包含两部分概念——样本所在的特征子空间X和域上样本所构 成的分布,即={,}。若两个域所在的特征子空间(Feature Subspace)或者其上的样本分布(Distribution)不同,则这两个域存在差异,即具有以下关系:若或者则。类似地,学习任务亦包含两部分——类别空间(Label Subspace)和目标预测函数(Objective Predictive Function),即 =((.))。若两个学习任务中标签所在的类别空间或者目标预测函数不同,那么这两个学习任务是不同的,即具有以下关系:若 或者,则。

学术上对迁移学习的定义为给定源域和在其上的学习任务,以及目 标域和在其上的学习任务,迁移学习的目标在于利用和的知识来提升在 上目标预测函数的学习,其中,或者。

2.2 迁移学习方法

根据 Sinno Jialin Pan 和 Qiang Yang的文章[1],可将迁移学习算法,根据所要迁移的知识表示形式,分为以下四大类:

  1. 基于实例的迁移学习(instance-based transfer learning)

该方法基于一个假设:源域中的一些数据与目标域存在很多共同特征。主要方法是对源域的实例进行重新加权,若与目标域中的数据相似度较高,则筛选出来,再进行训练学习,得到新的模型。这种方法的缺点是权重与相似度的度量选择困难,且源域与目标域的数据分布往往不同。优点是方法简单,易于实现。

  1. 基于特征的迁移学习(feature-representation transfer learning)

该方法基于的一个假设是源域与目标域存在一些公共的交叉特征,主要方法是通过特征变换,把源域与目标域的数据变换到同一特征空间,再进行训练学习。其优点是对于大多数方法都适用,效果较好。缺点是难于求解,容易发生过适配。

  1. 基于参数(模型)的迁移学习(Parameter/Model based Transfer Learning)

该方法的要求模型的任务与目标任务存在相同部分,使用已经训练好的模型,进行相应的修改就能用到目标域中。其优点是可以将模型相同的部分直接进行迁移,减少了很多训练时间。缺点是不易收敛。

  1. 基于关系的迁移学习(relational-knowledge transfer learning)

该方法假设若两个域相似,那么它们会共享某种相似关系。主要方法是利用源域学习逻辑关系网络,再利用到目标域上。

2.2.1 基于模型的迁移学习的实现

本文以基于模型的迁移学习方法展开,利用一些预训练的网络来进行迁移学习。其中两类比较常见的方法为对预训练的网络进行fine-tune以及进行特征提取:

  1. 预训练的网络当作特征提取器:使用在ImageNet上预训练的网络,去掉最后的全连接层,其余部分当作特征提取器。得到特征之后,可以使用线性分类器(Liner SVM、Softmax等)来分类图像。
  2. Fine-tune模型:微调是迁移学习的一种常用方法,主要是通过修改预训练网络模型结构(如修改样本输出类别个数),选择性固定预训练网络模型的网络层他,通常是前面部分的卷积层。

这两种方法在预训练网络的基础上,只需要少量数据集就能达到较高的精确度。同时,由于调用了网络的权重,因此节省了大部分的训练时间,相比于重新训练一个完整的神经网络,上面提出的方法较为有效地节省了训练成本。实际的训练效果会在第三章实验效果部分详细阐述。

常用迁移学习网络介绍

  1. VGG16/VGG19

VGGNet是由牛津大学计算机视觉组合(Visual Geometry Group)和Google DeepMind公司研究员共同研发的深度卷积神经网络。在2014年ILSVRC竞赛中,VGG模型获得第二名的成绩,相比于第一名(GoogleNet),VGG模型在多个迁移学习的任务中的性能要优于前者。此外,VGG模型在提取图像CNN特征方面是首选算法。但是,VGG模型的缺陷在于,它的参数量巨大(140M),需要更大的存储空间。

VGG网络的结构非常一致,整个网络都使用了同样大小的卷积核尺寸(3×3)和最大赤化尺寸(2×2)。VGG16包含了16层网络,其中包括13个卷积层和3个全连接层。同样,VGG19包含了19层网络,于VGG16相比,仅多出了3个卷积层。VGG网络结构如下表所示:

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

preview

C:\Users\89229\AppData\Local\Microsoft\Windows\INetCache\Content.Word\100_nodrop1.png

100_nodrop2

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图