【翻译】FCOS:Fully Convolutional One-Stage Object Detection

目录

  • 摘要
  • 1.介绍
  • 2. 相关工作
  • 3. 我们的方法
    • 3.1. 全卷积一阶段目标检测器
    • 3.2. FCOS的FPN多级预测
    • 3.3. FCOS的中心度
  • 4. 实验
    • 4.1. 消融实验
      • 4.1.1 FPN多级预测
      • 4.1.2 有/没有中心度
      • 4.1.3 FCOS与anchor-based检测器的对比
    • 4.2. 与现有主流检测器对比
  • 5. RPN的扩展
  • 6. 结论

论文:FCOS: Fully Convolutional One-Stage Object Detection

摘要

我们提出了一种全卷积的一阶段目标检测器(FCOS),以类似于语义分割的逐像素预测方式解决目标检测问题。几乎所有最先进的物体检测器,如RetinaNet、SSD、YOLOv3和Faster R-CNN都依赖于预定义的anchor boxes。相比之下,我们提出的检测器FCOS没有anchor boxes,也没proposal。通过消除预定义的anchor boxes集合,FCOS完全避免了与anchor boxes相关的复杂计算,例如在训练过程中计算重叠。更重要的是,我们还避免了与anchor boxes相关的所有超参数,这些超参数通常对最终检测性能非常敏感。凭借唯一的后处理非极大值抑制(NMS),具有ResNeXt-64x4d-101的FCOS在单模型和单尺度测试的中实现了44.7%的AP,以具有更简单的优势超越了以前的一阶段检测器。我们首次展示了一个更简单和灵活的检测框架,可以提高检测精度。我们希望提出的FCOS框架可以作为许多其他实例级任务的简单而强大的替代方案。代码可在:tinyurl.com/FCOSv1.
  【根据论文所示,具有ResNeXt-101-FPN的 RetinaNet在COCO test-dev有40.8%的AP,不知道主干网络是不是一样的?】

1.介绍

目标检测是计算机视觉中一项基本但具有挑战性的任务,它需要算法为图像中的每个感兴趣的实例预测带有类别标签的边界框。目前所有主流检测器如Faster R-CNN[24]、SSD[18]和YOLOv2、v3[23]都依赖于一组预定义的anchor boxes,长期以来一直认为使用anchor boxes是检测器成功的关键。尽管取得了巨大成功,但值得注意的是基于anchor的检测器存在一些缺点:1)如[15, 24]所示,检测性能对anchor boxes的大小、纵横比和数量很敏感。例如,在RetinaNet[15]中,在COCO基准测试[16]上,改变这些超参数会影响AP中高达4%的性能。因此,需要在基于anchor的检测器中仔细调整这些超参数。2)即使经过精心设计,由于anchor boxes的尺度和纵横比保持固定,检测器难以处理具有较大形状变化的候选目标时,特别是对于小目标。预定义的anchor boxes也阻碍了检测器的泛化能力,因为它们需要在具有不同目标大小或纵横比的新检测任务上重新设计。3)为了实现高召回率,需要一个基于anchor的检测器在输入图像上密集放置anchor boxes(例如,对于短边为800的特征图像,特征金字塔网络(FPN)[14]中超过180K的anchor boxes)。大多数这些anchor boxes在训练期间被标记为负样本。过多的负样本加剧了训练中正负样本的不平衡。4)anchor boxes还涉及复杂的计算,例如与真实边界框计算交并集(IoU)分数。
  【anchor boxes计算的标准是短边为800,长边1333?】
  最近,全卷积网络(FCN)[20]在语义分割[20、28、9、19]、深度估计[17、31]、关键点检测[3]和计数[2]等密集预测任务中取得了巨大成功。作为高级视觉任务之一,目标检测可能是唯一一个偏离纯全卷积逐像素预测框架的任务,主要是由于使用了anchor boxes。很自然的提出一个问题:例如,我们能否以简洁的逐像素预测方式解决目标检测,类似于FCN进行语义分割?因此,这些基本的视觉任务可以(几乎)统一在一个框架中。我们证明答案是肯定的。此外,我们首次证明,更简单的基于FCN的检测器比基于anchor的检测器实现了更好的性能。
  在参考文献中,一些工作试图利用基于FCN的框架进行目标检测,例如DenseBox[12]。具体来说,这些基于FCN的框架直接预测4D向量和特征图级别上每个空间位置的类类别。如图1(左)所示,4D向量描绘了从边界框的四个边到该位置的相对偏移量。这些框架类似于用于语义分割的FCN,不同之处在于每个位置都需要回归4D连续向量。然而,为了处理不同大小的边界框,DenseBox[12]将训练图像裁剪和调整到固定比例。因此DenseBox必须对图像金字塔进行检测,这违背了FCN一次计算所有卷积的理念。此外,更重要的是,这些方法主要用于特殊领域的物体检测,例如场景文本检测[33,10]或人脸检测[32,12],因为人们认为这些方法不适用于具有高度重叠边界框的一般目标检测。如图1(右)所示,高度重叠的边界框导致难以处理的歧义:不清楚对于重叠区域中的像素要为哪个边界框回归。

