论文题目:《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的核大小为7x7, 5x5,所有池化层的核大小为3x3。
- 缩小输入通道:应用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大小为256x256,这表明在输出图片上,每隔64个像素就会有一个256x256的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所示。将32x32的anchor密集4倍,64x64的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 公布