摘 要:人脸识别技术在实际生活中有很多的应用,像身份证真人匹配,手机面部解锁,手机支付确认等等已经取得了广泛的应用,实现人脸检测的手段也有很多,例如opencv视觉库人脸捕捉,Dlib库实现数据库中人脸匹配,利用机器学习深度学习训练人脸检测模型,在国内百度也提供了现成的人脸识别接口。同时,人脸识别技术使人工智能中很受重视的课题,具有良好的发展前景。
系统是基于个人windows实现的,使用编程语言为python,由于python简单易学,且开发生态环境好,效率高,所以很适合人工智能。IDE为JetBrainPyCharm,环境为tensorflow。
系统是根据mtcnn(多任务卷积神经网络)思想训练出人脸识别模型来设计的,旨在抓取出本地给定图片中的人脸框位置,或者指出最有可能为人脸的区域。根据mtcnn思想,训练模型需要三层网络逐层训练,P-Net层主要获得人脸区域候选框和边界框的回归向量,R-Net层根据P-Net层去掉重叠区域,并进一步筛选出候选框,O-Net层则需要获得人脸关键点的位置,分别为两只眼睛,鼻子,以及嘴角两端的坐标。训练完模型后可使用本地文件夹中的图片进行测试,检测图片中人脸框选取的准确度。
关键词:人脸识别,mtcnn,深度学习,python,tensorflow
目录
摘要
Abstract
1 引言-1
1.1 概述-1
1.2 国内外研究现状和发展趋势-2
1.3 本课题研究的主要内容-5
2 开发环境-6
2.1 硬件条件-6
2.2 软件平台-6
2.2.1 Anaconda安装-6
2.2.2 IDE-6
2.2.3 CUDA-6
2.2.4 CUDNN-7
3系统原理-7
3.1机器学习-7
3.2深度学习-8
3.3卷积神经网络-8
3.3.1 卷积层-8
3.3.2 池化层-9
3.3.3 全连接层-9
3.4 MTCNN-9
4 模型训练-16
4.1 PNet-18
4.1.1 生成复杂样本-19
4.1.2 生成Landmark-20
4.1.3 转化为tfreconds格式-21
4.1.4 训练模型-22
4.2 RNet-26
4.2.1 生成复杂样本-26
4.2.2 生成Landmark-26
4.2.3 转化为tfreconds格式-26
4.2.4 训练模型-27
4.3ONet-28
4.3.1 生成复杂样本-28
4.3.2 生成Landmark-29
4.3.3 转化为tfreconds格式-29
4.3.4 训练模型-30
5 模型测试-31
5.1 本地图片测试-31
6 结论-32
参 考 文 献-33
致 谢-34
附录A-34