【翻译】FCOS:Fully Convolutional One-Stage Object Detection_第1张图片
图1 – 如左图所示,FCOS通过预测4D向量(l, t, r, b)对每个前景像素的边界框位置进行编码(在训练期间由真实边界框信息监督)。右图显示,当一个位置位于多个边界框时,该位置应该回归哪个边界框可能不明确。

后来,我们仔细研究了这个问题,并表明使用FPN可以在很大程度上消除这种歧义。因此,我们的方法已经可以与那些传统的基于anchor的检测器具有相当的检测精度。此外,我们观察到我们的方法可能会在远离目标中心的位置产生许多低质量的预测边界框。为了抑制这些低质量的检测,我们引入了一个新的“center-ness”分支(只有一层)来预测像素与其相应边界框中心的偏差,如方程3中所定义。然后使用该分数降低检测到的低质量边界框的权重,并在NMS中合并检测结果。简单而有效的Center-ness分支允许基于FCN的检测器在完全相同的训练和测试设置下优于anchor-based的检测器。
  这种新的检测框架具有以下优点。
  (1)现在的检测与许多其他FCN-solvable任务(例如语义分割)统一起来,从而更容易重用这些任务中的想法。
  (2)检测变成了proposal free和anchor free,这显着减少了设计参数的数量。设计参数通常需要启发式调整,并涉及许多技巧以实现良好的性能。因此,我们新的检测框架使检测器,尤其是其训练变得更加简单。
  (3)通过消除anchor boxes,我们的新检测器完全避免了与anchor boxes相关的复杂计算,例如训练期间anchor boxes与真实框之间的IOU计算和匹配,从而实现对比于anchor-based的检测器,更快的训练和测试以及更少的训练内存占用。
  (4)没有花里胡哨,我们在一阶段检测器中实现了最先进的结果。我们还表明所提出的FCOS可以用作两阶段检测器中的区域提议网络(RPN),并且可以实现比基于anchor的RPN的检测器明显有更好的性能。鉴于更简单的anchor-free检测器的性能甚至更好,我们鼓励社区重新考虑anchor boxes(这个目前被认为是事实上的检测标准)在目标检测中的必要性。
  (5)所提出的检测器可以立即扩展到以最少的修改解决其他视觉任务,包括实例分割和关键点检测。我们相信这种新方法可以成为许多实例预测问题的新基线。

2. 相关工作

Anchor-based检测器. Anchor-based检测器继承了传统的基于滑动窗口和提议的检测器的思想,例如 Fast R-CNN[6]。在anchor-based的检测器中,anchor boxes可以被视为预定义的滑动窗口或提议,它们被分类为正或负样本,并带有额外的偏移回归以细化边界框位置的预测。因此,这些检测器中的anchor boxes可以被视为训练样本。与以前的检测器(如Fast R-CNN)重复计算每个滑动窗口/建议的图像特征不同,anchor boxes利用CNN的特征图并避免重复特征计算,从而显着加快检测过程。anchor boxes的设计由Faster R-CNN在其RPNs[24]、SSD[18]和YOLOv2[22]中推广,并已成为现代检测器的惯例。
  然而,如上所述,anchor boxes会导致过多的超参数,通常需要仔细调整以获得良好的性能。除了上述描述anchor形状的超参数外,基于anchor的检测器还需要其他超参数来将每个anchor boxes标记为正样本、忽略样本或负样本。在以前的工作中,他们经常使用anchor boxes和真实框之间的交并比(IOU)来确定anchor boxes的标签(例如,如果其IOU在[0.5, 1]中,则为正anchor)。这些超参数对最终准确率的影响很大,需要启发式调优。同时,这些超参数特定于检测任务,使检测任务偏离了其他密集预测任务(如语义分割)中使用的纯全卷积网络架构。
