MTCNN代码解读

原文:

https://github.com/LeslieZhoa/tensorflow-MTCNN

1.三个模型要按顺序训练,PNet-RNet-ONet

2.训练集

负样本:IOU < 0.3

正样本:IOU > 0.65

part 样本:0.4 < IOU < 0.65

关键点位置:5个关键点位置。

 

人脸分类:正样本 + 负样本

人脸检测:正样本 + part样本

人脸关键点检测:关键点位置

 

【分析】:

正样本:需要label标注1,人脸框相对图像坐上角的偏移。

part样本:需要label标注-1,人脸框相对于图像左上角的偏移量。

【偏移量相对于图像大小进行了归一化】

负样本:需要label标注0。

关键点位置:需要label标注为-2,人脸关键点的坐标偏移量。

 

3.PNet

3.1训练集

从WIDER FACE中收集正样本、负样本、part样本。

从CelebA中裁剪人脸,作为人脸关键点。

3.2网络

输入:12 * 12 * 3

             输出卷积数    核大小   步长     pad     输出

conv1:10                    3          1         same  12 * 12 *10

pool1:   10                    3          2          ——    5*5*10

conv2:16                    3          1          valid   3*3*16

conv3:32                    3          1          valid   1*1*32

3.3具体训练

对于是否存在人脸,只计算正负样本的损失;

对于人脸框的损失,只计算正样本和part数据的损失;

对于人脸关键点的损失,只计算人脸关键点的。

【具体操作:通过label尽心遮掩来处理。】

【以下为转载】

https://zhuanlan.zhihu.com/p/31913064

3.4其推理过程

Pnet进行推理,生成很多的bounding box,然后采用NMS进行过滤。得到landmarks,bounding box。

4.RNet

4.1训练集

使用PNet检测WIDER FACE的bounding box ,结合groundtruth依据IOU来标记正样本、负样本、part样本

人脸关键点采用CelebA。

4.2推理

根据PNET推理之后的bounding box输入,进行微调。

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值