mtcnn 项目介绍

MTCNN 人脸识别项目介绍

现阶段实现:对人脸以及五个关键点进行标注

1.级联训练

将传统的端到端的网络分成三个网络,

第一个:P-net,传入原图选取大量的建议框

第二个:R-net,将第一步选取的建议框,以最大边作为边长,使原来的建议框变为正方形,并将其改变大小为24x24 ,进行进一步的删选。

第三个:O-net,同第二步相同,不过将大小变为48x48 ,更进一步的判别

2.标注框的选择

使用左上角和右下角的坐标,确定标注框的位置。

3.判别网络输出的框是否有人脸

使用,IOU 判别是否为人脸,IOU越高,说明是人脸的可能性越高

同时,使用NMS取出重复框。

4.对于照片中不同大小的人脸识别的处理

使用图像金字塔,以0.72 的比例进行缩放,在P-net使用

5 训练集的制作

5.1 制作样本

从原始标注完整的图片中,通过对标注框中心点偏移,同时对边长的随机,生成随机框,并使用IOU进行判别。

正样本的制作:

IOU > 0.65 :为正样本,标签为1

图片名 1 左上角坐标 右下角坐标 5个面部地标定位坐标

部分样本的制作:

IOU > 0.4, IOU < 0.65 :为部分样本,标签为2

图片名 2 左上角坐标 右下角坐标 5个面部地标定位坐标

负样本的制作:

IOU < 0.3:为负样本,标签为0

图片名 0 无左上角坐标 无右下角坐标 无5个面部地标定位坐标

5.2 对样本的随机框进行处理

为了方便网络训练,将样本随机框进行归一化处理。

o f f s e t x = x − x ′ w \mathbb{offset}_x = \frac{x-x&#x27;}{w} offsetx=wxx

x :原框的坐标

x’:随机框的坐标

w:随机框的边长

6.网络的搭建

捕获.PNG

7.训练

使用正样本和负样本,做人脸的损失,损失函数:BCELoss()

使用正样本和部分人脸样本,做人脸框的偏移量损失,损失函数:MSEloss()

使用 CUDA 训练和CUDNN 加速

优化器:Adam 学习率:0.001

8.测试:重点的是反算

网络的使用步骤:

(1)将原图以及缩小比例的原图传入P-net,通过P-net筛选出大量的建议框,因为P-net是全卷机网络,所以传入原图对输出并无影响。然后通过IOU去掉一部分自信度非常低的建议框,在通过NMS删除一些高度重合的框。最后将反算的建议框的坐标传入R-net

(2)通过对P-net传入的建议框进行扩充处理,在从原图裁剪,将其resize 成24*24大小的图片,传入R-net在进行进一步的筛选,并通过IOU去掉一部分自信度低的框,和使用NMS去掉一些高度重合的框,最后将剩余的建议框输如O-net

(3)同上一步相同,需要将图片resize 成48*48 大小图片,在传入O-net进行筛选。通过IOU去掉小于0.9 框,和NMS去掉一些重复的框。最后输出筛选后框

注意点:

(1)对P-net反算框的坐标

第一步:反算全卷积网络输出位于原图的坐标

① 获取P-net输出的索引,通过乘以大卷积核的在原图步长 计算出左上角坐标,再通过加上大卷机核的宽和高(都为12)计算出右下角的坐标。

② 因为P-net的输入通过图像金字塔等比例的缩放,所以计算出的坐标也需要按照缩放比例等比例放大

第二步:反算偏移量来获取人脸框(面部地标定位坐标同理)

通过样本的随机框坐标的计算公式反算网络输出的框

x_l = 左上角的x坐标+宽 * 偏移量 x_l’

y_l = 左上角的y坐标+高 * 偏移量 y_l’

右下角坐标同上

(2)根据实际情况,对每个网络输出的自信度的取值进行调节。

(3)根据实际情况,对每个网络输出的框进行nms阈值进行调节

附录

A. 扩充框

选取最长的边长为裁剪的边长(max_side)。

(1)原框宽的中心点, 减去max_side的一半,获取裁剪框的左上角的 x 坐标

(2)原框高的中心点,减去max_side的一半,获取裁剪框的左上角的 y 坐标

(3)使用裁剪框的左上角 x 坐标,加上max_side,获取裁剪框的右下角的 x 坐标

(4)使用裁剪框的左上角 y 坐标,加上max_side,获取裁剪框的右下角的 y 坐标

B. IOU

计算两个框的重合程度

IOU的计算方式:

(1)两个框的并集 / 两个框的交集(常用)

(2)两个框的并集 / 最小面积的框

(3)两个框的并集 / 最大面积的框

C. NMS

(1)与标注框做IOU(交集 / 并集)

(2)取最大的IOU

(3)将剩余的建议框,跟IOU最大的建议框做最小面积的IOU,取小于0.3的IOU

(4)取小于阈值 0.3的IOU中的最大IOU

(5)将剩余的建议框,跟IOU最大的建议框做最小面积的IOU,取小于0.3的IOU

(6)重复4-5,直到无小于0.3 的IOU

(7)在阈值上可以进行提高,或者降低:

  • 阈值的提高,不会将两个预测框有一定重合的人,过滤掉。

  • 阈值的降低,会将预测框重合度很高的人全部删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值