Anchor-free检测器. 最受欢迎的anchor-free检测器可能是YOLOv1[21]。YOLOv1没有使用anchor boxes,而是在靠近目标中心的点处预测边界框。仅使用靠近中心的点,因为它们被认为能够产生更高质量的检测。然而,由于仅使用靠近中心的点来预测边界框,因此YOLOv1的召回率较低,如YOLOv2[22]中所述。因此,YOLOv2[22]也使用了anchor boxes。与YOLOv1相比,FCOS利用真实边界框中的所有点来预测边界框,并且所提出的“center-ness”分支抑制了检测到的低质量边界框。因此,如我们的实验所示,FCOS能够提供与anchor-based的检测器相当的召回率。
  CornerNet[13]是最近提出的单阶段anchor-free检测器,它检测边界框的一对角并将它们分组以形成最终检测到的边界框。CornerNet需要更复杂的后处理来分组属于同一实例的角对。为了分组的目的,学习了额外的距离度量。
  另一类anchor-free检测器(例如[32])基于DenseBox[12]。由于难以处理重叠的边界框并且召回率相对较低,因此该系列检测器被认为不适合通用目标检测。在这项工作中,我们表明通过多级FPN预测可以在很大程度上缓解这两个问题。此外,我们还与我们提出的center-ness分支一起表明,更简单的检测器可以实现比anchor-based的检测器更好的检测性能。

3. 我们的方法

在本节中,我们首先以每像素预测的方式重新制定目标检测。接下来,我们将展示我们如何利用多级预测来提高召回率并解决重叠边界框导致的歧义。最后,我们提出了我们提出的“center-ness”分支,它有助于抑制检测到的低质量边界框并大幅提高整体性能。

3.1. 全卷积一阶段目标检测器

F i ∈ R H × W × H F_i∈R^{H×W×H} FiRH×W×H是主干CNN 第 i 层的特征图,s 是直到该层的总步长。输入图像的真实边界框定义为{ B i B_i Bi},其中 B i = ( x 0 ( i ) , y 0 ( i ) , x 1 ( i ) , y 1 ( i ) , c ( i ) ) B_i=(x_0^{(i)}, y_0^{(i)}, x_1^{(i)}, y_1^{(i)}, c^{(i)}) Bi=(x0(i),y0(i),x1(i),y1(i),c(i))。这里 ( x 0 ( i ) , y 0 ( i ) ) (x_0^{(i)}, y_0^{(i)}) (x0(i),y0(i)) ( x 1 ( i ) , y 1 ( i ) ) (x_1^{(i)}, y_1^{(i)}) (x1(i),y1(i))表示边界框的左上角和右下角的坐标。 c ( i ) c^{(i)} c(i)是边界框中的目标所属的类。C 是类的数量,对于 MS-COCO 数据集是 80。

【翻译】FCOS:Fully Convolutional One-Stage Object Detection_第2张图片
图 2 – FCOS 的网络架构,其中C3、C4 和C5 表示骨干网络的特征图,P3 到 P7 是用于最终预测的特征级别。 H × W 是特征图的高度和宽度。 ‘/s’ (s = 8, 16, ..., 128) 是输入图像层级特征图的下采样率。 例如,所有数字都是使用 800 × 1024 输入计算的。

对于特征图上的每个位置 (x, y),我们可以将其映射回输入图像作为 ( ⌊ s / 2 ⌋ + x s , ⌊ s / 2 ⌋ + y s ) (\lfloor s/2 \rfloor + xs, \lfloor s/2 \rfloor + ys) (s/2+xs,s/2+ys),它靠近位置(x, y)的感受野中心。与anchor-based的检测器不同,它们将输入图像上的位置视为(多个)锚框的中心,并以这些anchor boxes为参考回归目标边界框,我们直接在该位置回归目标边界框。换句话说,我们的检测器直接将位置视为训练样本而不是anchor-based的检测器中的anchor boxes,这与语义分割的FCN相同[20]。
  具体来说,如果位置 (x, y) 落入任何真实值框并且该位置的类标签C* 是真实值框的类标签,则将其视为正样本。否则它是一个负样本并且C*= 0(背景类)。除了用于分类的标签,我们还有一个 4D 实向量 t ∗ = ( l ∗ , t ∗ , r ∗ , b ∗ ) t^*=(l^*, t^*, r^*, b^*) t=(l,t,r,b)作为该位置的回归目标。这里 l ∗ , t ∗ , r ∗ , b ∗ l^*, t^*, r^*, b^* l,t,r,b是该位置到边界框四个边的距离,如图 1(左)所示。如果一个位置落入多个边界框,它被认为是一个不明确的样本。我们简单地选择面积最小的边界框作为其回归目标。在下一节中,我们将展示通过多级预测,可以显着减少模糊样本的数量,因此它们几乎不会影响检测性能。形式上,如果位置 (x, y) 与边界框相关联,则该位置的训练回归目标可以表示为:

加载失败

值得注意的是,FCOS 可以利用尽可能多的前景样本来训练回归器。它不同于anchor-based的检测器,后者只将与真实框具有足够高 IOU 的anchor boxes作为正样本。我们认为这可能是 FCOS 优于其anchor-based的检测器的原因之一。
Network Outputs. 对应于训练目标,我们网络的最后一层预测了一个 80D 的分类标签向量 p 和一个 4D 向量 t = (l, t, r, b) 边界框坐标。按照[15],我们训练C 个二元分类器,而不是训练多类分类器。与[15]类似,我们在主干网络的特征图之后分别添加了四个卷积层用于分类和回归分支。此外,由于回归目标始终为正,因此我们使用 exp(x) 将任何实数映射到回归分支顶部的 (0, ∞)。值得注意的是,FCOS 的网络输出变量比流行的每个位置有 9 个anchor boxes的anchor-based的检测器[15, 24]少 9 倍,。
Loss Function. 我们定义我们的训练损失函数如下:

【翻译】FCOS:Fully Convolutional One-Stage Object Detection_第3张图片

其中 L c l s L_{cls} Lcls是[15]中的focal loss, L r e g L_{reg} Lreg是 UnitBox[32]中的 IOU 损失。 N p o s N_{pos} Npos表示正样本的数量,本文中λ为1是的平衡权重。总和是在特征图 F i F_i Fi上的所有位置上计算的。 1 { c x , y ∗ > 0 } 1_{\{c_{x,y}^*>0\}} 1{cx,y>0}是指示函数,如果 c i ∗ > 0 c_i^*>0 ci>0则为 1,否则为 0。
Inference. FCOS 的推论很简单。给定输入图像,我们通过网络将其前向传播并获得特征图 F i F_i Fi上每个位置的分类分数 p x , y p_{x,y} px,y和回归预测 t x , y t_{x,y} tx,y。按照[15],我们选择 p x , y p_{x,y} px,y>0.05的位置作为正样本并反转公式1获得预测的边界框。

3.2. FCOS的FPN多级预测

在这里,我们展示了如何通过 FPN[14]的多级预测来解决所提出的 FCOS 的两个可能问题。1)CNN 中最终特征图的大步长(例如 16×)会导致相对较低的最佳召回率 (BPR)。对于anchor-based的检测器,由于大步长导致的低召回率可以通过降低正锚框所需的 IOU 分数在一定程度上得到补偿。对于 FCOS,乍一看,人们可能会认为 BPR 可能比anchor-based的检测器低得多,因为由于步长较大,无法召回最终特征图上没有位置编码的目标。在这里,我们凭经验证明,即使有很大的 stride,基于FCN的 FCOS 仍然能够产生很好的 BPR,甚至可以在官方实现的 Detectron[7]中比anchor-based的检测器 RetinaNet[15]的 BPR 更好(参见表 1)。所以BPR其实不是FCOS的问题。此外,通过多级 FPN 预测[14],可以进一步改进 BPR,以匹配anchor-based的 RetinaNet 可以实现的最佳 BPR。2) 真实值框的重叠会导致难以处理的歧义,即重叠中的某个位置应该回归哪个边界框?这种模糊性导致基于FCN的检测器性能下降。在这项工作中,我们表明可以通过多级预测极大地解决歧义,并且与anchor-based的检测器相比,基于FCN的检测器可以获得同等甚至更好的性能。
【翻译】FCOS:Fully Convolutional One-Stage Object Detection_第4张图片
表 1 – anchor-based的 RetinaNet 在各种匹配规则下的 BPR 和基于FCN的 FCOS 的 BPR。 基于FCN的 FCOS 与最好的anchor-based的 FCOS 具有非常相似的召回率,并且比 Detectron[7]中的官方实现具有更高的召回率,其中仅考虑 IOU ≥ 0.4 的低质量匹配。

