图像 检测 - FCOS: Fully Convolutional One-Stage Object Detection (ICCV 2019)

FCOS: Fully Convolutional One-Stage Object Detection - 全卷积一阶段目标检测(ICCV 2019)

  • 摘要
  • 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与基于锚的检测器
    • 4.2 与最先进检测器的比较
  • 5. 区域提案网络的扩展
  • 6. 结论
  • References

声明:此翻译仅为个人学习记录

文章信息

  • 标题:FCOS: Fully Convolutional One-Stage Object Detection (ICCV 2019)
  • 作者:Zhi Tian, Chunhua Shen*, Hao Chen, Tong He (*Corresponding author)
  • 文章链接:https://openaccess.thecvf.com/content_ICCV_2019/papers/Tian_FCOS_Fully_Convolutional_One-Stage_Object_Detection_ICCV_2019_paper.pdf
  • 文章代码:https://github.com/tianzhi0549/FCOS

摘要

  我们提出了一种全卷积单级目标检测器(FCOS),以每像素预测的方式解决目标检测,类似于语义分割。几乎所有最先进的目标检测器,如RetinaNet、SSD、YOLOv3和Faster R-CNN,都依赖于预定义的锚框。相比之下,我们提出的检测器FCOS是无锚框的,也是无提案的。通过消除预定义的锚框集合,FCOS完全避免了与锚框相关的复杂计算,例如在训练期间计算重叠。更重要的是,我们还避免了与锚框相关的所有超参数,这些参数通常对最终检测性能非常敏感。凭借唯一的后处理非最大值抑制(NMS),具有ResNeXt-64x4d-101的FCOS在单模型和单尺度测试的AP中实现了44.7%,超过了以前的单级检测器,其优点是简单得多。我们首次展示了一种更简单、更灵活的检测框架,从而提高了检测精度。我们希望所提出的FCOS框架可以作为许多其他实例级任务的简单而强大的替代方案。代码位于:tinyurl.com/FCOSv1。

1. 引言

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

在这里插入图片描述

图1–如左图所示,FCOS通过预测4D向量 ( l , t , r , b ) (l,t,r,b) (l,t,r,b)来工作,该向量对每个前景像素处的边界框的位置进行编码(在训练期间由真值边界框信息监督)。右图显示,当一个位置位于多个边界框中时,该位置应回归的边界框可能不明确。

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

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

  在续集中,我们仔细研究了这个问题,并表明有了FPN,这种模糊性可以在很大程度上消除。因此,我们的方法已经可以获得与传统的基于锚的检测器相当的检测精度。此外,我们观察到,我们的方法可能会在远离目标目标中心的位置产生许多低质量的预测边界框。为了抑制这些低质量的检测,我们引入了一种新的“中心度”分支(仅一层)来预测像素与其相应边界框中心的偏差,如等式(3)所定义。然后使用该分数来降低低质量检测到的边界框的权重,并在NMS中合并检测结果。简单而有效的中心度分支允许基于FCN的检测器在完全相同的训练和测试设置下优于基于锚的检测器。

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

  • 检测现在与许多其他FCN可解决的任务(如语义分割)相统一,从而更容易重用这些任务中的思想。

  • 检测变得无提案和无锚,这显著减少了设计参数的数量。设计参数通常需要启发式调整,为了获得良好的性能,需要使用许多技巧。因此,我们的新检测框架使检测器,特别是其训练,变得相当简单。

  • 通过消除锚框,我们的新检测器完全避免了与锚框相关的复杂计算,如IOU计算以及训练期间锚框和真值框之间的匹配,从而使训练和测试更快,并且比基于锚的检测器的训练内存占用更少。

  • 在没有花里胡哨技巧的情况下,我们在单级检测器中获得了最先进的结果。我们还表明,所提出的FCOS可以用作两阶段检测器中的区域提案网络(RPN),并且可以实现比基于锚的RPN更好的性能。考虑到更简单的无锚检测器的更好性能,我们鼓励社区重新思考锚框在目标检测中的必要性,锚框目前被认为是事实上的检测标准。

  • 所提出的检测器可以立即扩展到解决其他视觉任务,只需最少的修改,包括实例分割和关键点检测。我们相信,这种新方法可以成为许多实例预测问题的新基线。

