FCOS:Fully Convolutional One-Stage Object Detection(论文阅读笔记)

本文是CVPR2019 的文章,基于Anchor-free。

 

论文链接:https://arxiv.org/abs/1904.01355

代码链接:当前mmdetection中有focs的相关code实现。

摘要:

    我们提出了一种全卷积的单阶段目标检测器(FCOS),以按像素预测的方式来解决目标检测,类似于语义分割。几乎所有最新的物体检测器(例如RetinaNet,SSD,YOLOv3和Faster R-CNN)都依赖于预定义的anchor box。相反,我们提出的检测器FCOS不含anchor boxes,也不含proposal boxes。通过消除预定义的anchor boxes集合,FCOS完全避免了与anchor box相关的复杂计算,例如在训练过程中计算overlap。更重要的是,我们还避免了与anchor相关的所有超参数,这些超参数通常对最终检测性能非常敏感。凭借唯一的后处理非最大抑制(NMS)功能,基于ResNeXt-64x4d-101的FCOS通过单模型和单尺度测试可达到44.7 %的AP,超越了以前的单阶段检测器,具有简单得多的优势。我们首次展示了一种更简单,更灵活的检测框架,可提高检测精度。我们希望所提出的FCOS框架可以作为许多其他实例级任务的简单而强大的替代方案。可以在以下位置找到代码: tinyurl.com/FCOSv1(失效).

1,引言

    目标检测是计算机视觉中一项基本但具有挑战性的任务,它要求算法为图像中每个感兴趣的instance预测带有类别标签的边界框。当前所有主流检测器,例如Faster R-CNN [24],SSD [18]和YOLOv2,v3 [23]都依赖于一组预定义的anchor boxes,长期以来人们一直认为使用anchor boxes是关键检测器的成功。尽管取得了巨大的成功,但重要的是要注意anchor-based的检测器有一些缺点:1)如图[15,24]所示,检测性能对anchor boxes的大小,纵横比和数量敏感。例如,在RetinaNet [15]中,改变这些超参数会影响COCO基准[16]上AP的性能高达4%。结果,需要在anchor-based的检测器中仔细调整这些超参数。 2)即使精心设计,由于anchor boxes的比例和长宽比保持固定,检测器在处理形状变化较大的候选目标(尤其是小目标)时会遇到困难。预先定义的anchor boxes还妨碍了检测器的泛化能力,因为它们需要针对具有不同目标尺寸或纵横比的新检测任务进行重新设计。 3)为了达到较高的召回率,需要使用anchor based的检测器将anchor boxes密集地放置在输入图像上(例如,特征金字塔网络(FPN)中有超过18万个anchor boxes[14]用于具有其特征的图像)较短的一边是800)。在训练过程中,大多数这些anchor boxes 被标记为负样本。负样本数量过多会加剧训练中正样本与负样本之间的不平衡。 4)anchor boxes还涉及复杂的计算,例如,计算和ground truth边界框的IoU分数。

    最近,全卷积网络(FCN)[20]在诸如语义分割[20、28、9、19],深度估计[17、31],关键点检测[3]和计数[2]之类的密集预测任务中取得了巨大的成功。 ]。 作为高级视觉任务之一,目标检测可能是唯一偏离整洁的全卷积像素预测框架的,这主要是由于使用了anchor boxes。 我们自然会问一个问题:例如,我们能否以整洁的每像素预测方式(类似于FCN进行语义分割)解决目标检测? 因此,那些基本的视觉任务可以(几乎)统一在一个框架中。 我们证明答案是肯定的。 此外,我们首次证明,基于FCN的检测器比anchor=based的检测器更简单,其性能甚至更高。

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

FCOS:Fully Convolutional One-Stage Object Detection(论文阅读笔记)_第1张图片

