人脸检测——MTCNN

Posted shuzfan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了人脸检测——MTCNN相关的知识,希望对你有一定的参考价值。

本次介绍一篇速度还不错的人脸检测文章:

《2016 Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks》.

源代码作者刚刚公布,效果相当不错(只有测试代码):
https://kpzhang93.github.io/MTCNN_face_detection_alignment/index.html?from=timeline&isappinstalled=1

另外一位同学实现的MTCNN基于MXNET的训练代码,工作比较完整,参考价值比较大: https://github.com/Seanlinx/mtcnn

—————— Pipeline——————

上面是该方法的流程图,可以看出也是三阶级联,和我之前的一篇博文CascadeCNN很像。

stage1: 在构建图像金字塔的基础上,利用fully convolutional network来进行检测,同时利用boundingbox regression 和 NMS来进行修正。(注意:这里的全卷积网络与R-CNN里面带反卷积的网络是不一样的,这里只是指只有卷积层,可以接受任意尺寸的输入,靠网络stride来自动完成滑窗)

stage2: 将通过stage1的所有窗口输入作进一步判断,同时也要做boundingbox regression 和 NMS。

stage3: 和stage2相似,只不过增加了更强的约束:5个人脸关键点。

————— Network —————

Stage1: Proposal Net

Stage2: Refine Net

Stage3: Output Net

由上可以看出,其网络结构较CascadeCNN略深但每层参数较少,所以该方法性能较好同时速度和CascadeCNN也相差无几。

补充:

(1) 文中训练使用了Online Hard sample mining策略,即在一个batch中只选择loss占前70%的样本进行BP;

(2) 不同阶段,classifier、boundingbox regression 和 landmarks detection在计算Loss时的权重是不一样的;

(3) 训练数据共4类,比例3:1:1:2,分别是negative,IOU<0.3; positive,IOU>0.65; part face,0.4

—————— Result ——————

在FDDB上的表现:

速度表现,CPU约15FPS

以上是关于人脸检测——MTCNN的主要内容,如果未能解决你的问题,请参考以下文章

MTCNN人脸识别

使用TensorRT对人脸检测网络MTCNN进行加速

tensorflow 2.0中是不是有mtcnn人脸检测的实现?

MTCNN 与 DLIB 相比如何进行人脸检测?

什么是mtcnn人脸识别能力?

MTCNN实时人脸检测网络详解与opencv+tensorflow代码演示