论文笔记 Seeing Small Faces from Robust Anchors Perspective

Abstract

本文针对基于anchor的人脸检测提出了一种新的anchor设计方法,具有出色的尺度不变性,尤其是针对小脸的检测效果很好。

以往基于anchor的检测器存在的问题:对小尺寸的脸部检测性能降低,比如小于16×16pixels的脸部。

作者的发现:

  • 当前的anchor设计方法不能保证小脸与anchor boxes之间的高重合度,增加了训练的难度

  • EMO

效果:比baseline anchor-based检测器表现要好,在具有挑战性的人脸检测数据集上达到了state-of-the-art,而且运行速度也具有竞争力。

1. Introduction

目前的最先进人脸检测器是一些基于anchor的深度卷积神经网络方法,这些方法受到了主流目标检测器的启发,比如SSD/Faster R-CNN/R-FCN。

虽然基于anchor的检测器在解决形状和外观不变性的问题上取得了成功,但是它们解决尺度不变性的能力却不让人满意。而现在非常小的脸部在人脸检测领域是极具挑战性的问题之一。

![52127364131](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/Paper/CVPR2018-Face_Anchor/Recall Rate-Face Scale.png)

从图中(IoU=0.5)可以看出:

  • 大于64×64pixels的脸部几乎能够100%被检测出来,而当脸部的尺寸在小于16×16范围时,召回率有了明显的下降。

  • 其原因在于:在分类和调整anchor boxes之后,这些anchors与那些足够小脸部的重合度还不够高。进一步分析:在训练之前,对每一张脸计算它与重叠anchors的最高IoU,然后根据尺寸将faces进行分组,再对每一组计算平均最高IoU值,如下图:

    ![52127432957](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/Paper/CVPR2018-Face_Anchor/Average IoU-Face Scale.png)

    召回率与脸部尺寸呈现正相关的关系,而那些与小脸的IoU很低的anchor boxes难以被调整到GT的位置,导致了小脸的召回率很低

本文针对于设计一种新的anchor方案来支持基于anchor的检测器,以获得更好的尺度不变性。如下图所示,我们新提出的anchors相比于以往的anchors与脸部有更高的IoU:

52127498686

红色的anchors比黄色的anchors更容易调整到GT的位置,从而使得网络比之前更容易学习如何将anchors回归到GT faces。因此作者深入研究了faces是如何与不同配置的anchors进行匹配的,并且提出了一种新的EMO得分来描述anchors与faces取得高IoU的能力。具体来说:

  • 给定一个已知尺寸的face,以及一组anchors,先计算face与这组anchors的最大IoU,假设该face的位置来自于图像上的一个二维分布。然后EMO得分能从理论上解释出“为什么大尺寸的脸部更容易被anchors高重合程度地覆盖,而且分布密集的anchors更有可能覆盖到脸部”
  • EMO得分启发了几种简单却有效的anchor设计策略,以获得更高的face IoU得分,同时又不会向网络引入过多复杂度。

具体来说,作者提出:

  • 减少各种网络架构设计anchor的步长
  • 增加不在中心位置的anchors,使anchors的分布更加密集
  • 随机移动face boxes,增加获得更高IoU的概率
  • 将重叠率低的face boxes与多种anchors匹配

通过消融实验证明了本文提出的方法比以往基于anchors的检测器有很大的提升,在Wider Face,AFW,PASCAL Faces,FDDB上都取得了目前最先进的结果

主要贡献:

  1. 使用新提出的EMO得分对不同条件下的anchor匹配机制进行了深度分析
  2. 为了更高的IoU,尤其针对小脸提出了几种新的anchor设计方法,包括anchor步长的减小;额外平移过的anchors;随机faces平移,并证明了这些方法比baseline有很大提升效果
  3. 在Wider Face,AFW,PASCAL Faces,FDDB上达到了目前最先进水平,而且运行速度有竞争力

##2. Related Work

3. Expected Max Overlapping Scores

3.1. Overview of Anchor-Based Detector

基于anchors的检测方法将anchor boxes进行分类和回归来检测目标。

Anchors是一组多尺寸多宽高比的预定义boxes,规律地平铺在图像平面上。在训练过程中,这些anchors根据IoU重叠率与GT boxes进行匹配,匹配的条件有以下两种情况:

  • 该anchor与某GT box的IoU是最高的
  • 该anchor与某GT box的IoU比阈值$T_h$高

如果某个anchor与所有的GT boxes的IoU都低于阈值$T_l$,那么该anchor会被标记为背景

Anchors会与特征图联系起来,特征图决定了anchors的位置和步长。

特征图是尺寸为$c×h×w$的张量(tensor),$s_F$为特征的步长,即相邻位置之间的距离,$\frac{H}{h}=\frac{W}{w}=s_F$,anchors将这些位置作为中心点,使用这种联合的表征来计算置信度得分和bounding boxes回归,所以anchor的步长与特征的步长是相等的,$s_A=s_F$。

52142838391

3.2. Anchor Setup and Matching

$S$代表一个预定义的尺度集合,表示anchor boxes的尺度;$R$代表一个预定义的宽高比集合,表示anchors的宽高比;于是不同anchor boxes的总数为$|S×R|=|S||R|$,$×$为两个集合的笛卡尔乘积,$|*|$代表集合的基数。

