许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  人脸检测与对齐:MTCNN算法详解

人脸检测与对齐:MTCNN算法详解

阅读数 4
点赞 0
article_banner

论文:Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks

论文链接:https://arxiv.org/abs/1604.02878

推荐代码实现mxnet:https://github.com/pangyupo/mxnet_mtcnn_face_detection

最近突然对人脸检测非常感兴趣。根据网上的总结,发现MTCNN的效果应该还蛮不错的,所以仔细研读了这篇论文,在这里总结一下,如果有错误还请批评指正。其中有参考博客https://blog.csdn.net/u014380165/article/details/78906898,里面针对mxnet代码实现部分讲解的非常详细。

1.介绍

MTCNN是一种Multi-task的人脸检测模型,同时进行人脸检测和人脸对齐(即人脸特征点检测)。模型采用了三个CNN级联的方式,并且提出了online hard sample mining方法进行训练。该 算法  有三个阶段组成:第一阶段,浅层的CNN快速产生候选框;第二阶段,通过更复杂的CNN精炼候选框,丢弃大量的重叠候选框;第三阶段,使用更加强大的CNN,实现候选框去留,同时显示五个面部关键点定位。是一种由粗到细的检测方式。

2.网络结构

算法整体流程如下:

起初:先对图像做了multi scale的resize,构成了图像金字塔,然后这些不同scale的图像作为stage1的输入进行训练,目的是为了可以检测不同scale的人脸。

stage1)Proposal Network (P-Net):主要是用来生成候选框(bounding boxes),采用全卷积神经网络,获得候选框和边界回归向量。同时,候选框根据边界框进行校准。然后,利用NMS方法去除重叠窗体。

stage2)Refine Network (R-Net):主要用来去除大量的非人脸框。这一步的输入是前面P-Net生成的bounding box,通过resize操作调整每个bounding box的大小都是24*24。同样在测试的时候这一步的输出只有M个bounding box的4个坐标信息和score,继续使用Bounding box regression  和NMS合并,由于比P-Net多了一个全连接层,所以可以更好的去掉那些false-positive区域。

stage3)Output Network (O-Net):该层在R-Net的基础上多了一层卷积层,所以处理的结果会更加精细。作用和R-Net层作用一样。输入的是R-net输出的bounding box,大小调整为48*48,输出包含P个bounding box的4个坐标信息、score和关键点(landmark)信息。

详细的网络结构如下:

3. 模型训练  

在网络结构中,可以看出,模型训练分为三部分,分别为人脸分类训练,bbox坐标回归训练,landmark定位训练。

1)人脸分类

是一个二分类任务,采用交叉熵损失函数,其 yi  表示预测值,yi_det表示真实值。

2)bbox坐标回归训练

通过欧式距离来计算回归损失,其中y为一个(左上角x,左上角y,长,宽)组成的四 元组  ,y_hat表示网络预测值,y表示真实边框的坐标。

3)landmark定位训练

和边框坐标回归一样,计算网络预测的特征点位置和实际真实特征点位置的欧式距离,并最小化该距离。其中y_hat为通过网络预测得到,y为实际的真实的特征点坐标。一个有五个特征点,所以y属于十元组。

4)多任务训练

可想而知,并不是每个输入都要经历上述三次损失训练,比如只含有背景的bbox只需要经历交叉熵损失训练结课,不需要经历其他损失。所以引入了下面的公式来针对不同的输入计算不同的损失。

\alpha表示任务的重要性,\beta表示样本标签(在于标记非人脸的输入,只需要计算分类损失)。可见在P-Net和R-Net中,关键点的损失权重(α)要小于O-Net部分,这是因为前两个极端重点在于过滤掉非人脸的bbox。

5)online hard sample mining

本文采用online hard sample mining的方法。具体的方法是在每个mini-batch中,取loss最大的70%样本进行反向传播,忽略那些简单的样本。重点针对那些很难被分类的样本,使得每次传播的数据都是非常 有效的  

4.实验部分

论文使用三个数据集进行训练:FDDB,Wider Face,AFLW

为了更好地进行上述三种训练,本文将数据分成4种:

Negative:非人脸

   Positive:人脸

   Part faces:部分人脸

   Landmark face:标记好特征点的人脸

Negative和Positive用于人脸分类,positive和part faces用于bounding box regression,landmark face用于特征点定位。

5.总结

本文的人脸检测和人脸特征点定位的效果都非常好。关键是这个算法速度很快,在2.6GHZ的CPU上达到16fps,在 Nvidia Titan达到99fps。

本文使用一种级联的结构进行人脸检测和特征点检测,而且提出了一种有效的训练方法online hard sample mining,运行速度较快,可以考虑在移动设备上使用。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空