Zhi Tian Chun Shen* Hao Chen Tong He
The University of Adelaide, Australia

Abstract

我们提出了一种一阶段全卷积目标检测器(FCOS),以逐像素的方式来解决目标检测问题,类似于语义分割。几乎所有SOTA(state-of-the-art)目标检测器,如RetinaNet、SSD、YOLOv3和Faster R-CNN,都依赖于预定义的anchor框。相比之下,我们提出的检测器FCOS是没有anchor框的,也没有候选框。通过消除预定义的anchor框集合,FCOS完全避免了与anchor框相关的复杂计算,比如在训练过程中重复的计算。更重要的是,我们还避免了所有与anchor框相关的超参数,这些参数通常对最终的检测性能非常敏感。使用ResNeXt-64x4d-101的FCOS,在唯一的后处理即非极大值抑制(NMS)的情况下,在单模型、单尺度测试中的AP达到44.7%,超过了之前的一阶段检测器,并且还有更加简单的优点。我们这是第一次,证明了一个更简单和灵活的检测框架,实现了更高的检测精度。我们希望所提议的FCOS框架可以作为许多其他实例级任务的简单而强大的替代方案。代码可在这里找到: tinyurl.com/FCOSv1

1. Introduction

在计算机视觉中,目标检测是一项基本而又具有挑战性的任务,它要求算法为图像中每个感兴趣的实例预测一个带有类别标签的bounding box。目前所有的主流检测器,如Faster R-CNN [24], SSD[18]和YOLOv2, v3[23],都依赖于一组预先定义的anchor框,人们一直认为anchor框的使用是检测器成功的关键。尽管它们取得了巨大的成功,但值得注意的是,anchor-based的检测器也存在一些缺陷:

  1. 如[15,24]所示,检测性能对anchor框的尺寸、长宽比和数量敏感。例如,在RetinaNet[15]中,改变这些超参数会影响到在COCO基准[16]中的AP至4%的性能。因此,需要在anchor-based的检测器中仔细调整这些超参数
  2. 即使经过仔细的设计,由于anchor框的尺度和长宽比是固定的,检测器在处理形状变化较大的候选物体时也会遇到困难,特别是对于小的物体。预先定义的anchor框也阻碍了检测器的泛化能力,因为它们需要根据不同的检测任务而重新设计目标大小或纵横比。
  3. 为了达到较高的召回率,anchor-based的检测器需要在输入图像上放置密集的anchor框(例如,对于短边为800的图像,在特征金字塔网络(FPN)[14]中放置超过180K的anchor框)。大多数这些anchor框在训练中被标记为负样本。过多的负样本加剧了训练中正样本和负样本之间的不平衡
  4. anchor框也涉及到复杂的计算,比如计算与真实边界框的IoU分数。

image.png
图1 - 如图所示,FCOS的工作原理是通过预测一个4D向量(l, t, r, b)来编码每个前景像素的bounding box的位置(在训练过程中由ground-truth bounding box的信息监督)。右边的图显示,当一个位置位于多个bounding box中时,对于该位置应该回归哪个边界框,可能存在歧义。

近年来,全卷积网络(FCNs)[20]在语义分割[20,28,9,19]、深度估计[17,31]、关键点检测[3]和计数[2]等密集预测任务中取得了巨大成功。作为高级视觉任务之一,目标检测可能是唯一一个偏离纯全卷积逐像素预测框架的任务,这主要是因为使用了anchor框。人们自然会问这样一个问题:我们能否以逐像素预测的方式解决目标检测问题,就像FCN用于语义分割那样?因此,这些基本的视觉任务(几乎都)可以统一在一个单一的框架中。我们证明答案是肯定的。此外,我们首次证明,FCN-based的检测器比anchor-based的检测器实现了更好的性能。

在文献中,一些作品试图利用FCNs-based的框架进行目标检测,如DenseBox[12]。具体来说,这些基于fcn的框架在特征图的每个空间位置上直接预测一个4D向量加上一个类类别。如图1(左)所示,4D矢量描述的是从bounding box的四个边到该位置的相对偏移量。这些框架与用于语义分割的FCNs相似,只是每个位置都需要回归一个四维连续向量。然而,为了处理不同大小的bounding box,DenseBox[12]将训练图像裁剪并调整到一个固定的尺度。因此,DenseBox必须对图像金字塔进行检测,这违背了FCN一次性计算所有卷积的理念。更重要的是,这些方法主要用于特定领域的目标检测,如场景文本检测[33,10]或人脸检测[32,12],因为我们认为这些方法在应用于bounding box重叠程度较高的一般的目标检测时效果不佳。如图1(右)所示,高度重叠的bounding box导致难以处理的模糊性:不清楚重叠区域的像素的w.r.t.应该回归到哪个bounding box上。

在后续文章中,我们将进一步研究这个问题,并表明使用FPN可以在很大程度上消除这种模糊性。因此,我们的方法已经可以获得与传统anchor-based检测器相当的检测精度。此外,我们观察到我们的方法可能会在远离目标对象中心的位置产生一些低质量的bounding box。为了抑制这些低质量的检测,我们引入一个新的“center-ness”分支(只有一层)来预测像素与所对应的bounding box的中心的偏差,如等式3所定义。这个得分用于降低低质量检测bounding box的权重值并且合并NMS的检测结果(降低得分便可以由NMS消除掉)。简单而有效的center-ness分支允许基于fcns的检测器在完全相同的训练和测试设置下优于anchor-based的作品。