图1 如图所示,FCOS通过预测一个4D向量对每个前景像素处的bounding box位置进行编码(训练时由ground-truth bounding box信息监督)。右边的图显示,当一个像素位置位于多个bounding box中时,对于该位置应该回归哪个边界框,可能存在歧义(实际上,对于多个ground truth重叠的部分,所回归位置,选择面积最小的ground truth作为回归目标)。

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

    这种新的检测框架具有以下优点。
    •检测现在与许多其他fcn-soluable任务统一,如语义分割,使重用这些任务的想法更容易。
    •检测变得 proposal free 和 anchor free,这大大减少了设计参数的数量。设计参数通常需要启发式调优,为了获得良好的性能,需要使用许多技巧。因此,我们新的检测框架使检测器,特别是它的训练,相当简单。
    •通过消除anchor box,我们的新检测器完全避免了与anchor box相关的复杂计算,如 IOU计算和训练过程中anchor box与ground-truth box之间的匹配,从而实现了更快的训练和测试,以及比anchor based的同类检测器具有更少的训练内存占用。
    •没有花哨的东西,我们在单阶段探测器中实现了最先进的结果。我们还表明,所提出的FCOS可以作为两阶段检测器中的Proposal 网络(RPN),并可以取得比anchor based的RPN检测器更好的性能。考虑到更简单的anchor free检测器的更好性能,我们鼓励社区重新思考anchor box在目标检测中的必要性,它目前被认为是检测的实际标准。
    •所提出的检测器可以通过最小修改立即扩展到其他视觉任务,包括实例分割和关键点检测。我们相信这种新方法可以成为许多实例预测问题的新baseline。

2, 相关工作 

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

   然而,如上所述,anchor box会产生过多的超参数,为了获得良好的性能,通常需要对这些超参数进行仔细的调优。除了上述描述anchor形状的超参数外,anchor-based的检测器还需要其他超参数来标记每个anchor box为正样本、ignore样本或负样本。在以前的工作中,他们经常使用anchor box和grpund truth box之间的 IOU来确定anchor box的label(例如,一个正anchor,如果它的IOU在[0:5, 1])。这些超参数显示了对最终精度的巨大影响,需要启发式调整。同时,这些超参数是针对检测任务的,使得检测任务偏离了用于其他密集预测任务(如语义分割)的整洁的全卷积网络架构。

    anchor free 检测器: 最流行的anchor free探测器可能是YOLOv1[21]。YOLOv1没有使用anchor box,而是预测靠近物体中心的边界框。只有靠近中心的点被使用,因为他们被认为能够产生更高质量的检测。然而,由于只有靠近中心的点被用来预测边界框,YOLOv1就像在YOLOv2[22]中提到的那样存在低recall性(主要是成群的小目标)。因此,YOLOv2[22]也使用了anchor box。与YOLOv1相比,FCOS利用ground truth bounding box中的所有点来预测bounding box,并通过提出的“cener ness”分支来抑制低质量检测到的bounding box。因此,FCOS能够提供类似于我们实验中anchor based的检测器的recall。

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

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

3, 我们的方法

    在本节中,我们首先逐像素预测的方式重新制定目标检测。接下来,我们将展示如何利用 multi-level预测来提高recall率(就是FPN),并解决边界框重叠造成的歧义。最后,我们提出了“center-ness”分支,这有助于抑制低质量检测的bounding box,并在很大程度上提高了整体性能

3.1 , 全卷积单阶段目标检测器

  设为backbone CNN第 i 层的特征图,s 为到该层下采样的总步数。输入图像的 ground truth边界框定义为:分别为边框的左上角和右下角的坐标。是边界框中目标所属的类。C 为总类别数,MS-COCO数据集为 80。

     对于特征图上每个位置(x,y),位于感受野的中心(x,y)我们可以将其映射回输入图像坐标为:,。与anchor based的检测器将输入图像上的位置作为(多个)anchor box的中心,并以这些anchor box作为参考来回归目标bounding box不同,我们直接在该位置回归目标bounding box。换句话说,我们的检测器直接将位置作为训练样本,而不是anchor based的检测器中的anchor,这与用于语义分割的FCNs[20]相同。

    具体来说,位置(x,y)如果它落在任何ground truth box中,则被认为是一个正样本,并且该位置的类标签是ground truth box的类标签。否则,它是一个负样本并且(背景类)。除了分类的标签,我们还有一个四维实向量是该位置的回归目标。这里的从位置到bounding box四边的距离,如图1(左)所示。如果一个位置有多个bounding box,则认为它是一个模糊样本(即两个ground truth 重叠的部分,bounding box是模糊的)。我们只需选择重叠面积最小的边界框作为回归目标(选择 gt box面积最小的目标作为学习目标)。在下一节中,我们将展示 multi-level预测,模糊样本的数量可以显著减少,因此它们几乎不影响检测性能。正式来说,如果位置(x,y)与一个bounding box Bi相关联,该位置的训练回归目标可表示为:

FCOS:Fully Convolutional One-Stage Object Detection(论文阅读笔记)_第2张图片

    值得注意的是,FCOS可以利用尽可能多的前景样本来训练回归器。不同于anchor-based的检测器,只考虑和gt boxes具有足够高IOU的anchor boxes的作为正样本。我们认为,这可能是FCOS表现优于anchor-based检测器的原因之一。

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

    损失函数。我们定义损失函数如下:

