FCOS: Fully Convolutional One-Stage Object Detection

2022-09-03 20:09:13 浏览数 (1)

摘要

我们提出一种全卷积的单阶段目标检测器(FCOS),以逐像素预测的方式解决目标检测问题,类似于语义分割。几乎所有最先进的目标探测器,如RetinaNet、SSD、YOLOv3和Faster R-CNN,都依赖于预定义的锚盒。相比之下,我们提出的探测器FCOS是Anchor Free,以及proposal自由。通过消除预定义的锚盒集合,FCOS完全避免了与锚盒相关的复杂计算,例如在训练过程中计算IoU。更重要的是,我们还避免了所有与锚盒相关的超参数,这些超参数通常对最终检测性能非常敏感。通过唯一的后处理非最大抑制(NMS),使用ResNeXt-64x4d-101的FCOS在单模型和单尺度测试下,AP达到44.7%,超越了以往单阶段检测器。我们首次演示了一个更简单、更灵活的检测框架,从而提高了检测精度。我们希望所提出的FCOS框架可以作为许多其他实例级任务的简单而强大的替代方案。

1、Introduction

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

近年来,全卷积网络在语义分割、深度估计、关键点检测和计数等稠密预测方面取得了巨大的成功。作为高级视觉任务之一,目标检测可能是唯一一个偏离纯卷积逐像素预测框架的任务,这主要是由于锚盒的使用。问这样一个问题是很自然的:我们能否以精确的逐像素预测的方式来解决目标检测,例如,模拟FCN进行语义分割?因此,这些基本的远景任务可以(几乎)统一在一个单一的框架中。我们证明答案是肯定的。此外,我们第一次证明了基于FCN的检测器比基于锚的检测器性能更好。

在文献中,有一些工作试图利用基于FCN的框架进行目标检测,如DenseBox。具体来说,这些基于FCN的框架直接预测了一个4D向量加上一个类类别在每个空间位置上的水平特征地图。如图1(左)所示,4D向量描述了包围框的四个边到位置的相对偏移量。这些框架与用于语义分割的FCNs相似,不同之处在于每个位置都需要回溯4D连续向量。然而,为了处理不同大小的边界框,DenseBox将裁剪和调整训练图像的大小到一个固定的范围。因此,DenseBox必须对图像金字塔进行检测,这与FCN的一次计算所有卷积的思想是相悖的。此外,更重要的是,这些方法主要用于特殊领域的目标检测,如场景文本检测或人脸检测,因为人们认为,这些方法不能很好地应用于具有高度重叠边界框的一般目标检测。如图1(右)所示,高度重叠的边界框导致了难以处理的歧义:对于重叠区域的像素,不清楚对应的哪个边界框会后退。

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

这个新的检测框架有如下的优势:

  • 检测现在与许多其他FCN可解决的任务(如语义分割)统一起来,使得重用来自这些任务的思想更加容易。
  • 检测变得无建议、无锚,大大减少了设计参数的数量。设计参数通常需要启发式调整和许多技巧,以实现良好的性能。因此,我们新的检测框架使检测器,特别是它的训练,变得相当简单。
  • 通过消除锚盒,我们的新检测器完全避免了与锚盒相关的复杂计算,如训练期间的IOU计算和锚盒与地面真值盒之间的匹配,使得训练和测试速度更快,与基于锚盒的检测器相比,训练内存占用更少。
  • 没有附加的功能,我们可以在单级探测器中实现最先进的结果。结果表明,该算法可以作为两级检测器的区域建议网络,其性能明显优于基于锚点的区域建议网络。考虑到更简单的无锚检测器的性能甚至更好,我们鼓励社区重新考虑在目标检测中使用锚盒的必要性,目前锚盒被认为是检测的实际标准。
  • 该检测器可立即扩展到解决其他视觉任务,只需进行最小的修改,包括实例分割和关键点检测。我们认为,这种新方法可以作为许多实例预测问题的新基线。

2、Related Work

Anchor-based Detectors:基于锚点的检测器继承了传统滑动窗口和基于建议的检测器(如Fast R-CNN)的思想。在基于锚点的检测器中,锚点盒可以看作是预先定义的滑动窗口或建议,这些滑动窗口或建议被划分为正补丁或负补丁,并通过额外的偏移量回归来细化边界盒位置的预测。因此,这些检测器中的锚盒可视为训练样本。与之前的Fast RCNN等检测器反复计算每个滑动窗口/提案的图像特征不同,锚盒利用CNNs的特征图,避免了重复的特征计算,大大加快了检测过程。Faster R-CNN在其RPNs、SSD和YOLOv2中推广了锚盒的设计,成为现代检测器的约定。但是,如上所述,锚盒会导致过多的超参数,为了获得良好的性能,通常需要仔细地调整这些超参数。除了上述描述锚点形状的超参数外,基于锚点的检测器还需要其他超参数将每个锚点盒标记为正样本、忽略样本或负样本。在以前的工作中,他们经常使用锚盒和地面真值盒之间的交集(IOU)来确定锚盒的标签(例如,如果锚盒的IOU在[0:5;1])。这些超参数对最终精度有很大影响,需要进行启发式调优。同时,这些超参数是针对检测任务的,使得检测任务偏离了用于语义分割等其他密集预测任务的整洁的全卷积网络架构。

Anchor-free Detectors:最流行的无锚检测器可能是YOLOv1。YOLOv1预测的是物体中心附近点的边界框,而不是锚框。只有靠近中心的点被使用,因为它们被认为能够产生更高质量的检测。但是,由于只使用靠近中心的点来预测边界盒,YOLOv1的召回率较低,正如YOLOv2中所提到的那样。因此,YOLOv2也使用了锚盒。与YOLOv1相比,FCOS利用Ground Truth包围盒中的所有点来预测包围盒,并通过提出的“中心度”分支来抑制低质量的检测到的包围盒。因此,FCOS能够提供类似的召回与锚基检测器显示在我们的实验。CornerNet是最近提出的一种单级无锚检测器,它检测边界框的一对角,并将它们分组形成最终检测到的边界框。角落网需要更复杂的后处理来分组属于同一实例的角落对。为了分组,我们学习了一个额外的距离度量。另一类基于DenseBox的无锚探测器。由于处理重叠边界框的困难和召回率相对较低,检测器家族被认为不适合通用目标检测。在这项工作中,我们证明了这两个问题可以大大缓解与多层次的FPN预测。此外,我们还表明,与我们提出的中心度分支,更简单的探测器可以实现甚至更好的检测性能比基于锚的对应。

3、Our Approach

在本节中,我们首先以逐像素预测的方式重新规划对象检测。接下来,我们展示了如何利用多级预测来提高召回率并解决由于重叠边界框而产生的歧义。最后,我们提出了我们的“中心”分支,它有助于抑制低质量的检测边界框,并大大提高了整体性能。

3.1、全卷积一阶段检测器

F_{i} in R^{H times W times C} 为主干CNN第i层上的feature maps, s为直到该层的总步幅。输入图像的Ground Truth边界框定义为left{B_{i}right} ,其中B_{i}=left(x_{0}^{(i)}, y_{0}^{(i)}, x_{1}^{(i)}, y_{1}^{(i)}, c^{(i)}right)left(x_{0}^{(i)}, y_{0}^{(i)}right)left(x_{1}^{(i)}, y_{1}^{(i)}right) 表示边界框的左上角和右下角的坐标。

c^{(i)}是包围框中的目标所属的类。C是类的数量,对于MS-COCO数据集是80。

在特征图F_i 上的每个位置(x,y),我们可以将它映射回输入图像left(leftlfloorfrac{s}{2}rightrfloor x s,leftlfloorfrac{s}{2}rightrfloor y sright) ,和位置(x,y)感受野的中心靠近。与基于锚点的检测器不同,基于锚点的检测器将输入图像上的位置作为(多个)锚点盒的中心,并将这些锚点盒作为参考对目标边界盒进行回退,而我们则直接对该位置的目标边界盒进行回退。也就是说,在基于锚点的检测器中,我们的检测器直接将位置视为训练样本,而不是锚点盒,这与语义分的FCNs是一样的。

