FCOS (CVPR, 2019)

论文: FCOS: Fully Convolutional One-Stage Object Detection
作者: Zhi Tian Chunhua Shen Hao Chen Tong He
机构: The University of Adelaide, Australia

Abstract

作者提出了一种全卷积的 one-stage 目标检测器(FCOS, Fully Convolutional One Stage), 它以对每个像素进行预测的方式来解决目标检测问题,类似于语义分割。几乎所有的 SOTA 物体检测器,如 RetinaNet,SSD,YOLOv3 和 Faster R-CNN 都依赖于预定义的 anchor box。相比之下,作者提出的 FCOS 不需要 anchor box,同时也不需要 proposals (即 One-Stage)。通过消除对预定义 anchor 的依赖,FCOS 完全避免了与 anchor box 相关的复杂计算,例如在训练期间计算 overlapping 并显着减少 training memory footprint。更重要的是,作者还避免了与 anchor 相关的所有超参数,这些参数通常对最终检测性能非常敏感。凭借唯一的后处理操作非最大抑制(NMS),作者的 FCOS 优于之前的 anchor-based one-stage detectors,并且结构更简单。作者首次展示了一种更加简单灵活的检测框架,可以提高检测精度。作者希望 FCOS 框架可以作为许多其他实例级任务简单而强大的替代方案。

Introduction

对象检测是计算机视觉中的基本但具有挑战性的任务,其要求算法针对图像中的每个感兴趣实例预测出具有类别标签的边界框。 目前所有主流的探测器,如Faster R-CNN,SSD 和YOLOv2,v3 等都依赖于一组预定义的 anchor box,长期以来人们一直认为 anchor 的使用是检测器成功的关键。 尽管取得了巨大成功,但重要的是要注意 anchor-based detectors 存在的一些缺点:

  1. 如 Faster R-CNN 和 Focal Loss 所示,检测性能对于尺寸,宽高比和 anchor 数量非常敏感。 例如,在RetinaNet 中,根据 COCO 的 benchmark 上,仅仅改变这些超参数就会影响AP的性能提升4%[13]。 因此,对于 anchor-based 检测器需要仔细调整这些超参数。
  2. 即使经过精心设计,由于 anchor box 的比例和宽高比保持固定,detectors 在处理具有较大形状变化的物体集合时会遇到困难,特别是对于小物体。 预定义的 anchor box 也妨碍了探测器的泛化能力,因为它们需要在具有不同物体尺寸或宽高比的新探测任务上进行重新设定.
  3. 为了实现高召回率,anchor-based 检测器需要将 anchor box 密集地放置在输入图像上(例如,在特征金字塔网络(FPN)中, 对于短边像素为 800 的输入图像, 会产生超过 180K 的 anchor box)。 大多数这些 anchor box 在训练期间会被标记为 negative samples。 过多的 negative samples 加剧了 training 过程中正负样本之间的不平衡性。
  4. 当在训练期间计算所有 anchor box 和 GT box 之间的 IOU 时,过多数量的 anchor box 也显著增加了计算量和存储器占用量。

最近,完全卷积网络(FCN)[16]在密集预测任务中取得了巨大成功,如语义分割[16],深度估计[14],关键点检测[2]和计数[1]。 作为高级视觉任务之一,对象检测可能是唯一一个不使用逐像素预测框架的任务, 这主要是因为使用了 anchor box。 那么, 很自然地就会提出一个问题: 作者能否以纯粹的每像素预测方式解决目标检测问题,类似于用 FCN 进行语义分割? 因此,这些基本视觉任务就可以在(几乎)一个单一框架中被统一起来。 作者认为答案是可以的。此外,作者还首次证明了基于 FCN(much simpler) 的检测器比基于 anchor 的检测器具有更好的性能

