【论文笔记】:Feature Selective Anchor-Free Module for Single-Shot Object Detection
&Title:
&Summary
提出了一种简单有效的单镜头目标探测器的特征选择无锚(FSAF)模块。它可以插入具有特征金字塔结构的一阶段探测器。FSAF模块解决了传统基于锚点检测的两个局限性:
- 启发式引导特征选择
- overlap-based锚抽样
在训练过程中,我们动态地将每个实例分配到最合适的特性级别。在推理时,FSAF模块可以通过并行输出预测与基于锚的分支协同工作。我们用无锚分支的简单实现和在线特性选择策略实例化了这个概念。
FSAF的主要作用就是帮助我们的检测目标找到最适合他们的特征尺度。
&Research Objective
anchor-free + online feature selection
&Problem Statement
下图一个特征金字塔网络结构,高层次的特征图用来检测大目标,低层次的特征图用来检测小目标(上面的特征映射有更多的语义信息适合于检测大的实例,而较低的特征映射有更多的细节或细粒度的细节适合于检测小的实例)。目标大小和金字塔特征大小之间的联系是人工设置的。换句话说,anchor的匹配机制本质上是启发式引导的。这导致了一个主要缺陷,即所选的用于训练每个实例的对应于特征金字塔的特征尺度可能不是最佳的。
在训练过程中,每个实例总是根据IoU重叠匹配到最近的锚盒。而锚框则通过人类定义的规则(如框的大小)与特定级别的功能映射相关联。因此,为每个实例选择的特性级别完全基于自组织启发式。例如,大小为50 * 50像素的car实例和大小为60 * 60像素的另一个类似的car实例可能被分配到两个不同的特性级别,而另一个40 * 40 car实例可能被分配到与50 * 50实例相同的级别,如图2所示。换句话说,锚匹配机制本质上是启发式引导的。这将导致一个主要缺陷,即用于训练每个实例的所选特性级别可能不是最优的。
&Method(s)
提出了一种简单有效的feature选择性无锚(FSAF)模块,同时解决了上面所说的两个局限。我们的动机是让每个实例自由地选择最佳级别的特性来优化网络,因此在我们的模块中不应该有锚框来约束特性的选择。相反,我们以无锚的方式对实例进行编码,以了解用于分类和回归的参数。每个层次的特征金字塔都构建一个无锚分支,独立于基于锚的分支。与基于锚的分支类似,它由分类子网和回归子网组成。可以将实例分配到无锚分支的任意级别。在训练过程中,我们根据实例内容动态地为每个实例选择最合适的特性级别,而不是仅仅根据实例框的大小。然后,所选的特性级别将学习检测所分配的实例。
损失计算
- Class output:使用focal loss。白色表示有效区域(预测区域的0.2倍) 灰色表示忽略区域(预测区域的0.5倍) 黑色表示负样本区域 class output的损失就是所有非忽略区域的焦点损失之和,由所有有效方框区域内的像素总数归一化。
classification output是一个WxHxK大小的feature map,K表示物体类别数,那么在坐标为(i,j)的点上是一个长度为K的向量,表示属于每个类别的概率。分支对应的gt是图中白色区域内值为1,表示正样本,黑色区域内值为0,表示负样本,灰色区域是忽略区域不回传梯度。分支采用Focal
Loss,整个classification loss是非忽略区域的focal
loss之和,然后除以所有有效区域内像素个数之和来正则化一下,这个损失相当于是只对目标中心点附近区域采样预测类别,大大减少了样本范围。 - Box output:使用IOU loss 。总回归损失是所有有效盒区域IOU损失的平均值。
对每个特征层算分类和回归损失之和,在线选择loss最小的特征层做梯度反传。
在线特征选择
每个实例都通过各级anchor-free分支计算有效区域的平均分类(焦点)损失和回归损失(IOU)。然后选择两个损失之和最小的来作为该实例的监督信号。
FSAF的设计就是为了达到自动选择最佳Feature的目的,最佳Feature是由各个feature level共同决定。看上面张图,哪一个 anchor-free branch 输出的 loss 最小,就把 ground-truth 分配去哪一个层:在训练阶段,它与 anchor-based 的分支进行加权训练,通过 λ = 0.5 进行权衡。在推理的时候,还需要进行这样的 selective 吗?当然不用了,不过要把 anchor-free branch 得到的 box 拿过来和 anchor-based branch 一起做 NMS。
&Evaluation
&Conclusion
首先设计了anchor-free的提取样本方法,一定程度上实现了对anchor-based方法的取代,其次从feature selection角度设计了新的FSAF module来提升性能,其实从loss角度来看,提升了梯度反传的效率,
&Notes
Contributions
作者提出了一个FSAF网络结构块(feature selective anchor-free)。这个网络结构块可以添加到特征金字塔里面来提升检测精度。FSAF网络结构块主要是解决的基于anchor目标检测的两个问题:
- 启发式的引导特征选择
即anchor-based方法中, anchor跟gt匹配过程中,依据的是IOU数值,这个公式隐式的决定了这个gt由哪一层的feature map来进行预测,由size尺寸来暴力决定负责预测的feature map。作者觉得这种方法说不上是好是坏,但是由gt自己选择负责预测的feature map会更合理。
- 基于重叠的anchor采样。
FSAF的主要作用就是帮助我们的检测目标找到最适合他们的特征尺度。