S3FD: Single Shot Scale-invariant Face Detector

2017-09-11 14:03 出处:csdn 人气: 评论(0

一篇同样着重处理人脸尺度问题的检测文章。

方法可以看作是对SSD的改进与完善,速度较慢(36FPS with Titan X & VGA)。

文章链接: 《S3FD: Single Shot Scale-invariant Face Detector》

code will be available at https://github.com/sfzhang15/SFD

1. 方法介绍

如上图,整体方法结构和SSD一致,在不同层使用不同尺度的anchor预测目标。

2. 要点介绍

(1)Reasons behind the problem of anchor-based methods

  • (a) 由于spatial pooling,小尺度人脸最后拥有的特征太少;
  • (b) anchor与感受野的尺度不匹配,且都太大而不适宜小人脸;
  • (c) 离散尺度的anchor预测连续尺度的人脸,导致tiny face和outer face均不能获得足够多的匹配;
  • (d) 小的anchor在进行匹配时会面临更多的负样本。

(2)Scale-equitable framework

首先看下表:(6个检测分支对应的空间stride、anchor以及感受野(RF)的大小)

上表所表示的网络之所以如此设计,主要考虑下列两个因素:

* Anchor的size应当比(理论上的)感受野小*

理论上的感受野是指该范围内的任意输入都会影响到输出。 但实际上,这种影响不是均匀的,于是中间的输入对输出影响越重,类似于一种中心高斯分布。如下图(a)(b)所示:

我们应当使得anchor的size与有效感受野相匹配,有效感受野如上图(b)中的蓝色圆圈所示。其中,黑色框为理论感受野。

* 不同size的anchor应当具有相同的空间密度分布*

如上图(c)所示,anchor的size与stride的比例始终保持为4。 这也就意味着,即使在不同尺度上,滑动过一定百分比(占anchor大小的百分比)的像素,得到的anchor的数量是一致的。

(3)Scale compensation anchor matching strategy

如图2.1(c)所示,平均匹配到的anchor数量约为3,太少;与anchor size差距较远的人脸匹配成功的数量尤其少(tiny face + outer face)。为了改善这种状况,主要采取了下列两种手段:

  • (1)将原有的匹配阈值由0.5降到0.35,以此来增加更多的成功匹配。 (但该策略只能提高平均匹配数量,但不能改善tiny face和outer face。)
  • (2)选出所有IOU大于0.1得到anchor并进行排序,从中选TOP N。(N为平均成功匹配数量。)

处理后的效果如下:

(4)Max-out background label

下表是一张640x640图片上所能产生的不同size的anchor的数量,显然尺寸小的anchor占了绝大比例,这也是false positive的主要来源。

为了减少小目标所产生的false positive,文中采用了下面的方法来加强对小目标的区分:

conv3_3层(小目标产生最多的层),输出通道数为((N_s + 4)),其中 (N_s > 2),而其它所有检测层的输出通道数均为(2+4),表示二分类和4个bounding box坐标。 (N_s)中包含了1个正样本的概率以及(N_s-1)个负样本概率,我们从负样本概率中选出最大值与正样本概率一起完成之后的softmax二分类。 这种看似多余的操作实际上是通过提高分类难度来加强分类能力。

3. 实验结果

FDDB上的测试结果:

这里写图片描述

本文标签: 人脸检测算法深度学习

相关文章

网站内容来源于互联网,仅供用于技术学习,请遵循相关法律 规,如有侵权,请联系管理员删除

Copyright © 2002-2017 JISHUX. 技术栈 版权所有

京ICP备15061484号-3