在文献中,一些工作试图利用基于fcn的框架来检测对象,如DenseBox[9]和UnitBox[24]。具体地说,这些基于fcn的框架直接预测了特征映射级别上每个空间位置上的一个4D向量加上一个类类别。如图1(左)所示,4D向量描述了一个边界框到该位置的四个边的相对偏移量。这些框架类似于用于语义分割的FCNs,只是每个位置都需要返回一个4D连续向量。但是,为了处理不同大小的边界框,DenseBox[9]将训练图像调整为固定的比例。因此,DenseBox必须对图像金字塔进行检测,这与FCN一次计算所有卷积的思想是相悖的。此外,更重要的是,这些方法主要用于特殊领域的目标检测,如场景文本检测[25]或人脸检测[24,9],因为人们认为这些方法不适用于具有高度重叠边界框的通用目标检测。如图1(右)所示,高度重叠的边界框在训练过程中造成了难以处理的歧义: 对于重叠区域的像素,不清楚应该返回哪个边界框。

FCOS%2Ffig1.jpg

在接下来,作者将进一步研究这个问题,并说明使用FPN可以在很大程度上消除这种模糊性。结果表明,该方法与传统的基于 anchor 的检测方法具有相当的检测精度。此外,作者注意到作者的方法可能会在远离目标对象中心的位置产生大量低质量的预测边界框。 为了抑制这些低质量的检测结果, 作者引入一个新的 “center-ness” 分支(只有一层)来预测像素与对应边界框中心的偏差, 具体定义如公式(3)所示. 然后,该分数用于降低低质量检测边界框的权重,并将检测结果合并到NMS中。 这种简单而有效的中心分支使得基于 FCN 的探测器在完全相同的训练和测试设置下优于相应的 anchor-based detectors.

这种新的检测框架具有以下优点:

  1. 检测任务现在与许多其他 FCN 可解决的任务(例如语义分割)相统一,从而可以更轻松地重复使用这些任务中的想法。
  2. 检测变为 proposal free 和 anchor free,这显著减少了超参数的数量。 超参数通常需要启发式调整,并且涉及许多技巧才能获得良好的性能。 而作者的新检测框架使检测器,特别是使它的 training 阶段变得相当简单。 此外,通过消除 anchor box,作者的新探测器完全避免了复杂的 IOU 计算以及训练期间 anchor box 和 GT box 之间的匹配,并将总的训练内存占用(training memory footprint)减少了2倍左右。
  3. Without bells and whistles,作者在 One-Stage Detectors 中实现了 SOTA 的结果。 作者的实验还表明,本文所提出的 FCOS 可以用作 Two-Stage Detectors 中的 RPN,并且可以实现比基于 anchor 的 RPN 更好的性能。 鉴于更简单的 anchor free Detectors 具有更好的性能,作者鼓励大家重新考虑物体检测中 anchor 的必要性,虽然目前这被认为是检测任务的事实标准(defacto standard for detection)。
  4. 作者所提出的 detector 只需做很小的修改就可以立即扩展到其他视觉任务,包括实例分割和关键点检测。 作者相信这种新方法可以成为许多实例级预测问题的新 baseline。

Related Work

Anchor-based Detectors: R-CNN, RPN, SSD, YOLOv2/v3

Anchor-free Detectors: YOLOv1, CornerNet, DenseBox
最流行的 anchor free 探测器可能是YOLOv1[17]。YOLOv1没有使用锚框,而是预测在靠近对象中心的点上的边界框。只使用中心附近的点,因为它们被认为能够产生更高质量的检测。然而,由于仅使用靠近中心的点来预测边界框,YOLOv1的召回率较低,正如YOLOv2[18]中所述。 因此,YOLOv2[18]也使用了锚盒。与YOLOv1相比,FCOS利用 GT bounding box 中的所有点来预测 bounding boxes,并通过提出的 “中心度” 分支抑制低质量检测的 bounding box。因此,FCOS能够输出与基于 anchor 的探测器差不多的召回率,如作者的实验所示。

Our Approach

在本节中,作者首先以逐像素预测的方式重新构造目标检测任务。 接下来,作者展示了作者如何利用多级预测(multi-level prediction)来改善召回率并解决训练中重叠边界框导致的模糊性。 最后,作者展示了作者提出的 “center-ness” 分支,它有助于抑制低质量的检测边界框并大幅提高整体性能.

Fully Convolutional One-Stage Object Detector

设 $F_i \in R^{H×W×C}$ 是 backbone CNN的第 $i$ 层的特征图,$s$ 是该层之前的 total stride。输入图像的 GT box 定义为 $\{B_i\}$,其中 $B_i = (x^{(i)}_0,y^{(i)}_0, x^{(i)}_1, y^{(i)}_1, c^{(i)} \in R^4 \times \{1, 2, …, C\}$. 其中 $(x^{(i)}_0, y^{(i)}_0)$ 和 $(x^{(i)}_1, y^{(i)}_1)$ 表示边界框的左上角和右下角的坐标。$c^(i)$ 是边界框中的对象所属的类。 C是类的数量,COCO数据集为80。

对于 feature map $F_i$ 上的每个位置 $(x,y)$,作者可以将其映射回输入图像的坐标 $(\frac{s}{2}+xs, \frac{s}{2}+ys)$,它差不多刚好位于位置 $(x, y)$ 的感受野中心附近。 与 anchor based detectors 将输入图像上的位置视为 anchor box 的中心并对这些 anchor box 的目标边界框进行回归不同,作者直接回归每个位置的目标边界框。 换句话说,作者的 Detector 直接将 location 视为训练样本而不是将 anchor box 视为训练样本,这与用于语义分割的FCN相同[16]。

具体而言,如果位置 $(x,y)$ 落入到任何 GT Box 内部, 那么久将其视为正样本, 并且该位置的类标签 $c^\ast $ 就是 $B_i$ 的类标签。 否则它就是负样本并且 $c^\ast = 0$(背景类)。 除了用于分类的标签之外,作者还有一个 4D 的实数向量 $t^\ast = (l^\ast,t^\ast,r^\ast,b^\ast)$, 该向量是每个样本的回归目标。 这里 $l^\ast,t^\ast,r^\ast,b^\ast$ 是从 location 到 bbox 四条边的距离,如图1(左)所示。如果某个位置属于多个边界框,则会将其视为模糊样本。现在,作者只选择具有最小面积的边界框作为其回归目标(最简单的策略)。 在下一节中,作者将 展示通过多级预测,可以显著减少模糊样本的数量。 形式上,如果位置 $(x,y)$ 与边界框 $B_i$ 相关联,则该位置的训练回归目标可以表示为:

值得注意的是,FCOS 可以利用尽可能多的前景样本来训练回归量。(GT box 内的每个像素点都是正样本) 它与基于 anchor 的探测器不同,anchor-based detectors 仅仅将与 GT box 具有足够 IOU 的anchor box 作为正样本。作者认为,这可能是 FCOS 优于 anchor-based 的原因之一。

Network Outputs:
对应于 training targets,作者网络的最后一层会预测用于分类的 80D 向量 $\vec p$ 和 bounding box 坐标 4D 向量 $\vec t =(l,t,r,b)$。跟随 R-CNN 的做法,作者不是训练多类分类器,而是训练 $C$ 个二元分类器。与 R-CNN 类似,作者在 backbone 网络的特征图谱之后分别为分类和回归分支添加了 四个卷积层。此外,由于回归目标总是正的,作者使用 $exp(x)$ 将任意的实数都映射到回归分支顶部的 $(0, \infty)$。值得注意的是,FCOS 的网络输出变量比常用的 anchor based detectors 少 9 倍,其中每个位置有 9 个 anchor boxes.

Loss Function:

上式中, $L_{cls}$ 是 Focal Loss, $L_{reg}$ 是 IOU loss (正如 UnitBox 中的一样). N_{pos} 代表 positive samples 的数量, $\lambda$ 在本文中均为 1. 上面的求和是在 feature map $F_i I{c^\ast_i >0}$ 上所有的 locations 上进行的.

Inference:
FCOS 的 Inference 很简单。给定输入图像,作者将其放入网络进行一次 forward 计算, 并获得 feature map $F_i$ 上的每个位置的分类分数 $\vec p_{x,y}$ 和回归预测值 $\vec t_{x,y}$。 跟随 R-CNN 的设定,作者选择 $\vec p_{x,y} > 0.05$ 的位置作为正样本并通过反转公式(1)来获得预测的边界框。

Multi-level Prediction with FPN for FCOS

在这里,作者展示了如何通过 FPN 的多级预测来解决所提出的 FCOS 存在的两个可能问题。

  1. CNN 中最后的 feature maps 的大步幅(例如,16)可能回导致相对较低的 best possible recall (BPR)。对于基于 anchor 的检测器,由于大步幅导致的低召回率可以通过降低 positive anchor boxes 所需的 IOU 分数来在一定程度上得到缓解。而对于 FCOS,乍一看可能认为其 BPR 会远低于基于 anchor 的检测器,因为 网络无法召回由于大步幅而最终在 feature map 上没有位置编码的对象。在这里,作者凭经验证明,即使步幅很大,基于 FCN 的 FCOS 仍然能够产生良好的BPR,它甚至可以比官方实现的 Detectron 中基于 anchor 的检测器 RetinaNet 的 BPR 更好。(参见表1)。因此,BPR 实际上不是 FCOS 无法解决的问题。此外,利用多级 FPN 预测,可以进一步改进 BPR 以匹配基于 anchor 的 RetinaNet 最佳BPR。
  2. 与 GT box 的多个重叠会导致在训练期间产生难以理解的模糊性,即哪个边界框应该在重叠位置进行回归?这种模糊性导致基于 FCN 的检测器的性能下降。在本文中,作者表明,使用多级预测可以极大地解决模糊性,并且与基于 anchor 的检测器相比,基于 FCN 的检测器可以获得相同的,有时甚至更好的性能。

跟随 FPN 中的设定,作者在 不同级别的特征图上检测到不同大小的对象。 具体来说,作者使用定义为 $\{P_3,P_4,P_5,P_6,P_7\}$ 的五个级别的 feature map。$P_3,P_4$ 和 $P_5$ 由 backbone CNN 的特征图 $C_3,C_4$ 和 $C_5$ 和具有横向连接的1×1卷积层产生,如图2所示. $P_6$ 和 $P_7$ 通过分别在 $P_5$ 和 $P_6$ 上使用一个步长为 2 的卷积层产生. 最终,特征层级 $P_3,P_4,P_5,P_6$ 和 $P_7$ 具有的步幅分别为 8,16,32,64和128。

FCOS%2Ffig2.jpg

与 anchor based detectors 将不同大小的 anchor 分配给不同的特征级别不一样的是,作者直接限制边界框回归的范围。 更具体地说,作者首先计算所有特征级别上每个位置的回归目标 $l^\ast,t^\ast,r^\ast$ 和 $b^\ast$。 接下来,如果位置满足 $\max(l^\ast,t^\ast,r^\ast,b^\ast) > m_i$ 或 $\max(l^\ast,t^\ast,r^\ast,b^\ast) < m_{i-1}$ ,作者就将其设置为负样本并且再也不会对该位置进行回归操作。这里的 $m_i$ 是特征层级 $i$ 需要回归的最大距离。 在中文中,$m_2,m_3,m_4,m_5,m_6$ 和 $m_7$ 分别设置为 0,64,128,256,512 和 $\infty$。 由于 具有不同大小的对象被分配给不同的特征级别(这里是与 FoveaBox 的一处重要区别) 并且 大多数重叠发生在具有显著不同大小的对象之间,因此多级预测可以在很大程度上减轻上述模糊性并且将基于 FCN 的检测器提升到与基于 anchor 的检测器相同的检测性能,如作者后面的实验所示。

最后,跟随 R-CNN 和 Fast R-CNN 的设定,作者 共享不同特征级别之间的头部(这是与其他 Detector 的不同之处, 其他的都是每个特征层级独立的执行分类和回归),这样不仅使检测器参数有效,而且能够提高检测性能。 然而,作者观察到不同的特征水平需要回归不同的尺寸范围(例如,$P_3$ 的尺寸范围是 [0,64] 而 $P_4$ 的尺寸范围是 [64,128]),因此 在不同的特征层使用相同的回归 heads 是不合理的。 故此, 作者不使用标准的 $exp(x)$,而是使用带有可训练标量 $s_i$ 的 $exp(s_i x)$ 来自动调整特征级 $P_i$ 的指数函数的基数,从而凭经验提高检测性能。

Center-ness for FCOS

在 FCOS 中使用多级预测后,FCOS 和 anchor based 的检测器之间仍存在性能差距。 作者观察到这是由于 远离物体中心的位置产生的许多低质量预测边界框造成的。

作者提出了一种简单而有效的策略来抑制这些低质量的检测边界框而不引入任何超参数。 具体来说,作者添加一个单层分支,与分类分支并行,以预测一个位置的 “中心概率(center-ness)”(即,从该位置到该位置所负责的对象的中心的距离) 如图2所示, 给定位置的回归目标 $l^\ast,t^\ast,r^\ast$ 和 $b^\ast$,center-ness target 定义为

FCOS%2Ffig3.jpg

作者在这里使用 sqrt 来减缓中心的衰减。center-ness 从0到1,因此用 二元交叉熵(BCE)损失训练。 损失被添加到损失函数公式(2)中。 在测试时,通过 将预测的 center-ness 与相应的分类得分相乘来计算最终得分(用于对检测到的边界框进行排名)。 因此, center-ness 可以使远离物体中心的边界框的 scores 减小。 结果,这些低质量的边界框很可能被最终的非最大抑制(NMS)过程滤除,从而显著提高了检测性能。

基于 anchor 的检测器使用两个 IOU 阈值 $T_{low}$ 和 $T_{high}$ 将 anchor boxes 标记为负、忽略和正样本,center-ness 可以看作是一个 软阈值。它是在网络训练中学习的,不需要调整。此外,利用该策略,作者的检测器仍然可以将任何落在 GT Box 中的位置视为正样本,除了上述多层预测中设置为负样本的位置外,这样就可以为回归器使用尽可能多的训练样本。

Experiments

Training Details: 略…

Inference Details: 作者首先通过网络对输入图像执行 forward,并获得具有预测类的预测边界框。 其他的后处理与 RetinaNet 完全相同,作者直接使用 RetinaNet 相同的后处理超参数(例如NMS的阈值)。 作者认为,如果超参数进行了针对性的优化,探测器的性能还可以进一步提高。 作者使用与训练相同大小的输入图像(shorter 800, longer less 1333)。

Ablation Study

Multi-level Prediction with FPN

如前所述,基于 FCN 的探测器的主要问题是 低召回率与 GT Box 重叠导致的模糊样本。 在本节中,作者展示了可以通过多级预测在很大程度上解决这两个问题。

FCOS%2Ftab1.jpg

Bset Possible Recalls: 基于fcn的检测器的第一个问题是,它可能不能提供良好的最佳可能召回(BPR)。在本节中,作者表示这种关注是不必要的。在这里,BPR被定义为检测器最多能召回的 GT 与 GT 数量之比。如果将ground-truth框分配给至少一个样本(即, FCOS中的一个位置或 anchor based 的检测器中的锚盒)。如表1所示,只有feature level P4, stride为16(即,没有FPN), FCOS已经可以获得95.55%的BPR。在官方实现检测器中,BPR远远高于基于 anchor 检测器的90.92%的BPR,在官方实现检测器中,只有IOU≥0.4的低质量匹配被使用。在FPN的帮助下,FCOS可以达到98.40%的BPR,非常接近 anchor based 点的检测器使用所有低质量匹配所能达到的最佳BPR。由于这些检测器的精度-召回曲线(如补充材料所示)的最佳召回率远低于90%,因此FCOS与基于 anchor 的检测器之间较小的BPR间隙实际上并不会影响检测器的性能。表4也证实了这一点,其中FCOS实现的AR甚至比基于anchor的同类产品更好。因此,对低BPR的关注可能没有必要。

FCOS%2Ftab4.jpg

Ambiguous Samples: 关于基于FCN的探测器的另一个问题是,由于地面实况边界框中的重叠,它可能具有大量模糊样本,如图1(右)所示。在表2中,作者显示了模糊样本与所有正样本在 minival split 上的比率。如表中所示,如果不使用FPN并且仅使用特征级别P4,则确实存在大量模糊样本(23.16%)。但是,如果作者使用所有特征级别,则比率可以显着降低到仅7.14%,因为大多数重叠对象都分配给不同的特征级别。此外,作者认为,由于边界框预测这些样本总是可以与正确的类别匹配而不管w.r.t,因此相同类别的对象之间的重叠导致的模糊样本在推断时无关紧要。哪个对象样本回归。因此,作者 只计算具有不同类别的边界框之间重叠的模糊样本。如表2所示,多级预测将模糊样本的比率从17.84%降低到3.75%。为了进一步表明地面实况框中的重叠不是作者基于FCN的FCOS的问题,作者计算在推断有多少检测到的边界框来自模糊位置时。作者发现只有2.3%的检测到的边界框是由不明确的位置产生的。通过进一步仅考虑不同类别之间的重叠,该比率降低至1.5%。如以下实验所示,极低的重叠率不会使作者的FCOS低于 anchor based 的探测器。

FCOS%2Ftab2.jpg

Detection Performance: 到目前为止,作者已经证明了FCOS的BPR已经足够,多级预测不仅可以改善BPR,而且还可以显着减少训练期间的边界框回归的模糊性。 如表3所示,在多级预测的帮助下,基于FCN的FCOS已经可以实现与具有多级预测的 anchor based 的RetinaNet相同的级别性能(33.8%对35.7%)。 与仅具有一个特征级别P4的那个相比,AP几乎翻倍。

FCOS%2Ftab3.jpg

With or Without Center-ness

作者已经证明基于FCN的FCOS能够与 anchor based 的检测器RetinaNet实现相当的性能。但是,AP的性能差距仍然在2%左右。作者认为这种差距可能是由于远离物体中心的位置产生了一些低质量的检测边界框。很容易看出,靠近中心的位置更有可能产生更准确的预测。因此,应该为远距离位置产生的检测分配低置信度分数。为此,作者利用中心分支来抑制低质量检测到的边界框。如表5所示,中心分支可将AP从33.8%提升至36.6%,优于 anchor based 的探测器的性能(35.7%)。可以注意到,也可以使用预测的回归向量计算中心,而不引入额外的中心分支。然而,如表5所示,从回归向量计算的中心不能改善性能,因此需要单独学习的中心。

FCOS%2Ftab5.jpg

为了进一步证明中心的有用性,作者再进行一次实验。 作者假设作者有一个在推理期间提供 GT 中心得分的神谕。 通过保持所有其他设置完全相同,用于推理的 GT 中心显着地将AP提高到42.1,这意味着有足够的空间进一步提高作者目前36.6 AP的准确度,如表5所示,只要作者提高中心的预测准确性。
因此,作者使中心分支的层数更深,具有与分类和回归分支相同的体系结构,从而将AP从36.6提高到36.8。
理论上,作者甚至可以训练一个单独的深度网络,它与主探测器不共享任何权重,其唯一目的是预测中心分数。 这是唯一可能的,因为中心分数仅用于推理。 因此,作者能够将中心预测器的训练与探测器的训练分离。 这种解耦使作者能够以额外的计算复杂度来设计最好的中心预测器。 作者还假设所有其他检测器,如果需要NMS进行后处理,可能能够从这种准确的中心得分预测器中受益。 作者将此主题留待将来工作。

FCOS vs. Anchor-based Detectors

上述FCOS与标准RetinaNet有两个细微差别。 1)作者在新添加的卷积层中使用组标准化(Group Normalization)[23],除了最后的预测层,这使作者的训练更稳定。 2)作者使用P5在标准RetinaNet中生产P6和P7而不是C5。 作者观察到使用P5可以略微提高性能。

为了证明作者的FCOS可以作为基于 anchor 的探测器的简单而强大的替代方案,并且为了公平比较,作者将GN添加到RetinaNet中并在作者的探测器中使用C5。 如表4所示,在完全相同的设置下,作者的FCOS仍然优于 anchor based 的探测器。 由于作者的基于FCN的探测器具有许多优点(例如,设计复杂性更少,并且仅使用表4中所示的训练内存占用的一半)而不是基于 anchor 的探测器,因此作者鼓励社区重新考虑锚的必要性 对象检测中的框。 此外,值得注意的是,作者直接使用来自RetinaNet的所有超参数(例如,学习速率,NMS阈值等),其已经针对 anchor based 的检测器进行了优化。 作者认为,如果对超参数进行调整,FCOS的性能可以进一步提高。

大家可能仍然担心边界框中的重叠会导致性能下降。 为了进一步表明重叠不是FCOS的问题,作者构造了一个迷你的子集,称为 minival_overlapped。 它由3986个图像组成,每个图像包括至少一个重叠的边界框。 该子集总共包含35,058个边界框,其中30,625个边界框(最多87%)与其他边界框重叠。 在子集上,作者的FCOS仍然比 anchor based 的RetinaNet获得更好的性能,如表6所示. 这表明FCOS可以很好地处理重叠的边界框。