这个新的目标检测框架有如下优点:

  • 检测现在与许多其他可用FCN解决的任务统一,比如语义分割,这使得这些任务想法更容易用在这(检测)上。(如CenterMask,实现目标检测和实例分割的统一)
  • 检测成为了proposal-free和anchor-free,这大大减少了设计参数的数量。设计参数通常需要启发式调优,为了获得更好地性能,需要使用许多tricks。因此,我们的新的检测框架使得检测器,尤其是在训练中,更加简单。
  • 通过消除anchor框,我们新的检测器完全避免了与anchor框相关的复杂计算,比如在训练中anchor框与真实框之间IoU的计算和匹配,这导致了相比较于anchor-based作品,有更快的训练速度、测试速度,更少的训练占用内存。
  • 没有花里胡哨的东西,我们在一阶段检测器中达到乐SOTA结果。我们还表明,所提出的FCOS可以被用在两阶段检测器中的区域候选网络(RPNs),并且可以取得比anchor-based的RPN作品更好的性能。考虑到更好地性能、更简单的anchor-free检测器,我们鼓励社区重新考虑anchor框在目标检测中的必要性,它目前被认为是检测的facto标准。
  • 提出的检测器通过小的修改就可以立即扩展以解决其他视觉人物,包括实例分割和关键点检测。我们相信这种新的方法可以成为许多实例级预测问题的新标准。

2. Related Work

Anchor-based 检测器。anchor-based的检测器继承了传统滑动窗口和proposal-based的检测器的思想,如Fast R-CNN[6]。在anchor-based的检测器中,anchor框可以被视为预定义的滑动窗口或候选,这些窗口或候选被分为正或负样本,通过额外的偏移量回归来重新定义bounding box位置的预测。因此,这些检测器中的anchor框可以被视为训练样本。与之前的检测器如Fast RCNN反复的计算每个滑动窗口/候选的图像特征不同,anchor框利用了CNNs的特征图,避免了重复的特征计算,显著加快了检测过程。anchor框的设计由Faster R-CNN在其RPNs[24]、SSD[18]和YOLOv2[22]中推广,并已成为现代检测器中的模范。

然而,如上所述,anchor框会产生过多的超参数,为了获得良好的性能,通常需要对这些超参数进行仔细的调优。除了上述描述anchor shapes相关的超参数外,anchor-based的检测器还需要其他超参数来标记每个anchor框为正样本、被忽略样本或负样本。在以前的作品中,他们经常使用anchor框和真实框之间的交集(IOU)来确定anchor框的标签(例如,一个anchor如果它的IOU在[0.5,1]之间则为正)。这些超参数对最终精度有巨大影响,需要启发式调优。同时,这些超参数是针对检测任务的,使得检测任务偏离了其他密集预测人物中(比如语义分割)的纯全卷积网络。

Anchor-free检测器。最流行的anchor-free检测器可能是YOLOv1[21]。YOLOv1没有使用anchor框,而是预测靠近物体中心的边界框。只有靠近中心的点被使用,因为他们被认为能够产生更高质量的检测。然而,由于只有靠近中心的点被用来预测边界框,YOLOv1就像在YOLOv2[22]中提到的那样存在低召回率。因此,YOLOv2[22]也使用了anchor框。与YOLOv1相比,FCOS利用了真实框中的所有点来预测bounding box,并通过提出的“center-ness”分支来抑制检测到的低质量bounding box。结果,FCOS能够提供能与我们实验中anchor-based的检测器相当的召回率。

CornerNet[13]是最近提出的一种单阶段anchor-free检测器,它检测出一个bounding box的一对角,并将它们分组形成最终检测到的bounding box。CornerNet需要更复杂的后处理来对属于同一实例的角对进行分组。为了这个分组的目的,学习了一个额外的距离度量。

另一类anchor-free检测器如[32]是基于DenseBox[12]的。由于这类检测器难以处理重叠的bounding box,召回率相对较低,被认为不适合用于一般目标检测。在这项工作中,我们表明,这两个问题可以很大程度上通过多级FPN预测缓解。此外,我们还通过我们提出的center-ness分支表明,简单得多的检测器可以比anchor-based的同类检测器实现更好的检测性能。

image.png
图 2 - FCOS的网络架构,C3, C4和C5表示backbone网络的特征图,P3到P7是用于最后预测的特征levels。H x W是特征图的高度和宽度。‘/s’(s = 8, 16, …, 128)是特征图与输入图像对比的下采样率。图中,以800 x 1024的输入作为例子进行计算。

3. Our Approach

在本节中,我们首先以逐像素预测的方式重新制定目标检测。接下来,我们将展示如何利用多层次预测来提高召回率,并解决bounding box重叠造成的歧义。最后,我们提出了我们所提出的center-ness分支,这有助于抑制检测到的低质量bounding box,并在很大程度上提高整体性能。

3.1. Fully Convolutional One-Stage Object Detector

这一小节请查看英文原文,其中Fi为backbone CNN的第i层特征图。s为该层的总步长。输入图像的ground-truth bbox定义为Bi。C为类的数目。

