Seeing Small Faces from Robust Anchor’s Perspective

Seeing Small Faces from Robust Anchor’s Perspective

1. 介绍

这是CVPR-2018的论文,这篇论文主要从anchor 设计的角度进行分析,认为当前小人脸检测效果差是因为anchor与小人脸的IoU偏低,从而导致网络很难回归类似ground truth的bounding box。作者通过分析anchor与ground truth的匹配原理,提出了新的评价尺度EMO scores,基于EMO score找到了导致小人脸IoU差的原因,从而基于这些提出了新的anchor设计和补偿方案。

论文地址:

http://openaccess.thecvf.com/content_cvpr_2018/papers/Zhu_Seeing_Small_Faces_CVPR_2018_paper.pdf


文章基于anchor-based人脸检测框架,通过比较不同人脸尺度下召回率,发现一个很有趣的现象,如下图所示:


Fig 1

从上图中可以发现:

a) 在推理过程中, 当人脸尺寸大于16pixels时,召回率均大于90%,在人脸尺寸小于16pixels时,召回率只有44%。

b) 在训练前,比较Average IoU与人脸尺度的关系,发现其结果基本与召回率的结果正相关。

基于以上两点的发现,作者认为对于小人脸,因为IoU较低,所以其对应的anchor很难去调整到ground truth值,所以导致小人脸的低召回率。进而,作者提出了自己的anchor design方案,相对于baseline anchor design, 对于小人脸的Average IoU有了比较好的改善,其与baseline anchor方法的比较如下如所示:

Fig 2

从图中我们发现,重新设计的anchor要好于baseline anchor,所以对于网络来说,其更容易调整红色的框到ground truth face, 而对于黄色的框更难一些。基于以上分析,作者提出了 Expected Max Overlapping (EMO)值用于描述Anchor获取高IoU的能力。EMO可以理论上解释为什么大人脸尺度下,anchor更容易得到高的IoU,这将从理论上指导作者设计新的anchor方法。

2 . EMO

2.1 基于anchor的检测器介绍

Anchors是一些预定义的boxes,拥有不同的尺度、不同的长宽比。在训练阶段,通过计算所有anchors与ground truth face的IoU值,选择合适的anchor与ground truth face进行匹配。如果满足如下条件之一,则这个anchor就是与ground truth 匹配的anchor。

a) 如果某一个anchor的IoU值大于其他所有anchor的IoU;

b) 如果anchor的IoU大于阈值Th。

对于一个anchor, 若其与所有ground truth face的IoU都小于阈值Th,则将会将其标记为背景。

Feature maps 决定了anchors的位置和步长,feature map是一个张量,大小为c*h*w,anchor在feature map上以其每个点作为中心,Anchor stride与feature stride相等。

2.2 Anchor的设置和匹配

下图(a)黄色+号表示anchor的中心点,黄色虚线框表示每个中心点上有多少种尺度的anchor,其中绿色的框代表真实人脸,通过图(b)我们可以看到Max IoU=0.27,其中红色框是与ground truth face 的IoU最大的anchor。

Fig 3


2.3 计算EMO值

Fig 4

在上图中,作者定义了真实人脸的中心点作为一对随机变量(x,y),如图中绿色X。定义人脸位置的概率密度函数p(x, y),满足:

所以EMO score定义为:

文中,作者使用是anchors 尺度为{16,32,64,128,256,512},长宽比为{1}。所以在每个“+”的位置,拥有6个anchor,此外假设每个人脸在图中随机出现,则这些人脸服从统一的分布,x~U(0, W), y~U(0, H)

如下图所示,在anchor与ground truth face匹配过程中,人脸中心点一定位于四个anchor中心点之间,并且与其中一个anchor拥有最大IoU值。其中图中蓝色的框尺寸我SA*SA,表示ground truth face的中心落在的区域。人脸中心点与anchor 中心点的相对位置可以表示为(x', y'), 其服从分布 U(0, SA/2)

Fig 5

如果给定人脸, 若假定其与anchor box有相同大小,所以IoU分数可以表示为:

所以当ground truth人脸的中心点与anchor box的中心间直接越接近,则IoU的值也就越大。EMO的公式可以改写为:

从这个公式可以得出如下结论:

a) 当人脸很大时,EMO值也就越大;

b) 当人脸固定,SA的角色就很重要,SA越小,则EMO值也就越大。

3. Anchor的设计

3.1 通过增大feature map来减小步长

我们知道,anchor的步长与feature的步长是相等的,所以我们可以通过增大feature map来减小anchor的步长。为此,作者提出了三种新的网络结构:


Fig 6

其中(a)通过上采样(反卷积)来增大feature maps;

其中(b)将最后一层的feature map上采样,然后通过1*1卷积降低channel,stride8对应的feature map先通过1*1卷积降低channel,然后将二者相加,最后再通过3*3卷积得到最终的feature map。

(a)和(b)的方法给网络增加了新的参数,增大了网络的复杂性,作者又提出的(c)方案。

其中(c)采用dilated convolution可以避免(a)和(b)的缺陷。

3.2 额外的偏移Anchors

通过增大feature map来减小 anchor stride的方式不会改变这个条件:,这里提出了新的方法使得:。作者增加了一些支援anchors,这些anchors的中心点不在滑动窗口的位置处,例如:Shift Anchors。通过这种方式可以在不改变feature map的情况下减小anchor的步长。

Fig 7

图(a)相邻两个滑动窗口的距离是,每一个窗口有一个anchor,这里anchor stride: 。

图(b)中增加额外的偏移anchor,则anchor stride可以减小为:。

图(c)中另外两个补偿anchor,可以将anchor stride减小为:

因为大尺寸的人脸已经有比较好的IoU,所以偏移anchors的方法只针对小人脸。

3.3 Face Shift Jittering

在计算EMO分数时,作者假设人脸的中心点是服从2D均匀分布的。但是在实际的数据库中,每个人脸都有一个笃定位置,其中一些靠近anchor的中心,但是一些其他的人脸远离人脸的的中心,所以导致了低IoU。为了增加这些人脸获得高IoU的概率,在训练阶段的每一次迭代,这些人脸会被随机偏移。

每次迭代阶段,随机偏移的offset为:(x,y),其中x,y分别向右和向下进行偏移。offset从离散均匀分布中进行采样,例如:{0,1,...,SA/2 -1}。作者这里设置最大偏移量为SA/2 - 1,是因为每个周期的重叠模式大小的SA/2。

3.4 Hard Face Compensation


Fig 8

从上图可以看到,即便增大feature stride,增加偏移anchors,但是针对小脸的avg IoU依旧很低。这是因为人脸的尺度和位置是连续的,而anchor的尺度和位置是离散的。因此,对于一些人脸,它的尺度和位置离anchor的中心点依旧很远,这些人脸很难匹配到anchor。

作者提起了针对hard face的anchor 匹配补偿策略,如下:

a) 首先,如果 anchors与ground truth face的IoU大于阈值Th, 则这些anchors被标记为positive;

b) 其次,如果某个ground truth face 对应的最大IoU小于阈值Th,则这个人脸即为hard face;

c) 最后,对于hard face, 选择最大N个anchors,标记为positive。

你可能感兴趣的:(Seeing Small Faces from Robust Anchor’s Perspective)