FCOS%2Ftab6.jpg

Comparison with State-of-the-art Detectors

在消融研究中,为了与 anchor based 的对应物进行公平比较,并证明作者的框架可以作为 anchor based 的检测器的强大而简单的替代方案,作者直接利用RetinaNet的所有超参数。作者认为,如果为作者的探测器调整超参数,性能可以大大提高。对于作者关于test-dev拆分的主要结果,作者在训练期间使用RetinaNet中的 scale jitter,并将迭代次数加倍。其他设置与消融研究完全相同。如表7所示,以ResNet-101-FPN和ResNet-32x8d-101-FPN为骨干,作者的FCOS在相同的骨干网上的性能分别比同样的骨干网分别高出1.9%和1.3%。据作者所知,这是第一次没有任何花里胡哨tricks的 anchor free 探测器在很大程度上优于 anchor based 的探测器。 FCOS也大大优于其他经典的两级 anchor based 点的探测器,例如更快的R-CNN。

FCOS%2Ftab7.jpg

与最近最先进的单级探测器CornerNet [10]相比,作者的FCOS在AP中也有0.5%的增益。也许增益相对较小,但作者的探测器比CornerNet具有以下优势。 1)作者使用更快更简单的主干ResNet-101而不是CornerNet中的Hourglass-104来实现性能。 2)除检测任务中的标准后处理NMS外,作者的检测器不需要任何其他后处理。相比之下,CornerNet需要将具有嵌入向量的角对分组,这需要对检测器进行特殊设计。 3)与CornerNet相比,作者认为作者的FCOS更有可能成为当前主流 anchor based 点的探测器的强大而简单的替代方案。

Extensions on Region Proposal Networks

到目前为止,作者已经证明,在单级探测器中,作者的FCOS可以实现比 anchor based 的对应物更好的性能。 直观地说,FCOS也应该能够在两级探测器更快的R-CNN中用FPN [11]替换区域提议网络(RPN)中的锚箱。 在本节中,作者通过实验确认。
与具有FPN [11]的RPN相比,作者用FCOS中的方法替换锚箱。 此外,作者将GN添加到FPN头中的层中,这可以使作者的训练更加稳定。 所有其他设置与官方代码[6]中带有FPN的RPN完全相同。 如表8所示,即使没有提出的中心分支,作者的FCOS也已经显着改善了AR100和AR1k。 通过拟议的中心分支,FCOS进一步将AR100和AR1k分别提升至52.8%和60.3%,AR100的相对改善为21%,AR1k的绝对改善比FPN的官方RPN高3%。

FCOS%2Ftab8.jpg

Conclusion

作者提出了一种 anchor freee, proposal free 的单级探测器FCOS。 如实验所示,FCOS与流行的 anchor based 的一级探测器相比,包括RetinaNet,YOLO和SSD,但设计复杂性要低得多。 FCOS完全避免了与锚框相关的所有计算和超参数,并以每像素预测方式解决了对象检测,类似于其他密集预测任务,例如语义分割。 FCOS还在一级探测器中实现了最先进的性能。 作者还表明,FCOS可用作两级探测器中的RPN,速度更快的R-CNN,并且大幅优于其RPN。 鉴于其有效性和效率,作者希望FCOS可以作为当前主流锚点探测器的强大而简单的替代方案。 作者还相信FCOS可以扩展到解决许多其他实例级识别任务。

Appendix

Class-agnostic Precision-recall Curves

在图4,图5和图6中,作者给出了在IOU阈值分别为0.50,0.75和0.90的 minival split 的类别不可知的 PR 曲线。 表9显示了对应于三条曲线的AP。
如表9所示,作者的FCOS比其基于锚的对应物RetinaNet具有更好的性能。 此外,值得注意的是,通过更严格的IOU阈值,FCOS比RetinaNet有更大的改进,这表明FCOS有更好的边界框回归器来更准确地检测对象。 其中一个原因应该是FCOS能够利用更多前景样本来训练回归量,如作者的主要论文中所述。

FCOS%2Ffig4.jpg

FCOS%2Ffig5.jpg

FCOS%2Ffig6.jpg

FCOS%2Ftab9.jpg

最后,如所有精确回忆曲线所示,这些探测器在精确回忆曲线中的最佳回忆率远低于90%。 它进一步表明,FCOS和RetinaNet之间的最佳可能召回(BPR)的小差距(98.40%对比99.23%)几乎不会损害最终的检测性能。

Visualization for Center-ness

正如作者的主要论文中所提到的,通过抑制低质量检测到的边界框,所提出的中心分支可以大幅提高检测性能。在本节中,作者确认了这一点。
作者期望中心可以降低低质量边界框的分数,使得可以在诸如非最大抑制(NMS)的后续处理中过滤掉这些边界框。如果检测到的边界框与其对应的地面实况边界框具有较低的IOU分数,则该边界框被认为是低质量的边界框。具有低IOU但高置信度得分的边界框可能会成为误报并损害精度。
在图7中,作者将检测到的边界框视为2D点(x,y),其中x是其得分,y是具有其对应的地面实况框的IOU。如图7(左)所示,在应用中心之前,存在大量低质量边界框但具有高置信度分数(即,线y = x下的点)。由于它们的高分,在后处理中不能消除这些低质量的边界框并导致降低检测器的精度。在将分类得分与中心得分相乘之后,将这些点推到图的左侧(即,它们的得分减小),如图7(右)所示。结果,这些低质量的边界框更可能在后处理中被滤除,并且可以提高最终的检测性能。

