Mtcnn人脸检测关键点模型
给定一张图片,返回图片中人脸区域的位置和五点关键点。MTCNN是工业界广泛应用的检测关键点二合一模型。
  • 模型资讯
  • 模型资料

MTCNN 模型介绍

稳定调用及效果更好的API,详见视觉开放智能平台:人脸检测与五官定位

人脸检测关键点模型MTCNN

模型描述

MTCNN是工业界广泛应用的检测关键点二合一模型, (论文地址, 代码地址),该方法包含下面4个模块:

  • Image Pyramid: 首先将图像进行不同尺度的变换,构建图像金字塔,以适应不同大小的人脸的进行检测;
  • Proposal Network: 其基本的构造是一个全卷积网络。对上一步构建完成的图像金字塔,通过一个FCN进行初步特征提取与标定边框,并进行Bounding-Box Regression调整窗口与NMS进行大部分窗口的过滤。
  • Refine Network: 其基本的构造是一个卷积神经网络,相对于第一层的P-Net来说,增加了一个全连接层,因此对于输入数据的筛选会更加严格。在图片经过P-Net后,会留下许多预测窗口,我们将所有的预测窗口送入R-Net,这个网络会滤除大量效果比较差的候选框,最后对选定的候选框进行Bounding-Box Regression和NMS进一步优化预测结果;
  • Output Network: 基本结构是一个较为复杂的卷积神经网络,相对于R-Net来说多了一个卷积层。O-Net的效果与R-Net的区别在于这一层结构会通过更多的监督来识别面部的区域,而且会对人的面部特征点进行回归,最终输出五个人脸面部特征点。

MTCNN的结构如下:

MTCNN网络结构

模型效果

MTCNN模型效果

模型使用方式和使用范围

本模型可以检测输入图片中人脸和对应5点关键点的位置。

使用方式

  • 推理:输入图片,如存在人脸则返回人脸位置和五点关键点,可检测多张人脸

目标场景

  • 人脸相关的基础能力,可应用于人像美颜/互动娱乐/人脸比对等场景

模型局限性及可能偏差

  • 小脸的检测效果一般
  • 早期经典的检测关键点二合一model,可能模型结构存在些冗余的部分
  • 当前版本在python 3.7环境测试通过,其他环境下可用性待测试

代码范例

from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks

mtcnn_face_detection = pipeline(Tasks.face_detection, 'damo/cv_manual_face-detection_mtcnn')
img_path = 'https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/mtcnn_face_detection.jpg'
result = mtcnn_face_detection(img_path)
print('face detection output: {}.'.format(result))

# if you want to show the result, you can run
from modelscope.utils.cv.image_utils import draw_face_detection_result
from modelscope.preprocessors.image import LoadImage
import cv2

img = LoadImage.convert_to_ndarray(img_path)
cv2.imwrite('srcImg.jpg', img)
img_draw = draw_face_detection_result('srcImg.jpg', result)
cv2.imwrite('result.jpg', img_draw)
import matplotlib.pyplot as plt
plt.imshow(img_draw)

模型训练流程

  • 在Wider Face数据集上训练,优化器为SGD。

测试集

  • WIDERFACE: 测试集已上传至ModelScope的DatasetHub, 详情请见WIDER_FACE

数据评估及结果

模型在WiderFace的验证集上客观指标如下:

Method Easy Medium Hard
MTCNN 85.1 82.0 60.7

人脸相关模型

以下是ModelScope上人脸相关模型:

  • 人脸检测
序号 模型名称
1 RetinaFace人脸检测模型
2 MogFace人脸检测模型-large
3 TinyMog人脸检测器-tiny
4 ULFD人脸检测模型-tiny
5 Mtcnn人脸检测关键点模型
6 ULFD人脸检测模型-tiny
  • 人脸识别
序号 模型名称
1 口罩人脸识别模型FaceMask
2 口罩人脸识别模型FRFM-large
3 IR人脸识别模型FRIR
4 ArcFace人脸识别模型
5 IR人脸识别模型FRIR
  • 人脸活体识别
序号 模型名称
1 人脸活体检测模型-IR
2 人脸活体检测模型-RGB
3 静默人脸活体检测模型-炫彩
  • 人脸关键点
序号 模型名称
1 FLCM人脸关键点置信度模型
  • 人脸属性 & 表情
序号 模型名称
1 人脸表情识别模型FER
2 人脸属性识别模型FairFace

来源说明

本模型及代码来自开源社区(地址),请遵守相关许可。

引用

如果你觉得这个该模型对有所帮助,请考虑引用下面的相关的论文:

@inproceedings{xiang2017joint,
      title={Joint face detection and facial expression recognition with MTCNN},
        author={Xiang, Jia and Zhu, Gengming},
          booktitle={2017 4th international conference on information science and control engineering (ICISCE)},
            pages={424--427},
              year={2017},
                organization={IEEE}
}