MTCNN

作者: haoshengup | 来源:发表于2020-03-07 11:50 被阅读0次

      人脸任务总体上分为:人脸检测、人脸关键点检测、人脸判别、人脸识别、人脸聚类等。
      作者认为人脸检测和人脸关键点检测这两个任务之间是有联系的(直观上来想,确实如此,网络在提取人脸信息的时候必然会包括关键点的信息)。所以,提出了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:标准交叉熵损失函数L_i^{det}
      2、定位loss:L_i^{box} = || \hat y_i^{box} - y_i{box}||_2^2
      3、关键点loss:两个点之间的欧式距离,即
    L_i^{landmark} = || \hat y_i^{landmark} - y_i^{landmark} ||_2^2
      4、3个网络的loss分别为:
      (1)L_p = \sum_{i=1}^N (L_i^{det} + 0.5\beta L_i^{box}),背景bbox:\beta = 0,前景bbox:\beta = 1
      (2)L_R = \sum_{i=1}^N (L_i^{det} + 0.5\beta L_i^{box}),背景bbox:\beta = 0,前景bbox:\beta = 1
      (3)L_O = \sum_{i=1}^N(L_i^{det} + 0.5\beta L_i^{box} + \beta L_i^{landmark}),背景bbox:\beta = 0,前景bbox:\beta = 1

    相关文章

      网友评论

          本文标题:MTCNN

          本文链接:https://www.haomeiwen.com/subject/ueeqdhtx.html