FSAF(Feature Selective Anchor-Free Module for Single-Shot Object Detection)

Caffe源码解读

  • Feature Selective Anchor-Free Module for Single-Shot Object Detection
  • 动机
  • FSAF
    • 网络结构
    • 损失计算

Feature Selective Anchor-Free Module for Single-Shot Object Detection

该文作为2019目标检测性能最强的检测器之一,超过了所有的single-shot检测器,达到了44.6%mAP(后来又出来了CenterNet)。接下来讲简单介绍一下这篇文章。

论文提出了一个Feature Selective Anchor-Free Module(FSAF),它解决了传统基于anchor检测的2个问题,
1.heuristic-guided feature selection(启发式特征选择)
2.overlap-based anchor sampling(基于重叠的锚采样)

动机

针对不同物体的尺度变化,以往的目标检测器普遍采用特征金字塔的方式。并通anchor的方式去对被测物体离散化成不同大小,长宽比的box。并通过设置不同大小的anchor box对应不同level的特征图。即大的anchor负责level高的特征图,小的anchor负责level低的特征图,这采用了分而治之的思想。
但其中存在的问题是anchor box的设置,它是人工去设定的,并根据ground truth boxes与anchor的IOU来判定它属于哪个level,这本身不是那么准的。如下图,原本可能应该属于level+1的,程序却让其设定为level层的特征图,自然最终的结果也不是很好。所以这种方式不是最优的。
FSAF(Feature Selective Anchor-Free Module for Single-Shot Object Detection)_第1张图片
当然anchor的设置与与分配一直都是业界比较关注的一个点,比如“Anchor Box Optimization for Object Detection”(https://arxiv.org/abs/1812.00469v1)。而这篇论文采用了另外一种思路,由于anchor的设置本身就是受启发性思维的设置,它不是最优的。所以作者采用free-anchor的方式,让物体自动的去选择最优的level特征图。

FSAF

针对这一点,作者提出以下4个问题。 1.如何创建anchor-free的网络结构 2.优化anchor-free 分支时如何生成监督信号。 3.如何动态的分配不同的实例到不同level的特征层。 4.如何联合训练、测试anchor-free与anchor-based分支。

网络结构

retinaNet是提取特征层,然后在每一层特征层添加classification、打分小网络与 回归坐标网络(相对于最贴近的anchor的相对位置)。
FSAF(Feature Selective Anchor-Free Module for Single-Shot Object Detection)_第2张图片
anchor-free分支也添加在特征层后面。它分为2个子网络。一个分类,直接attach了一个用K(类别数,80)个33卷积核并接上sigmoid函数的小网络来预测每一类别的概率。一个回归,attach 33*4的卷积核预测位置信息。
FSAF(Feature Selective Anchor-Free Module for Single-Shot Object Detection)_第3张图片

损失计算

FSAF(Feature Selective Anchor-Free Module for Single-Shot Object Detection)_第4张图片

你可能感兴趣的:(FSAF(Feature Selective Anchor-Free Module for Single-Shot Object Detection))