遵循 FPN[14],我们在不同级别的特征图上检测不同大小的目标。具体来说,我们使用定义为{ P 3 , P 4 , P 5 , P 6 , P 7 P_3, P_4, P_5, P_6, P_7 P3,P4,P5,P6,P7}的五个级别的特征图。 P 3 , P 4 P_3, P_4 P3,P4 P 5 P_5 P5由主干CNN 的特征图 C 3 C_3 C3 C 4 C_4 C4 C 5 C_5 C5生成,然后是一个 1×1 卷积层,在[14]中具有自顶向下的连接,如图 2 所示。 P 6 P_6 P6 P 7 P_7 P7分别在 P 5 P_5 P5 P 6 P_6 P6上应用一个步幅为 2 的卷积层生成。因此,特征级别 P 3 P_3 P3 P 4 P_4 P4 P 5 P_5 P5 P 6 P_6 P6 P 7 P_7 P7的步幅分别为 8、16、32、64 和 128。
  与anchor-based的检测器将不同大小的anchor boxes分配给不同的特征级别不同,我们直接限制了每个级别的边界框回归的范围。更具体地说,我们首先计算所有特征级别上每个位置的回归目标 l ∗ , t ∗ , r ∗ , b ∗ l^*, t^*, r^*, b^* l,t,r,b 。接下来,如果某个位置满足 max( l ∗ , t ∗ , r ∗ , b ∗ l^*, t^*, r^*, b^* l,t,r,b) > m i m_i mi 或 max( l ∗ , t ∗ , r ∗ , b ∗ l^*, t^*, r^*, b^* l,t,r,b) < m i − 1 m_{i-1} mi1,则将其设置为负样本并且因此不再需要回归边界框。这里 m i m_i mi是特征级别 i 需要回归的最大距离。在这项工作中, m 2 m_2 m2 m 3 m_3 m3 m 4 m_4 m4 m 5 m_5 m5 m 6 m_6 m6 m 7 m_7 m7分别设置为 0、64、128、256、512 和 ∞。由于具有不同大小的目标被分配到不同的特征级别,并且大多数重叠发生在具有显着不同大小的目标之间。如果一个位置,即使使用了多级预测,仍然分配给多个真实值框,我们只需选择面积最小的真实值框作为其目标。正如我们的实验所示,多级预测可以在很大程度上缓解上述歧义,并将基于FCN的检测器提高到与基于锚的检测器相同的水平。
  最后,按照[14, 15],我们在不同特征级别之间共享头部,不仅使检测器参数高效,而且还提高了检测性能。然而,我们观察到需要不同的特征级别来回归不同的大小范围(例如,大小范围为 P 3 P_3 P3的[0, 64]和 P 4 P_4 P4的[64, 128]),因此使用相同的针对不同的功能级别。因此,我们没有使用标准的 exp(x),而是使用带有可训练标量 S i S_i Si的 exp(x) 来自动调整特征级别 P i P_i Pi的指数函数的基数,这略微提高了检测性能。

3.3. FCOS的中心度

在 FCOS 中使用多级预测后,FCOS 和anchor-based的检测器之间仍然存在性能差距。我们观察到这是由于远离目标中心的位置产生了许多低质量的预测边界框。
【翻译】FCOS:Fully Convolutional One-Stage Object Detection_第5张图片
图 3 – 中心性。 红色、蓝色和其他颜色分别表示 1、0 和它们之间的值。 中心度由等式 (3) 计算,并随着位置偏离目标的中心而从 1 衰减到 0。 在测试时,网络预测的中心度与分类分数相乘,从而可以降低由远离目标中心的位置预测的低质量边界框的权重。

我们提出了一种简单而有效的策略来抑制这些检测到的低质量边界框而不引入任何超参数。具体来说,我们添加了一个与分类分支并行的单层分支(如图 2 所示)来预测位置的“center-ness”。center-ness描述了从位置到该位置负责的目标中心的归一化距离,如图 3 所示。给定一个位置的回归目标 l ∗ , t ∗ , r ∗ 和 b ∗ l^*, t^*, r^*和b^* l,t,rb,Center-ness目标定义为,在这里插入图片描述
  我们在这里使用根号来减缓中心性的衰减。center-ness的范围从 0 到 1,因此使用二元交叉熵 (BCE) 损失进行训练。损失被添加到损失函数方程(2)。测试时,最终分数(用于对检测到的边界框进行排序)是通过将预测的中心度(center-ness)与相应的分类分数相乘来计算的。因此,中心度(center-ness)可以降低远离目标中心的边界框的分数。因此,这些低质量的边界框很可能会被最终的非最大抑制(NMS)过程过滤掉,从而显着提高检测性能。
  中心度(center-ness)的另一种选择是仅使用真实边界框的中心部分作为正样本,代价是一个额外的超参数,如[12, 33]的工作所示。在我们提交之后,[1]中已经表明,两种方法的结合可以实现更好的性能。实验结果见表 3。
