【人脸检测】(MTCNN) Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks 论文阅读

原始题目 Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks
中文名称 基于 多任务级联卷积网络 的 联合 人脸检测与对齐
发表时间 2016年4月11日
平台 arXiv
来源 中国科学院深圳先进技术研究院
文章链接 https://kpzhang93.github.io/MTCNN_face_detection_alignment/

摘要

由于各种各样的姿势、光照和遮挡情况,无约束条件下的 人脸检测和对齐 具有挑战性。最近的研究表明,深度学习方法在这两个任务上可以达到很好的性能。在本篇文章,

  • 我们提出了一个 deep cascaded multi-task framework ,利用它们内在的关联来提升它们的性能。
  • 尤其是,我们的架构采用了一个具有 3 stages 精心设计的深度卷积网络的级联结构,使用 由粗到细(coarse-to-fine) 的方式来预测 人脸和 landmark 位置。
  • 在学习过程中,我们提出了一种新的 在线困难样本挖掘策略,可以在没有人工样本选择的情况下自动提高性能。

我们的方法在具有挑战性的 FDDB 和 WIDER FACE 人脸检测 benchmark 上、AFLW 人脸对齐 benchmark 上都达到了比最先进技术更高的准确度,同时保持实时性能。

4. 结论

本文提出了一种基于 multi-task cascaded CNNs 的联合人脸检测和对齐框架。实验结果表明,所提出方法在几个具有挑战性的 benchmarks 上(包括人脸检测的 FDDB 和 WIDER FACE benchmarks,以及人脸对齐的 AFLW benchmarks)始终优于最先进的方法,同时保持了实时性能。未来,我们将利用 人脸检测与 其他人脸分析任务 之间的内在相关性,进一步提高性能。

1. 引言

... 略 ...

在本篇文章中,我们提出了一个新的框架,通过多任务训练,使用统一的级联 CNNs 来整合这两个任务。我们提出的 CNNs 由三个阶段组成。

  • 在第一个阶段,它通过一个 浅的 CNN 快速生成候选窗口。
  • 然后,它通过一个 更复杂的 CNN 来细化 windows 以拒绝大量的 无人脸窗口(non-faces windows)。
  • 最后,它使用一个 更强大的CNN 来细化结果,输出 面部 landmarks 位置。

由于这个多任务学习架构,算法的性能可以被显著提高。这篇论文的主要贡献被总结如下:

  • (1) 我们提出了一个新的基于 级联CNNs 的架构来整合人脸检测和对齐,为实时性能精心设计了 轻量 CNN 架构。
  • (2)我们提出了一个有效的方法来进行 在线困难样本挖掘 来改善性能。
  • (3)我们在具有挑战性的 benchmarks 上进行了广泛的实验,来展示我们提出的方法相比于人脸检测和人脸对齐两种任务的最先进技术的显著性能提升。

2.方法

A.总体架构

我们方法的整体流程展示在 图1。

获得一张图片,我们首先调整它的大小至不同的尺度来构建一个图片金字塔这个图片金字塔是下面三阶级联架构的输入:

drawing
图1 所示。级联框架的流水线,包括 三阶段多任务深度卷积网络。首先,通过 fast Proposal Network(P-Net)生成 candidate windows; 之后,通过 Refinement Network (R-Net)在下一阶段细化这些候选项。在第三阶段,Output Network(O-Net)产生最终的 bounding box and facial landmarks position。
  • 阶段1: 利用一个全卷积网络,名为 Proposal Network (P-Net),使用类似于[29]的方式来获得 candidate windows 和他们的 bounding box regression vectors 。然后我们使用估计的 bounding box regression vectors 来校正 candidate windows。在这之后,我们使用 non-maximum suppression (NMS) 来合并高度重合的 candidate windows 。
  • 阶段2: 将所有的候选窗口输入到另一个CNN,名为 Refine Network (R-Net) ,使用 bounding box regression 进行校正,执行 NMS 候选窗口合并,进一步拒绝大量错误的候选窗口。
  • 阶段3: 此阶段和第二阶段相似,但是在此阶段我们的目标是更详细地描述人脸。特别地,这个网络将输出 五个面部 landmarks 的 positions。

B.CNN 架构

在[19],多种 CNNs 已经被设计用来人脸检测。然而,我们注意到它的性能可能受限于如下事实:

  • (1) 一些 filters 缺乏权重地多样性,这可能限制它们来产生具有判别能力地描述。
  • (2) 相比于其他的 multi-class 目标检测和分类任务,人脸检测是一个具有挑战性的 binary 分类任务,所以它可能需要很少数目但是识别力很高的 filters。

为了这个目的,我们减少了 filters 的数目,将 5×5 filters 更改为 3×3 filters 来减少计算,同时增加了 depth 来获得更好的性能。使用这些改进,相比于[19]中的之前的架构,我们可以在更少的运行时间内获得更好的性能。(结果展示在 表1。为了公平比较,对于两种方法我们使用相同的数据。)我们的 CNN 架构展示在 图2 中。

表1: 我们的 CNNs 和之前的 CNNs [19]的速度和验证精度的比较

drawing
drawing
图2。P-Net, R-Net和 O-Net 的架构,其中 “MP” 表示 max pooling and “Conv” 表示 convolution。卷积和池化中的步长分别是 1 和 2。

C.训练

我们利用三个任务来训练我们的 CNN 检测器:face/non-face classification, bounding box regression, and facial landmark localization

  1. Face classification: cross-entropy loss
  2. Bounding box regression: Euclidean loss,(left top, height, and width)
  3. Facial landmark localization:Euclidean loss,(five facial landmarks:left eye, right eye, nose, left mouth corner, and right mouth corner)
  4. Multi-source training: 比如对于背景区域的样本,只计算 \(L_{i}^{det}\), 其他 loss 被设置为 0。 这是通过公式 4 中的 \(\beta\) 设置的,它取值为 0 或 1。

\[\mathrm{min}\sum_{i=1}^{N}\sum_{j\in\{d e t,b o x,l a n d m a r k\}}{\alpha}_{j}\beta_{i}^{j}L_{i}^{j} \]

其实就是在不同的训练任务中使用不同的权重 \({\alpha}\)

\(\alpha\) 表示不同任务中,该 loss 的权重,不同任务不一样。

  1. Online Hard sample mining: 不同于在原来的分类器已经被训练之后执行 传统的困难样本挖掘,我们在人脸分类任务中做 在线进行困难样本挖掘 来适应于训练过程。

    尤其,在每一个 mini-batch ,我们对在 前向传播阶段 由所有样本计算的损失进行排序,选取最大的 70% 作为困难样本。然后我们在反向传播过程中仅计算来自于 困难样本 的梯度。这意味着我们在训练时忽略了对增强检测器帮助很小的简单样本。实验表明,这个策略在不需要人工样本选择的情况下产生了更好的性能。它的作用在第三部分被证明。

3. 实验

参考:

【1】https://blog.csdn.net/qq_41889342/article/details/112027942

个人总结

这就是所谓的 MTCNN , MT 我猜测是 Multi-task 的意思。而这里强调的人脸对齐,是使用该模型输出的 landmark 进行人脸的对齐。多任务就是同时输出 landamark 和 人脸的检测框。当然,训练模型时候还有个 是不是人脸的 二分类。

posted @ 2023-02-23 16:35  cold_moon  阅读(61)  评论(0编辑  收藏  举报