FCOS:Fully Convolutional One-Stage Object Detection(论文阅读笔记)_第3张图片

  如[15],其中为focal loss,如UnitBox[32]为 IOU loss。表示正样本数,本文中,λ为1,为的平衡权重。在特征映射上的所有位置上计算总和。是指示函数,如果为1,否则为0。

    Inference。FCOS的推理很简单。给定一幅输入图像,通过网络forward,得到feature map 上每个位置的分类得分和回归预测。和[15]一样,我们选择的位置作为正样本,Eq.(1)反变换得到预测的bounding boxes。

3.2 FCOS 的FPN多级预测。

    这里我们展示了如何用FPN]的多级预测来解决[14所提出的FCOS的两个可能的问题。1) CNN中最终feature map的大stride(例如16×)会导致相对较低的best possible recall (BPR)。对于anchor-based的检测器,由于大stride而导致的低召回率可以通过降低正anchor boxes所需的IOU分数来在一定程度上补偿。对于FCOS,乍一看,人们可能会认为BPR比anchor-based的检测器要低得多,因为它不可能召回一个在最顶层feature map上没有编码位置的目标,这是由于一个大stride引起的。这里,我们经验表明,即使是一个大stride,FCN-based 的FCOS仍能够产生良好的BPR,它甚至可以比anchor-based探测器的BPR更好, RetinaNet官方实现Detectron[15][7](参见表1)。因此,FCOS的BPR实际上不是一个问题。此外,通过多级FPN预测[14],可以进一步提高BPR,以匹配anchor-based的 RetinaNet所能达到的最佳BPR(就是说,FCOS中通过多及预测,也就是FPN来解决低recall 问题。2) ground truth box的重叠会导致难以处理的歧义,即重叠中时,应该回归哪个bounding box?这种模糊性导致基于fcn的检测器性能下降。在这项工作中,我们证明了模糊度可以通过多级预测得到很大的解决,并且基于fcn的检测器可以获得与anchor-based检测器相当甚至更好的性能。

    follow FPN[14],我们在不同层feature map上检测不同大小的目标。具体来说,我们使用五个级别的feature map{P3,P4,,P5,P6,P7}。P3、P4和P5是由中backbone的feature map C3、C4和C5生成,然后接一个1 × 1的自上而下的卷积层,如图2所示。P6和P7分别在P5和P6上施加一个stride为2的卷积层。因此,特性层P3、P4、P5、P6和P7分别具有8、16、32、64和128的stride。

FCOS:Fully Convolutional One-Stage Object Detection(论文阅读笔记)_第4张图片

图2, FCOS的网络体系结构,其中C3,C4和C5表示backbone的feature map,P3至P7是用于最终预测的特征层。 H×W是feature map的高度和宽度。是feature map在水平上相对于输入图像的下采样率。 例如,所有数字都是使用800×1024输入来计算的。

    不同于anchor-based 的检测器直接为不同的feature map分配不同size的anchor boxes,我们在每层feature map上限制bounding boxes回归的范围。具体的,我们首先给所有feature map层上的每个位置计算回归目标 。然后, 每个像素位置上如果满足或者 , 那么被设置为负样本并且不再需要回归bounding boxes。 这里是第 i 层feature map需要回归的的最大距离。本文中 分别设置为: 0, 61, 128, 256, 512和。由于不同size的目标被分配到不同的feature map层并且大多数交叠发生在两个不同目标size相差较大的情况如果一个位置,在即使多层feature mpa上预测, 也会被分配到多个ground-truth box上, 我们只需选择面积最小的ground-truth box作为目标(这样做,可能也是提升小目标召回的一个原因吧)。从我们的实验中可以看出,多级预测在很大程度上缓解了上述模糊性,并将基于fcn的检测器提高到与anchor based的检测器相同的水平。

     最后,遵循[14,15],我们在不同层 feature map之间共享head,不仅使检测器的参数有效,而且提高了检测性能。然而,我们观察到,不同的feature 层需要回归不同的大小范围 (例如,P3大小范围为[0,64], P4为[64,128]),因此对于不同的特征层使用相同的head是不合理的。因此,我们不使用标准的exp(x),而是使用具有可训练标量来自动调整特征层 的指数函数基,从而略微提高了检测性能。

3,3 FCOS的Center-ness

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

     我们提出了一个简单且有效的策略来抑制这些低质量检测到的bounding boxes而不需要引入额外的超参数。具体的, 我们在分类分支上并行地添加了一个单层分支(如图2所示)来预测位置的“center-ness”。这个center-ness描述了该位置所负责的回归目标中心到该位置的归一化距离(就是feature map上像素坐标位置到对应回归目标box中心点的归一化距离)如图7所示。对一个位置,给定回归目标,center-ness目标定义如下:

FCOS:Fully Convolutional One-Stage Object Detection(论文阅读笔记)_第5张图片


    我们在这里用根号来减缓 center-ness的衰减。center-ness范围为0到1,因此用二进制交叉熵(BCE)损失进行训练。将损失添加到损失函数Eq.(2)中。测试时通过将预测的center-ness与相应的分类分数相乘,计算最终得分(用于对检测到的bounding boxes进行排名)。因此,center-ness可以降低远离目标中心bounding boxes的分数。最终的非最大抑制(NMS)过程可以很好地过滤掉这些低质量的bounding boxes,显著提高检测性能。


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

4, 实验

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

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

    Inference 细节。我们首先通过网络forward输入图像,并得到指定类别预测的boundingboxes。除非特别说明,以下后处理与RetinaNet[15]完全相同,我们直接使用了与RetinaNet相同的后处理高参数。我们使用与训练中相同大小的输入图像。我们假设,如果我们仔细地调整超参数,探测器的性能可能会进一步提高。

4.1 消融研究

4.1.1 FPN多及预测

    如前所述,基于fcn的检测器的主要问题是召回率低ground-truth bounding boxes重叠导致的样本模糊。在本节中,我们表明这两个问题可以很大程度上用多级预测来解决。

    Best Possible Recalls。关于基于fcn的检测器的第一个担忧是,它可能无法提供一个很好的最佳召回(best possible recall, BPR)。在本节中,我们将说明这种关注是不必要的。这里的BPR定义为一个检测器最多能召回的ground truth boxes数除以所有ground truth boxes数的比率。在训练过程中,如果至少有一个样本(即FCOS中的一个位置或anchor based探测器中的anchor boxes)使用了ground truth boxes,则认为该ground truth boxes被召回。如表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 baesd的检测器利用所有低质量匹配所能达到的最佳BPR。由于当前检测器的最佳召回率远低于90%,FCOS与anchor based的检测器之间的小BPR间隙(小于1%)实际上不会影响检测器的性能。表3也证实了这一点,在相同的训练和测试设置下,FCOS比anchor based的对应检测器实现了更好的AR。因此,对低BPR的担忧可能没有必要。

FCOS:Fully Convolutional One-Stage Object Detection(论文阅读笔记)_第6张图片

表1 各种匹配规则下anchor-based的RetinaNet的BPR和基于FCN的FCOS的BPR。 基于FCN的FCOS与最佳anchor-based的FCOS具有非常相似的召回率,并且比Detectron [7]中的正式实现要高得多,后者仅考虑IOU≥0.4的低质量匹配。

   

FCOS:Fully Convolutional One-Stage Object Detection(论文阅读笔记)_第7张图片

表3 minival split上,以ResNet-50-FPN为backbone的的FCOS vs RetinaNet。 直接使用RetinaNet的训练和测试设置,我们的anchor free FCOS在AP和AR中都比anchor based的RetinaNet取得了甚至更好的性能。 通过heads中的组归一化(GN)和NMS阈值为0.6,FCOS可以达到37.1的AP。 在我们提交之后,FCOS进行了一些几乎cost-free的改进,并且性能得到了很大的提高,如下面的“Improvements”行所示。 “ +ctr on reg”:将Center-ness分支移至回归分支。 “ +ctr. smpling”:仅将ground truth boxes的中央部分采样为正样本。 “ GIoU”:对IoU损失中外接矩形区域上方的联合区域进行惩罚。 “Normalization”:将公式(1)中具有FPN 层的回归目标归一化。 有关详细信息,请参阅我们的代码。

    模糊采样。基于FCN的检测器的另一个问题是,由于ground truth bounding box中的重叠,它可能具有大量不明确的样本,如图1(右)所示。在表2中,我们显示了minival split中歧义样本与所有正样本的比率。如表2中所示,如果不使用FPN且仅使用feature 层P4,则确实存在大量歧义样本(23.16%)。但是,使用FPN时,由于大多数重叠目标被分配给不同的feature 层,因此该比率可以显着降低到7.14%。此外,我们认为,相同类别的目标之间重叠产生的歧义样本并不重要。例如,如果具有相同类别的目标A和B具有重叠,则无论重叠预测中的位置是哪个目标,该预测都是正确的,因为它始终与同一类别匹配。可以通过仅属于目标的位置来预测丢失的对目标。因此,我们仅对具有不同类别的边界框之间重叠的歧义样本进行计数。如表2所示,多级预测将模糊样本的比例从17.84%降低到3.75%。为了进一步说明ground truth boxes的重叠不是基于FCN的FCOS的问题,我们在推断有多少检测到的边界框来自歧义位置时进行计数。我们发现,模棱两可的位置仅产生2.3%的检测到的边界框。通过进一步仅考虑不同类别之间的重叠,该比率降低到1.5%。请注意,这并不意味着在FCOS无效的位置为1.5%。如前所述,这些位置与面积最小的ground truth boxes相关联。因此,这些位置只会有丢失一些较大目标物体的风险。如以下实验所示,它们不会使我们的FCOS劣于anchor based探测器。

FCOS:Fully Convolutional One-Stage Object Detection(论文阅读笔记)_第8张图片

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

4.1.2 有或没有Center-ness

    如前所述,我们提出了“Center-ness”来抑制由远离物体中心的位置产生的低质量检测到的bounding boxes。如表4所示,Center-ness分支可以将AP从33.5%提高到37.1%,从而使anchor free的FCOS优于anchorbased的RetinaNet(35.9%)。请注意,anchor based的RetinaNet使用两个IoU阈值将anchor box标记为正样本/负样本,这也有助于抑制低质量的预测。所提出的Center-ness可以消除两个超参数。但是,在我们初次提交后,它已经表明,同时使用Center-ness和阈值可以导致更好的性能,如表3中的“ + ctr sampling”行所示。您可能会注意到,也可以使用预测的回归向量来计算center-ness ,而无需引入额外的Center-ness分支。但是,如表4所示,根据回归向量计算出的Center-ness无法提高性能,因此需要单独的Center-ness。

FCOS:Fully Convolutional One-Stage Object Detection(论文阅读笔记)_第9张图片

表4 所提出的Center-ness分支在minival split上的消融研究。 “None”表示不使用Center-ness。 “ center-nessy”表示使用根据预测回归向量计算出的center-ness。 “Center-ness+”表示所提出的Center-ness分支来预测的centerness得分。 Center-ness分支可提高所有指标下的检测性能。

4.1.3 FCOS vs. anchor based 检测器

    前面提到的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所示,通过一些几乎免费的改进,我们的anchor free检测器的性能可以大大提高。 鉴于anchor free检测器的优越性能和优点(例如,比anchor based的检测器更简单,超参数更少),我们鼓励社区重新考虑在目标检测中使用anchor框的必要性。

4.2 和SOTA检测器的比较

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

FCOS:Fully Convolutional One-Stage Object Detection(论文阅读笔记)_第10张图片

表5  FCOS与其他现有最好的两阶段或单阶段检测器(单模型和单尺度结果)。 在具有相同backbone上的AP中,FCOS优于anchor based的同类RetinaNet 2.4%。 FCOS还以更低的设计复杂度胜过了最新的anchor free单阶段检测器CornerNet。 有关“改进”的详细信息,请参见表3。

5, RPN 扩展

    到目前为止,我们已经表明,在单阶段检测器中,我们的FCOS可以比anchorbased的同类探测器获得更好的性能。 直观上,FCOS还应该能够在两阶段检测器Faster RCNN中用FPN [14]替换region proposal网络(RPN)中的anchor。 在这里,我们通过实验确认。

    与带有FPN的RPN [14]相比,我们用FCOS中的方法替换了anchor boxes。 此外,我们将GN添加到FPN head的层中,这可以使我们的训练更加稳定。 所有其他设置与官方代码[7]中带有FPN的RPN完全相同。 如表6所示,即使没有所提出的Center-ness分支,我们的FCOS也已经显着改善了AR100和AR1k。 加上所提出的Center-ness分支,FCOS进一步将AR100和AR1k分别提高到52.8%和60.3%,与带FPN的RPN相比,AR100的相对改进为18%,AR1k的绝对改进为3.4%。

FCOS:Fully Convolutional One-Stage Object Detection(论文阅读笔记)_第11张图片

                                                                       FCOS作为RPN vs. 带FPN的RPN。 ResNet-50被用作骨backbone。 FCOS将AR100和AR1k分别提高了8.1%和3.4%。 GN:组归一化。

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

一些实验效果。


 

你可能感兴趣的:(目标检测,算法,FCOS,anchor,free,计算机视觉)