【翻译】FCOS:Fully Convolutional One-Stage Object Detection_第6张图片
表 3 – FCOS 与 RetinaNet 在以 ResNet-50-FPN 作为主干的 minival split上。 直接使用 RetinaNet 的训练和测试设置,我们的无锚 FCOS 在 AP 和 AR 中都实现了比基于锚的 RetinaNet 更好的性能。 在头部的组归一化(GN)和 NMS 阈值为 0.6 的情况下,FCOS 在 AP 中可以达到 37.1。 在我们提交之后,对 FCOS 进行了一些几乎免费的改进,性能有了很大的改进,如“改进”下面的行所示。 “ct. on reg.”:将Center-ness 分支移动到回归分支。 “ct. sample”:仅将真实值框的中心部分采样为正样本。 “GIoU”:在 IoU 损失中惩罚外接矩形区域上的联合区域。 “归一化”:归一化方程(1) 中的回归目标随着 FPN 级别的步幅。 有关详细信息,请参阅我们的代码。

4. 实验

我们的实验是在大规模检测基准COCO[16]上进行的。按照惯例[15, 14, 24],我们使用COCO trainval35k split(115K 图像)进行训练,使用minival split(5K 图像)作为消融研究的验证。我们通过将检测结果上传到评估服务器来报告我们在test-dev spli(20K 图像)的主要结果。
Training Details. 除非特别说明,ResNet-50[8]用作我们的骨干网络,并且使用与 RetinaNet[15]相同的超参数。具体来说,我们的网络使用随机梯度下降 (SGD) 进行 90K 次迭代训练,初始学习率为 0.01,小批量 16 张图像。在迭代 60K 和 80K 时,学习率分别降低了 10 倍。权重衰减和动量分别设置为 0.0001 和 0.9。我们使用在 ImageNet[4]上预训练的权重初始化我们的主干网络。对于新添加的层,我们按照[15]中的方法初始化它们。除非指定,否则输入图像的大小将调整为短边为 800,长边小于或等于 1333。
Inference Details. 我们首先通过网络转发输入图像并获得具有预测类别的预测边界框。除非特别说明,以下后处理与 RetinaNet[15]完全相同,我们直接使用与 RetinaNet 相同的后处理超参数。我们使用与训练中相同大小的输入图像。我们假设如果我们仔细调整超参数,我们的检测器的性能可能会得到进一步提高。

4.1. 消融实验

4.1.1 FPN多级预测

如前所述,基于FCN的检测器的主要问题是低召回率和由真实边界框重叠导致的模糊样本。在本节中,我们展示了这两个问题可以通过多级预测在很大程度上得到解决。
Best Possible Recalls. 关于基于FCN的检测器的第一个问题是它可能无法提供良好的最佳召回率 (BPR)。在本节中,我们表明该关注是不必要的。这里 BPR 被定义为检测器最多可以召回的真实值框数量除以所有真实值框的比率。如果在训练期间将框分配给至少一个样本(即 FCOS 中的一个位置或anchor-based的检测器中的anchor boxes),则认为该真实框被召回。如表1所示,只有步长为16的特征级别P4(即没有FPN),FCOS已经可以获得95.55%的BPR。BPR远高于官方实现Detectron中基于anchor的检测器RetinaNet的90.92%的BPR,其中只使用IOU≥0.4的低质量匹配。在 FPN 的帮助下,FCOS 可以实现 98.40% 的 BPR,这非常接近基于锚的检测器使用所有低质量匹配所能达到的最佳 BPR。由于当前检测器的最佳召回率远低于 90%,因此 FCOS 和基于锚的检测器之间的小 BPR 差距(小于 1%)实际上不会影响检测器的性能。表 3 也证实了这一点,在相同的训练和测试设置下,FCOS 比基于锚的对应物实现了更好的 AR。因此,可能没有必要担心低 BPR。
【翻译】FCOS:Fully Convolutional One-Stage Object Detection_第7张图片
表 1 – anchor-based的 RetinaNet 在各种匹配规则下的 BPR 和基于FCN的 FCOS 的 BPR。 基于FCN的 FCOS 与最好的anchor-based的 FCOS 具有非常相似的召回率,并且比 Detectron[7]中的官方实现具有更高的召回率,其中仅考虑 IOU ≥ 0.4 的低质量匹配。

