论文笔记之FCOS

1. 摘要

本文提出了一种全卷积的一阶段目标检测器(FCOS),以按像素预测的方式解决目标检测,类似于语义分割。FCOS不含anchor,也不含proposal,所以他是Anchor-free的。总的来说,它是一种更加简单灵活的检测框架,速度快且检测精度高。

2. 本文方法

2.1 网络结构

在这里插入图片描述

2.2 Fully Convolutional One-Stage Object Detector

对于特征图的每个位置(x,y)映射回原图在这里插入图片描述(s是步长)。不同于anchor-based检测器,本文直接回归该位置的目标边界框,即检测器将每个点作为训练样本而不是anchor。

如果这个位置(x,y)落在了真实框里面,且类别等于这个真实框的类别标签,则该位置被作为正例,其他的被当做负例且c=0.

除了分类外,还有一个四维向量在这里插入图片描述作为该位置的回归目标,这四个数是这个点到真实框四个边的垂直距离。另外,如果这个点落在多个边界框中,则视为不明确的例子(ambiguous sample)。只需选择具有最小面积的边界框作为回归目标。

如果这个点(x,y)与一个边界框B_i联系上了,那么这个点的训练回归目标公式化为:
在这里插入图片描述
网络的输出:
网络的输出是一个80维的向量,包括类别和4维位置预测值。本文不是训练一个多分类器,而是训练C个二值分类器(C为类别数目)。在backbone网络上分别添加分类分支和回归分支用于预测。

此外,由于回归目标总是正的,所以本文利用exp(x)将任何实数映射到回归分支的顶部的(0,∞)。

损失函数:
在这里插入图片描述
分类损失是focal loss,回归损失是UnitBox中使用的IOU Loss。在这里插入图片描述是指示函数,若分类预测值c大于0则为1,否则为0.

2.3 Multi-level Prediction with FPN for FCOS

存在的问题:

  • 步幅大(16),导致较低的recall。
  • 真实框的重叠导致难解的歧义(ambiguous sample),从而导致FCN性能下降。

解决以上问题的方法就是多级预测。
本文使用了5级预测,分别是在这里插入图片描述,具体如2.1中图所示。
不同于anchor-based的检测器的不同level使用不同anchor size的策略,本文直接限制每个level的边界框回归范围。

  • 首先计算每个位置的回归目标(l,t,r,b);
  • 然后如果一个位置的(l,t,r,b)大于m_i,或者小于m_(i-1),则被视为负例,不参与回归边界框,m_i是该特征level需要回归的最大距离,本文中,m_2,m_3,m_4,m_5,m_6,m_7分别设为0,64,128,256,512和∞。
    如果即使使用了多级预测的位置仍被分配给多个真实框,我们只需选择面积最小的真实框作为目标。
  • 最后,在不同的特征层中共享head。但是,观察到,不同的特征level回归不同的size范围,所以不能在不同的特征level使用相同的head。解决:使用带有可训练标量s_i 的 exp(s_i * x)来自动调整特征level P_i的指数函数的基数,获得了微小的提升。

2.4 Center-ness for FCOS

存在问题:
远离物体中心的位置产生了一些低质量的预测边界框。

解决:center-ness
添加了一个平行于分类分支单一层分支来预测每个位置的“center-ness”。center-ness描述的是从位置到该位置负责的物体中心的标准化距离(normalized distance)。

在这里插入图片描述
根据回归目标(l,t,r,b),center-ness目标定义为:
在这里插入图片描述
在此处采用 sqrt 减慢中心度衰减的方法。 中心度范围从0到1,因此使用二进制交叉熵(BCE)损失。

在测试时,通过将预测的center-ness乘以对应的分类分数来计算最终分数(用于对检测到的边界框进行排名)。 因此,center-ness可以降低远离物体中心的边界框的分数的权重。 结果,这些低质量的边界框很有可能通过最终的非最大抑制(NMS)过程被滤除,从而显著提高了检测性能。

3. 实验

  • FPN可以很好的解决低召回率和真实边界框内的重叠导致的歧义样本。
  • 由回归向量计算出的center-ness无法改善性能,因此还是得需要单独的center-ness分支。
  • 通过加一些小技巧,提升挺多,相比于anchor-based检测器有很大优势。
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/haha0825/article/details/106008743