MTCNN人脸检测是目前深度学习相关人脸检测中实时性和准确性两者都兼备的一种方法,其主要思想是采用级联CNN来实现,MTCNN主要通过三个网络逐级精炼来提升人脸检测和特征点的性能。网络的流程可以从下图得到较为清晰的反映。
MTCNN由Pnet、Rnet、Onet三个子网络构成,Pnet用于初步获得潜在的人脸区域,Pnet训练完后,通过Pnet网络的图片获得潜在人脸区域,然后采用非极大值抑制去除重复潜在人脸;将获得的潜在人脸区域送入到Rnet,Rnet的过程类似Pnet进一步精炼潜在人脸,经过非极大值抑制,最后送入到Onet训练Onet完成整个网络的训练。注意,这里三个网络都是分别训练的,逐级精炼。网络的具体实现如下图
MTCNN代价的函数中主要包括三部分:
(1)人脸分类:
(2)box回归:
(3)特征点回归:
具体代价函数:
caffe运行结果: