MTCNN 流程
经过三个网络 P-Net,R-Net,O-Net

对于P-Net:
P-Net是一个全卷积层,不涉及到全连接层,所以我们的输入图像的尺寸可以是不固定的。
对于P-Net来说,我们的输入图像是图像金字塔,也就是说对于一张图片,根据不同的factor进行图像的缩小。这里的尺寸不固定的意思是说,我们可以使用图像金字塔中的不同图像作为输入。
在P-Net网络中,我们首席那会设置最小的人脸检测尺寸,minsize=20(这里)[https://www.cnblogs.com/shine-lee/p/10066049.html]。人脸尺寸小于这个的,我们是不考虑的。
P-Net网络是1212大小的框来检测是否具有人脸。这个时候如果我们假设输入图像尺寸为100120,这样我们能够接受的最小的人脸图像尺寸就是2020,最大就是100100.
如果想要把最小的20*20缩小到可以被P-Net来识别,我们就需要设定第一个缩小因子为12/20=0.6。同时我们设定图像金字塔相邻层缩放比例一致为0.7,这样大概就是
[0.6,0.42419999999999997,0.29990939999999994,0.2120359458,0.14990941368059996,0.10598595547218417,0.0749320705188342,0.05297697385681578,0.03745472051676876]。
在这个过程中,我们需要保证图像最小边长度的大于12.

P-Net返回两个结果,一个是分类结果,是否含有人脸。一个是回归结果,返回四个偏移量。在推断阶段,两个结果同时生成,我们首先对分类结果进行处理,对于大于threshold的值(
这个是我们认为规定的,认为大于这个值的才认为含有人脸),然后我们使用NMS进行候选框的排除(在每个缩放比例的条件下生成的候选框我们都会进行NMS),随后我们把所有缩放比例之下生成的额候选框进行一个NMS,随后我们结合offsets对筛选之后的筛选框进行调整。

R-Net
我们把从P-Net中获得的候选框进行resize到24*24. 然后我们进行卷积核全连接,对每一个候选框进行分类和回归。首先对候选框进行NMS,然后结合回归结果进行回归调整。

O-net
将R-Net的候选框进行resize到48*48,返回三个结果:关键点位置,回归结果,分类结果

人脸检测--MTCNN从头到尾的详解 - 丘学文的文章 - 知乎 这篇文章对于推理过程讲解的很好
https://zhuanlan.zhihu.com/p/58825924

MTCNN自己的学习理解的更多相关文章

  1. MTCNN算法与代码理解—人脸检测和人脸对齐联合学习

    目录 写在前面 算法Pipeline详解 如何训练 损失函数 训练数据准备 多任务学习与在线困难样本挖掘 预测过程 参考 博客:blog.shinelee.me | 博客园 | CSDN 写在前面 主 ...

  2. 全面学习理解TLB(Translation Look-aside Buffer)地址变换高速缓存

    全面学习理解TLB(Translation Look-aside Buffer)地址变换高速缓存 前言: 本文学习思路是:存在缘由   --> 存在好处 --> 定义性质 --> 具 ...

  3. MLT的学习理解

    MLT的学习理解 MLT是一个开源的多媒体库,我们的音视频编辑工具,是使用它作为底层支持,某司的'快剪辑'pc版和安卓版,也是用的它. MLT简介 它的GitHub地址,这个库比较老了,现在只有一个作 ...

  4. 菜鸟之路——机器学习之SVM分类器学习理解以及Python实现

    SVM分类器里面的东西好多呀,碾压前两个.怪不得称之为深度学习出现之前表现最好的算法. 今天学到的也应该只是冰山一角,懂了SVM的一些原理.还得继续深入学习理解呢. 一些关键词: 超平面(hyper ...

  5. batch normalization学习理解笔记

    batch normalization学习理解笔记 最近在Andrew Ng课程中学到了Batch Normalization相关内容,通过查阅资料和原始paper,基本上弄懂了一些算法的细节部分,现 ...

  6. Source Xref 与 JavaDocs 学习理解

    最近学习Mybatis的官方文档,看到了[项目文档]一节有很多内容没有见过,做个笔记,理解一下. 没找到java相关代码的解释,其实用下面这个php版本解释,也非常不错. What is SOURCE ...

  7. TLD网络资源汇总--学习理解之(四)

    原文:http://blog.csdn.net/mysniper11/article/details/8726649 引文地址:http://www.cnblogs.com/lxy2017/p/392 ...

  8. TLD算法概述--学习理解之(一)

    liuyihai@126.com http://www.cnblogs.com/liuyihai/ TLD(Tracking-Learning-Detection)是英国萨里大学的一个捷克籍博士生Zd ...

  9. face recognition[翻译][深度学习理解人脸]

    本文译自<Deep learning for understanding faces: Machines may be just as good, or better, than humans& ...

随机推荐

  1. ElasticSearch 全文检索— ElasticSearch 基本操作

    REST 简介-定义 REST (REpresentation State Transfer)描述了一个架构样式的网络系统,比如 web 应用程序.它首次出现在 2000 年 Roy Fielding ...

  2. vs2017通过模块文件添加自定义注释

    有时我们在VS里建立类和接口时,需要添加比较规范的注释信息,而每次都要复制粘贴比较麻烦,所以需要我们的IDE做一些支持,比较修改VS里自定义的注释模式,以添加自己公司需要的信息格式. 注释比较规范,是 ...

  3. Windows安全认证是如何进行的?[NTLM篇]

    <上篇>中我们介绍Kerberos认证的整个流程.在允许的环境下,Kerberos是首选的认证方式.在这之前,Windows主要采用另一种认证协议——NTLM(NT Lan Manager ...

  4. jQuery 获取和设置表单元素

    jQuery提供了val()方法,使用它我们可以快速地获取和设置表单的文本框.单选按钮.以及单选按钮的值. 使用val()不带参数,表示获取元素的值 使用val()给定参数,则表示把值赋给元素 如下: ...

  5. vscode 常用插件安装

    设置中文语言使用快捷键[Ctrl+Shift+P],弹出的搜索框中输入[configure language],然后选择搜索出来的[Configure Display Language],locale ...

  6. mockJs语法糖用例

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  7. aar、jar、so的引入和aar打包包含so、aar、jar文件

    so依赖   1,先建本地仓库,指向so放置的目录

  8. SQL Server DBA SQL

    . 监控事例的等待 ,,)) "Prev", ,,)) "Curr",count(*) "Tot" from v$session_Wait ...

  9. jQuery-动画animate() 方法操作 CSS 属性

    语法: $(selector).animate({params},speed,callback); 多个params 之间用逗号(,)隔开. 必须使用 Camel 标记法书写所有的属性名,比如,必须使 ...

  10. COGS 1191. [Tyvj Feb11] 猫咪的进化

    ★   输入文件:neko.in   输出文件:neko.out   简单对比时间限制:1 s   内存限制:128 MB [背景] 对于一只猫咪来说,它是有九条命的.但是并不是所有的猫咪都是这样,只 ...