2. 相关工作

  基于锚的检测器。基于锚点的检测器继承了传统滑动窗口和基于提案的检测器(如Fast R-CNN[6])的思想。在基于锚的检测器中,锚框可以被视为预定义的滑动窗口或提案,其被分类为正或负块,具有额外的偏移回归来细化边界框位置的预测。因此,这些检测器中的锚框可以被视为训练样本。与Fast RCNN等以前的检测器重复计算每个滑动窗口/提案的图像特征不同,锚框利用了CNN的特征图,避免了重复的特征计算,大大加快了检测过程。Faster R-CNN在其RPN[24]、SSD[18]和YOLOv2[22]中推广了锚框的设计,并已成为现代检测器的惯例。

  然而,如上所述,锚框会导致过多的超参数,这些超参数通常需要仔细调整才能获得良好的性能。除了上述描述锚形状的超参数外,基于锚的检测器还需要其他超参数来将每个锚框标记为正样本、忽略样本或负样本。在以前的工作中,他们经常使用锚框和真值框之间的交并比(IOU)来确定锚框的标签(例如,如果其IOU在[0.5,1]中,则为正锚)。这些超参数对最终精度有很大影响,需要启发式调整。同时,这些超参数是特定于检测任务的,使得检测任务偏离了用于其他密集预测任务(如语义分割)的整洁的全卷积网络架构。

在这里插入图片描述

图2–FCOS的网络架构,其中C3、C4和C5表示主干网络的特征图,P3至P7是用于最终预测的特征级别。H×W是特征图的高度和宽度。‘/s’(s=8,16,…,128)是该级别的特征图对输入图像的下采样率。例如,所有的数字都是用800×1024的输入来计算的。

  无锚检测器。最流行的无锚检测器可能是YOLOv1[21]。YOLOv1不是使用定位框,而是在目标中心附近的点预测边界框。仅使用中心附近的点,因为它们被认为能够产生更高质量的检测。然而,由于只使用中心附近的点来预测边界框,YOLOv1的召回率较低,如YOLOv2[22]所述。因此,YOLOv2[22]也采用了锚框。与YOLOv1相比,FCOS利用真值边界框中的所有点来预测边界框,并且所提出的“中心度”分支抑制了低质量检测到的边界框。因此,如我们的实验所示,FCOS能够提供与基于锚的检测器类似的召回。

  CornerNet[13]是最近提出的一种单级无锚检测器,它检测边界框的一对角,并将它们分组以形成最终检测到的边界框。CornerNet需要更复杂的后处理来对属于同一实例的角对进行分组。为了分组的目的,学习了一个额外的距离度量。

  另一类无锚检测器如[32]是基于DenseBox[12]。由于难以处理重叠的边界框并且召回率相对较低,检测器家族被认为不适合于一般目标检测。在这项工作中,我们表明,通过多级FPN预测,这两个问题都可以得到很大程度的缓解。此外,我们还与我们提出的中心度分支一起表明,与基于锚的检测器相比,简单得多的检测器可以实现更好的检测性能。

3. 我们的方法

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