anchor-based检测器将输入图像上的位置作为(多个)anchor框的中心,并以这些anchor框作为参考(在代码中为locations)来回归目标bounding box,与anchor-based检测器不同,我们直接在该位置回归目标bounding box。换句话说,我们的检测器直接将location作为训练样本,而不是anchor-based检测器中的anchor框(作为训练样本),这与用于语义分割的FCNs[20]相同。

具体地说,如果位置(x,y)落入了任何真实框里,并且该位置的标签c是真实框的标签,则将它视为一个正样本。否则,它是一个负样本并且c = 0(背景类)。除了分类的标签(代码中为logits, cls),我们还有一个四维实向量t = (l, t, r, b)作为该位置的回归目标。这里的l、t、r、b是从位置到bounding box四边的距离,如图1(左)所示。如果一个位置有多个bounding box,则认为它是一个模糊样本。我们只需要选择面积最小的bounding box作为回归目标。在下一节中,我们将展示多级预测,模糊样本的数量可以显著减少,因此它们几乎不影响检测性能。形式上,如果位置(x,y)与一个bounding box Bi相关联,则该位置的训练回归目标可以表述为:
image.png
值得注意的是,*FCOS可以利用尽可能多的前景样本来训练回归器。不同于anchor-based检测器,只考虑与真实框有足够高IoU值的anchor框作为正样本
。我们认为,这可能是FCOS表现优于anchor-based同行的原因之一。

Network Outputs。与训练目标相对应,我们的网络的最后一层预测一个80D的分类标签向量p和一个4D的向量t = (l, t, r, b)bounding box坐标。Following [15],我们不是训练一个多类分类器,而是训练C二进制分类器。与[15]类似,我们在backbone网络的特征图后分别添加4个卷积层,用于分类和回归分支。此外,由于回归目标总是正的,我们使用exp(x)将任何实数映射到回归分支的顶部(0,∞)。值得注意的是,FCOS的网络输出变量比流行的、每个位置有9个anchor框的anchor-based检测器少9倍。

Loss Function。我们定义的训练损失函数如下:
image.png
Lcls是[15]中的focal loss,Lreg是UnitBox[32]中的IoU loss。Npos表示正样本的数量,入 为1,本文中为Lreg的平衡权重。在特征图Fi上计算所有位置的总和。1是指示函数,如果c>0则为1,否则为0.

Inference。FCOS的推理很简单。给定一幅输入图像,通过网络传播,得到特征图Fi上每个位置的分类得分p x,y和回归预测tx,y。Following[15],我们选择px,y > 0.05的位置为正样本,反推式子Eq.(1)即可得到预测的bounding box。

3.2. Multi-level Prediction with FPN for FCOS

这里我们展示了如何用FPN[14]的多级预测来解决所提出的FCOS的两个可能的问题。

① CNN中最后的特征图的大stride(例如16×)会导致相对较低的best possible recall(BPR)。对于anchor-based检测器,由于大stride而导致的低召回率可以通过降低正anchor框所要求的IoU分数来在一定程度上补偿(阈值的意思)。对于FCOS,乍一看,人们可能会认为BPR会比anchor-based检测器要低得多,因为,由于一个大stride,它不可能召回一个在最终特征地图上没有编码位置的对象。这里,我们的经验表明,即使是一个大stride,FCN-based的FCOS仍能够产生良好的BPR,它甚至可以比官方提供的Detectron[7](参加表1)中的anchor-based检测器RetinaNet的BPR还要高。因此,FCOS的BPR实际上不是一个问题。此外,通过多级FPN预测[14],可以进一步提高BPR,以比拼anchor-based RetinaNet所能达到的最好的BPR。
② 真实框的重叠会导致难以处理的模糊性,即重叠中的位置应该回归哪个bbox?这种模糊性导致FCN-based的检测器性能下降。在这项工作中,我们证明了模糊度可以通过多级预测得到很大的解决,并且FCN-based的检测器可以获得与anchor-based检测器相当甚至更好的性能。

在FPN[14]之后,我们在不同level的特征图上检测不同大小的对象。具体来说,我们使用定义为{P3, P4, P5, P6, P7}的五个级别的特征图。P3、P4和P5是由backbone CNNs的特征图C3、C4和C5生成,根据[14],然后紧接着的是生成一个1 × 1的自上而下连接的卷积层,如图2所示。P6和P7分别在P5和P6上施加一个stride为2的卷积层。因此,feature levels P3、P4、P5、P6和P7分别具有8、16、32、64和128的stride。(这里的stride应该是跨度、倍数的意思,与初始input的长或宽的倍数,即下采样率)

不同于anchor-based检测器,将不同大小的anchor框分配给不同的feature levels,我们直接限制了每个level的bounding box回归的范围。更具体地说,我们首先计算所有特征级别上每个位置locations的回归目标l∗、t∗、r∗和b∗。其次,如果一个位置满足max(l∗,t∗,r∗,b∗)> mi 或 max(l∗,t∗,r∗,b∗)< mi−1,则它被设置为一个负样本,因此不再需要回归一bounding box。这里的 mi 是特征级别 i 需要回归的最大距离。在本文中,m2、m3、m4、m5、m6、m7分别设为0、64、128、256、512和∞。因为不同大小的对象被分配到不同的特征级别,大多数重叠发生在大小相当、不同的对象之间。如果一个位置,即使使用了多级预测(技术),仍然被分配到超过1个ground-truth box里,我们只需选择面积最小的ground-truth box作为它的目标。从我们的实验中可以看出,多级预测在很大程度上缓解了上述模糊性,并将FCN-based的检测器提高到与anchor-based检测器相同的水平。
(这一段,在代码中的实现为计算P3-P7的locations,以这些点回归边框信息,并且这些locations回到原图上时,坐标都是不重叠的)

最后,根据[14,15],我们在不同的特征级别之间共享heads(模型中叫share_tower),不仅使检测器的parameter-efficient,而且提高了检测性能。但是,我们观察到不同的特征级别需要回归不同的大小范围(例如,P3的大小范围是[0,64],P4的大小范围是[64,128]),因此对于不同的特征级别使用相同的头部是不合理的。因此,我们不使用标准的exp(x),而是使用具有可训练标量si的exp(si x)来自动调整特征级别Pi的指数函数基,从而略微提高了检测性能。

3.3. Center-ness for FCOS

在FCOS中采用多级预测后,FCOS与anchor-based的检测器的性能仍然存在差距。我们观察到,这是由于远离一个对象的中心的位置产生了许多低质量预测bbox。

我们提出了一种简单而有效的策略来抑制这些低质量的检测到的bbox,而不引入任何超参数。具体来说,我们增加了一个单层分支,与分类分支并行(如图2所示),以预测一个位置2的“center-ness”。Center-ness描述了从该位置到该位置负责的对象的中心的归一化距离,如图7所示。给定一个位置的回归目标l∗、t∗、r∗和b∗,center-ness目标被定义为:
image.png
我们在这里用根号来减缓center-ness的衰减。center-ness的范围为0到1,因此用二进制交叉熵binary cross entropy loss(BCE)损失进行训练。将损失添加到损失函数Eq.(2)中。测试时,通过将预测的center-ness与相应的分类分数相乘,计算最终得分(用于对检测到的bbox进行排名)。因此,center-ness可以降低远离对象中心的bbox的得分。结果,最终的非极大值抑制(NMS)过程可以很好地过滤掉这些低质量的bbox,显著提高检测性能。

center-ness的另一种选择是只利用ground-truth bbox的中心部分作为正样本,额外增加一个超参数的代价,如文献[12,33]所示。在我们提交之后,在[1]中已经显示这两种方法的结合可以获得更好的性能。实验结果见表3。

4. Experiments

我们的实验是在大型检测基准COCO[16]上进行的。按照常规方法[15,14,24],我们使用COCO trainval35k split(115K图像)进行训练,使用minival split(5K图像)作为消融研究的验证。我们通过上传检测结果到评估服务器来报告我们在test dev split (20K图像)上的主要结果。


在首次提交后,已经证明如果center-ness与回归分支平行,而不是与分类分支平行,MSCOCO上的AP可以得到改善。但是,除非特别说明,我们仍然使用图2中的配置。


image.png
图3 - Center-ness。红色、蓝色和其他颜色分别表示1,0和它们之间的值。center-ness由式(3)计算,当位置偏离物体中心时,中心度从1衰减到0。测试时,将网络预测的center-ness与分类分数相乘,从而降低远离物体中心位置预测的低质量包围盒的权重。

Training Details。除非指定,否则我们的backbone使用ResNet-50[8],并且使用与RetinaNet[15]相同的超参数。具体来说,我们的网络使用随机梯度下降(SGD)进行90K迭代训练,初始学习率为0.01,每组16张图像。在迭代60K和80K时,学习率分别降低了10倍。设weight decay为0.0001,momentum为0.9。我们用ImageNet[4]上预训练的权值初始化backbone 网络。对于新添加的层,我们按照[15]中的方法初始化它们。除非指定,否则输入图像的短边将被调整为800,长边小于或等于1333。

4.1. Ablation Study

4.1.1 Multi-level Prediction with FPN

如前所述,FCN-based检测器的主要问题是召回率低和ground-truth bbox重叠导致的样本模糊。在本节中,我们表明这两个问题可以很大程度上用多级预测来解决。
image.png
表1 - 各种匹配规则下anchor-based的RetinaNet的BPR和FCN-based的FCOS的BPR。FCN-based的FCOS召回率与最佳的anchor-based的召回率非常相似,且比Detectron[7]中官方实现的召回率高得多,而官方实现的召回率仅考虑IOU≥0.4的低质量匹配。

image.png
表2 - Amb。samples表示模糊样本与所有正样本的比值。Amb。样本(diff.)是相似的,但排除了重叠区域中属于同一类别的模糊样本,因为在推断时,模糊类型无关紧要。我们可以看到,使用FPN,这个模糊样本的百分比很小(3.75%)。

Best Possible Recalls。关于FCN-based的检测器的第一个担忧是,它可能无法提供一个很好的最佳召回(best possible recall, BPR)。在本节中,我们将说明这种关注是不必要的。这里的BPR定义为一个检测器最多能召回的ground-truth boxes数目除以所有的ground-truth boxes的比率。如果box在训练过程中至少分配给一个样本(即FCOS中的一个位置或anchor-based检测器中的anchor框),则认为ground-truth box被召回。如表1所示,只有当feature level P4 stride为16时(即没有FPN), FCOS的BPR已经达到95.55%。其BPR远高于官方实施检测器anchor-based的检测器RetinaNet 90.92%的BPR,其仅使用IOU≥0.4的低质量匹配。在FPN的帮助下,FCOS可以达到98.40%的BPR,非常接近anchor-based检测器在使用所有低质量匹配时所能达到的最佳BPR。由于当前检测器的最佳召回率远低于90%,FCOS与anchor-based的检测器之间的BPR间隙很小(小于1%)实际上不会影响检测器的性能。表3也证实了这一点,在相同的培训和测试设置下,FCOS比anchor-based同门实现了更好的AR。因此,对低BPR的担忧可能是没有必要的。
image.png
表3 - 以ResNet-50-FPN为backbone,在minimal split上的FCOS vs RetinaNet。直接使用RetinaNet训练和测试的设置,我们anchor-free FCOS达到比anchor-based RetinaNet在AP, AR更好的性能。有heads中的Group Normalization(GN)和NMS阈值为0.6,在FCOS可以达到37.1的AP。我们提交后,一些几乎cost-free的改进给予了FCOS并且性能已经被大幅改善,见下面的行“Improvements”,“ctr. on reg”:将center-ness分支移至回归分支。“ctr. sampling”:只抽样地ground-truth boxes的中心部分为正样本。“GIoU”:在IoU损失中,以union区域超过外接矩形区域为罚分。“Normalization”:将Eq.(1)中的回归目标随着FPN levels的stride进行归一化。有关详细信息,请参阅我们的代码。

Ambiguous Samples。对于FCN-based的检测器的另一个考虑是,由于gt bbox的重叠,可能会产生大量的模糊样本,如图1(右)所示。在表2中,我们展示了模糊样本与所有阳性样本在minimal split上的比率。如表所示,如果不使用FPN,只使用特征级别P4,确实存在大量的歧义样本(23.16%)。然而,在FPN中,这一比例可以显著降低到只有7.14%,因为大部分重叠的对象被分配到不同的特征级别。此外,我们认为由同一类别的对象之间的重叠所导致的模糊样本并不重要。例如,如果同一类的对象A和B有重叠,那么无论预测重叠中的哪个对象,预测都是正确的,因为它总是与同一类相匹配。missed对象可以通过只属于它的位置来预测。因此,我们只计算不同类别边界盒之间重叠的模糊样本。如表2所示,多级预测将模糊样本的比例从17.84%降低到3.75%。为了进一步证明FCN-based的FCOS在ground truth box中的重叠不是问题,我们在由模糊位置所推测有多少检测到的bbox进行计数。我们发现只有2.3%检测到的bbox是由模糊的位置产生的。进一步只考虑不同类别之间的重叠,比例降至1.5%。请注意,这并不意味着有1.5%的位置FCOS不能工作。如前所述,这些位置与最小面积的地面真相盒相关联。因此,这些位置只承担错过一些较大物体的风险。如下实验所示,这并不意味着我们的FCOS不如anchor-based检测器。

image.png
表4 - minival split中的center-ness的消融研究。“None”表示不使用center-ness。” center-ness†”表示使用从预测回归向量计算而来的center-ness。“center-ness”是使用从提出的center-ness分支预测的center-ness。center-ness分支改进了所有指标下的检测性能。

4.1.2 With or Without Center-ness

如前所述,我们提出“center-ness”来抑制由远离物体中心的位置产生的低质量检测到的bbox。如表4所示,center-ness分支可以将AP从33.5%提高到37.1%,使得anchor-free的FCOS的表现优于anchor-based的RetinaNet(35.9%)。注意,anchor-based的RetinaNet使用两个IoU阈值来标记anchor框为正/负样本,这也有助于抑制低质量的预测。提出的中心度可以消除两个超参数。然而,在我们首次提交之后,它表明同时使用center-ness和阈值可以产生更好的性能,如表3中的“+ ctr. sampling”行所示。可以注意到,center-ness也可以用预测的回归向量来计算,而不需要引入额外的center-ness分支。然而,如表4所示,由回归向量计算出的中心度并不能提高性能,因此需要单独的中心度。

4.1.3 FCOS vs. Anchor-based Detectors

image.png
表5 - FCOS vs 其他SOTA两阶段或一阶段检测器(单模型和单尺度结果)。在具有相同backbone的AP中,FCOS的表现比anchor-based的对应RetinaNet高出2.4%。FCOS的性能也优于最近的anchor-free一阶段检测器CornerNet,设计复杂度更低。“改进”的具体内容见表3。

前面提到的FCOS与标准RetinaNet有两个细微的区别。1)除了最后的预测层外,我们在新添加的卷积层中使用组归一化(GN)[29],使我们的训练更加稳定。2)我们使用P5来产生P6和P7,而不是标准的RetinaNet中的C5。我们观察到,使用P5可以略微提高性能。

为了表明我们的FCOS可以作为anchor-based检测器的简单而强大的替代品,并且为了进行公平的比较,我们删除了GN(梯度被裁剪以防止它们爆炸)并在检测器中使用C5。如表3所示,在完全相同的设置下,我们的FCOS仍然优于anchor-based检测器(36.3% vs 35.9%)。此外,值得注意的是,我们直接使用了RetinaNet的所有超参数(如学习率、NMS阈值等),这些超参数已经针对anchor-based检测器进行了优化。我们认为,如果对超参数进行调优,FCOS的性能可以进一步提高。

值得注意的是,通过表3中所示的一些cost-free的改进,我们的anchor-free检测器的性能可以得到很大的提高。鉴于anchor-free检测器优越的性能和优点(例如,比anchor-based检测器更简单,超参数更少),我们鼓励社区重新思考anchor框在目标检测中的必要性。

