人脸检测之MTCNN:算法论文理解

MTCNN的github代码:https://github.com/BigcowPeking/mtcnn-caffe

这篇博客先介绍MTCNN算法,再介绍代码,结合起来看对算法的理解会更加深入。

算法部分

MTCNN(Multi-task Cascaded Convolutional Networks)算法是用来同时实现face detection和alignment,也就是人脸检测和对齐。文章一方面引入了cascaded structure,另一方面提出一种新的 online hard sample mining。文章的核心思想是原文的这一句话:our framework adopts a cascaded structure with three stages of carefully designed deep convolutional networks that predict face and landmark location in a coarse-to-fine manner. 因此该算法的cascaded structure 主要包含三个子网络:Proposal Network(P-Net)、Refine Network(R-Net)、Output Network(O-Net),如Fig1所示,这3个stage对人脸的处理是按照一种由粗到细的方式,也就是原文中说的 a coarse-to-fine manner,在代码中体现得比较明显。另外要注意的是在Figure1中一开始对图像做了multi scale的resize,构成了图像金字塔,然后这些不同scale的图像作为3个stage的输入进行训练,目的是为了可以检测不同scale的人脸。 
这里写图片描述

在Figure2中详细介绍了三个子网络的结构。 
P-Net主要用来生成一些候选框(bounding box)。在训练的时候该网络的顶部有3条支路用来分别做人脸分类、人脸框的回归和人脸关键点定位;在测试的时候这一步的输出只有N个bounding box的4个坐标信息和score,当然这4个坐标信息已经用回归支路的输出进行修正了,score可以看做是分类的输出(是人脸的概率),具体可以看代码。 
R-Net主要用来去除大量的非人脸框。这一步的输入是前面P-Net生成的bounding box,每个bounding box的大小都是24*24,可以通过resize操作得到。同样在测试的时候这一步的输出只有M个bounding box的4个坐标信息和score,4个坐标信息也用回归支路的输出进行修正了 

O-Net和R-Net有点像,只不过这一步还增加了landmark位置的回归。输入大小调整为48*48,输出包含P个bounding box的4个坐标信息、score和关键点信息。 

下图是训练的三个小网络,后一个网络是在前一个网络上的微调;

这里写图片描述

在训练时候,每个stage的顶部都包含3条支路,接下来简单过一下这3条支路的损失函数。 
face classification支路的损失函数如公式1所示,采用的是交叉熵,这是分类算法常用的损失函数,在这里是二分类。 
这里写图片描述

bounding box regression支路的损失函数如公式2所示,采用的是欧氏距离损失(L2 loss),这也是回归问题常用的损失函数。 
这里写图片描述

facial landmark localization支路的损失函数如公式3所示,同样采用的是欧氏距离损失(L2 loss)。 
这里写图片描述

因为在训练的时候并不是对每个输入都计算上述的3个损失函数,因此定义了公式4用来控制对不同的输入计算不同的损失。可以在出,在P-Net和R-Net中,关键点的损失权重(α)要小于O-Net部分,这是因为前面2个stage重点在于过滤掉非人脸的bbox。β存在的意义是比如非人脸输入,就只需要计算分类损失,而不需要计算回归和关键点的损失。 
这里写图片描述

online hard sample mining 具体而言是这样做的:In particular, in each mini-batch, we sort the loss computed in the forward propagation phase from all samples and select the top 70% of them as hard samples. Then we only compute the gradient from the hard samples in the backward propagation phase.

实验结果: 
训练过程中的4中不同的标注数据:here we use four different kinds of data annotation in our training process: (i) Negatives: Regions that the Intersec-tion-over-Union (IoU) ratio less than 0.3 to any ground-truth faces; (ii) Positives: IoU above 0.65 to a ground truth face; (iii) Part faces: IoU between 0.4 and 0.65 to a ground truth face; and (iv) Landmark faces: faces labeled 5 landmarks’ positions.

Figure4是本文算法在FDDB、WIDER FACE、AFLW数据集上和其他算法的对比结果。 

这里写图片描述

参考博客:https://blog.csdn.net/u014380165/article/details/78906898

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值