S3FD: Single Shot Scale-invariant Face Detector

标签: 人脸检测算法深度学习
524人阅读 评论(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上的测试结果:

这里写图片描述

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:401830次
    • 积分:4955
    • 等级:
    • 排名:第6007名
    • 原创:113篇
    • 转载:10篇
    • 译文:1篇
    • 评论:441条
    最新评论