FCOS阅读笔记

FCOS: Fully Convolutional One-Stage Object Detection

Posted by Lucifer443 on April 12, 2020

1583476036820

一、简介

​ FCOS提出了一种Anchor Free的detector head,在保证精度的同时降低了计算量,同时也减少了对Anchor超参的依赖。

Anchor Based的缺点

  1. 检测效果易受Anchor大小、比例、数目的影响。
  2. 难以处理形状变化较大的待检测对象。
  3. 为了提高召回率,Anchor based的模型通常会设置大量anchor box,在训练过程中大部分anchor box都是负样本,会加重训练过程中的正负样本不均衡问题。
  4. 引入了复杂计算,如IoU

主要思想

​ FCOS采用了的基于点的box回归预测,如Fig.1左所示,对feature map上的所有点所属的框进行预测,每个点预测4个量,到左边的距离(l),到上边的距离(t),到右边的距离(r),到下边的距离(b)。其实这种方法并不新鲜,但存在对于box重叠区域存在歧义,及如图Fig.1右所示,无法缺点这个点应该回归橙色框还是蓝色框,FCOS采用FPN的方法大大消除了这种歧义性。在远离box中心点的位置会产生许多低质量的预测框,为了降低这些低质量的预测框,FCOS引入了一个“center-ness”的分支来预测点到它所属box中心的距离,这个结果会降低低质量预测框的权重,并在NMS时融合过滤。

1583480123709

二、方法

1、基于点的框回归预测

​ FCOS将每个位置作为训练样本。具体来说,对于落在任意ground truth box的位置(x,y),都被视为正样本,并根据box的标签设置class label,否则的话视为负样本,class label设为0。除此之外,每个位置还有一个4D vector1583479888642作为回归目标,分别代表该位置到左、上、右、下边界的距离。对于落在多个ground truth box中的歧义位置,FCOS简单的采用面积小的box作为回归目标。

​ 由于使用每个位置作为训练样本,相比只用与ground truth box IoU大的Anchor box作为样本的Anchor based的方法,FCOS在训练回归器时,对前景样本的利用更加的充分

2、使用FPN进行多尺度预测

​ 使用FPN解决了两个问题:

  1. 在深层feature map上做预测best possible recall(BPR)较低的问题
  2. 多个ground truth box重叠的情况。

​ FCOS限制了每层FPN回归目标的尺度,如果1583482073840或者1583482102859则这个位置被认为负样本,不进行box回归。

​ 通常FPN的detector是参数共享,但FCOS在不同尺度进行回归的范围是不同的,所以FCOS在不同level进行回归时又引入了一个可学习的系数。

3、Center-ness

​ 由于在远离目标中心 的位置会产生许多低质量的预测框,FCOS引入了center-ness分支来压缩这些低质量的预测框。如图Fig.2所示,center-ness branch 与classification branch并行。

1583483469579

​ center-ness分支用来预测每个位置到目标中心的距离,如图Fig.3。在预测阶段,classification score 会乘上center-ness的输出,从而降低远离目标中心预测框的影响。center-ness target定义如下

1583483703031

1583483770420

三、实验

Center-ness 消融实验

1583484814494

有意思的时,把center-ness合并到regression里(第二行)没有任何提升。

与RetinaNet对比

1583485454680

与State-of- the-art对比

1583485689156