人脸检测——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的主要内容,如果未能解决你的问题,请参考以下文章