具体来说,如果位置(x,y)落入任何ground-truth box被认为是正样本,位置的类标签c^* 是ground-truth框的类标签。否则就是一个负样本,并且c^*=0 (背景类)。除了用于分类的标签外,我们还有一个4D的实向量t^{*}=left(l^{*}, t^{*}, r^{*}, b^{*}right) 被显示为位置的回归目标。这里显示的是l, t, r和b从位置到边界框的四个边的距离,如图1(左)所示。如果一个位置落在多个边界框中,它被认为是一个模糊的样本。我们简单地选择最小面积的边界框作为它的回归目标。在下一节中,我们将展示多级预测可以显著减少模糊样本的数量,从而几乎不影响检测性能。形式上,如果位置(x,y)与边界框B_i 相关联,则该位置的训练回归目标可以表示为:

begin{aligned} l^{*} &=x-x_{0}^{(i)}, quad t^{*}=y-y_{0}^{(i)} \ r^{*} &=x_{1}^{(i)}-x, quad b^{*}=y_{1}^{(i)}-y end{aligned}

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

网络输出:对应于训练目标,我们的网络的最后一层预测分类标签的80D向量p和4D向量t = (l;t;r;b)边界框坐标。在RetinaNet之后,我们不再训练多类分类器,而是训练C个二进制分类器。与RetinaNet类似,我们在骨干网的feature map之后分别添加了四个convolutional layer来进行分类和regression branch。此外,由于回归目标总是正的,我们使用exp(x)将任意实数映射到(0;1)在回归分支的顶部。值得注意的是,FCOS的网络输出变量是基于锚点的检测器的9倍,每个位置有9个锚点盒。

损失函数:

我们将训练损失函数定义如下:

begin{aligned} Lleft(left{boldsymbol{p}_{x, y}right},left{boldsymbol{t}_{x, y}right}right) &=frac{1}{N_{operatorname{pos}}} sum_{x, y} L_{mathrm{cls}}left(boldsymbol{p}_{x, y}, c_{x, y}^{*}right) \ & frac{lambda}{N_{operatorname{pos}}} sum_{x, y} mathbb{1}_{left{c_{x, y}^{*}>0right}} L_{mathrm{reg}}left(boldsymbol{t}_{x, y}, boldsymbol{t}_{x, y}^{*}right) end{aligned}

其中L_{cls}为Focal Loss,L_{text {reg }} 是UnitBox定义的IOU loss。N_{pos} 代表正样本的数量,lambda 取为1来作为L_{reg} 的平衡权重。求和是对特征图F_i 上的所有位置进行计算。mathbb{1}_{left{c_{i}^{*}>0right}} 是指示函数,如果c_{i}^{*}>0 就取为1。

推断:FCOS的推论很简单。对于给定的输入图像,通过网络进行转发,得到特征图Fi中每个位置的分类分数p_{x,y} 和回归预测t_{x,y} 。在[15]之后,我们选择p_{x, y}>0.05 作为正样本的位置,并将Eq.(1)转化为预测的边界框。

3.2、用FPN和FCOS结合起来进行多层预测

在这里,我们证明了两个可能的问题的FCOS可以解决多层次预测与FPN。1)在CNN中,最终feature maps的大跨度(如16×)会导致相对较低的最佳召回率。对于基于锚点的检测器,由于大跨度而导致的低召回率可以通过降低正锚点盒所需的IOU分数得到一定程度的补偿。对于FCOS,乍一看,人们可能会认为BPR比基于锚点的检测器低得多,因为不可能回忆起最终特征图上没有位置编码的对象,因为距离太大。这里,我们经验表明,即使是一个大跨步,FCN-based外交部仍能够产生良好的BPR,它甚至可以比的BPR anchor-based探测器RetinaNet[15]官方实现Detectron(参见表1)。因此,对FCOS来讲BRP确实不是一个问题。此外,利用多级FPN预测,BPR可以进一步改进,以匹配基于主播的RetinaNet所能达到的最佳BPR。2) ground-truth框中的重叠会导致难以处理的歧义,即,重叠区域内的哪个边界框应该后退?这种模糊性导致基于FCN的检测器性能下降。结果表明,与基于锚点的检测器相比,基于模糊神经网络的检测器具有更好的性能。

