人脸关键点检测算法--MTCNN

MTCNN是一种多任务级联卷积神经网络,用于人脸检测和关键点定位。它由P-Net、R-Net和O-Net三个网络组成,通过图像金字塔、边界框回归和非极大值抑制等技术处理不同尺度的人脸。每个网络都执行人脸分类、边界框回归和关键点定位任务,逐步提高检测精度。
摘要由CSDN通过智能技术生成

本文是对MTCNN进行人脸关键点检测和对齐的原理的描述,具体代码请见:https://github.com/Emma0118/preprocessing-images-for-Face-Recognition

一、概述

MTCNN(Multi-task Cascaded Convolutional Networks)是 一种多任务级联卷积神经网络,用以同时处理人脸检测和人脸关键点定位问题。作者认为人脸检测和人脸关键点检测两个任务之间往往存在着潜在的联系,然而大多数方法都未将两个任务有效的结合起来,MTCNN充分利用两任务之间潜在的联系,将人脸检测和人脸关键点检测同时进行,可以实现人脸检测和5个特征点的标定。

目前人脸检测大体分为两个阶段:找出所有可能是人脸的候选区域,从候选区域中选择出最可能是人脸的区域。

MTCNN为了解决人脸识别的两阶段问题,提出三个级联的多任务卷积神经网络(Proposal Network (P-Net)、Refine Network (R-Net)、Output Network (O-Net),每个多任务卷积神经网络均有三个学习任务,分别是人脸分类、边框回归和关键点定位。每一级的输出作为下一级的输入。

二、算法主体流程

1.Image Pyramid(图像金字塔):

MTCNN使用了“Image Pyramid(图像金字塔)”方法,解决不同尺度的人脸的检测。通过把原图按照一定的比例(如0.5),多次等比缩放得到多尺度的图片。

  • 由于MTCNN下一阶段使用的P-Net是基于12x12的图片训练出来的,所以MTCNN在本阶段将缩放图片,直至最小边小于或者等于12,由此生成具有不同尺度的图片金字塔。
  • 具体实现:先把原图等比缩放`12/minsize`,再按缩放因子`factor`(例如0.5)用上一次的缩放结果不断缩放,直至最短边小于或等于12。(code from detector.py)
# scales for scaling the image
scales = []
 
# scales the image so that
# minimum size that we can detect equals to
# minimum face size that we want to detect
m = min_detecti
  • 3
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值