4.2. Comparison with State-of-the-art Detectors

我们在MS-COCO基准测试的test - dev split上比较FCOS与其他SOTA目标检测器。在这些实验中,我们在训练过程中随机缩放图像的较短边,范围从640到800,并将迭代次数加倍到180K(学习速率变化点按比例缩放)。其他设置与表3中AP 37.1%的模型完全相同。如表5所示,使用ResNet-101-FPN时,我们的FCOS在AP上比相同backbone的ResNet-101-FPN的RetinaNet高出2.4%。据我们所知,这是第一次没有任何花里胡哨的anchor-free检测器比anchor-based的检测器表现出更大的优势。FCOS也比其他经典的anchor-based两级检测器,如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. Extensions on Region Proposal Networks

到目前为止,我们已经展示了在单阶段检测器中,我们的FCOS可以比anchor-based的同行获得更好的性能。直观地说,FCOS也应该能够用两阶段检测器Faster RCNN中的FPN[14]替换Region Proposal network (RPNs)中的anchor框。在此,我们通过实验证实了这一点。

与采用FPN[14]的RPNs相比,我们用FCOS中的方法替换anchor框。此外,我们在FPN头部的层中加入了GN,这可以使我们的训练更加稳定。所有其他的设置完全相同的RPNs与FPN在官方代码[7]。如表6所示,即使没有提出的center-ness分支,我们的FCOS已经对AR100和AR1k进行了显著的改进。通过提出的中心分支,FCOS进一步将AR100和AR1k分别提高到52.8%和60.3%,相对于采用FPN的RPNs, AR100相对提高了18%,AR1k绝对提高了3.4%。

6. Conclusion

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

Appendix

7. Class-agnostic Precision-recall Curves

image.png
表7 - RetinaNet和FCOS的class-agnostic检测性能。FCOS的性能优于RetinaNet。此外,随着IOU阈值的增加,FCOS相对于RetinaNet的提升也越来越大。使用相同模型的结果见本文表4。

在图4、图5和图6中,我们分别在IOU阈值为0.50、0.75和0.90时,呈现了在split minival中的class-agnostic的精确召回曲线。表7为这三条曲线对应的ap。

image.png
图 4 - 在IoU = 0.50时的class-agnostic精确回归曲线

如表7所示,我们的FCOS比anchor-based的作品RetinaNet获得更好的性能。值得注意的是,当IOU阈值越严格时,FCOS相比RetinaNet有更大的改进,这说明FCOS有更好的bbox回归器,可以更准确地检测到目标。其中一个原因应该是FCOS有能力利用更多前景样本来训练回归因子,正如我们的主要论文中提到的那样。

最后,从准确率召回曲线上可以看出,这些检测器在准确率召回曲线上的最佳召回率都远低于90%。这进一步表明,FCOS和RetinaNet在最佳可能召回(best possible recall, BPR)方面的差距之小(98.40%和99.23%)几乎不会影响最终的检测性能。

8. Visualization for Center-ness

正如在我们的主要论文中提到的,通过抑制低质量检测到的bbox,提出的center-ness分支大大提高了检测性能。在本节中,我们确认这一点。

我们期望center-ness可以降低低质量的bbox的分数,这样这些bbox就可以在后续的后处理中被过滤掉,如非极大值抑制(NMS)。如果检测到的bbox与其对应的ground-truth bbox的IOU得分较低,则认为该bbox是低质量的bbox。一个低IoU分数但高置信度的bbox很可能成为假正样本,并影响精度。
image.pngimage.png
图5 - 在IoU = 0.75时的class-agnostic精确回归曲线 图 6 - 在IoU = 0.90时的class-agnostic精确回归曲线

在图7中,我们将检测到的bbox看作是一个2D点(x, y), x为其分数,y为其与所对应的ground-truth bbox的IOU得分。如图7所示(左),在应用center-ness之前,有大量的低质量的但是置信度高的bbox(也就是说位于y = x下面的点)。由于它们的高分,这些低质量的bbox不能在后处理中消除,这降低了检测器的精度。将分类分数与center-ness分数相乘后,这些点被推到图的左侧(即它们的分数被降低),如图7(右)所示。因此,这些低质量的bbox更有可能在后处理中被过滤掉,从而提高最终的检测性能。

9. Qualitative Results

一些定性结果在图8展示了。如图所示,我们提出的FCOS可以检测出范围广泛的目标,包括拥挤的、遮挡的、高度重叠的、非常小的和非常大的物体。

10. More discussions

Center-ness vs. IoUNet
Center-ness和Jiang以及其他人发表的“Acquisition of Localization Confidence for Accurate Object Detection”中的IoUNet有一个相似的目标(也就是抑制低质量预测),虽然用着不同的途径。IoUNet训练一个单独的网络来预测预测的bbox和ground-truth bbox之间的IoU得分。Center-ness作为我们检测器的一部分,只有一层,是与检测器一起共同训练的,因此简单得多。此外,“center-ness”并不将预测的bbox作为输入。相反,它直接使用位置的能力(信息)来预测高质量bbox。

