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. kill 与 kill -9(面试中问道的知识点)

    转载自:http://www.2cto.com/os/201305/215267.html 需要特别说明的是,SIGKILL和SIGSTOP这两个信号既不能被应用程序捕获,也不能被操作系统阻塞或忽略. ...

  2. 小试OKR一季度之后有感分享,你要不要试试ORK?

    封面 OKR已经在国内热火朝天有一阵子了,为了适当的赶时髦,从年初开始团队内部小范围使用ORK模式以便测试团队会有什么化学反应.这篇文章打算写写心得感受,供大家围观产考. 老一套先摆一下概念 OKR( ...

  3. Java获取系统信息(用户目录,临时目录等)

    java.version Java运行时环境版本 java.vendor Java运行时环境供应商 java.vendor.url Java供应商的 URL java.home Java安装目录 ja ...

  4. JAVA基础系列(一) 概述与相关概念

    万事开头难,来这个平台上已经有一段时间了,看到了很多高质量的文章,也很喜欢这种简约的风格.一直也想把自己的零散的知识体系组织起来,但苦于自己拙劣的文笔和不成流派的风格让大家笑话,直到现在才开始.可是从 ...

  5. java多线程处理任务

    最近用到使用多线程处理给用户发送站内消息的问题,想到使用java自带的线程池进行处理这个问题,具体如下: 定义一个线程: package com.qlwb.util; import org.apach ...

  6. Customers Who Never Order

    Suppose that a website contains two tables, the Customers table and the Orders table. Write a SQL qu ...

  7. The sixth day

    bound to 铁定You are bound to be fired  你会被铁定开除的 A:Dan forgot his map? Dan忘了带地图了吗? B:Yep!And he's boun ...

  8. mybat-大文件的存取

    在mybatis中存储大文件可以直接存 取的时候取出来的是二进制 1.在实体类中添加大文本和图片 package com.java1234.model; public class Student { ...

  9. char*、string、CString各种字符串之间转换

    参考博客: http://blog.csdn.net/luoweifu/article/details/20242307 http://blog.csdn.net/luoweifu/article/d ...

  10. 标准IO ——将A文件fpd第3个字节之后的内容复制到文件fps

    /* *使用标准IO ——将A文件fpd第3个字节之后的内容复制到文件fps 流程: 1.创建两个流,链接目标文件和源文件 2.输入流的基准点偏移四个单位然后输入缓冲区 3.输出流读取缓冲区数据送入文 ...