mtcnn人脸检测_人脸检测:MTCNN(ISPL2016)

39386c672b9de98e21f5b87b8b73e3b7.png

之前一直都在做通用物体检测,现在也要开始接触到专用网络了,由于自己需求通常都是进行小目标的检测,而小目标检测也是人脸检测急需解决的一个问题,所以人脸检测是学习小目标检测方法的不二之选!今天我们来介绍2016年中科院深圳先进科技研究所和香港中文大学联合的一篇论文--Multi-task Cascaded Convolutional Network!

论文地址:

Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks​arxiv.org

代码链接:

YYuanAnyVision/mxnet_mtcnn_face_detection​github.com
6d47b8c957e93e5fbe7b0610c76fd517.png

首先我们要理清几个概念:

  • face detection:区分人脸和非人脸,并标定位置
  • face alignment : 将人脸用几个点表示,并通过位置来确定人脸是否为正脸,并进行变换
  • face recognition : 人脸识别,很简单就是判断两张人脸是否为同一个人

算法总览

鉴于之前的人脸检测算法,作者总结了一下,由于CNN对于计算视觉中特征提取产生了天翻地覆的变化,现在CNN based的模型越来越多,但是大多数的模型将face detection and alignment两者分开,单独进行训练,从而忽略了这两个任务之间的相关性,虽然后来又人将这两者进行结合变为了multi-task的模型,但模型的精度较低!

另一方面,在训练阶段,虽然mining hard samples加强了检测器的性能,但是由于传统的方法都是人工筛选,所以作者提出了一种Online形式的难例样本挖掘。除此以外,作者设计了多个网络级联的结构,用于提高模型的精度,由于每个网络都是轻量化的,所以算法的速度还是很快的!

1f193d6224e24202a403e276218f7928.png

作者设计了三个结构级联的形式:(NMS用于训练阶段)

  1. 在第一阶段设计了一个全卷积网络,类似于RPN的结构,我们叫做Proposal Network(P-net)。用于产生候选区域,接着利用预测的BB回归框进行校准,然后使用NMS来融合相互交叠的预选框。
  2. 所有产生大的候选区域我们喂给另外一个CNN网络,叫做Refine Network(R-net),这个网络会抑制掉大量的负样本,接着使用BB Regression进行校准,使用NMS进行预选框融合。
  3. 第三阶段和第二阶段类似,叫做Output Network(O-net),但不同的是,增加了关键点landmark的预测,使得输入的框更加精确,实际操作中,输出5个脸部关键点。

网络结构

4cff22a290767adbb92978390d44b134.png

Online Hard Sample Mining

传统的Hard sample mining在网络模型训练好了之后,进行人工挑选,作者提出了一种在线的难例样板挖掘的思路,在mini-batch中,我们会根据前向传播之后的loss值得排序,选择loss值最高的70%作为Hard sample,然后我们只计算这些Hard sample的梯度并进行反向传播,也就是说我们忽略那些比较容易区分的样本,只关注那些难以区分的!

多级联训练

我们知道MTCNN中有三个网络,分别是P-net, R-net, O-net,那我们如何进行训练呢?我还没有尝试,只是根据论文的解释。首先这个网络有三个loss函数,分类loss/BB回归loss/landmark回归loss。对于landmark我们直接采用欧几里得距离,与边框回归思路类似!

分类loss:(交叉熵损失)

53ca1e9ab5a3db26d7622fc053f5f447.png

BB回归:(欧几里得距离,是不是应该为L1更合适)

a53a000e9d03792e0c9571ed8803f6d5.png

Landmark loss: (欧几里得距离)

f9246df9f2cdd213deeab6f4540c0e04.png

最后的目标loss为:

fe74da56125b51f1d7b9f9be5f36d08f.png

其中

表征不同任务在不同训练阶段所占的比重~

算法性能

4b167c5e8ba4910883704e4cad5e40ac.png

a为FDDB数据集,而b-d为WIDER FACE数据集!在当时state of art!

而在速度方面,可以达到16fps on CPU(2.60GHz)和99fps on GPU(Nvidia Titan Black)

参考链接

【1】S. Yang, P. Luo, C. C. Loy, and X. Tang, “WIDER FACE: A Face Detection Benchmark”. arXiv preprint arXiv:1511.06523.

【2】 V. Jain, and E. G. Learned-Miller, “FDDB: A benchmark for face detection in unconstrained settings,” Technical Report UMCS-2010-009, University of Massachusetts, Amherst, 2010.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值