BPR in Section 4.1 and ambiguity analysis
我们不打算比较“特定IoU的召回”和“框内像素的召回”。表1的主要目的是为了说明FCOS召回的上限非常接近anchor-based的RetinaNet召回的上限(98.4% vs. 99.23%)。其他IoU阈值的BPR被列出,就像在RetinaNet的官方代码中所使用的那样。此外,没有证据表明FCOS的回归目标因为更分散而难以学习。FCOS实际上产生了更精确的限定框。

在训练过程中,我们通过选择面积最小的ground-truth box来处理相同FPN级别的ambiguity。测试时,如果同一类的A和B两个对象有重叠,无论重叠对象的位置预测哪一个对象,预测都是正确的,缺失的对象可以通过只属于它的位置进行预测。如果A和B不属于同一个类,重叠部分中的一个位置可能会预测A的类,但会回归B的限定框,这是错误的。这就是为什么我们只计算不同类别的模糊性。此外,这种模糊性似乎并不会使FCOS比AP中的RetinaNet更糟糕,如表8所示。

Additional ablation study
如表8所示,普通FCOS的性能与RetinaNet相当,并拥有更简单的设计和约为9倍少的网络输出。此外,FCOS比single anchor的RetinaNet工作得更好。至于test-dev上2%的增益,除了表8中的成分带来的性能增益外,我们推测,不同的训练细节(例如,学习速率计划)可能会导致性能上的细微差异。
image.png图7 -没有(左)或有(右)我们提出的Center-ness。图中的点表示检测到的bbox。虚线是y = x线,如图(右)所示,将分类分数与Center-ness分数相乘后,低质量的bbox(在y = x线下)被推到图的左侧。这表明这些box的分数大大降低了。

image.png
表8 - MS-COCO minival中的消融研究。“#A”是RetinaNet中每个位置的anchor框数量。“IOU”是IOU损失。“Scalar”表示exp中是否使用标量。所有实验都是在相同的设置下进行的。

RetinaNet with Center-ness
Center-ness不能直接用于每个位置有多个anchor框的RetinaNet,因为特征地图上的一个位置只有一个Center-ness评分,但同一位置上的不同anchor框要求不同的“中心度”(注意,中心度也被用作正/负样本的“软”阈值)。

对于anchor-based的RetinaNet,anchor框和ground-truth box之间的IoU得分可以作为“Center-ness”的替代选择。

Positive samples overlap with RetinaNet
我们想要强调的是,只有在测试时,Center-ness才会发挥作用。训练时,ground-truth box内的所有位置都被标记为正样本。因此,FCOS可以使用更多的前景位置来训练回归器,从而产生更准确的边界框。

image.png
图8 - minival split的一些检测结果。使用ResNet-50作为backbone。如图所示,FCOS适用于各种各样的物体,包括拥挤的、被遮挡的、高度重叠的、非常小的和非常大的物体。

Acknowledgments
我们要感谢[1]的作者提供的中心采样和GIoU技巧。我们也要感谢Chaorui Deng基于HRNet的FCOS,以及他提出的用框回归来定位中心分支的建议。

References

[1] https://github.com/yqyao/FCOS_PLUS, 2019.
[2] Lokesh Boominathan, Srinivas SS Kruthiventi, and R Venkatesh Babu. Crowdnet: A deep convolutional network for dense crowd counting. In Proc. ACM Int. Conf. Multimedia, pages 640–644. ACM, 2016.
[3] Yu Chen, Chunhua Shen, Xiu-Shen Wei, Lingqiao Liu, and Jian Yang. Adversarial PoseNet: A structure-aware convolutional network for human pose estimation. In Proc. IEEE Int. Conf. Comp. Vis., 2017.
[4] Jia Deng, Wei Dong, Richard Socher, Li-Jia Li, Kai Li, and Li Fei-Fei. ImageNet: A large-scale hierarchical image database. In Proc. IEEE Conf. Comp. Vis. Patt. Recogn., pages 248–255. IEEE, 2009.
[5] Cheng-Yang Fu, Wei Liu, Ananth Ranga, Ambrish Tyagi, and Alexander Berg. DSSD: Deconvolutional single shot detector. arXiv preprint arXiv:1701.06659, 2017.
[6] Ross Girshick. Fast R-CNN. In Proc. IEEE Conf. Comp. Vis. Patt. Recogn., pages 1440–1448, 2015.
[7] Ross Girshick, Ilija Radosavovic, Georgia Gkioxari, Piotr Dollar, and Kaiming He. Detectron. ´ https://github. com/facebookresearch/detectron, 2018.
[8] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition. In Proc. IEEE Conf. Comp. Vis. Patt. Recogn., pages 770–778, 2016.
[9] Tong He, Chunhua Shen, Zhi Tian, Dong Gong, Changming Sun, and Youliang Yan. Knowledge adaptation for efficient semantic segmentation. In Proc. IEEE Conf. Comp. Vis. Patt. Recogn., June 2019.
[10] Tong He, Zhi Tian, Weilin Huang, Chunhua Shen, Yu Qiao, and Changming Sun. An end-to-end textspotter with explicit alignment and attention. In Proc. IEEE Conf. Comp. Vis. Patt. Recogn., pages 5020–5029, 2018.
[11] Jonathan Huang, Vivek Rathod, Chen Sun, Menglong Zhu, Anoop Korattikara, Alireza Fathi, Ian Fischer, Zbigniew Wojna, Yang Song, Sergio Guadarrama, et al. Speed/accuracy trade-offs for modern convolutional object detectors. In Proc. IEEE Conf. Comp. Vis. Patt. Recogn., pages 7310– 7311, 2017.
[12] Lichao Huang, Yi Yang, Yafeng Deng, and Yinan Yu. Densebox: Unifying landmark localization with end to end object detection. arXiv preprint arXiv:1509.04874, 2015.
[13] Hei Law and Jia Deng. Cornernet: Detecting objects as paired keypoints. In Proc. Eur. Conf. Comp. Vis., pages 734– 750, 2018.
[14] Tsung-Yi Lin, Piotr Dollar, Ross Girshick, Kaiming He, ´ Bharath Hariharan, and Serge Belongie. Feature pyramid networks for object detection. In Proc. IEEE Conf. Comp. Vis. Patt. Recogn., pages 2117–2125, 2017.
[15] Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He, and Piotr Dollar. Focal loss for dense object detection. In ´ Proc. IEEE Conf. Comp. Vis. Patt. Recogn., pages 2980–2988, 2017.
[16] Tsung-Yi Lin, Michael Maire, Serge Belongie, James Hays, Pietro Perona, Deva Ramanan, Piotr Dollar, and Lawrence ´ Zitnick. Microsoft COCO: Common objects in context. In Proc. Eur. Conf. Comp. Vis., pages 740–755. Springer, 2014.
[17] Fayao Liu, Chunhua Shen, Guosheng Lin, and Ian Reid. Learning depth from single monocular images using deep convolutional neural fields. IEEE Trans. Pattern Anal. Mach. Intell., 2016.
[18] Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, and Alexander C Berg. SSD: Single shot multibox detector. In Proc. Eur. Conf. Comp. Vis., pages 21–37. Springer, 2016.
[19] Yifan Liu, Ke Chen, Chris Liu, Zengchang Qin, Zhenbo Luo, and Jingdong Wang. Structured knowledge distillation for semantic segmentation. In Proc. IEEE Conf. Comp. Vis. Patt. Recogn., June 2019.
[20] Jonathan Long, Evan Shelhamer, and Trevor Darrell. Fully convolutional networks for semantic segmentation. In Proc. IEEE Conf. Comp. Vis. Patt. Recogn., pages 3431–3440, 2015. [21] Joseph Redmon, Santosh Divvala, Ross Girshick, and Ali Farhadi. You only look once: Unified, real-time object detection. In Proc. IEEE Conf. Comp. Vis. Patt. Recogn., pages 779–788, 2016.
[22] Joseph Redmon and Ali Farhadi. YOLO9000: better, faster, stronger. In Proc. IEEE Conf. Comp. Vis. Patt. Recogn., pages 7263–7271, 2017.
[23] Joseph Redmon and Ali Farhadi. Yolov3: An incremental improvement. arXiv preprint arXiv:1804.02767, 2018.
[24] Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun. Faster R-CNN: Towards real-time object detection with region proposal networks. In Proc. Adv. Neural Inf. Process. Syst., pages 91–99, 2015.
[25] Abhinav Shrivastava, Rahul Sukthankar, Jitendra Malik, and Abhinav Gupta. Beyond skip connections: Top-down modulation for object detection. In Proc. IEEE Conf. Comp. Vis. Patt. Recogn., 2017.
[26] Ke Sun, Bin Xiao, Dong Liu, and Jingdong Wang. Deep high-resolution representation learning for human pose estimation. In Proc. IEEE Conf. Comp. Vis. Patt. Recogn., 2019.
[27] Christian Szegedy, Sergey Ioffe, Vincent Vanhoucke, and Alexander A Alemi. Inception-v4, inception-resnet and the impact of residual connections on learning. In Proc. National Conf. Artificial Intell., 2017.
[28] Zhi Tian, Tong He, Chunhua Shen, and Youliang Yan. Decoders matter for semantic segmentation: Data-dependent decoding enables flexible feature aggregation. In Proc. IEEE Conf. Comp. Vis. Patt. Recogn., pages 3126–3135, 2019.
[29] Yuxin Wu and Kaiming He. Group normalization. In Proc. Eur. Conf. Comp. Vis., pages 3–19, 2018.
[30] Saining Xie, Ross Girshick, Piotr Dollar, Zhuowen Tu, and ´ Kaiming He. Aggregated residual transformations for deep neural networks. In Proc. IEEE Conf. Comp. Vis. Patt. Recogn., pages 1492–1500, 2017.
[31] Wei Yin, Yifan Liu, Chunhua Shen, and Youliang Yan. Enforcing geometric constraints of virtual normal for depth prediction. In Proc. IEEE Int. Conf. Comp. Vis., 2019.
[32] Jiahui Yu, Yuning Jiang, Zhangyang Wang, Zhimin Cao, and Thomas Huang. Unitbox: An advanced object detection network. In Proc. ACM Int. Conf. Multimedia, pages 516–520. ACM, 2016.
[33] Xinyu Zhou, Cong Yao, He Wen, Yuzhi Wang, Shuchang Zhou, Weiran He, and Jiajun Liang. EAST: an efficient and accurate scene text detector. In Proc. IEEE Conf. Comp. Vis. Patt. Recogn., pages 5551–5560, 2017.
[34] Chenchen Zhu, Yihui He, and Marios Savvides. Feature selective anchor-free module for single-shot object detection. In Proc. IEEE Conf. Comp. Vis. Patt. Recogn., June 2019.