15-2 人脸检测

人脸检测

因为相似性、易变性,人脸识别是比较困难的。
放大-好区分,类间变化
消除-同一个人,固定特征,类内变化
对于人脸,类内变化大于类间变化

人脸检测模型-mtcnn

(Multi-task convolutional neural network)多任务卷积神经网络
P-Net
R-Net
O-Net
MTCNN主要包括三层网络

  1. 第一层P-Net将经过卷积,池化操作后输出分类(对应像素点是否存在人脸)和回归(回归box)结果。
  2. 第二层网络将第一层输出的结果使用非极大抑制(NMS)来去除高度重合的候选框,并将这些候选框放入R-Net中进行精细的操作,拒绝大量错误框,再对回归框做校正,并使用NMS去除重合框,输出分支同样两个分类和回归。
  3. 最后将R-Net输出认为是人脸的候选框输入到O-Net中再一次进行精细操作,拒绝掉错误的框,此时输出分支包含三个分类:
    a. 是否有人脸:2个输出;
    b. 回归:回归得到的框的起始点(或中心点)的xy坐标和框的长宽,4个输出;
    c. 人脸特征点定位:5个人脸特征点的xy坐标,10个输出。
    注:三段网络都有NMS,但是所设阈值不同。

1. 构建图像金字塔

为了不被目标图像的尺寸影响。
推理的时候,缩小后的图像不能小于12*12
• factor是指每次对边缩放的倍数。
• 第一阶段会多次缩放原图得到图片金字塔,目的是为了让缩放后图片中的人脸与P-NET训练时候的图片尺度(12px * 12px)接近。
注意:先把图像直接缩放一半,再通过factor对这个大小进行缩放。可以减少计算量
缩放因子:0.709
因为要把面积缩放1/2,则sqrt(0.5)=0.709

2. P-Net(proposal network)

MTCNN算法可以接受任意尺度的图片,为什么?
• 因为第一阶段的P-NET是一个全卷积网络(Fully Convolutional Networks)。
• 卷积、池化、非线性激活都是一些可以接受任意尺度矩阵的运算,但全连接运算是需要规定输入。
如果网络中有全连接层,则输入的图片尺度(一般)需固定;如果没有全连接层,图片尺度可以是任意的。
输入12 * 12 * 3
3次卷积1次池化
输出1 * 1 * 32

3. R-Net(refine network)

比P-Net多了一个fc全连接层
图片在输入R-Net之前,都需要缩放到24x24x3。网络的输出与P-Net是相同的,R-Net的目的是为了去除大量的非人脸框。

4. O-Net(Output Network)

该层比R-Net层又多了一层卷积层,所以处理的结果会更加精细
代码:

relu、Leaky Relu、PRelu

PRelu(a一般大于0.2)
Leaky Relu(a比较小)
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值