论文题目:《FaceBoxes: A CPU Real-time Face Detector with High Accuracy》 论文链接:https:///pdf/1708.05234.pdf 年份: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 RDCLRDCL的目的是为了快速下采样,让模型能够在CPU上面能达到实时。RDCL采用的方法是缩小空间大小,选择合适的卷积核大小和减少输出通道。
2.2 MSCLMSCL是为了得到更好地检测不同尺度的人脸。
MSCL在多个上尺度进行回归和分类,在不同尺度下检测不同大小的人脸,能够大大提高检测的召回率。 2.3 Anchor密度策略Inception3的anchor大小为32,64和128,而Conv3_2和Con4_2的anchor大小分别为256,512。anchor的平铺间隔等于anchor对应层的步长大小。例如,Con3_2的步长是64个像素点,anchor大小为256x256,这表明在输入图片上,每隔64个像素就会有一个256x256的anchor。关于anchor的平铺密度文中是这样定义的: 可以看出来,不同尺度的anchor之间存在平铺密度不平衡的问题,导致小尺度的人脸召回率比较低,因此,为了改善小anchor的平铺密度,作者提出了anchor密度策略。为了使anchor密集n倍,作者均匀地将$A_{number}=n^2$个anchor铺在感受野的中心附近,而不是铺在中心,如图3所示。将32x32的anchor密集4倍,64x64的anchor密集两倍,以保证不同尺度的anchor有相同的密度。 2.4 训练数据扩增:
匹配策略:训练期间,需要确定哪些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.对我们有什么指导意义?
|
|