Single Shot Scale-invariant Face Detector
目录
问题
- The lowest anchor-associated layer的步幅太大(例如,SSD中的8个像素和Faster R-CNN中的16个像素),因此在这些层上的中小脸被高度挤压,用于检测的特征很少了;
- anchor的尺度和感受野相互不匹配,而且都太大而不适宜小人脸检测;
- 离散尺度的anchor预测连续尺度的人脸,导致tiny face和outer face均不能获得足够多的匹配;
- 小的anchor在进行匹配时会面临更多的负样本。
提出框架
结构和SSD一致,在不同层使用不同尺度的anchor预测目标。
Scale-equitable framework
6个检测分支对应的空间stride、anchor以及感受野(RF)的大小
上表设计,主要考虑下列两个因素:
- Anchor的size应当比(理论上的)感受野小
理论上的感受野是指该范围内的任意输入都会影响到输出。 但实际上,这种影响不是均匀的,于是中间的输入对输出影响越重,类似于一种中心高斯分布。如下图(a)(b)所示:
我们应当使得anchor的size与有效感受野相匹配,有效感受野如上图(b)中的蓝色圆圈所示。其中,黑色框为理论感受野。 - 不同size的anchor应当具有相同的空间密度分布
如上图(c)中所示,anchor的尺寸和步长的比例始终保持为4,即使在不同尺度上,滑动过一定百分比的像素,得到的anchor的数量是一致的。
Scale compensation anchor matching strategy
如第一个图(c),平均匹配到的anchor数量约为3,太少;与anchor size差距较远的人脸匹配成功的数量尤其少(tiny face + outer face)。为了改善这种状况,主要采取了下列两种方法:
3. 将原有的匹配阈值由0.5降到0.35,以此来增加更多的成功匹配。 (但该策略只能提高平均匹配数量,但不能改善tiny face和outer face。)
4. 选出所有IOU大于0.1得到anchor并进行排序,从中选TOP N。(N为第一步平均成功匹配数量。)
结果如图(a)
Max-out background label
640x640图片上所能产生的不同size的anchor的数量,显然尺寸小的anchor占了绝大比例,这也是false positive的主要来源。
为了减少小目标所产生的false positive,文中采用了下面的方法来加强对小目标的区分:
在conv3_3层(小目标产生最多的层),输出通道数为(Ns+4),其中 Ns>2,而其它所有检测层的输出通道数均为(2+4),表示二分类和4个bounding box坐标。 Ns中包含了1个正样本的概率以及Ns−1个负样本概率,我们从负样本概率中选出最大值与正样本概率一起完成之后的softmax二分类。 这种看似多余的操作实际上是通过提高分类难度来加强分类能力。
结果
速度:Titan X (Pascal) 、 cuDNN v5.1、 Intel Xeon E5-2683v3@2.00GHz :
VGA分辨率图片单GPU36 FPS,80% 的前向时间花在VGG16网络。