摘要
无anchor的目标检测也可以超越基于anchor的检测方法。我们在考虑这个方法的时候需要考虑两个方面的问题(其实无论是否基于anchor,都要考虑这两个方面的问题):(1)如何设计更好的head网络。(2)如何更好的利用金字塔的特征结构。针对这两个需要考虑的问题涉及到两个方面:attention bias和feature selection,针对这两个问题,我们提出了两个策略来解决:soft-weighted anchor points和soft-selected pyramid levels。
一、Introduction
目前的anchor-free方法可以分为两种:1、point-to-boundary:预测特征图中的每一个像素值所对应的原图中的点与bbox四条边的距离。2、key-point:针对bbox,预测一些关键点,比如角点、中心点、极端点,然后把这些关键点形成一个box。
key-point:优点:高AP;缺点:①需要使用那么高分辨率的特征图 ②高flops和内存消耗,训练和推理时间长 ③对现存的流行的backbone不兼容。
anchor-point:优点:①更简单的网络结构 ②更快的训练和推理速度 ③可以更好的利用金字塔结构 ④更灵活的特征图选择; 缺点:同样的图片尺寸,准确率低于key-point,特别是定位精度。
attention bias:在训练过程中,清晰的物体能够获得更好的注意力,这会容易忽视其他的物体。
feature selection:传统的使用金字塔的方法会把每一个物体目标分配到某一个特定的特征层上,这样会导致没有充分利用金字塔层的作用。
解决方案:(1)每一个position anchor给一个权重,而且这个权重和所在bbox中心点的距离有关。(2)每一个positive anchor都会选择所有的feature map,但是每一个map所起的作用会给一个权重,这个权重通过新设计的网络给出。
三、SAPD
1、字母表示
:某一层特征金字塔,
:中的i行j列的像素值
:对应到原图中的坐标
:bbox
:缩放后的bbox,其中是缩放因子。
对于positive box:(1)分类目标:c;(2)定位目标:,其中:
对于negative box:(1)分类目标:c;(2)定位目标:无。
2、损失函数
(1)分类损失:Focal loss(),(2)定位损失:IoU loss()。具体公式如下:
3、soft-weighted anchor points
对于传统的网络来说,在一张图片中,清晰显而易见的目标的分类过高,而且他们会抑制其他物体。从下图(b)中可以看出,有2个运动员在热图中占据的区域比真实情况大,更严重的是,他们有时候甚至会覆盖掉其他物体的区域。
原因分析:目标边缘的得分太高。真实的情况是:边缘附近的anchor,它们会包含太多背景的部分,我们可以认为它们的代表性并没有那么高,但是在训练的时候却赋予了它们太高的分数。
因此,对于靠近边缘的anchor point和靠近中心的anchor point不应该同等看待。
解决方案:对每一个对应的原图中的anchor,如果是positive的,那么就给它们一个权重,权重如下所示:
4、soft-selected pyramid levels
anchor free的方法对于每一个目标不会人为限制它是属于哪张特征图,它可以属于任何一张,具体属于哪张我们交给网络自己学习。
如下图所示,目标在每张特征图中都会有响应区域,但是在各张图中又会有一些不同。我们认为最终的结果应该是所有特征图共同决定的结果。
所以,我们在训练和推理的过程中,应该同时使用多张特征图,而且每张特征图应该给予不同的权重。FoveaBox揭示了使用多张特征图可以提高效果,但是使用太多的特征图又会损失精度。我们分析这是由于硬选择造成的。对于每一个目标,FoveaBox采用的方法是直接判断某张特征图用或者不用,如果被选用了,那么所有被选用的特征图都被平等对待。
解决方案:我们可以训练一个元网络来预测每一张特征图给予的权重。网络的输入层即是:各层的金字塔特征层,然后分别紧跟着ROIAlign层。然后把结果进行连接,最终通过全连接层接softmax函数输出。然后,我们使用网络输出的概率分布来选择不同的金字塔特征层。meta网络的损失函数为交叉熵(具体可参考FSAF模块)。网络的结构图如下所示: