参考:
用包代码:https://blog.51cto.com/gloomyfish/2319246
不用包代码:http://www.sfinst.com/?p=1683
MTCNN模型概述
多任务卷积神经网络(MTCNN)实现人脸检测与对齐是在一个网络里实现了人脸检测与五点标定的模型,主要是通过CNN模型级联实现了多任务学习网络。整个模型分为三个阶段,第一阶段通过一个浅层的CNN网络快速产生一系列的候选窗口;第二阶段通过一个能力更强的CNN网络过滤掉绝大部分非人脸候选窗口;第三阶段通过一个能力更加强的网络找到人脸上面的五个标记点;完整的MTCNN模型级联如下:
阶段方法详解
第一阶段
网络是全卷积神经网络是一个推荐网络简称 P-Net, 主要功能是获得脸部区域的窗口与边界Box回归(Box Bounding简称BB回归),获得的脸部区域窗口会通过BB回归的结果进行校正,然后使用非最大压制(NMS)合并重叠窗口。
第二阶段
网络模型称为优化网络R-Net,大量过滤非人脸区域候选窗口,然后继续校正BB回归的结果,使用NMS进行合并。
第三阶段
网络模型称为O-Net,输入第二阶段数据进行更进一步的提取,最终输出人脸标定的5个点位置。
网络架构与训练
对CNN网络架构,论文作者发现影响网络性能的因素主要原因有两个:
1.样本的多样性缺乏会影响网络的鉴别能力
2.相比其它的多类别的分类与检测任务来说,
人脸检测是一个二分类,每一层不需要太多filters,
也就是说每层网络的feature maps个数不需要太多
训练这个网络需要如下三任务得到收敛
1.人脸二元分类
2.BB回归(bounding box regression)
3.标记定位(Landmark localization)