举例:有3种尺度和1种宽高比的anchor boxes如Fig2(a)所示,让$L​$代表一种按规律分布位置的合集,即图中的“+”位置,相邻两个“+”之间的距离为anchor的步长$s_A​$。$A​$代表所有anchors的集合,表示以“+”位置为中心平铺各种尺度和宽高比的anchor boxes,$A=S×R×L​$。

Fig2(b)中,假设某face box表示为$B_f$(绿色),与anchor box $B_a$ (红色虚线)有最大的IoU,max IoU此时可由以下等式(1)计算得到:

​ $\max \limits_{α\in{A}}\frac{|B_f\cap{B_a}|}{|B_f\cup{B_a}|}$ (1)

3.3. Computing the EMO Score

![52151028737](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/Paper/CVPR2018-Face_Anchor/computing EMO score.png)

在图(c)中,用$(x,y)$表示一个face的中心位置,$p(x,y)$表示face位置的概率密度分布函数,且满足$\int_{0}^{H}\int_{0}^{W}p(x,y)dxdy=1$,再根据等式(1),EMO得分的计算方式为等式(2):

​ $EMO=\int_{0}^{H}\int_{0}^{W}p(x,y)\max \limits_{α\in{A}}\frac{|B_f\cap{B_a}|}{|B_f\cup{B_a}|}dxdy$ (2)

Fig4显示了不同尺度face和anchor步长下的EMO得分:

![52152753475](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/Paper/CVPR2018-Face_Anchor/EMO scores.png)

由图可见尺度较大的脸部与anchors的IoU更高;当face的尺度固定时,anchors的步长越小,EMO得分越高。

4. Strategies of New Anchor Design

目标是从提高EMO得分为切入点,针对小脸提高平均IoU。基于之前的分析,作者提出:通过减小anchor的步长来增加平均IoU,同时减小face与anchor中心之间的距离。

4.1. Stride Reduction with Enlarged Feature Maps

由于anchor步长与特征步长一致,所以可以通过放大feature map来减小anchor的步长。

  • 双线性上采样将feature map扩大

4.2 Extra Shifted Anchors

通过扩大feature maps的方法来减小anchor strides并没有改变$s_A=s_F$这一条件,在本节中作者将会通过增加额外的辅助性anchors来减小$s_A$使得$s_A<s_F$,这些anchors被称为shifted anchors,它们并不以滑窗的中心位置为中心。这种方法可以在不改变feature maps分辨率的情况下提高EMO得分。这些shifted anchors与那些定位在“+”中心的anchors共享特征。

具体来说,假设feature map的步长是$s_F$,两个相邻滑窗位置之间的距离是$s_F$,在Fig6中由黑点标记:

![52153156197](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/Paper/CVPR2018-Face_Anchor/shifted anchors.png)

在图(a)中,每个位置(黑点)都有一个以其为中心的anchor;当每个位置的右下方添加了额外的anchors(绿色的)时,如图(b),anchor stride减少到了$s_F/\sqrt{2}$;当如图(c)中的蓝色和品红色anchor加入时,anchor stride减少到了$s_F/2$。实际上,只需要加入小尺寸的shifted anchors,因为大尺寸的anchors已经能够保证较高的IoU了,这样能够节约计算时间。举例来说,在扩大的feature maps上增加了三种小尺寸的anchor(16×16)对平均IoUs的提升效果如Fig7所示:

![52153220169](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/Paper/CVPR2018-Face_Anchor/our anchor design.png)

可见小尺寸脸部的平均IoU在作者的改进方法下有了显著的提升。

4.3. Face Shift Jittering

当对每个face计算EMO得分时,是假设face的中心是服从二维均匀分布的。然而在真实数据集中,每个face的位置是固定的,一些faces距离anchors的中心较近,所以它们更有可能与anchors有更高的IoU;而一些faces本来就距离anchors的中心较远,经常会取得较低的IoU值。为了增加后一种faces与anchors获得较高IoU的概率,作者将这些faces在训练的每次迭代过程中进行随机的平移。

具体来说,在每次迭代过程中,图像平移的偏移量在每次迭代中为$(\delta_x,\delta_y)$,$\delta_x$和$\delta_y$为图像向右和向下平移的像素值,所以图像中所有faces的位置增量都为$(\delta_x,\delta_y)$。偏移量服从离散均匀分布,比如$\delta_x,\delta_y\in{0,1,…,s_A/2-1}$。即使用服从离散均匀分布的偏移量(offsets)来处理服从连续均匀分布的face locations。作者将随机偏移量的最大值设置为$s_A/2-1$,因为重叠的一个周期距离为$s_A/2$。

4.4. Hard Face Compensation

由Fig7可见,即使将feature strides减半、对小尺寸的anchors做了平移,那些尺寸非常小脸部的IoU与更大的脸部相比来说还是处于较低的水平。这是因为脸部的尺寸和位置是连续的,而anchor的尺寸和位置是离散的。因此,仍然有一些脸部的尺寸和位置离anchor很远,这些离得很远的脸部难以与anchors匹配上。

因此作者提出了一种补偿性的策略,让很难匹配到anchors的脸部尝试与更多的anchors匹配。