Seeing Small Faces from Robust Anchor’s Perspective
Problem:虽然anchor-based 检测器在处理形状和外形的不变性。另一方面,脸在图像中可以是任意大小。除了严重的遮挡,极端的pose和低画质,非常小的脸已经常委了现在网络现在鲁棒的面部检测模型的挑战之一。如下是训练好的模型,大小随网络的变化。
上图可以看到,当脸比较小的时候,很难做到100%覆盖到脸。换句话说,在分辨并调整achor框之后,有高的confidence的新boxes仍然很难能够cover掉小的脸。这让我们关注anchor没有调整之前与face的大小。首先,我们要计算出每个face与anchor框的最大值。得到的结果如下:
通过上图可以看到,Average IoU与Face Scales的关系和ReCall与Face Scales的关系曲线很相似。我们可以发现拥有low IOU overlaps的大小更小的faces更难通过调整和ground truth相似。
在本文中,我们将关注一个更新的anchor方式。也就是EMO。效果如下:
根据上面的图片可以看出,本文提出的anchor效果还可以。IoU相比于传统的anchor。Iou提高了不知道多少去了(写了一天的博客了,脑袋已经糊了。too young too simple.Sometimes Navie。)。因此,它更容易调整anchor达到boxes cover GT的效果。本文提出的EMO如下:
S代表anchor框的大小。然后,R代表anchor框的长宽比。L代表每个anchor框的中心点。A代表这个位置上所有anchor框的总数。比如如果设置3个面积大小和1个长宽比。具体效果如下:
上图中黄色的虚线框是anchor。+是代表每个anchor框的中心。绿色的框代表ground truth.
A
=
S
×
R
×
L
A=S\times R\times L
A=S×R×L
主要方法如下:
由于一张两在空间中是可以随时出现。假设脸的中心点为(x,y)
本文中将S={16,32,64,128,256,512};R={1}.易知,对于每个+来说,总共有6个anchors。此外我们假设face会出现在图片中的任意位置,于是对于face的位置(x,y)。x-U(0,W);y-U(0,H)。
由于我们有anchors是将整张图片全部铺满,很显然即使是face随机出现在整张图片中,在固定了anchor的情况下,face box和anchor随着x和y的变化是呈现周期性的特点。于是,本文中只用考虑其中的一个周期的情况。同时由于本文使用的是堆成框,于是乎,很显然,face box和anchor的相对位置是呈现对称性的性质。于是本文指挥考虑
S
A
/
2
×
S
A
/
2
S_A/2 \times S_A/2
SA/2×SA/2的范围。
x
′
和
y
′
x'和y'
x′和y′分别为face box的中心点到anchor中心点的距离。很显然,这两个变量都是满足
U
(
0
,
s
A
/
2
)
U(0,s_A/2)
U(0,sA/2)。如果假使face和iou有相同的大小,那么Iou之间的损失函数将变成如下公式:
I
o
U
=
(
l
−
x
′
)
(
l
−
y
′
)
2
l
2
−
(
l
−
x
′
)
(
l
−
y
′
)
IoU=\frac{(l-x')(l-y')}{2l^2-(l-x')(l-y')}
IoU=2l2−(l−x′)(l−y′)(l−x′)(l−y′)
对于在可行域数据进行求积分,可以得到如下公式:
E
M
O
=
∫
0
S
A
2
∫
0
S
A
2
(
2
S
A
)
2
(
l
−
x
′
)
(
l
−
y
′
)
2
l
2
−
(
l
−
x
′
)
(
l
−
y
′
)
d
x
′
d
y
′
EMO=\int ^{\frac{S_A}{2}}_0\int ^{\frac{S_A}{2}}_0(\frac{2}{S_A})^2\frac{(l-x')(l-y')}{2l^2-(l-x')(l-y')}dx'dy'
EMO=∫02SA∫02SA(SA2)22l2−(l−x′)(l−y′)(l−x′)(l−y′)dx′dy′
根据上文的公式,如果face box的大小是固定的。如果Sa越小,EMO得到的分数就越高。这样所有的faces的IoU就会从统计学的角度增加。(讲真我还记得以前看过一篇有k-means控制anchor大小的,好像是yolov3上面的。)
综上所述,想要实现EMO的变大,最好的方法是将anchor stride调小。
上图中是深度中比较常用的扩大特征层的方法,这样相当于将anchor框相对而言变小了。(a)双线性插值。(b)双线性插值+feature fusion.(c)将convolution的stride设为1。同时使用空洞卷积让感受野的面积变大。
shifted anchor(简而言之就是平移框)这里的shift anchor共享着feature representation和center anchor。
上图分别代表这
s
F
和
S
A
s_F和S_A
sF和SA大小不相等的时候。