论文地址:https://arxiv.org/pdf/1708.05234.pdf

一、概况

论文的主要贡献:

  1. 设计了Rapidly Digested Convolutional Layers, RDCL,使得人脸检测在CPU上达到实时。
  2. 引入了Multiple Scale Convolutional Layers,MSCL,通过丰富感受野和在不同的层离散化anchors来处理人脸的多尺度问题。
  3. 提出了一种新的anchor稠密化策略,来提升小人脸的召回率。
  4. 提升了在AFW、PASCAL face和FDDB数据集上的state-of-the-art性能。

【论文学习记录】FaceBoxes: A CPU Real-time Face Detector with High Accuracy

二、RDCL

【论文学习记录】FaceBoxes: A CPU Real-time Face Detector with High Accuracy

 RDCL用于快速减小输入图像的尺寸。Conv1、Pool1、Conv2、Pool2的步长是4、2、2、2,因此RDCL部分总共的步长是32,也就是说输入图像经过RDCL之后会快速的缩小32倍。

小的kernel size可以加速计算,但是大的kernel size可以减少信息损失,为取得二者的平衡,Conv1、Conv2和所有Pool层的kernel size分别是7 x 7、5 x 5和3 x 3。

为减少输出通道数,使用C.ReLU**函数。

【论文学习记录】FaceBoxes: A CPU Real-time Face Detector with High Accuracy

三、MSCL

【论文学习记录】FaceBoxes: A CPU Real-time Face Detector with High Accuracy

MSCL由多个层组成,其中3个Inception模块,4个卷积层。这些层逐渐减小尺寸并形成多尺度特征图,最终的多尺度特征图由Inception3、Conv3_2、Conv4_2引出。

几个Inception模块可以丰富特征图的感受野。

【论文学习记录】FaceBoxes: A CPU Real-time Face Detector with High Accuracy

四、Anchor densification strategy

文中anchor默认的长宽比是1:1,3个Inception层的anchor尺度分别是32,64,128,Conv3_2和Conv4_2的anchor尺度分别是256和512。

定义anchor的密度为

【论文学习记录】FaceBoxes: A CPU Real-time Face Detector with High Accuracy

其中,【论文学习记录】FaceBoxes: A CPU Real-time Face Detector with High Accuracy是anchor的尺度,【论文学习记录】FaceBoxes: A CPU Real-time Face Detector with High Accuracy是anchor的平铺间隔,文中默认是32,32,32,64和128。因此,对应的密度为1,2,4,4,4。可以看到不同尺度的anchor的密度是不平衡的,小的anchor相对于大的anchor来说就太稀疏了,这将会导致小的人脸召回率较低。

为减少这种不平衡,作者设计了一种新的anchor稠密化策略。为使某个尺度的anchor变成n倍密度,就在一个感受野的中心周围均匀地平铺【论文学习记录】FaceBoxes: A CPU Real-time Face Detector with High Accuracy个anchor。论文中将32 x 32的anchor的密度变成原来的4倍,将64 x 64的anchor密度变成原来的2倍,这样就可以和大尺度的anchor密度保持一致了。

【论文学习记录】FaceBoxes: A CPU Real-time Face Detector with High Accuracy

五、训练

5.1 训练数据集

作者在WIDER FACE 12880张图片的训练集上进行训练。

5.2 数据增强

  • 颜色扭曲。
  • 随机裁剪:从原图像上随机裁剪5个方形patches,其中一个是尺寸最大的patch,其他的在[0.3,1]的区间随机选择一个数乘以原图的短边。然后随机选择一个patch进行下面的操作。
  • 将上一步选中的patchresize到1024 x 1024。
  • 以0.5的概率水平翻转patch。
  • 如果人脸box的中心位于上面处理patch中,保留box的重叠部分,然后过滤掉这些高度或宽度小于20像素的box。

5.3 匹配策略

首先将每个人脸和anchor使用最佳的jaccard overlap策略配对,然后保留anchor与任意人脸的jaccard overlap大于阈值(例如0.35)的保留下来。

5.4 损失函数

同Faster R-CNN。二分类softmax分类损失和smooth L1回归损失。

5.5 难例负样本挖掘

大量的负样本导致正负样本数量不平衡,将它们以loss进行排序,只选择前面的数个样本,保证正负样本的比例为1:3。

5.6 其他实施细节

所有参数使用“xavier”方法进行初始化。优化器是SGD,momentum 0.9,weight decay 0.0005,batch size 32.训练迭代120k次,前80k次迭代的学习率是【论文学习记录】FaceBoxes: A CPU Real-time Face Detector with High Accuracy,80k-100k的学习率是【论文学习记录】FaceBoxes: A CPU Real-time Face Detector with High Accuracy,最后20k的学习率是【论文学习记录】FaceBoxes: A CPU Real-time Face Detector with High Accuracy

六、实验

【论文学习记录】FaceBoxes: A CPU Real-time Face Detector with High Accuracy

【论文学习记录】FaceBoxes: A CPU Real-time Face Detector with High Accuracy

 

相关文章: