关于神经网络:FaceBoxes-高精度的CPU实时人脸检测器

6次阅读

共计 2158 个字符,预计需要花费 6 分钟才能阅读完成。

论文题目:《FaceBoxes: A CPU Real-time Face Detector with High Accuracy》

论文链接:https://arxiv.org/pdf/1708.05…

年份:2017

论文作者:Shifeng Zhang 等人

作者单位:中国科学院自动化研究所等

公众号 CVpython 同步公布

1. 论文要解决什么问题?

要放弃高精度,还要在 CPU 上达到实时?还真有点难,然而 Shifeng Zhang 等人针对这个问题,提出了人脸检测模型 FaceBoxes,体现 SOTA。

2. FaceBoxes 如何解决问题?

FaceBoxes 框架如图 1 所示,次要包含 Rapidly Digested Convolutional Layers (RDCL)和 Multiple Scale Convolutional Layers (MSCL)模块,还有 anchor 密集策略。

2.1 RDCL

RDCL 的目标是为了疾速下采样,让模型可能在 CPU 下面能达到实时。RDCL 采纳的办法是放大空间大小,抉择适合的卷积核大小和缩小输入通道。

  • 放大空间大小:Conv1, Pool1, Conv2 and Pool2 的步长别离是 4, 2, 2 和 2, 空间大小疾速升高了 32 倍。
  • 适合的卷积核大小:前几层的一些核应该是比拟小,以便减速,然而也应该足够大,以加重空间大小减小而带有的信息失落(为什么能够缩小信息失落 s)。Conv1, Conv2 的核大小为 7 ×7, 5×5,所有池化层的核大小为 3 ×3。
  • 缩小输入通道:应用 C.ReLU 缩小输入通道,操作如图 2(a)所示。因为 C.ReLU 作者统计发现底层卷积时卷积核存在负相关,也就是说假如咱们原本应用 10 个卷积核,然而当初只须要用 5 个卷积核,另外 5 个卷积核的后果能够通过负相关失去。结果表明应用 C.ReLU 减速的同时也没损失精度。

2.2 MSCL

MSCL 是为了失去更好地检测不同尺度的人脸。

  • 深度:在 MSCL 模块中,随着网络的加深,便失去不同大小的特色映射(多尺度特色)。在不同大小特色映射中设置不同大小的 anchor,有利于检测不同大小的人脸。
  • 宽度:Inception 由多个不同核大小的卷积分支组成。在这些分支中,不同的网络宽度,也有不同大小的特色映射。通过 Inception,感触野也丰盛了一波,有利用检测不同大小的人脸。

MSCL 在多个上尺度进行回归和分类,在不同尺度下检测不同大小的人脸,可能大大提高检测的召回率。

2.3 Anchor 密度策略

Inception3 的 anchor 大小为 32,64 和 128,而 Conv3_2 和 Con4_2 的 anchor 大小别离为 256,512。anchor 的平铺距离等于 anchor 对应层的步长大小。例如,Con3_2 的步长是 64 个像素点,anchor 大小为 256×256,这表明在输出图片上,每隔 64 个像素就会有一个 256×256 的 anchor。对于 anchor 的平铺密度文中是这样定义的:

$$
A_{density}=A_{scale}/A_{interval}
$$

其中 $A_{density}$ 和 $A_{interval}$ 别离为 anchor 的尺度战争铺距离。默认的平铺距离 (等于步长) 默别离认为 32,32,32,64 和 128。所以 Inception 的平铺密度别离为 1,2,4,而 Con3_2 和 Con4_2 的平铺密度别离为 4,4。

能够看进去,不同尺度的 anchor 之间存在平铺密度不均衡的问题,导致小尺度的人脸召回率比拟低,因而,为了改善小 anchor 的平铺密度,作者提出了 anchor 密度策略。为了使 anchor 密集 n 倍,作者平均地将 $A_{number}=n^2$ 个 anchor 铺在感触野的核心左近,而不是铺在核心,如图 3 所示。将 32×32 的 anchor 密集 4 倍,64×64 的 anchor 密集两倍,以保障不同尺度的 anchor 有雷同的密度。

2.4 训练

数据扩增

  • 色彩扭曲
  • 随机采样
  • 尺度变换
  • 程度翻转
  • Face Boxes 过滤:通过数据扩增的图片中,如果 face boxes 的核心还在图片上,则保留重叠局部,而后把高或者宽 <20 的过滤掉(这个操作不是很懂了,为什么把小指标过滤掉?)

匹配策略:训练期间,须要确定哪些 anchor 对应脸部的 bounding box,咱们首先用最佳 jaccard 重叠将每一张脸匹配到 anchor,而后将 anchor 匹配到 jaccard 重叠大于阈值的任何一张脸。

Loss function: 对于分类,采纳 softmax loss,而回归则采纳 smooth L1 损失。

Hard negative mining:anchor 匹配后,发现很多 anchor 是负的,这会引入重大的正负样本不均衡。为了疾速优化和稳固训练,作者对 loss 进行排序而后抉择最小的,这样子使得负样本和正样本的比例最大 3:1。

3 试验后果如何?

Runtime

Evaluation on benchmark

在 FDDB 上 SOTA。

4. 对咱们有什么指导意义?

  • 要在 CPU 上达到实时,思考一开始就对特色进行疾速下采样。
  • 在浅的卷积层思考应用 CReLU,能够缩小计算量。
  • MSCL 通知咱们,检测各种不同大小的物体,思考从深度和宽度上丰盛感触野。
  • anchor 密度策略通知咱们思考 anchor 密度以进步召回率。

本文由博客群发一文多发等经营工具平台 OpenWrite 公布

正文完
 0