Ambiguous Samples. 基于FCN的检测器的另一个问题是,由于真实边界框的重叠,它可能有大量模糊样本,如图 1(右)所示。在表 2 中,我们显示了在最小分割上模糊样本与所有正样本的比率。如表所示,如果不使用FPN而只使用特征级别P4,确实存在大量的模糊样本(23.16%)。但是,使用 FPN,由于大多数重叠目标被分配到不同的特征级别,因此该比率可以显着降低至仅 7.14%。此外,我们认为由同一类别的目标之间重叠导致的模糊样本无关紧要。例如,如果具有相同类别的目标 A 和 B 有重叠,则无论重叠中的位置预测哪个目标,预测都是正确的,因为它总是与相同的类别匹配。错过的目标可以通过只属于它的位置来预测。因此,我们只计算不同类别的边界框之间重叠的模糊样本。如表 2 所示,多级预测将模糊样本的比率从 17.84% 降低到 3.75%。为了进一步表明ground truth box的重叠不是我们基于FCN的FCOS的问题,我们在推断有多少检测到的边界框来自模糊位置时计算。我们发现只有 2.3% 的检测到的边界框是由模糊位置产生的。通过进一步仅考虑不同类别之间的重叠,该比例降低到1.5%。请注意,这并不意味着 FCOS 无法工作的位置有 1.5%。如前所述,这些位置与具有最小面积的真实值框相关联。因此,这些位置只会冒遗漏一些较大物体的风险。如以下实验所示,它们不会使我们的 FCOS 劣于基于锚的检测器。
【翻译】FCOS:Fully Convolutional One-Stage Object Detection_第8张图片
表 2 – Amb. samples表示模糊样本与所有正样本的比率。 Amb. samples (diff.) 与前面相似,但排除了重叠区域中的那些歧义样本,但属于同一类别,因为推理时歧义的种类无关紧要。 我们可以看到,使用 FPN,这个模糊样本的百分比很小(3.75%)。

4.1.2 有/没有中心度

如前所述,我们提出了“center-ness”来抑制由远离目标中心的位置产生的低质量检测边界框。如表 4 所示,center-ness 分支可以将 AP 从 33.5% 提升到 37.1%,使得anchor-free FCOS 优于anchor-based的 RetinaNet(35.9%)。请注意,anchor-based的 RetinaNet 使用两个 IoU 阈值将anchor boxes标记为正/负样本,这也有助于抑制低质量预测。提出的中心度可以消除两个超参数。然而,在我们最初提交之后,它表明同时使用中心度和阈值可以产生更好的性能,如行“+ctr. sampling”在表 3 中。人们可能会注意到,中心度也可以用预测的回归向量计算,而无需引入额外的中心度分支。然而,如表 4 所示,从回归向量计算的中心度并不能提高性能,因此单独的中心度是必要的。
【翻译】FCOS:Fully Convolutional One-Stage Object Detection_第9张图片
表 4 – 对 minival split 提出的Center-ness 分支的消融研究。 “None”表示不使用中心度。 “center-ness†”表示使用从预测的回归向量计算的中心度。 “中心度”是使用从提议的中心度分支预测的中心度。Center-ness 分支提高了所有指标下的检测性能。

4.1.3 FCOS与anchor-based检测器的对比

