## 计算机视觉课程论文
# 基于 MTCNN 的实时人脸检测方法及系统
[摘要] 由于各种姿势,照明和遮挡,在无约束环境中的面部检测和对准具有挑战性。 最近的研究表明,深度学习方法可以在这两项任务上取得令人瞩目的效果。在本文中,我使用了MTCNN深度级联神经网络的多任务框架,该框架由三层网络构成,分别是P-Net、R-Net、以及O-Net。通过分别训练这三个神经网络。将一个网络的输出作为后一个网络的输入。以粗略到精细的方式预测面部的地标位置。指的一提的是,该框架通过选取loss前70%的hard example(比较难训练的样本)执行方向传播,提高了网络的训练效果。经过实验分析,该方法在面部检测中有着卓越精度,同时保持了实时性能。此外,在训练好的模型基础上,设计并开发出一个实时人脸检测系统,适用于门禁,照相以所有需要运用到人脸检测的场景。
[关键词] 人脸检测; 级联神经网络; 深度学习: MTCNN:
# 第1章 引言
## 1.1 背景介绍与研究意义
自动人脸检测技术是所有人脸影像分析衍生应用的基础,这些扩展应用细分有人脸识别、人脸验证、人脸跟踪、人脸属性识别,人脸行为分析、个人相册管理、机器人人机交互、社交平台的应用等。
从应用领域上可以分为:① 以企事业单位管理及商业保密为主的商用人脸检测;② 大规模联网布控的多角度多背景的安防人脸检测;③ 反恐安全、调查取证、刑事侦查为主的低分辨率尺度多样的军用/警用人脸检测;④ 当然还有基于互联网社交娱乐应用等的一般人脸检测。在学术研究中分为约束环境人脸检测和非约束环境人脸检测,如下图。
![](https://www.writebug.com/myres/static/uploads/2021/11/28/430dcd49dea5fd8f13dc6a21e9ec66b7.writebug)
图 1-1 度量学习和分类问题区别
在实际中,作为安防企业,人脸检测技术的研发应用在两方面:
1. 基本的人脸考勤和门禁等,这一类属于有约束情况,用传统改进算法足以满足性能;
2. 安防实时监控,智能视频人脸分析,海量人脸搜索验证、人群数量统计,防踩踏预警等,这类属于非约束情况,不仅对检测算法的精度(包括误检率)要求很高,而且要确保实时性。
调研发现,人脸检测(识别)实战的场景逐渐从室内演变到室外,从单一路况发展到广场、车站、地铁口等。目前基于后者场景,精度若能稳定达到 80% 以上就属于顶尖技术了(很难达到)。可以想象,雾霾天戴着口罩,冬天戴着帽子,夏天戴着墨镜等,传统算法的检测是比较难的。
例如,公安部门某次招标给出的人脸测试集中一张图如下,可以看出图片模糊、分辨率低,更有戴口罩等大部分遮挡情况。在这种情况下需要识别精度达到一定要求,并且对于召回率(误检率)有一定的保证,传统检测算法是望而却步的,而且目前现有智能视频分析技术的误报率有 60% 之多,改进的好点的能降低到 30%,但还是极大影响实际应用(天安门广场上过识别后因误报高撤了)。综上所述,研究出克服上述困难的人脸检测算法是人脸分析相关应用的首要任务。
![](https://www.writebug.com/myres/static/uploads/2021/11/28/a05a602cbc60117f9c19ff1a9551ee3b.writebug)
图 1-2 公安部提供的测试集
人脸检测的研究在过去二十年例取得了巨大进步,特别是 Viola and Jones 提出了开创性算法,他们通过 Haar-Like 特征和 AdaBoost 去训练级联分类器获得实时效果很好的人脸检测器,然而研究指出当人脸在非约束环境下,该算法检测效果极差。这里说的非约束环境是对比于约束情况下人脸数单一、背景简单、直立正脸等相对理想的条件而言的,随着人脸识别、人脸跟踪等的大规模应用,人脸检测面临的要求越来越高(如上图):人脸尺度多变、数量冗大、姿势多样包括俯拍人脸、戴帽子口罩等的遮挡、表情夸张、化妆伪装、光照条件恶劣、分辨率低甚至连肉眼都较难区分等。用经典 VJ 人脸检测器(2010 年更新)在非约束评测集 FDDB 中验证显示:当限定误检数为 10 个时,准确率不超过 10%;为 500 个时,检测率仅仅为 52.8%。所以丞待更好的算法以应用于大规模安防布控等非约束人脸检测场景。
14年底微软美国研究院首席研究员张正友等在 CVIU 上发表了非约束人脸检测专题综述,文中指出过去十年里,当限定误检数为 0 或不超过 10 个时,人脸检测算法的查准率也就是准确率(true positive rate)提高了 65% 之多(最新基于 CNN 的算法和传统 Vj-boosting 算法的对比结果)。
在本文中,我使用了一个新的框架,通过多任务学习使用统一的级联 CNN 来集成这些任务。该框架的 CNN 包括三个阶段。
·第一阶段:通过浅 CNN 快速生成候选窗口。
·第二阶段:通过更复杂的 CNN 拒绝大量非面部窗口来细化窗口。
·第三阶段:使用更强大的 CNN 再次细化结果并输出五个面部标志位置。
由于这个多任务学习框架,算法的性能可以显着提高。
本文的主要内容概括如下:
1. 使用了一种新的级联 CNN 框架,用于联合人脸检测和对齐,并精心设计轻量级 CNN 架构以实现实时性能。
2. 在具有挑战性的测试中进行了大量实验,与人脸检测中的最新技术相比,显示出使用方法的显着性能和准确性进步。
![](https://www.writebug.com/myres/static/uploads/2021/11/28/4e0899e3261c13b546f97b46be0d151f.writebug)
图 1-3 MTCNN 级联神经网络的人脸检测大致过程
图 1-3 是级联框架的大致过程,包括三级多任务深度卷积网络。 首先,候选窗口是通过快速提案网络(P-Net)生成的。 之后,通过精炼网络(R-Net)在下一阶段完善这些框。 在第三阶段,输出网络(O-Net)产生最终边界框和面部地标位置。
## 1.2 研究内容与目标
本课题研究内容主要是基于级联神经网络优化人脸检测模型,提升人脸检测精度。一是在公开的大规模人脸数据集上训练人脸检测模型;二是采用三层级联神经网络提取特征和对损失函数进行优化。三是基于人脸检测实现的定制人脸检测系统。
本课题目标主要有两个:一方面是,在数据集上基于级联神经网络训练出一个好的人脸检测模型;另一方面是, 在 Python 上开发构建出一个人脸检测系统,实现对图片或视频中人脸进行实时人脸检测,并显示人脸置信度。
# 第2章 深度学习及 MTCNN 深度级联神经网络原理
## 2.1 深度学习简介
深度学习(Deep Learning)是机器学习的分支,是一种以人工神经网络为架构,对数据进行特征学习的算法。目前,深度学习结构已有数种,经典代表有深度神经网络、卷积神经网络、递归神经网络等。深度目前已经广泛应用于计算机视觉、自然语言处理、语音识别等领域,并取得了巨大的成果。2016 年 3 月,AlphaGo 的表现,展现了深度学习在围棋领域的重大突破。
### 2.1.1 Proposal Network (P-Net)层
该网络结构主要获得了人脸区域的候选窗口和边界框的回归向量。并用该边界框做回归,对候选窗口进行校准,然后通过非极大值抑制(NMS)来合并高度重叠的候选框。
![](https://www.writebug.com/myres/static/uploads/2021/11/28/596eaf6daca7ea5e2f8ed16fa983ad1a.writebug)
图 2-1 Proposal Network (P-Net)层训练过程。其中“MP”表示最大池化,“Conv”表示�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本系统为基于MTCNN的实时人脸检测方法及系统。本系统使用了一个新的框架,通过多任务学习使用统一的级联CNN来集成这些任务。该框架的CNN包括三个阶段。 第一阶段:通过浅CNN快速生成候选窗口。 第二阶段:通过更复杂的CNN拒绝大量非面部窗口来细化窗口。 第三阶段:使用更强大的CNN再次细化结果并输出五个面部标志位置。
资源推荐
资源详情
资源评论
收起资源包目录
基于Python MTCNN的实时人脸检测方法及系统【100011420】 (111个子文件)
checkpoint 147B
checkpoint 147B
checkpoint 147B
ONet-14.data-00000-of-00001 2.97MB
ONet-13.data-00000-of-00001 2.97MB
ONet-12.data-00000-of-00001 2.97MB
RNet-22.data-00000-of-00001 792KB
PNet-30.data-00000-of-00001 54KB
计算机视觉论文.docx 4.18MB
数字图像处理课程设计.docx 1.65MB
ONet-14.index 2KB
ONet-12.index 2KB
ONet-13.index 2KB
RNet-22.index 1KB
PNet-30.index 1KB
bg.jpg 170KB
test.jpg 127KB
2007_000346.jpg 84KB
2007_000346.jpg 83KB
test.jpg 64KB
3.jpg 64KB
w475_h331_9a5169d0369e4e1496d1cdfabb1ded85.jpg 59KB
w475_h331_9a5169d0369e4e1496d1cdfabb1ded85.jpg 34KB
3.jpg 32KB
0190712054706.jpg 6KB
LICENSE 1KB
myoutput.md 29KB
myoutput.md.md 24KB
README.md 23KB
READMEbefore.md 7KB
ONet-12.meta 265KB
ONet-14.meta 265KB
ONet-13.meta 265KB
RNet-22.meta 240KB
PNet-30.meta 221KB
out.mp4 256KB
33-f30ba1c6fb88d0bec47037fcfde4702f.png 680KB
1-ed347e2ce1aa5c6c3fc43f312e756846.png 674KB
31-529c8d796afa536eba55ab17a938c750.png 482KB
3-752ef9372af8f866140175492ebd526d.png 461KB
2-879cbf727712f95294aee9bcfe63bba5.png 286KB
30-396202a8a87aaa822b66bf18c634c718.png 263KB
38-396ebc813280b8fa2b613c80342145c2.png 257KB
34-786b42ef06e000894451d40f8a1effe3.png 168KB
32-a748c17cd9c1878464315da17fee4bb9.png 166KB
35-1c6a2c845bfd6630b62faebb5c046370.png 157KB
36-14e4a37ccdd63b73457c499cf02b3568.png 152KB
37-8029b71c5f1c6670ece93eb330e8edaa.png 124KB
model1.png 119KB
28-8ad4e5ef2a200e0b3af6ad773506813f.png 81KB
5-47b06a1e7d3b84c7d2991882f98968e6.png 69KB
4-30a9e2adcc9b33f87eacbea89dedcf91.png 66KB
6-1d88d0298e9dbb45921b7d2815c08dda.png 64KB
model2.png 58KB
39-c236055a62304a9dc156a2b6f9d7b2f3.png 54KB
29-be2a5f5bf59818feeccd4c094de1106a.png 14KB
23-daec718acd8aa6133351a7daffd13f8a.png 3KB
8-0dc6d844bc7a634e05df183574a4fc68.png 2KB
17-78d82a53694566331bf77ab9611b7021.png 2KB
25-d2ad3e6a594236c66fb224e0160b5487.png 2KB
26-9154a6cc80c471ab3ea6b88a8048df47.png 2KB
13-7ac3448c64864a303293d45b7db75cc8.png 1KB
21-e34f13b10ddb7070640b56e00c48e809.png 1KB
27-b5ccfe0842404a5c76f5b1b5503b9cf1.png 1009B
11-d3893099a2c45faeef2d6c2a9afd328b.png 969B
18-8fe2396a1cedde2562738b6fd86e3ea6.png 855B
16-84e3781145b29f4716c8cbaed2a3af27.png 828B
19-6b57c287157d9a1c90e675f8c8a995c3.png 741B
14-512a0a1f8f52e145a20be6092c172898.png 658B
15-74fdfc3153c279c44c8a2de2bde6dfe4.png 590B
22-d8d0299c7c99c015ea64397aa4aa12db.png 492B
24-723821cc981411807030d525a758e4e4.png 362B
9-32a1b86324e03dbd9687a98383b29e38.png 343B
7-862ddcfd971ac0c6ec44a8e08565bcee.png 296B
12-862ddcfd971ac0c6ec44a8e08565bcee.png 296B
10-862ddcfd971ac0c6ec44a8e08565bcee.png 296B
20-25eae8fbfc474732e44033ceceefab33.png 178B
MtcnnDetector.py 13KB
train_model.py 11KB
model.py 9KB
gen_landmark_aug.py 7KB
gen_tfrecords.py 7KB
gen_hard_example.py 6KB
gen_12net_data.py 6KB
test.py 5KB
faceGui.py 4KB
BBox_utils.py 3KB
utils.py 2KB
detector.py 2KB
gen_imglist_pnet.py 1KB
fcn_detector.py 1KB
loader.py 1KB
train.py 1KB
config.py 571B
__init__.py 5B
__init__.py 4B
__init__.py 4B
MtcnnDetector.cpython-36.pyc 9KB
train_model.cpython-36.pyc 8KB
model.cpython-36.pyc 6KB
共 111 条
- 1
- 2
资源评论
神仙别闹
- 粉丝: 2680
- 资源: 7667
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- IMG_0694.GIF
- 基于图像的三维模型重建C++源代码+文档说明(高分课程设计)
- 基于聚焦法的工件立体测量方案,根据数据进行三维重建 使用HALCON处理图像,MATLAB拟合数据+源代码+数据集+效果图
- 锄战三国村 修改:货币使用不减 v1.10(2) 原创 (中文).apk
- 基于python实现的单目双目视觉三维重建+源代码+图像图片(高分课程设计)
- 基于C+++OPENCV的全景图像拼接源码(课程设计)
- 基于Python+OpenCV对多张图片进行全景图像拼接,消除鬼影,消除裂缝+源代码+文档说明+界面截图(高分课程设计)
- 基于C++实现的全景图像拼接源码(课程设计)
- 基于SIFT特征点提取和RASIC算法实现全景图像拼接python源码+文档说明+界面截图+详细注释(95分以上课程大作业)
- 基于matlab实现眼部判别的疲劳检测系统+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功