3.1 全卷积一阶目标检测器

  设 F i ∈ R H × W × C F_i∈R^{H×W×C} FiRH×W×C是主干CNN的第i层的特征图,s是直到该层的总步幅。输入图像的真值边界框被定义为{Bi},其中 B i = ( x 0 ( i ) , y 0 ( i ) , x 1 ( i ) y 1 ( i ) , c ( i ) ) ∈ R 4 × 1 , 2 … C B_i=(x_0^{(i)},y_0^{(i)},x_1^{(i)}y_1^{(i)},c^{(i)})∈R^4×{1,2…C} Bi=(x0(i),y0(i),x1(i)y1(i),c(i))R4×1,2C。这里, ( 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 C C是类的数量,对于MS-COCO数据集为80。

  对于特征图Fi上的每个位置 ( x , y ) (x,y) (x,y),我们可以将其映射回输入图像上,作为 ( ⌊ s 2 ⌋ + x s , ⌊ s 2 ⌋ + y s ) (\lfloor\frac{s}{2}\rfloor+xs,\lfloor\frac{s}{2}\rfloor+ys) (⌊2s+xs,2s+ys),其靠近位置 ( x , y ) (x,y) (x,y)的感受野的中心。基于锚的检测器将输入图像上的位置视为(多个)锚框的中心,并以这些锚框为参考回归目标边界框,与此不同,我们直接回归该位置的目标边界框。换句话说,我们的检测器直接将位置视为训练样本,而不是基于锚的检测器中的锚框,这与用于语义分割的FCN[20]相同。

  具体而言,如果位置 ( x , y ) (x,y) (x,y)落入任何真值框中,并且该位置的类标签 c ∗ c^* c是真值框的类标签,则将其视为正样本。否则,它是一个负样本, c ∗ = 0 c^*=0 c=0(背景类)。除了分类标签外,我们还有一个4D实向量 t ∗ = ( l ∗ , t ∗ , r ∗ , b ∗ ) t^*=(l^*,t^*,r^*,b^*) t=(l,t,r,b)作为该位置的回归目标。这里, l ∗ l^* l t ∗ t^* t r ∗ r^* r b ∗ b^* b是从该位置到边界框四边的距离,如图1(左)所示。如果一个位置落入多个边界框中,则将其视为不明确的样本。我们只需选择面积最小的边界框作为其回归目标。在下一节中,我们将展示,通过多级预测,可以显著减少模糊样本的数量,因此它们几乎不会影响检测性能。形式上,如果位置 ( x , y ) (x,y) (x,y)与边界框 B i B_i Bi相关联,则该位置的训练回归目标可以公式化为,

在这里插入图片描述

值得注意的是,FCOS可以利用尽可能多的前景样本来训练回归器。它不同于基于锚的检测器,后者只考虑和真值框具有足够高IOU的锚框作为阳性样本。我们认为,这可能是FCOS优于基于锚的同行的原因之一。

  网络输出。对应于训练目标,我们网络的最后一层预测分类标签的80D向量 p \textbf{p} p和4D向量 t = ( l , t , r , b ) \textbf{t}=(l,t,r,b) t=(l,t,r,b)边界框坐标。根据[15],我们训练C二进制分类器,而不是训练多类分类器。与[15]类似,我们在主干网络的特征图之后分别添加了四个卷积层,用于分类和回归分支。此外,由于回归目标总是正的,我们使用 e x p ( x ) exp(x) exp(x)将任何实数映射到回归分支顶部的 ( 0 , ∞ ) (0,∞) (0,)。值得注意的是,FCOS的网络输出变量比每个位置有9个锚框的流行的基于锚的检测器[15,24]少9倍。

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

在这里插入图片描述

其中 L c l s L_{cls} Lcls是[15]中的焦点损失, L r e g L_{reg} Lreg是UnitBox[32]中的IOU损失。 N p o s N_{pos} Npos表示阳性样本的数量,本文中的λ为1是 L r e g L_reg Lreg的平衡权。在特征图 F i F_i Fi上的所有位置上计算总和。 1 ( c i ∗ > 0 ) \Bbb{1}_{(c^*_i>0)} 1(ci>0)是指标函数,如果 c i ∗ > 0 c^*_i>0 ci>0则为1,否则为0。

  推理。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 > 0.05 p_{x,y}>0.05 px,y>0.05的位置作为正样本,并倒转方程(1)获得预测的边界框。

3.2 FCOS的FPN多级预测

  在这里,我们展示了如何通过FPN的多级预测来解决所提出的FCOS的两个可能问题[14]。1) CNN中最终特征图的大跨步(例如,16×)可能导致相对较低的最佳可能召回率(BPR)(检测器可以达到的召回率的上限)。对于基于锚的检测器,由于大跨步导致的低召回率可以通过降低正锚框所需的IOU分数来在一定程度上得到补偿。对于FCOS,乍一看,人们可能会认为BPR可能比基于锚的检测器低得多,因为由于步长较大,不可能回忆起最终特征图上没有位置编码的目标。在这里,我们的经验表明,即使步长很大,基于FCN的FCOS仍然能够产生良好的BPR,并且它甚至可以比Detectron[7]官方实现中的基于锚的检测器RetinaNet[15]的BPR更好(参见表1)。因此,业务流程再造其实并非FCOS的问题。此外,通过多级FPN预测[14],可以进一步改进BPR,以匹配基于锚的RetinaNet可以实现的最佳BPR。2) 真值框中的重叠可能会导致难以处理的歧义,即重叠中的位置应该回归到哪个边界框?这种模糊性导致基于FCN的检测器的性能下降。在这项工作中,我们证明了多级预测可以极大地解决模糊性,并且与基于锚的检测器相比,基于FCN的检测器可以获得同等的、有时甚至更好的性能。

  根据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_3 P3 P 4 P_4 P4 P 5 P_5 P5由主干CNN的特征图 C 3 C_3 C3 C 4 C_4 C4 C 5 C_5 C5产生,然后是[14]中具有自上而下连接的1×1卷积层,如图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。

  与基于锚的检测器不同,后者将具有不同大小的锚框分配给不同的特征级别,我们直接限制每个级别的边界框回归范围。更具体地说,我们首先计算所有特征级别上每个位置的回归目标 l ∗ l^* l t ∗ t^* t r ∗ r^* r b ∗ b^* b。接下来,如果一个位置满足 m a x ( l ∗ , t ∗ , r ∗ , b ∗ ) > m i max(l^*,t^*,r^*,b^*)>m_i max(l,t,r,b)>mi m a x ( l ∗ , t ∗ , r ∗ , b ∗ ) < m i − 1 max(l^*,t^*,r^*,b^*)<m_{i−1} max(l,t,r,b)<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]),因此,对不同的特征级别使用相同的头是不合理的。因此,我们使用具有可训练标量 s i s_i si e x p ( s i x ) exp(s_ix) exp(six)来自动调整特征水平 P i P_i Pi的指数函数的基,而不是使用标准 e x p ( x ) exp(x) exp(x),这略微提高了检测性能。