在FPN之后,我们在不同层次的feature map上检测不同大小的对象。具体来说,我们使用了五个层次的特征图,分别定义为P3、P4、P5、P6、P7。P3、P4、P5由主干CNNs的feature maps C3、C4、C5生成,然后是一个1×1的卷积层,在FPN中采用自顶向下的连接方式,如图2所示。P6和P7分别在P5和P6上应用一个stride为2的卷积层生成。因此,P3、P4、P5、P6和P7的特征层分别有8、16、32、64和128个跨越。

与基于锚点的检测器将不同大小的锚点盒分配到不同的特征层不同,我们直接限制每个层的边界盒回归范围。更具体地说,我们首先计算出各个位置在所有特性级别上的回归目标l^{*}, t^{*}, r^{*}, b^{*} 。接下来,如果一个位置满足max left(l^{*}, t^{*}, r^{*}, b^{*}right)>m_{i}max left(l^{*}, t^{*}, r^{*}, b^{*}right)<m_{i-1} ,它被设置为一个负样本,因此不再需要返回一个边界框。这里mi是feature level i需要后退的最大距离。在本工作中,分别将m2、m3、m4、m5、m6、m7设置为0、64、128、256、512、1。因为不同大小的目标被分配到不同的特征层,并且大部分重叠发生在大小相当不同的目标之间。如果一个位置,即使使用了多层预测,仍然被分配给一个以上的地面真相盒,我们简单地选择面积最小的地面真相盒作为它的目标。实验结果表明,多层预测可以在很大程度上缓解上述模糊性,使基于频域神经网络的探测器达到与基于锚点的检测器相同的水平。最后,根据FPN和RetinaNet,我们在不同的特征层之间共享头部,不仅使检测器的参数效率更高,而且提高了检测性能。然而,我们观察到需要不同的特征层来回归不同的尺寸范围(例如,尺寸范围是[0;为P3和[64;因此,对于不同的feature level使用相同的head是不合理的。因此,我们没有使用标准的exp(x),而是使用exp(6)和一个可训练的标量si来自动调整特征水平Pi的指数函数的基数,这稍微提高了检测性能。

3.3、FCOS的中心凸端

在FCOS中使用多级预测后,其性能与基于锚的检测器仍有一定差距。我们观察到,这是由于许多低质量的预测边界盒产生的位置远离一个物体的中心。我们提出了一个简单而有效的策略来抑制这些低质量的检测边界框,而不引入任何超参数。具体来说,我们添加一个单层分支,与分类分支并行(如图2所示),以预测位置2的“中心度”。中心度描述了该位置所负责的目标到中心的归一化距离,如图7所示。已知在一个位置上的回归目标l^{*}, t^{*}, r^{*}, b^{*} ,中心度目标被定义为,

text { centerness* }=sqrt{frac{min left(l^{*}, r^{*}right)}{max left(l^{*}, r^{*}right)} times frac{min left(t^{*}, b^{*}right)}{max left(t^{*}, b^{*}right)}}

我们用平方根来减缓中心的衰减。中心度范围从0到1,因此用二进制交叉熵(BCE)损失进行训练。将损失添加到损失函数Eq.(2)中,在进行测试时,将预测的中心度与相应的分类分数相乘,计算最终得分(用于对检测到的边界框进行排序)。因此,中心度可以降低远离对象中心的边界框的得分。最终的非最大抑制(non-maximum suppression, NMS)过程可能会过滤掉这些低质量的边界框,从而极大地提高检测性能。中心度的另一种选择是仅使用ground-truth边界框的中心部分作为正样本,并附加一个额外超参数的代价,如文献[12,33]所示。在我们提交之后,在[1]中已经显示,这两种方法的结合可以获得更好的性能。实验结果见表3。

4、实验

我们的实验是在大尺度检测基准COCO上进行的。按照惯例FPN和RetinaNet,我们使用COCO trainval35k split (115K图像)进行训练,使用minival split (5K图像)作为消融研究的验证。我们通过将检测结果上传到评估服务器来报告我们在测试dev split (20K图像)上的主要结果。

训练细节:除非特别说明,我们使用ResNet-50作为骨干网络,并使用与RetinaNet相同的超参数。具体来说,我们的网络使用随机梯度下降(SGD)进行90K迭代训练,初始学习率为0.01,最小批量为16张图像。在迭代60K和80K时,学习率分别降低了10倍。重量衰减和动量分别设置为0.0001和0.9。我们用在ImageNet上预先训练的权值初始化我们的骨干网络。对于新添加的层,我们在ReitaNet中初始化它们。除非指定,否则将把输入图像的大小调整为其短边为800,长边小于或等于1333。

推断细节:首先通过网络对输入图像进行转发,得到带有预测类的预测边界框。除非特别说明,以下的后处理与RetinaNet完全相同,我们直接利用了与RetinaNet相同的后处理超参数。我们使用与训练中相同大小的输入图像。我们假设,如果我们仔细调整超参数,检测器的性能可能会进一步提高。

4.1、消融研究

4.1.1、用FPN进行多层预测

如前所述,基于fcn的检测器的主要关注点是较低的召回率和由于ground-truth边界框重叠而导致的模糊样本。在本节中,我们证明了这两个问题都可以通过多级预测来解决。

最佳的可能召回:基于FCN的检测器的第一个问题是,它可能无法提供良好的最佳可能召回(BPR)。在本节中,我们将说明这种关注是不必要的。在这里,BPR被定义为一个检测器最多能回忆起的地面真值盒数与所有Ground Truth盒数之比。如果一个ground-truth盒子被分配给至少一个样本,则认为该盒子被召回。在训练期间,在FCOS中的一个位置或在基于锚的探测器中的一个锚盒)。如表1所示,只有feature level P4, stride为16(即, FCOS已经可以获得95:55%的BPR。BPR远远高于官方实施检测器中基于锚定的探测器RetinaNet的90.92%的BPR,其中仅使用IOU≥0.4的低质量匹配。在FPN的帮助下,FCOS可以实现98.40%的BPR,非常接近基于anchor的检测器通过使用所有低质量的匹配所能实现的最佳BPR。由于目前检测器的最佳召回率远低于90%,FCOS与基于anchor的检测器之间的小BPR差距(小于1%)实际上并不会影响检测器的性能。表3也证实了这一点,在相同的训练和测试设置下,FCOS的AR效果甚至比基于anchor的同类产品更好。因此,对低BPR的关注可能是不必要的。

模糊不清的样本:基于FCNbased的检测器的另一个问题是,由于ground-truth边界框的重叠,可能会产生大量的模糊样本,如图1(右)所示。在表2中,我们给出了模糊样本与所有正样本在最小分裂上的比值。从表中可以看出,如果不使用FPN,只使用feature level P4,确实存在大量的二义性样本(23:16%)。但是,使用FPN,这个比率可以显著降低到7.14%,因为大多数重叠的目标被分配到不同的特性级别。此外,我们认为由同类物体重叠而产生的模糊样本无关紧要。例如,如果具有相同类的目标A和B有重叠,那么无论重叠中的哪个目标的位置预测都是正确的,因为它总是与相同的类别匹配。丢失的目标可以通过只属于它的位置来预测。因此,我们只计算不同类别的边界框重叠中的模糊样本。如表2所示,多级预测将模糊样本的比例从17:84%降低到3:75%。为了进一步证明在基于fcn的FCOS中,ground truth box中的重叠不是一个问题,我们在推断有多少检测到的边界盒来自于模糊位置时进行了计数。我们发现只有2:3%检测到的边界框是由模糊的位置产生的。进一步只考虑不同类别之间的重叠,比例降低到1.5%。注意,这并不意味着有1.5%的地方FCOS不能工作。如前所述,这些位置与面积最小的地面真相框相关联。因此,这些位置只承担丢失一些较大对象的风险。在接下来的实验中,它们并没有使我们的FCOS比基于锚的检测器差。

4.1.2、有或者没有中心

如前所述,我们提出“中心度”来抑制由远离对象中心的位置产生的低质量检测到的边界盒。如表4所示,中心度分支可以将AP从33.5%提升到37.1%,使得无锚FCOS的表现优于基于锚的RetinaNet(35.9)。请注意,基于锚点的RetinaNet使用两个IoU阈值将锚点盒标记为阳性/阴性样本,这也有助于抑制低质量的预测。提出的中心度可以消除两个超参数。然而,在我们最初提交之后,它表明同时使用中心度和阈值可以获得更好的性能,如行“ ctr”所示。“抽样”见表3。可以注意到,不用引入额外的中心度分支,也可以用预测的回归向量计算中心度。但是,如表4所示,由回归向量计算得到的中心度并不能提高性能,因此需要分离中心度。

4.1.3、FCOS和基于anchor的检测器

上述的FCOS与标准的RetinaNet有两个小的不同。1)除了最后的预测层外,我们在新增的卷积层中使用了Group Normalization (GN),这使得我们的训练更加稳定。2)我们使用P5来生产标准的RetinaNet中的P6和P7,而不是C5。我们注意到,使用P5可以略微提高性能。为了证明我们的FCOS可以作为基于锚点的探测器的简单而强大的替代品,为了公平的比较,我们去掉了GN(为了防止其爆炸,对梯度进行了裁剪),并在我们的探测器中使用C5。如表3所示,在完全相同的设置下,我们的FCOS仍然优于基于anchor的检测器(36.3% vs 35.9%)。此外,值得注意的是,我们直接使用的所有超参数(如学习率,NMS阈值等)从RetinaNet,这是优化了基于锚的探测器。我们认为,如果对超参数进行调整,FCOS的性能还可以进一步提高。值得注意的是,通过表3所示的一些几乎免费的改进,我们的无锚检测器的性能可以大幅度提高。鉴于无锚检测器的优越性能和优点(例如,它比基于锚的检测器更简单、超参数更少),我们鼓励社区重新考虑在目标检测中使用锚盒的必要性。

4.2、和最先进的检测器的比较

在MS-COCO基准的test - dev split上,我们将FCOS与其他最先进的目标检测器进行了比较。在这些实验中,我们在训练期间随机缩放图像的短边,范围从640到800,迭代次数翻倍到180K(学习速率变化点按比例缩放)。其他设置与表3中AP 37.1%的模型完全相同。如表5所示,在使用ResNet-101-FPN时,我们的FCOS在AP中的表现要比具有相同主干的RetinaNet高出2.4%。据我们所知,这是第一次没有任何附加功能的无锚探测器比基于锚的探测器表现出更大的优势。FCOS的性能也远远超过了其他基于两级主播的探测器,比如Faster R-CNN。以ResNeXt-64x4d-101-FPN为基干,FCOS的AP达到43.2%,大大超过目前最先进的无锚检测器的RetinaNet,同时也简单得多。注意,角落网需要将角落与嵌入向量分组,这需要对检测器进行特殊设计。因此,我们认为FCOS更有可能成为目前主流的基于主播的探测器的强大而简单的替代品。此外,表3中改进的FCOS在单模型和单尺度测试下,AP达到了44:7%,大大超过了之前的检测器。

5、扩展到区域建议

到目前为止,我们已经证明,在一个单级检测器,我们的FCOS可以实现甚至更好的性能比锚基的同行。直观地说,FCOS还应该能够用两级检测器中Faster RCNN中的FPN替换区域建议网络(RPN)中的锚盒。在这里,我们通过实验证实了这一点。与FPN的RPN相比,我们用FCOS中的方法代替了锚盒。在FPN头的层中加入GN,使训练更加稳定。所有其他设置与官方代码中带有FPN的rpn完全相同。如表6所示,即使没有提出的中心度分支,我们的FCOS已经显著地改进了AR100和AR1k。通过提出的中心度分支,FCOS进一步将AR100和AR1k分别提高到52:8%和60:3%,相对于FPN的RPNs AR100提高了18%,相对于FPN的RPNs AR1k提高了3.4%。

6、结论

我们提出了一个无锚和无提议的单点检测FCOS。实验结果表明,FCOS与目前流行的基于主播的单点检测系统(包括RetiaNet、YOLO和SSD)相比,具有较好的性能,但设计复杂度要低得多。FCOS完全避免了与锚盒相关的所有计算和超参数,以逐像素预测的方式解决了目标检测,类似于语义分割等其他密集预测任务。FCOS还在单级检测器中实现了最先进的性能。我们也证明了FCOS可以作为RPNs在两级检测器中Faster R-CNN中使用,并且在很大程度上优于其RPNs。鉴于其有效性和高效性,我们希望FCOS能够成为目前主流检测器的一个强大而简单的替代品。我们也相信FCOS可以扩展到解决许多其他的实例级识别任务。

0 人点赞