HAMBox:用于检测人脸的在线高质量Anchor挖掘.
在目标检测算法中,anchor匹配机制是一个非常关键的操作。作者通过实验发现了一种有趣的现象,即不匹配正样本的anchor(包括负样本anchor和忽略样本anchor)相比正样本anchor而言,居然也有不错的回归能力,在推理时,不匹配样本anchor回归得到的与gt的IoU大于0.5的框占到所有与gt的IoU大于0.5的框中的$89\%$。这个现象说明不匹配的anchor其实也有非常强的回归能力。
基于该问题本文提出了Online High-quality Anchor Mining Strategy (HAMBox),用于显式的帮助outer faces补偿高质量的anchor;并且基于高质量anchor策略,进一步提出了Regression-aware Focal Loss。
1. 问题分析
不同于通用目标检测器,人脸往往 长宽比(aspect ratios) 变化较小(一般是$1:1$,$1:1.5$),但是 尺度方差(scale variations) 很大,人脸在图片中可能占据大量像素,也可能就几个像素而已。针对这一问题,有方案采用 FPN + 密集 Anchors 的策略,但会增加推理耗时。从效率上来说,Anchor 越少越简单越好,但实际选择合适的Anchor尺度仍然是一个很大的挑战。人脸检测比较特殊,其Anchor尺度设置的不同会出现以下情形:
- (a)表明可以通过增加Anchor的尺度来增加GT匹配的Anchor的数量(小目标匹配的 Anchor数量少,大目标匹配的Anchor数量多);
- (b)表明单纯增加Anchor 尺度会导致不匹配(一般是小目标无法匹配)的数量增加。
上述现象应该是人脸检测数据集特有的现象,在通用目标检测中不一定如此。通过降低匹配阈值强制为 outer face 匹配足够数目的 Anchor,会引入了大量低质量的anchor,表现也不是很好。 以流行的PyramidBox算法为基准,分析结果:
- 如图(a)所示,横坐标是匹配阶段 high-quality anchor (经过回归后的框与人脸框的gt的iou大于$0.5$) 与 GT 的 IoU,纵坐标是累计概率分布$F(x)$。可以看到匹配 $≤0.35$ 的 high-quality anchor 占所有 high-quality anchor 的 $89\%$。也就是说,如果以 $0.35$ 为匹配阈值,所有 Anchor 经过回归之后,high-quality-anchor 中只有 $11\%$ 的框是来源于匹配 Anchor,$89\%$ 的高质量 Anchor 竟然来源于负 Anchor,这些 Anchor 实际上并没有参与回归训练。
- 如图(b)所示,传统的匹配策略由于Anchor的质量不高,平均回归 IoU 只有 0.4;作者提出的 HAMBox 方法,平均回归 IoU 可以达到 0.8。
- 如图(c)所示,在训练阶段,所有 high-quanlity anchor中,有$65\%$是由 unmatched anchor (在训练时与目标人脸的*IoU** $<0.35$ 的anchor) 回归得到的。
2. Online High-quality Anchor Mining Strategy
人脸检测中常用的Anchor两步匹配策略:
- 对于每个face,计算face和所有anchor的iou,将Iou大于阈值的anchor位置样本定义为匹配正样本;
- 由于face尺度变化很大,可能有些face没有任何anchor进行匹配成功,故采用max iou原则将iou最大的anchor作为该face的匹配正样本
本文提出的在线高质量Anchor挖掘策略,在保证iou质量的前提下,尽可能保证每个face都有指定数目的$K$个anchor进行匹配(并没有保证一定要$K$个)。 具体是:
- 将每张脸匹配到那些与它的iou大于某个阈值的anchor,outer face (没有匹配到anchor的GT)不进行补偿;
- 在训练的每次前向传播之后,每个anchor通过回归得到的坐标计算出回归框$B_{reg}$,对于每个outer face,计算它与$B_{reg}$的IOU值,然后对每张outer face补偿$N$个unmatched anchor,这些补偿的anchor通过下面方式选择:
- IOU要大于阈值$T$(在线正anchor匹配阈值)
- 对上一步得到的anchor进行排序,选择IOU最大的top-K个anchor做补偿。
总之,对于任何一个face,如果在第一步中匹配到了$K$个正样本,那么就不需要补充;如果不够,假设只匹配到了$M$个,就利用预测的bbox和face计算iou,选择前最多top(k-M)个anchor(需要满足IOU大于阈值$T$)作为补充样本,加入训练中。
超参数$K$和$T$的消融如下:
3. Regression-aware Focal loss
新加入的补充anchor被认为是正样本,但是其质量还是比最开始匹配得到的anchor样本有些差距,为了突出这种差距,应该对补充样本引入一个自适应权重,为此作者对focal loss进行了自适应加权操作。
作者对满足以下三个条件的anchor不进行自适应加权:
- 属于high-quality anchor
- 在anchor匹配的第一步骤时,label被分配为$0$
- 在anchor补偿中,没有被选中的anchor
利用iou值$F_i$对补充样本进行加权,减少这部分样本权重,iou越小,权重就应该越小。新的focal loss为:
\[\begin{aligned} & L_{c l s}\left(p_i\right)=\frac{1}{N_{\text {com }}} \sum_{i \in \psi} F_i L_{f l}\left(p_i, g_i^*\right) \\ & +\frac{1}{N_{\text {norm }}} \sum_{i \in \Omega}\left(1_{\left(l_i^*=0\right)} 1_{\left(F_i<0.5\right)}+1_{\left(l_i^*=1\right)}\right) L_{f l}\left(p_i, l_i^*\right) \end{aligned}\]OAM表示online anchor mining, RAL表示regression-aware focal loss为本文最重要的创新点,可以看出其对AP提升明显(hard 分别提升$0.7\%$,$0.3\%$)。