3.3 FCOS中心度

  在FCOS中使用多级预测后,FCOS与基于锚点的检测器之间仍然存在性能差距。我们观察到,这是由于远离目标中心的位置产生了许多低质量的预测边界框。

在这里插入图片描述

图3—中心度。红色、蓝色和其他颜色分别表示1、0和它们之间的值。中心度由等式(3)计算,并且随着位置偏离目标中心而从1衰减到0。在测试时,将网络预测的中心度与分类分数相乘,从而可以降低由远离目标中心的位置预测的低质量边界框的权重。

  我们提出了一种简单而有效的策略来抑制这些低质量检测到的边界框,而不引入任何超参数。具体来说,我们添加了一个单层分支,与分类分支平行(如图2所示),以预测位置的“中心度”(首次提交后,已经表明,如果中心度与回归分支而不是分类分支平行,MS-COCO上的AP可以得到改善。然而,除非另有规定,我们仍然使用图2中的配置。)。中心度描述了从该位置到该位置负责的目标中心的归一化距离,如图3所示。给定一个位置的回归目标 l ∗ l^* l t ∗ t^* t r ∗ r^* r b ∗ b^* b,中心度目标定义为,

在这里插入图片描述

我们在这里使用sqrt来减缓中心度的衰减。中心度的范围从0到1,因此使用二进制交叉熵(BCE)损失进行训练。将损耗添加到损耗函数公式(2)中。测试时,通过将预测的中心度与相应的分类得分相乘来计算最终得分(用于对检测到的边界框进行排名)。因此,中心度可以降低远离目标中心的边界框的分数的权重。因此,这些低质量的边界框很有可能被最终的非最大值抑制(NMS)过程过滤掉,显著提高了检测性能。

  中心度的另一种选择是仅使用真值边界框的中心部分作为正样本,代价为一个额外的超参数,如工作[12,33]所示。在我们提交之后,[1]中已经表明,两种方法的组合可以获得更好的性能。实验结果见表3。

4. 实验

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

  训练详细信息。除非另有说明,否则ResNet-50[8]将用作我们的主干网络,并使用与RetinaNet[15]相同的超参数。具体而言,我们的网络使用随机梯度下降(SGD)进行90K迭代训练,初始学习率为0.01,并且是16幅图像的小批量。在迭代60K和80K时,学习率分别降低了10倍。权重衰减和动量分别设置为0.0001和0.9。我们使用在ImageNet[4]上预先训练的权重初始化主干网络。对于新添加的层,我们如[15]中所述对它们进行初始化。除非指定,否则调整输入图像的大小,使其短边为800,长边小于或等于1333。

在这里插入图片描述

表1—在各种匹配规则下,基于锚点的RetinaNet的BPR和基于FCN的FCOS的BPR。基于FCN的FCOS与基于最佳锚点的FCOS具有非常相似的召回率,并且召回率远高于Detectron[7]中的官方实施,后者仅考虑IOU≥0.4的低质量匹配。

在这里插入图片描述

表2—Amb.samples表示不明确样本与所有阳性样本的比率。Amb.samples(diff.)是相似的,但排除了重叠区域中的那些模糊样本,但属于同一类别,因为在推理时模糊的类型无关紧要。我们可以看到,对于FPN,这种不明确样本的百分比很小(3.75%)。

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

4.1 消融研究

4.1.1 FPN多级预测

如前所述,基于FCN的检测器的主要问题是低召回率和由于真值边界框中的重叠而导致的模糊样本。在本节中,我们展示了通过多层次预测可以在很大程度上解决这两个问题。

  最佳召回。关于基于FCN的检测器的第一个问题是,它可能无法提供良好的最佳召回(BPR)。在本节中,我们表明这种担忧是没有必要的。这里,BPR被定义为检测器最多可以召回的真值框的数量除以所有真值框。如果在训练期间将真值框分配给至少一个样本(即FCOS中的一个位置或基于锚的检测器中的锚框),则认为该框被召回。如表1所示,只有步长为16的特征级别 P 4 P_4 P4(即没有FPN),FCOS才能获得95.55%的BPR。该BPR远高于官方实现Detectron中基于锚的检测器RetinaNet的90.92%的BPR,后者仅使用IOU≥0.4的低质量匹配。在FPN的帮助下,FCOS可以实现98.40%的BPR,这与基于锚的检测器使用所有低质量匹配所能实现的最佳BPR非常接近。由于当前检测器的最佳召回率远低于90%,FCOS和基于锚的检测器之间的小BPR间隙(小于1%)实际上不会影响检测器的性能。表3也证实了这一点,在相同的训练和测试设置下,FCOS比基于锚的同行实现了更好的AR。因此,对低BPR的担忧可能没有必要。

  不明确的示例。关于基于FCN的检测器的另一个问题是,由于真值边界框中的重叠,它可能具有大量模糊样本,如图1(右)所示。在表2中,我们显示了minival划分上模糊样本与所有阳性样本的比率。如表所示,如果不使用FPN而仅使用特征级别 P 4 P_4 P4,则确实存在大量的模糊样本(23.16%)。然而,使用FPN,由于大多数重叠目标被分配到不同的特征级别,因此该比率可以显著降低到仅7.14%。此外,我们认为,由同一类别的目标之间的重叠引起的模糊样本并不重要。例如,如果具有相同类别的目标A和B具有重叠,则无论重叠中的位置预测哪个目标,预测都是正确的,因为它总是与相同类别匹配。遗漏的目标可以通过只属于它的位置来预测。因此,我们只计算不同类别的边界框之间重叠的模糊样本。如表2所示,多级预测将模糊样本的比例从17.84%降低到3.75%。为了进一步证明真值框中的重叠不是我们基于FCN的FCOS的问题,我们在推理有多少检测到的边界框来自模糊位置时进行了计数。我们发现,只有2.3%的检测到的边界框是由不明确的位置产生的。通过进一步只考虑不同类别之间的重叠,这一比例降至1.5%。请注意,这并不意味着有1.5%的位置FCOS无法工作。如前所述,这些位置与面积最小的真值框相关联。因此,这些位置只会冒着丢失一些较大目标的风险。如以下实验所示,它们并没有使我们的FCOS不如基于锚的检测器。

在这里插入图片描述

表3—以ResNet-50-FPN为主干的minival划分上的FCOS与RetinaNet。直接使用RetinaNet的训练和测试设置,我们的无锚FCOS在AP和AR方面都比基于锚的RetinaNet实现了更好的性能。在头部中的组归一化(GN)和NMS阈值为0.6的情况下,FCOS可以在AP中实现37.1。在我们提交后,FCOS进行了一些几乎免费的改进,性能得到了很大的提高,如“改进”下面的行所示。“ctr.on reg.”:将center ness分支移动到回归分支。“ctr.sampling”:仅对真值框的中心部分进行采样,作为阳性样本。“GIoU”:在IoU损失中惩罚联合区域超过外接矩形的区域。“归一化”:对等式(1)中的回归目标以FPN水平的步幅进行归一化。有关详细信息,请参阅我们的代码。

在这里插入图片描述

表4—提议的中心度分支在minival划分的消融研究。“无”表示不使用中心度。“中心度†”表示使用根据预测回归向量计算的中心度。“中心度”是指使用从所提出的中心度分支预测的中心度。中心度分支提高了所有度量下的检测性能。

4.1.2 有无中心度

如前所述,我们提出了“中心度”来抑制由远离目标中心的位置产生的低质量检测边界框。如表4所示,中心度分支可以将AP从33.5%提高到37.1%,使无锚FCOS优于基于锚的RetinaNet(35.9%)。请注意,基于锚的RetinaNet使用两个IoU阈值将锚框标记为阳性/阴性样本,这也有助于抑制低质量预测。所提出的中心度可以消除这两个超参数。然而,在我们首次提交后,它已经表明,同时使用中心度和阈值可以获得更好的性能,如表3中的行“+ctr.sample”所示。可以注意到,也可以在不引入额外的中心度分支的情况下利用预测的回归向量来计算中心度。然而,如表4所示,根据回归向量计算的中心度不能提高性能,因此需要单独的中心度。

4.1.3 FCOS与基于锚的检测器

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

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

  值得注意的是,通过一些几乎无成本的改进,如表3所示,我们的无锚检测器的性能可以大幅提高。考虑到无锚检测器的优越性能和优点(例如,比基于锚的检测器简单得多,超参数更少),我们鼓励社区重新思考锚框在目标检测中的必要性。

4.2 与最先进检测器的比较

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

在这里插入图片描述

表5–FCOS与其他最先进的两级或一级检测器(单模型和单尺度结果)。在具有相同主干的AP中,FCOS的性能比基于锚的同类产品RetinaNet高2.4%。FCOS的设计复杂度也大大低于最近的无锚单级检测器CornerNet。有关“改进”的详细信息,请参阅表3。

在这里插入图片描述

表6——FCOS作为区域提案网络与具有FPN的RPNs。ResNet-50被用作主干。FCOS使 A R 100 AR^{100} AR100 A R 1 k AR^{1k} AR1k分别提高了8.1%和3.4%。GN:组归一化。

5. 区域提案网络的扩展

  到目前为止,我们已经证明,在单级检测器中,我们的FCOS可以实现比基于锚的同类产品更好的性能。直观地说,FCOS还应该能够在两阶段检测器Faster R-CNN中用FPN[14]取代区域建议网络(RPN)中的锚框。在这里,我们通过实验证实了这一点。

  与具有FPN[14]的RPN相比,我们用FCOS中的方法替换了锚框。此外,我们将GN添加到FPN头中的层中,这可以使我们的训练更加稳定。所有其他设置与官方代码[7]中带有FPN的RPN完全相同。如表6所示,即使没有所提出的中心度分支,我们的FCOS也已经显著提高了 A R 100 AR^{100} AR100 A R 1 k AR^{1k} AR1k。利用所提出的中心度分支,FCOS进一步将 A R 100 AR^{100} AR100 A R 1 k AR^{1k} AR1k分别提高到52.8%和60.3%,与FPN的RPN相比,AR100的相对改善率为18%,AR1k的绝对改善率为3.4%。

6. 结论

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

致谢。我们要感谢[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 Doll´ar, 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 Doll´ar, 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 Doll´ar. 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 Doll´ar, 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 Doll´ar, 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.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/48136.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HighTec 工程配置详解1

目录 HighTec 工程配置详解编译配置构建配置管理器编译属性编译步骤编译环境变量编译日志编译配置TriCore C CompilerTriCore C LinkerHighTec 工程配置详解 编译配置 构建配置管理器 管理器内,可以创建各种不同用途的配置项。例如用于生产工程的 ROM 配置,用于调试工程的…

神经网络的初始化方法

文章目录 1、随机初始化2、Xavier初始化3、He初始化4、权重预训练初始化5、零初始化 对于神经网络的训练过程中&#xff0c;合适的参数初始化方法有助于更好的处理梯度消失和梯度爆炸问题。通常有以下几种初始化方法&#xff1a; 1、随机初始化 随机初始化&#xff08;Random…

Android调用摄像头拍照从相册中选择图片

以下内容摘自郭霖《第一行代码》第三版 activity_main.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-a…

Java BIO,NIO,AIO

一丶IO模型&Java IO# Unix为程序员提供了以下5种基本的io模型&#xff1a; blocking io&#xff1a; 阻塞iononblocking io&#xff1a; 非阻塞ioI/O multiplexing&#xff1a; io多路复用signal driven I/O&#xff1a;信号驱动ioasynchronous I/O&#xff1a;异步io 但…

理解跨平台技术

1、为什么需要跨平台技术 write once&#xff0c;run everywhere 开发一个APP运行在Android手机需要一套代码&#xff0c;运行在ios操作系统的手机又需要一套代码&#xff0c;为了使同一套代码能运行在不同的操作系统上&#xff0c;解决多端独立开发的问题&#xff0c;跨平台…

综合案例(面向对象)

使用面向对象思想完成数据读取和处理基于面向对象思想重新认知第三方库使用&#xff08;PyEcharts&#xff09; 数据分析案例 某公司&#xff0c;有2份数据文件&#xff0c;现需要对其进行分析处理&#xff0c;计算每日的销售额并以柱状图表的形式进行展示。 数据内容 综合案…

分享VMware Workstation Pro ESXI7创建虚拟机和配置硬盘空间(分享自己的学习历程意在帮助有需要的小伙伴)

背景&#xff1a;因公司项目需求改用VMware Workstation Pro&#xff0c;已经使用1个月目前除了中途出现过一次问题被解决后一直稳定运行至今&#xff0c; 1:这里贴出拿出现的问题提示及解决方法的链接&#xff1a;解决vmWare ESXI 7.3报错; 2:如果你是第一次接触VMware Work…

STM32CubeMX配置STM32G031多通道ADC + DMA采集(HAL库开发)

时钟配置HSI主频配置64M 勾选打开8个通道的ADC 使能连续转换模式 添加DMA DMA模式选择循环模式 使能DMA连续请求 采样时间配置160.5 转换次数为8 配置好8次转换的顺序 配置好串口&#xff0c;选择异步模式配置好需要的开发环境并获取代码 修改main.c 串口重定向 #include &…

基于因果关系知识库的因果事件图谱构建、文本预处理、因果事件抽取、事件融合等

项目设计集合&#xff08;人工智能方向&#xff09;&#xff1a;助力新人快速实战掌握技能、自主完成项目设计升级&#xff0c;提升自身的硬实力&#xff08;不仅限NLP、知识图谱、计算机视觉等领域&#xff09;&#xff1a;汇总有意义的项目设计集合&#xff0c;助力新人快速实…

软件外包开发的流程图工具

软件开发过程中需要画流程图&#xff0c;可以更清楚的表达软件业务流程&#xff0c;减少在开发过程中的业务理解偏差&#xff0c;因此在软件开发过程中流程图工具是必不可少的软件管理工具。今天和大家分享常见的一些软件流程图工具&#xff0c;每款工具都有其自身的特色&#…

uniapp 微信小程序:页面+组件的生命周期顺序

uniapp 微信小程序&#xff1a;页面组件的生命周期顺序 首页页面父组件子组件完整顺序参考资料 这个uniapp的微信小程序项目使用的是 VUE2 首页 首页只提供了一个跳转按钮。 <template><view><navigator url"/pages/myPage/myPage?namejerry" hov…

flask中的session介绍

flask中的session介绍 在Flask中&#xff0c;session是一个用于存储特定用户会话数据的字典对象。它在不同请求之间保存数据。它通过在客户端设置一个签名的cookie&#xff0c;将所有的会话数据存储在客户端。以下是如何在Flask应用中使用session的基本步骤&#xff1a; 首先…

Linux内核中的链表、红黑树和KFIFO

lLinux内核代码中广泛使用了链表、红黑树和KFIFO。 一、 链表 linux内核代码大量使用了链表这种数据结构。链表是在解决数组不能动态扩展这个缺陷而产生的一种数据结构。链表所包含的元素可以动态创建并插入和删除。链表的每个元素都是离散存放的&#xff0c;因此不需要占用连…

kafka消息监听

1&#xff0c;spring配置kafka网址 2&#xff0c;listener Component public class OrderMsgListener {KafkaListener(topics "order",groupId "order-service")public void listen(ConsumerRecord record){System.out.println("收到消息&#xf…

IPv6 over IPv4

IPv6 over IPv4隧道简介 IPv6 over IPv4隧道可实现IPv6网络孤岛之间通过IPv4网络互连。由于IPv4地址的枯竭和IPv6的先进性&#xff0c;IPv4过渡为IPv6势在必行。因为IPv6与IPv4的不兼容性&#xff0c;所以需要对原有的IPv4设备进行替换。但是如果贸然将IPv4设备大量替换所需成…

11.python设计模式【责任链模式】

内容&#xff1a;使多个对象都有机会处理请求&#xff0c;从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链&#xff0c;并沿着这条链传递该请求&#xff0c;直到有一个对象处理它为止。角色&#xff1a; 抽象处理者&#xff08;Handler&#xff09;具体处理…

【用户体验分析报告】 按需加载组件,导致组件渲染卡顿,影响交互体验?组件拆包预加载方案来了!

首先&#xff0c;我们看一些针对《如何提升应用首屏加载体验》的文章&#xff0c;提到的必不可少的措施&#xff0c;便是减少首屏幕加载资源的大小&#xff0c;而减少资源大小必然会想到按需加载措施。本文提到的便是一个基于webpack 插件与 react 组件实现的一套研发高度自定义…

索马里ECTN认证开船后办?都可以办的,

索马里ECTN认证开船后办&#xff1f;都可以办的&#xff0c;没有特别时间要求&#xff0c;可以在开船前办&#xff0c;也可以在开船后再办。因为索马里ECTN货物跟踪单看上去像是一份“证书”的文件&#xff0c;主要作用是用于目的港清关&#xff0c;所以很多客户习惯把它称为EC…

50条必背JAVA知识点(三)

31.面向对象中两个重要的概念&#xff1a;类&#xff1a;对一类事物的描述&#xff0c;是抽象的、概念上的定义对象&#xff1a;是实际存在的该类事物的每个个体&#xff0c;因而也称为实例(instance) 32.虚拟机栈&#xff0c;即为平时提到的栈结构。局部变量存储在栈结构中&am…

【数据动态填充到element表格;将带有标签的数据展示为文本格式】

一&#xff1a;数据动态填充到element表格&#xff1b; 二&#xff1a;将带有标签的数据展示为文本格式&#xff1b; 1、 <el-row><el-col :span"24"><el-tabs type"border-card"><el-tab-pane label"返回值"><el-…