MTCNN

  人脸任务总体上分为:人脸检测、人脸关键点检测、人脸判别、人脸识别、人脸聚类等。
  作者认为人脸检测和人脸关键点检测这两个任务之间是有联系的(直观上来想,确实如此,网络在提取人脸信息的时候必然会包括关键点的信息)。所以,提出了mtcnn的综合框架,同时处理人脸检测和人脸关键点识别。
  总体的算法思路很简单,主要是有3个浅层网络级联在一起,每一级的精度逐步提高,作者通过这种分级过滤的方式来提高速度。3个浅层网络分别是:P-Net、R-Net、O-Net。

一、算法步骤

  1、建立图像金字塔
  2、图像金字塔中的图片进入P-Net,这是一个全卷积网络,输出部分分为两个分支:分类分支(二分类)和定位分支(人脸的bbox)。
  3、将2中产生的bbox和原图送入R-Net,进一步过滤这些bbox,得到更精确的结果。
  4、将3中得到的bbox和原图送入O-Net,输出3个结果:分类(二分类)、定位(人脸位置)、关键点(5个关键点的坐标)。
  具体结构如下图所示:


二、Loss

  1、分类loss:标准交叉熵损失函数
  2、定位loss:
  3、关键点loss:两个点之间的欧式距离,即

  4、3个网络的loss分别为:
  (1),背景bbox:,前景bbox:
  (2),背景bbox:,前景bbox:
  (3),背景bbox:,前景bbox:

你可能感兴趣的:(MTCNN)