FCOS%2Ffig7.jpg

论文亮点

TL;DR
本文提出了一种新的基于全卷积的 anchor free 目标检测方法, 抛弃了传统的 anchor 设定, 以每个像素点距离四个边框的距离作为回归目标, 通过多级特征和center-ness的加持, 取得了超过anhor-based方法的性能表现

Algorithm
首先, 作者重新定义了 bounding box 的回归方式, 以此抛弃 anchor box 的设定, 新的回归方式如下图, 对于每一个像素点, 其回归目标是该点到四个边界的距离, 当一个像素点落在 gt 物体内部时, 认为他是正样本, 反之, 认为是负样本

由于同一个像素点可能会属于多个不同的物体, 因此, 为了解决这个问题, 作者提出用特征金字塔的不同层来控制不同物体的预测, 由于交并比高的物体, 往往具有不同的尺寸, 因此, 将它们分别放在不同的特征图谱上去预测, 可以有效的解决这个模糊样本带来的问题.

由于每个像素点都可以参与预测, 这样就会造成很多低质量预测结果的产生, 对于一个物体来说, 远离物体中心点的的像素点, 往往更容易生成低质量的框, 因此, 作者提出对于靠近中心的像素点, 作者赋予它更大的权重, 远离的则赋予更小的权重, 这样, 在后续的nms过程中, 就可以消除大部分的低质量框

anchor box 固然可以帮助神经网络更好的预测物体框, 但是 anchor box 会带来大量的超参数和计算量, 因此, 这种 anchor free 的想法非常值得尝试, 有望在以后取代 anchor based 的目标检测方法.

摘要

Introduction

Related Work

Our Approach