MTCNN自己的学习理解
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自己的学习理解的更多相关文章
- MTCNN算法与代码理解—人脸检测和人脸对齐联合学习
目录 写在前面 算法Pipeline详解 如何训练 损失函数 训练数据准备 多任务学习与在线困难样本挖掘 预测过程 参考 博客:blog.shinelee.me | 博客园 | CSDN 写在前面 主 ...
- 全面学习理解TLB(Translation Look-aside Buffer)地址变换高速缓存
全面学习理解TLB(Translation Look-aside Buffer)地址变换高速缓存 前言: 本文学习思路是:存在缘由 --> 存在好处 --> 定义性质 --> 具 ...
- MLT的学习理解
MLT的学习理解 MLT是一个开源的多媒体库,我们的音视频编辑工具,是使用它作为底层支持,某司的'快剪辑'pc版和安卓版,也是用的它. MLT简介 它的GitHub地址,这个库比较老了,现在只有一个作 ...
- 菜鸟之路——机器学习之SVM分类器学习理解以及Python实现
SVM分类器里面的东西好多呀,碾压前两个.怪不得称之为深度学习出现之前表现最好的算法. 今天学到的也应该只是冰山一角,懂了SVM的一些原理.还得继续深入学习理解呢. 一些关键词: 超平面(hyper ...
- batch normalization学习理解笔记
batch normalization学习理解笔记 最近在Andrew Ng课程中学到了Batch Normalization相关内容,通过查阅资料和原始paper,基本上弄懂了一些算法的细节部分,现 ...
- Source Xref 与 JavaDocs 学习理解
最近学习Mybatis的官方文档,看到了[项目文档]一节有很多内容没有见过,做个笔记,理解一下. 没找到java相关代码的解释,其实用下面这个php版本解释,也非常不错. What is SOURCE ...
- TLD网络资源汇总--学习理解之(四)
原文:http://blog.csdn.net/mysniper11/article/details/8726649 引文地址:http://www.cnblogs.com/lxy2017/p/392 ...
- TLD算法概述--学习理解之(一)
liuyihai@126.com http://www.cnblogs.com/liuyihai/ TLD(Tracking-Learning-Detection)是英国萨里大学的一个捷克籍博士生Zd ...
- face recognition[翻译][深度学习理解人脸]
本文译自<Deep learning for understanding faces: Machines may be just as good, or better, than humans& ...
随机推荐
- 牛客网Java刷题知识点之插入排序(直接插入排序和希尔排序)、选择排序(直接选择排序和堆排序)、冒泡排序、快速排序、归并排序和基数排序(博主推荐)
不多说,直接上干货! 插入排序包括直接插入排序.希尔排序. 1.直接插入排序: 如何写成代码: 首先设定插入次数,即循环次数,for(int i=1;i<length;i++),1个数的那次不用 ...
- JavaMail开发
---------------------------------------------发邮件------------------------------------------ 需要jar包: j ...
- css相关知识
display: block; "块级元素". display: inline; "行内元素". display: none; "在不删除元素的情况下 ...
- H5移动端原生长按事件
// 函数名longpress// 参数为: 需长按元素的id.长按之后处理函数func function longPress(id, func,timeout=500) { var timeOutE ...
- JavaSE之Java基础(3)
11.什么是值传递和引用传递? 值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参数的值. 引用传递:也称为传地址.方法调用时,实际参数的引用被传递给方法 ...
- 从github克隆内容到本地时权限问题
从github克隆内容到本地时权限问题
- static int a
static int a只被本文件可见,外部文件不可见;而int a如果在外部文件作以下声明: extern int a,那么它在声明的文件里也是可见的 详见:http://bbs.csdn.net/ ...
- nc扫描端口
nc -n -v -z -w 1 ip地址 1-1000 (端口号) 详细信息 -v 排除dns -n 不发送任何数据-z 超时设置为1秒 -w 1
- Azure School,让系统化学习回归一站式的简单体验
承认吧,「终身制学习」已经成为一个不可抵挡的趋势.不管你从事什么行业,几乎已经没有什么可以一直吃老本就能搞定的事情,总有各种新的技术和概念等着你去学.至于发展速度飞快的IT 技术,不断的学习更是贯彻始 ...
- Flexbox与Grid属性比较
网格容器(container)属性 网格项目(item)属性 Flex容器(container)属性 Flex项目(item)属性