上述 FCOS 与标准 RetinaNet 有两个细微差别。1)我们在除最后一个预测层之外的新添加的卷积层中使用组归一化(GN)[29],这使我们的训练更加稳定。2) 我们使用 P5 来生成 P6 和 P7,而不是标准 RetinaNet 中的C5。我们观察到使用 P5 可以稍微提高性能。
为了表明我们的 FCOS 可以作为anchor-based的检测器的简单而强大的替代方案,并且为了公平比较,我们删除了 GN(梯度被裁剪以防止它们爆炸)并在我们的检测器中使用C5。如表 3 所示,在完全相同的设置下,我们的 FCOS 仍然优于基于锚的检测器(36.3% 对 35.9%)。此外,值得注意的是,我们直接使用了 RetinaNet 的所有超参数(例如,学习率、NMS 阈值等),这些超参数已针对anchor-based的检测器进行了优化。我们认为,如果针对 FCOS 调整超参数,可以进一步提高 FCOS 的性能。
  值得注意的是,通过一些几乎没有代价的改进,如表 3 所示,我们的anchor-free检测器的性能可以大幅提高。鉴于anchor-free检测器的卓越性能和优点(例如,比anchor-based的检测器更简单和更少的超参数),我们鼓励社区重新考虑anchor boxes在目标检测中的必要性。
【翻译】FCOS:Fully Convolutional One-Stage Object Detection_第10张图片
表 5 – FCOS 与其他最先进的两级或一级探测器(单模型和单尺度结果)。 在具有相同主干的 AP 中,FCOS 的性能比anchor-based的对应 RetinaNet 高 2.4%。 FCOS 还以更低的设计复杂性优于最近的anchor-free 一阶段检测器CornerNet。 有关“改进”的详细信息,请参阅表 3。

4.2. 与现有主流检测器对比

我们将 FCOS 与其他最先进的物体检测器在MS-COCO test-dev split基准上进行比较。对于这些实验,我们在训练期间在 640 到 800 的范围内随机缩放图像的较短边,并将迭代次数加倍到 180K(学习率变化点按比例缩放)。其他设置与表 3 中 AP 为 37.1% 的模型完全相同。如表 5 所示,使用 ResNet-101-FPN,我们的 FCOS 在 AP 中比具有相同主干 ResNet-101-FPN 的 RetinaNet 性能高 2.4%。据我们所知,这是第一次没有任何花里胡哨的anchor-free检测器在很大程度上优于anchor-based的检测器。FCOS 还大大优于其他经典的基于两阶段anchor的检测器,例如 Faster R-CNN。以 ResNeXt-64x4d-101-FPN[30]作为主干,FCOS 在 AP 中达到了 43.2%。它大大优于最近最先进的anchor-free检测器CornerNet[13],同时更简单。请注意,CornerNet 需要使用嵌入向量对角点进行分组,这需要对检测器进行特殊设计。因此,我们认为 FCOS 更有可能成为当前主流anchor-based的检测器的强大而简单的替代品。此外,表 3 中改进的 FCOS 在单模型和单尺度测试的 AP 中达到了 44.7%,大大超过了以前的检测器。

5. RPN的扩展

到目前为止,我们已经表明,在一阶段检测器中,我们的 FCOS 可以实现比anchor-based的检测器更好的性能。直观上,FCOS 也应该能够在两阶段检测器 Faster RCNN 中用 FPN[14]替换区域提议网络 (RPN) 中的anchor boxes。在这里,我们通过实验证实了这一点。
与带有 FPN[14]的 RPN 相比,我们用 FCOS 中的方法替换了anchor boxes。此外,我们将 GN 添加到 FPN Heads 的层中,这可以使我们的训练更加稳定。所有其他设置与官方代码[7]中带有FPN的RPN完全相同。如表 6 所示,即使没有提出的中心度分支,我们的 FCOS 也已经显着提高了 AR100 和 AR1k。使用提议的中心度分支,FCOS 进一步将 AR100 和 AR1k 分别提升到 52.8% 和 60.3%,与具有 FPN 的 RPN 相比,AR100 的相对改进为 18%,AR1k 的绝对改进为 3.4%。

6. 结论

我们提出了一种anchor-free和proposal-free的单级检测器 FCOS。如实验所示,FCOS 与流行的anchor-based的 one-stage 检测器相比具有优势,包括 RetinaNet、YOLO 和 SSD,但设计复杂性要低得多。FCOS 完全避免了与anchor boxes相关的所有计算和超参数,并以逐像素预测的方式解决目标检测,类似于语义分割等其他密集预测任务。FCOS 还在一级检测器中实现了最先进的性能。我们还表明 FCOS 可以用作两阶段检测器 Faster R-CNN 中的 RPN,并且在很大程度上优于其 RPN。鉴于其有效性和效率,我们希望 FCOS 可以作为当前主流anchor-based的检测器的强大而简单的替代品。我们也相信 FCOS 可以扩展到解决许多其他实例级别的识别任务。

你可能感兴趣的:(翻译,计算机视觉,深度学习)