论文翻译 | FCOSv1:《FCOS Fully Convolutional One-Stage Object Detection》

论文翻译 | FCOSv1:《FCOS Fully Convolutional One-Stage Object Detection》,第1张

摘要:
  • 介绍背景,提出Fcos模型和性能

我们提出了一种全卷积的单阶段目标检测器FCOS,以逐像素的方式解决目标检测问题,类似于语义分割。


几乎所有的sota目标检测器,如:RetinaNet、SSD、YOLOv3、Faster R-CNN都依赖于预定义的anchor boxes,而我们的FCOS是anchor box free的,而且是proposal free的。


通过消除预定义的anchor boxes集,FCOS完全避免了和anchor boxes相关的复杂计算(如训练过程中IOU的计算)。


更重要的是,我们也避免了和anchor boxes相关的、对最终检测性能非常敏感的所有超参数。


仅仅经过NMS后处理,使用ResNeXt-64x4d-101作为backbone网络的FCOS在单模型和单尺度测试中达到了44.7%的AP,超过了之前的单阶段检测器,并且相比之下具有更简单的优势。


我们首次提出了一种更简单、更灵活的检测框架,并且提升了检测精度。


我们希望所提出的FCOS能成为其他实例级任务的一个简单而强大的替代方案。


代码已开源:tinyurl.com/FCOSv1。


1. Introduction:
  • 介绍网络主要结构,提出基于FCN的backbone设计思路和center-ness分支设计

目标检测是一项基本但也富有挑战的计算机视觉任务,它需要一套算法来为图像上的每个实例预测一个带有类别标签的bounding box。


所有当前主流的检测器诸如Faster R-CNN、SSD、YOLOv3,都依赖于预定义的anchor boxes集合,并且anchor boxes的使用一直被认为是目标检测成功的关键点。


尽管基于anchor boxes的方法获得了巨大的成功,仍然有必要提出该方法的几个缺点:

  1. 如[15],[24]所述,**检测性能对anchor boxes的尺寸、宽高比、数量十分敏感。


    **比如RetinaNet中,调整anchor boxes相关的超参数在COCO数据集上能够影响4%的AP。


    因此对anchor-based的检测器的超参数需要细致调整。


  2. **即使经过的精心的设计,由于anchor boxes的尺寸和宽高比是固定的,检测模型会难以处理尺度变化很大的目标,尤其是很小的目标。


    **预定义的anchor boxes也会妨碍检测模型的泛化性能,因为它们需要在具有不同目标大小或长宽比的新检测任务上重新设计。


  3. 为了获得更高的召回率,anchor-based的模型会在输入图像上密集放置anchor boxes(对于输入图像短边长度为800的FPN超过了180k个anchor boxes),大多数anchor boxes在训练阶段被认为是负例,过多的负例加剧了正负样本之间的不平衡。


  4. anchor boxes还涉及复杂的计算,例如使用GT bounding boxes计算IOU分数。


近期,全卷积FCN神经网络在密集预测任务(语义分割、高度估计、关键点检测、计数)上获得了巨大的成功。


作为其中一种高层的视觉任务,**目标检测因为用到了anchor boxes,可能是唯一一个没有纯粹全卷积像素级预测的任务了。


**很自然我们会疑问:我们能通过简单的像素级预测来做目标检测吗,像语义分割中的FCN那样?这样的话这些基本的视觉任务可以统一在(几乎)一个单一的框架中。


我们证明了答案是肯定的。


而且我们第一次证明,简单的全卷积模型甚至可以达到比anchor-based的模型更好的检测效果。


在文献中,一些工作尝试去构造一种FCN-base的框架来进行目标检测,如DenseBox。


具体来说,这些FCN-base的模型直接在特征图的一层的每个空间位置上预测一个4D向量和一个类别。


如图1左所示,4D向量表示该位置到 bounding box四条边的偏移量。


**除了每个位置需要回归一个4D向量以外,这些模型和语义分割的FCNs很像。


**然而,为了处理不同尺寸的bounding boxes,DenseBox将训练样本裁剪、缩放成固定尺寸。


因此,DenseBox必须对图像金字塔进行检测,这与FCN提出的一次计算所有卷积的理念相反。


而且,这些方法主要用在特定区域的检测上,比如场景文字检测和人脸检测,因为bounding boxes大大重叠,所以这方法不适合在通用目标检测上使用。


如图1右所示,高度重叠的边界框会给训练带来问题:重叠处的像素回归的bounding box是不明确的。


图1:如左图所式,FCOS预测一个4D向量( l , t , r , b ) 来编码每个前景像素点对应bounding box的位置(训练时由GT bounding box信息监督)。


右图展示了一个像素点对应多个bounding boxes,这可能会给bounding box的回归带来问题。


接下来,我们进一步考虑了这个问题,说明了使用FPN可以大幅度减弱这种模糊性。


因此,我们的方法已经达到了和传统anchor-based检测模型相似的检测精度。


而且我们观察到我们的方法会在远离目标中心的位置生成很多低质量的预测边界框。


为了抑制这些低质量的框我们提出了一种新的“中心度”(center-ness)分支(只有一层)来预测一个像素到对应边界框中心的偏差,如公式3所示。


**这个得分的使用可以降低低质量检测边界框的权重,并且用NMS融合检测结果。


**这种简单但高效的中心度分支使FCN-based的模型在完全相同的训练和测试设置下性能超越anchor- based的模型。


这种新的检测模型有如下优势:

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


  • **检测变得proposal free和anchor free的,显著降低参数数量。


    **设计参数一般需要多次调整,用上很多tricks来获得好的性能。


    因此,我们新的检测框架使检测器,特别是它的训练,相当简单。


  • 通过消除anchor boxes,我们的新探测器完全避免了与anchor boxes相关的复杂计算(如IOU计算anchor boxes和GT boxes在训练期间的匹配),导致更快的训练和测试速度以及与更少的训练内存。


  • 毫无疑问,我们达到了单阶段检测器sota的性能。


    而且我们提出的FCOS也可以用做RPN网络,在其他RPN的双阶段检测器中,达到了更好的性能。


    考虑到这是一个简单的、anchor free的、性能卓越的模型,我们建议学界重新思考anchor boxes在目标检测中的必要性,而后者在当下被认为是检测中理所应当的标准。


  • 所提出的检测器可以以最小的修改立即扩展到解决其他视觉任务,包括实例分割、关键点检测。


    我们相信这种新的方法可以成为实例级预测问题的新的baseline。


2. Related Work
  • anchor base和anchor free介绍
anchor-based检测器

anchor-based检测器由传统的滑动窗口和proposal-base的检测器演变而来,如Fast R-CNN[6]。


在anchor-based模型中,anchor boxes可以看作是由滑动窗口或proposals得到的预定义的框,并且这些框被分为正例和负例,并且通过回归一个额外的偏移量来细化bounding box位置的预测。


因此anchor boxes在这些模型中可以被看作是训练样本。


不同于之前的检测模型(如Fast RCNN,分别计算每个滑动窗口或proposal的图域内的特征),anchor boxes充分利用了卷积神经网络的特征图,避免了特征的重复计算,大大加快了检测过程。


Faster RCNN中的RPN、SSD、YOLOv2中anchor boxes的设计非常流行,已经成为了现代检测模型的惯例。


但是,如上所述,anchor boxes会带来很多超参数,需要精细调整才能达到好的性能。


不光是anchor形状上的超参数,anchor-based检测器还需要额外的超参数来标记自身是一个正例、可忽略、负例样本。


在之前的工作中,通常会计算anchor boxes和GT boxes的IOU来判断标签类别(例如正例的IOU[0.5,1])。


这些超参数对最终的精度有非常大的影响,需要反复调整。


同时,这些超参数是特定于某个检测任务的,使得检测任务偏离了在语义分割等其他密集预测任务中使用的纯粹的全卷积网络架构。


anchor free检测器

最流行的anchor free检测器该属YOLOv1[21],它预测靠近目标中心附近的点的边界框,而不使用anchor boxes。


只有接近中心的点会被使用,因为它们可以提高检测质量。


但是,因为只使用了中心附近的点来预测边界框,YOLOv2[22]提到YOLOv1的召回率很低。


因此YOLOv2同样用上了anchor boxes。


和YOLOv1相比。


** FCOS利用到了ground truth bounding box中的所有点来预测bounding boxes,而低质量的检测到的bounding boxes会被”center-ness“分支抑制。


**因此,在我们的实验中,FCOS可以达到和anchor-based方法相近的召回率。


CornerNet是一种最近提出的单阶段anchor-free目标检测器,它通过检测边界框的一对角点并且将它们归并,得到最终的检测框。


CornerNet将角点分配给实例的后处理过程十分复杂,并且为了归并,需要额外学习一种距离度量。


另外一些anchor-free模型,如UnitBox[32],是基于DenseBox的。


这一类模型因为难以处理重叠框,召回率低,而不适合作为通用目标检测模型。


在本文中,我们展示了上述的两种问题都可以通过多层FPN得到缓解。


而且我们也把中心度分支结合进去,得到了比anchor-based更好的检测结果。


3. Our Approach
  • 详细讲解FCOS网络结构及设计原因

在本章中,我们首先推导目标检测在像素级预测范式中的形式。


其次展示了如何利用多层预测来提高召回率,解决训练中重叠边界框的模糊性的问题。


最后,我们提出了“中心度”分支,抑制低质量的检测框,大幅度提高总体性能。


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


为主干CNN第i层特征图,s是到该层的总stride。


输入图片的GT bounding boxes的集合为{ Bi},其中Bi= ( x0 (i) , y0 (i), x1 (i) , y1(i) , c(i)) ∈ R4 × { 1 , 2 , . . . , C },这里( x0 (i) , y0 (i)) 和( x1 (i) , y1(i) ) 表示bounding box左上和右下角点的坐标。


c ( i ) 表示bounding box内目标所属类别。


C是类别数(对于COCO而言是80)。


对于特征图Fi上每个位置( x , y ) ,我们可以将其映射回原图的坐标为(⌊s/2⌋ + xs ,⌊s/2 ⌋ + ys ) ,该坐标和( x , y )位置的感受野的中心很接近。


不同于anchor-based检测器,将输入图像上的位置看作是(多个)anchor boxes的中心,并把这些anchor boxes作为参考,去回归anchor boxes至目标bounding box,而我们的做法是直接回归每个位置上对应的目标bounding box。


换句话说,我们的检测器直接将位置作为训练样本,和FCNs语义分割相同。


具体来说,如果位置( x , y )落在任何GT box内,那么它就被认为是正样本,该位置类别c是对应GT box的标签。


否则,它就被认为是负样本,c=0(背景类)。


除了分类的标签,我们也可以得到一个4D真实的用于回归的偏移向量t = (l,t,r,b) ,这里l,t,r,b代表了该位置到bounding box四个边的距离,如图1(左)。


**如果一个位置落在多个bounding boxes中,则它被认为是模糊样本我们简单地根据最小面积选取bounding box作为该位置上向量的回归目标。


**在下一节中,我们将展示,通过多层次预测,可以显著减少模糊样本的数量,因此它们几乎不会影响检测性能。


公式表示为,如果位置( x , y )对应一个bounding box Bi,对该位置的训练回归目标可以表述为:

值得一提的是,FCOS可以利用尽可能多的前景点来训练回归器。


这和anchor-based方法不同,后者只会将和GT boxes的IOU足够大的anchor boxes认为是正样本。


我们认为,这是FCOS优于anchor-based检测器的其中一个原因。


网络输出

针对训练目标,网络的最后一层会输出一个80D的向量p作为分类标签和一个4D向量t = (l,t,r,b) 作为bounding box坐标。


根据[15],我们训练C个二分类器,而不是训练一个多类别的分类器。


和[15]相似,**我们在backbone网络的特征图后加入4个卷积层分别用于分类和回归分支。


**而且,由于回归目标总是正例,我们用exp(x)将所有实数映射到回归分支顶部(0, +inf)。


值得一提的是,FCOS的网络输出变量数比流行的(每个位置9个anchor boxes的)anchor-based检测器要少9倍。


损失函数

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

Lcls是focal loss[15],Lreg是UnitBox[32]中的IOU loss。


Npos代表正例数量,λ设为1,用于平衡两种损失。


求和计算在在整个特征图Fi上所有位置进行,其中
代表指示函数(如果ci* > 0,值为1;否则为0)。


推断

FCOS的推断很简单。


给定一张输入图像,前向通过整个网络,获得特征图Fi上每个像素点的类别得分px,y和回归预测tx,y ,我们选择类别得分px,y > 0.05的作为正例,根据公式1变换,获得预测的bound ing boxes。


图2:FCOS的网络结构,其中C3、C4、C5代表主干网络特征图,P3到P7用于最终预测的特征层。


H × W是特征图的宽和高,‘/s’ ( s = 8 , 16 , . . . , 128 ) 是该特征图对应于输入图像的下采样倍数。


图中所有的数字都是以800 × 1024的输入图像为例计算得到的。


3.2 FCOS的FPN多层级预测

在这里,我们展示了如何通过FPN[14]的多层次预测来解决所提出的FCOS的两个可能的问题。


  1. CNN最终特征图的大stride(如16)会导致相对低的最佳可能召回率(best possible recal,BPR)。


    对于anchor-based的检测器,可以通过降低正例anchor boxes所需的IOU分数,在一定程度上补偿由于大步幅而导致的低召回率(较大stride会在某种程度上降低正例框的IOU得分)。


    对于FCOS而言,乍一看我们的BPR肯定比anchor-based方法小,这是因为在最终特征图上因为stride大,而且没有位置信息,几乎不可能召回目标。


    这里,我们重点想说明,即使是stride很大,FCN-based的FCOS也可以得到好的BPR,甚至可以好过官方实现的Detectron[7]的anchor-based的RetinaNet(指表1)。


    因此BPR对于FCOS来说不是问题。


    而且使用多层级FPN预测,BPR可以进一步提高,接近RetinaNet的最好水平。


  2. GT boxes中的重叠框会在训练过程中带来二义性模糊的问题,即重叠区域的像素需要判断:我到底该去回归哪个框呢?这是导致FCN-based模型性能较差的一个原因。


    在本文中,我们展示了多层级预测可以很好地解决这个问题,使FCN-based模型达到甚至超过anchor-based模型。


表1:在各种匹配规则下,anchor-based的RetinaNet的BPR和FCN-based的FCOS的BPR。


FCN-based的FCOS与最好的anchor-based的FCOS非常相似,比Detectron[7]的官方实现要高得多,后者只考虑与IOU≥0.4的低质量匹配。


根据FPN[14],我们在不同层次的特征图上检测不同尺寸的物体。


具体来说,我们抽出五层特征图,分别定义为{ P3 , P4 , P5 , P6 , P7 } 。


P3 , P4 , P5由主干CNN的特征图C3,C4,C5经过一个1x1卷积然后自上而下连接得到,如图2


P6 , P7 分别由P5 , P6经过一个stride=2的卷积层得到。


所以,最后我们得到的P3 , P4 , P5 , P6 , P7分别对应stride为 8,16,32,64,128。


**不同于anchor based检测器在不同特征层上分配不同尺寸的anchor boxes,我们直接限制每层边界框的回归范围。


具体来说,我们首先计算所有特征图上每个位置的回归目标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 , + inf ⁡。


不同尺寸的目标被分配到不同特征层上,而大部分重叠都发生在尺寸差异比较大的目标之间。


如果一个位置,即使使用了多层次的预测,仍然被分配给多个GT boxes,我们只需选择具有最小面积的GT box作为其回归目标。


所以多层级的预测可以缓解上文提到的二义性问题,提高FCN based检测器的性能,使之接近anchor-based检测器。


实验也说明了这一点。


最后,根据[14],[15],我们在不同特征层上共享了头部网络,这样不仅可以使检测器参数更高效(parameter-efficient, 我理解为性能参数比更高,也就是达到同样性能所用的参数量更少),而且也可以提升检测性能。


但是我们观察到,不同的特征层对应不同的回归尺寸范围(比如:对于P3来说是[ 0 , 64 ],对于P4来说是[ 64 , 128 ] ),因此没有理由使用完全相同的头部网络作用在不同的特征层上。


所以,我们使用带有可训练的标量si的exp(six)来自动调节特征层Pi的指数函数,而不是使用标准的exp(x),从而大大提升了检测性能。


3.3 FCOS的中心度(Center-ness)

在使用了多层级预测后,FCOS的性能仍然和anchor-based方法有一定差距。


我们观察到这是由于网络预测了很多低质量的、远离目标中心的像素位置的bounding boxes所致。


我们提出了一种简单而高效的策略来抑制这种低质量的bounding boxes,并且不引入额外的超参数。


具体来说,我们在网络中增加了一个和分类分支并列的单层网络分支来预测一个位置的“中心度”,如图2所示。


中心度描述了从该位置到该位置所负责的物体中心的归一化距离(normalized distance),如图7所示。


给定某一位置的回归目标l,t,r , b,中心度定义如下:

我们开根号是为了减缓中心度的衰减。


中心度的范围从0到1,因此可以使用二值交叉熵(BCE)损失来训练。


这个损失加到公式2所示的损失函数上。


测试的时候,最终得分(用来给预测的边界框排序)为分类的分数和中心度的乘积。


因此中心度可以降低远离目标中心bounding boxes的权重,进一步说,这些低质量的bounding boxes大概率会被NMS的过程过滤掉,从而显著提升了检测性能。


中心度的一种替代方法是只使用GT bounding box的中心部分作为正样本,其代价是需要一个额外的超参数,如工作[12,33]所示。


在我们提交之后,[1]中显示,两种方法的组合可以获得更好的性能。


实验结果见表3


图3:中心度(很奇怪,文章中没有介绍)。


红色、蓝色和其他颜色分别表示1、0和它们之间的值。


中心度由等式(3)计算当位置偏离物体的中心时,从1衰减到0。


在测试时,网络预测的中心度与分类分数相乘,从而可以降低由远离对象中心的位置预测的低质量bounding boxes的权重。


4. Experiments
  • 介绍了训练和预测的实验设计及消融实验

我们在大尺度检测基准 COCO [16]上进行了实验。


按照惯例[15,14,24],我们使用 COCO 中的 trainval35k 部分 ( 115K图像 ) 用于训练,minival 部分 ( 5K图像 ) 作为我们的消融研究( Ablation Study )的验证集。


我们通过上传检测结果到评估服务器,报告了在test_dev 部分 ( 20K图像 ) 的主要结果。


Training Details.

除非特别指出,否则我们**使用 ResNet-50 [8]作为骨干网络,并使用与 RetinaNet [15]相同的超参数。


**具体来说,我们训练网络时采用随机梯度下降 ( stochastic gradient descent,SGD ) ,迭代 90K 次,初始学习率为 0.01,mini-batch为16。


在迭代 60K 和 80K 时,学习率分别降低了10倍。


权重衰减和动量分别设置为 0.0001 和 0.9。


我们用在 ImageNet [4]上预先训练的权值初始化我们的骨干网络。


对于新添加的层,我们像[15]一样将它们初始化。


除非指定,否则将把输入图像的大小调整为短边为800,长边小于或等于1333。


Inference Details.

我们首先通过网络将输入图像前向传递,得到带有预测类别和预测bounding boxes。


除非特别说明,否则下面的后处理与 RetinaNet [12]完全相同,我们直接使用相同的后处理超参数。


我们认为,如果对超参数进行优化,可以进一步提高我们的检测器的性能。


我们使用与训练时的输入图像相同大小的尺寸。


4.1. Ablation Study 4.1.1 Multi-level Prediction with FPN

如前所述,基于 FCN 的检测器的主要问题是 低召回率 和 由于GT bounding boxes重叠而导致的模糊样本。


在本节中,我们证明了这两个问题都可以通过多级预测得到很大程度上的解决。


Best Possible Recalls

基于 FCN 检测器的第一个问题是,它可能不能提供良好的最佳可能召回率 ( best possible recall,BPR )。


在本节中,我们表示这个问题是不必要的。


在这里,**BPR 被定义为检测器最多能召回的GT boxes 数量与所有GT boxes 数量之比。


**如果在训练中一个GT box能分配给至少一个样本,则认为该GT box被召回(即,FCOS中的位置(location)或anchor-based的检测器中的anchor box)。


表1所示,在只有特征层级为 P4(feature level P4),stride为 16 ( 即,没有 FPN ) 的情况下, FCOS 已经可以获得 95.55% 的 BPR。


其 BPR 远远高于官方实现的Detectron中anchor-based的检测器 RetinaNet 的 90.92% 的 BPR,其中仅使用 IOU ≥0.4 的低质量匹配。


在 FPN 的帮助下,FCOS 可以实现 98.40% 的 BPR,非常接近anchor-based的检测器通过使用所有低质量匹配所能达到的最佳 BPR。


由于事实上这些探测器的 precision-recall 曲线 ( 如补充材料所示 ) 中的最佳召回率(best recall)远低于90%,FCOS 与anchor-based的检测器之间的小 BPR 间隙实际上并不会影响检测器的性能。


表3 也证实了这一点,其中 FCOS 实现的 AR 甚至比anchor-based的同类产品更好。


因此,关于低 BPR 的问题可能没有必要。


表3:FCOS vs RetinaNet以ResNet-50-FPN为骨干的minival split。


直接使用RetinaNet网络的训练和测试设置,我们的anchor-free的FCOS在AP和AR方面都取得了比anchor-based的RetinaNet网络更好的性能。


**当heads的组归一化(GN)和NMS阈值为0.6,FCOS在AP中可达到37.1。


**在我们提交之后,对FCOS进行了一些cost-free的改进,性能也得到了很大的改进,如下面的“Improvements”的rows所示。


"ctr. on reg。


”:将中心度分支从分类分支移动到回归分支。


"ctr.sampling”:只采样GT boxes的中心部分作为正样本。


“GIoU”:在IoU损失中惩罚边界矩形区域上的联合区域。


“归一化”:用FPN各层级的步长将等式(1)中的回归目标归一化。


详情请参考我们的代码。


Ambiguous Samples

FCN-based的检测器的另一个问题是,由于 GT bounding boxes的重叠,可能会产生大量的模糊样本,如图1(右)所示。


表2 中,我们展示了在 minival split 中模糊样本与所有正样本的比值。


如表中所示,如果不使用 FPN,只使用 feature level P4,确实存在大量的模糊样本 ( 23.16% )。


但是,如果我们使用FPN,这个比例可以显著降低到 7.14%,因为大多数重叠的对象被分配到不同的特征级别。


此外,我们认为,由于同一类别的对象之间的重叠而导致的模糊样本并不重要。


例如,如果具有相同类的对象A和B有重叠,无论重叠的对象预测哪个位置,预测都是正确的,因为它总是与相同的类别匹配。


被遗漏的对象只能通过属于它的位置来预测。


因此,我们只计算具有不同类别的bounding boxes之间重叠的模糊样本。


表2 所示,多级预测将模糊样本的比例从 17.84% 降低到 3.75%。


为了进一步证明在FCN-based 的 FCOS 中,GT box 中的重叠不是一个问题,我们计算了在推断时有多少检测到的边界框来自于模糊位置。


我们发现只有2.3%的检测到的bounding boxes是由模糊的位置产生的。


进一步考虑到不同类别之间的重叠,比例降低到1.5%。


请注意,这并不意味着有1.5%的像素位置的FCOS不能工作。


如前所述,这些位置与面积最小的GT boxes相关联。


因此,这些位置只冒着丢失一些较大物体的风险。


在后续的实验中表明,极低的重叠比并不会使我们的 FCOS 比anchor-based的检测器差。


表2:Amb.samples表示模糊样本与所有正样本的比例。


Amb. samples (diff.) 是相似的,但排除了那些在重叠区域内但属于同一类别的模糊样本,因为这种模糊样本在推断时并不重要。


我们可以看到,使用FPN,这个模糊样本的百分比很小(3.75%)。


4.1.2 With or Without Center-ness

如前所述,我们提出“中心度”来抑制由远离物体中心的像素位置产生的低质量检测到的bounding boxes。


表4所示,中心度分支可以将AP从33.5%提高到37.1%,使anchor-free的FCOS优于anchor-based的RetinaNet(35.9%)。


请注意,anchor-based的RetinaNet使用两个IoU阈值将anchor boxes标记为正/负样本,这也有助于抑制低质量的预测。


所提出的中心度方法可以消除这两个超参数。


然而,在我们最初的提交之后,它已经表明,同时使用中心度和阈值可以获得更好的性能,如表3中“+ ctr. sampling" 那行。


可以注意到,中心度也可以用预测的回归向量来计算,而不需要引入额外的中心度分支。


但是,如 表4 所示,y用回归向量计算的中心度并不能提高性能,因此需要单独的中心度分支。


表4:在minival split上的中心度分支的消融研究。


“None”表示没有使用中心度。


“center-ness+”表示使用从预测的回归向量计算出的中心度。


“center-ness”是指利用所提出的中心度分支预测的中心度。


中心度分支提高了所有指标下的检测性能。


4.1.3 FCOS vs. Anchor-based Detectors

**上述 FCOS 与标准 RetinaNet 有两个小的不同。


1) 除了最后的预测层,我们在新增加的卷积层中使用了组归一化 ( Group Normalization,GN ) [29],这使得我们的训练更加稳定。


2) 我们使用 P5 产生了 P6 和 P7,而不是像 RetinaNet 中的 C5产生的。


**我们发现使用P5可以稍微提高性能。


为了证明我们的 FCOS 可以作为基于锚的检测器的一种简单而强大的替代品,为了公平的比较,我们移除了 GN(梯度被剪切了,以防梯度爆炸),在我们的检测器中也使用了 C5。


表3 所示,在完全相同的设置下,我们的 FCOS 仍然优于anchor-based的检测器(36*.3%vs 35.*9%)。


此外,值得注意的是,我们直接使用了对anchor-based的检测器进行了优化的 RetinaNet 的所有超参数 ( 如学习率、NMS 阈值等 )。


我们认为,如果对超参数进行调优,FCOS 的性能还可以进一步提高。


值得注意的是,通过一些cost-free的改进,如表3所示,我们的anchor-free检测器的性能可以得到很大幅度的提高。


考虑到anchor-free检测器的优越性能和优点(例如,比anchor-based的检测器更简单和更少的超参数),我们鼓励学界重新考虑anchor boxes在目标检测中的必要性。


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

我们在COCO基准的dev split上将FCOS与其他sota检测器进行了比较。


在这些实验中,我们在训练过程中随机将图像较短的一边放缩到[640,800]区间内,并将迭代次数翻倍到180K(学习率变化点按比例缩放)。


其他设置与表3中AP值为37.1%的模型完全相同。


表5所示,主干网络用了ResNet-101-FPN后,我们的FCOS的AP比具有相同主干的的RetinaNet好2.4%。


据我们所知,这是第一次没有任何附加条件的anchor-free探测器的性能优于anchor-based探测器。


FCOS 的性能也大大超过了其他经典的anchor-based的两级检测器,比如 Faster RCNN 。


**以ResNeXt-64x4d-101-FPN[30]为骨干,FCOS在AP中达到43.2%。


**它的性能比最近最先进的anchor-free探测器 CornerNet[13]更好,同时简单得多。


请注意,**CornerNet 需要用嵌入向量将角对进行分组,这就需要对检测器进行特殊的设计。


**因此我们认为 FCOS 更有可能作为目前主流anchor-based的检测器的一个强大而简单的替代品。


通过表3中的改进,FCOS在单模型和单尺度的AP测试中达到了44.7%,大大超过了以往的检测器。


表5:FCOS vs. 其他最先进的两级或一级检测器(单模型和单尺度比较下的结果)。


在具有相同主干下,FCOS的AP比anchor-based的RetinNet强2.4%。


FCOS也以更少的设计复杂性优于最近的anchor-free单级探测器网络CornetNet。


有关“improvements”的详细内容,请见表3


5. Extensions on Region Proposal Networks
  • 探讨了FCOS在两阶段检测器Faster RCNN中用FPN替换区域提议网络(RPN)的效果。


到目前为止,我们已经证明,在单级探测器中,我们的FCOS可以获得比anchor-based的同类探测器更好的性能。


从直观地看,FCOS也应该能够在两级探测器Faster RCNN中,将区域提案网络(RPNs)中的anchor-boxes替换为FPN[14]。


在这里,我们通过实验证实了这一点。


用FPN[14]与rpn相比,我们用FCOS中的方法替换了anchor boxes。


此外,我们在FPN头的各层中添加了GN,这可以使我们的训练更加稳定。


FPN所有其他设置与官方代码[7]中的RRPNs完全相同。


表6所示,即使没有提出的中心度分支,我们的FCOS也可以显著改善AR100和AR1k


通过提出的中心度分支,FCOS进一步将AR100和AR1k分别提高到52.8%和60.3%,与FPN相比,AR100的相对提高了18%,AR1k的绝对提高3.4%。


6. Conclusion
  • 总结FCOS

我们提出了一种anchor-free和proposal-free的单阶段探测器FCOS。


如实验所示,FCOS优于流行的anchor-based的单阶段检测器,包括RetinaNet、YOLO和SSD,但设计的复杂性要小得多。


FCOS完全避免了所有与anchor boxes相关的计算和超参数,并以逐像素预测的方式解决了目标检测问题,类似于其他密集的预测任务,如语义分割。


FCOS还在单级探测器中取得了最先进的性能。


我们还表明,FCOS可以作为两级检测器Faster RCNN的RPNs,并且性能大大优于其RPNs。


鉴于FCOS的有效性和效率,我们希望FCOS可以作为当前主流anchor-based探测器的一个强大和简单的替代方案。


我们也相信FCOS可以扩展到解决许多其他的实例识别任务中去。


Appendix 7. Class-agnostic Precision-recall Curves
  • FCOS与其他检测算法ROC曲线的比较

图4、图5和图6中,我们给出了在IOU阈值分别为0.50、0.75、0.90下的split minival上的类别不可知的precision-recall曲线。


表7显示了这三条曲线对应的APs值。


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qOYpLn8Y-1648097564961)(images/image-20220318145040226.png)]

图4:IOU=0.50时的类别不可知的precision-recall曲线。


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZmTVXdkW-1648097564961)(images/image-20220318145142651.png)]

图5:IOU=0.75时的类别不可知的precision-recall曲线。


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-STIwtxIJ-1648097564962)(images/image-20220318145219330.png)]

图6:IOU=0.90时的类别不可知的precision-recall曲线。


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fUz6AtzS-1648097564962)(images/image-20220318145326023.png)]

表7:RetinaNet和FCOS的类别不可知的检测性能。


FCOS的性能优于RRetinaNet。


此外,随着更严格的IOU阈值,对RetinaNet的改进变得更大。


结果与我们主论文表4中相同的模型得到。


表7所示,我们的FCOS比anchor-based的对应RetinaNet取得了更好的性能。


此外,值得注意的是,在更严格的IOU阈值下,FCOS比RetinaNet有了更大的改进,这表明FCOS有更好的bounding box回归器来更准确地检测物体。


其中一个原因应该是FCOS有能力利用更多的前景样本来训练我们在主论文中提到的回归器。


最后,如所有的precision-recall曲线所示,这些检测器在precision-recall曲线中的最佳召回率远低于90%。


这进一步表明,FCOS和RetinaNet之间的最佳可能召回率(BPR)的微小差距(98.40%vs.99.23%)几乎不影响最终的检测性能。


8. Visulization for Center-ness
  • 对Center-ness的有效性进行阐述

正如我们在主论文中提到的,通过抑制低质量的检测到的bounding boxes,所提出的中心度分支很大程度地提高了检测性能。


在本节中,我们确认了这一点。


我们期望中心度可以降低低质量bounding boxes的分数,这样这些bounding boxes就可以在随后的后处理中被过滤掉,如非最大抑制(NMS)。


如果一个检测到的bounding box及其相应的GT bounding box的IOU得分较低,则认为它是一个低质量的bounding box。


一个IOU分数低但置信度高的bounding box很可能成为false positive样本并有损精度。


图7中,我们将一个检测到的bounding box视为一个2D的点(x,y),其中x是它的分数,y是它与对应的GT box的IOU。


图7(左)所示,在应用中心度之前,存在大量低质量的bounding boxes,但具有较高的置信度得分(即直线y=x下的一些点)。


由于分数较高,这些低质量的bounding boxes在后处理中无法消除,导致探测器的精度降低。


图7(右)所示,将分类分数与中心度分数相乘后,这些分数推到了plot的左侧(即,它们的分数减少)。


因此,这些低质量的bounding boxes更有可能在后处理中被过滤掉,最终可以提高检测性能。


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MucG9zxd-1648097564962)(images/image-20220318174454470.png)]

图7:没有提出的中心度(左)或具有提出的中心度(右)。


图中的一个点表示一个被检测到的bounding box。


虚线是直线y=x。


如图(右)所示,在将分类分数与中心度分数相乘后,低质量的boxes(在直线y=x下)被推到plot的左侧。


这表明,这些boxes的分数被大幅降低了。


9. Qualitative Results

部分定性结果如图8所示。


如图所示,我们提出的FCOS可以检测到广泛的物体,包括拥挤、遮挡、高度重叠、极小和非常大的物体。


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tFWrQNRm-1648097564963)(images/image-20220318175506199.png)]

图8:在minival split上的一些检测结果。


使用ResNet-50作为骨干网络。


如图所示,FCOS可以很好地应用于范围广泛的物体,包括拥挤、封闭、高度重叠、极小和非常大的物体。


10. More discussions Center-ness vs. IoUNet

Jiang等人发表的”Acquisition of Localization Confifidence for Accurate Object Detection“论文中的Center-ness和IoUNet,用不同的方法得到了具有相似的目的(即抑制低质量的预测boxes)。


IoUNet训练一个单独的网络来预测预测的bounding-boxes和GT boxes之间的IoU得分。


中心度,作为我们的探测器的一部分,只有一层,并与检测器联合训练,因此要简单得多。


此外,“中心度”并不以预测的bounding-boxes作为输入。


相反,它有直接访问该位置预测高质量bounding-boxes的能力。


BPR in Section 4.1 and ambiguity analysis

我们的目的不是比较“特定IoU的召回率”和“box内像素的召回率”。


表1的主要目的是表明FCOS的召回率上界非常接近anchor-based的RetinaNet的召回率上界(98.4%vs.99.23%)。


其他IoU阈值的BPR被列为在RetinaNet的官方代码中使用的BPR。


此外,没有证据表明FCOS的回归目标很难学习,因为它们更容易扩展。


实际上,FCOS可以产生了更精确的bounding-boxes。


在训练过程中,我们通过选择具有最小面积的GT box来处理在相同的FPN级别上的模糊性。


在测试时,如果两个具有相同类的对象A和B有重叠,无论哪个重叠对象的位置去预测,预测都是正确的,另外一个可以由只属于它的位置去预测。


在A和B不属于同一类的情况下,重叠部分中的某个位置可以预测A的类,但会回归B的bounding-box,这是错误的。


这就是为什么我们只计算不同类之间的模糊性。


此外,这种歧义似乎并没有使FCOS中的AP比RetinaNet更差,如表8所示。


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u2Cq4f9C-1648097564963)(images/image-20220318192956605.png)]

表8:MS-COCO minival的消融研究。


“#A”是RetinaNet中每个位置的anchor boxes数量。


“IOU”是指IOU损失。


“Scalar”表示是否在exp中使用标量。


所有的实验都是在相同的设置下进行的。


Additional ablation study

表8所示,一个普通的FCOS的性能就能与RetinaNet相当,设计更简单,网络输出少9倍。


此外,FCOS比单anchor的RetinaNet工作得要好得多。


对于在test-dev上2%的性能增加,除了表8中的组件带来的性能增加外,我们推测不同的训练细节(如学习率策略)可能会导致性能的性能差异。


RetinaNet with Center-ness

中心度不能在每个位置有多个anchor boxes的RetinaNet中直接使用,因为特征图上的每个位置只有一个中心度分数,但同一位置上的不同anchor boxes需要不同的“中心度”(注意,中心度也被用作正/负样本的“软soft”阈值)。


对于anchor-based的RetinaNet,anchor boxes和GT boxes之间的IoU得分可以作为“中心度”的替代方法。


Positive samples overlap with RetinaNet

我们想强调,中心度只有在测试中才会发挥作用。


在训练时,GT boxes内的所有位置都被标记为正样本。


因此,FCOS可以使用更多的前景位置来训练回归器,从而产生更准确的bounding-boxes。


Acknowledgments

我们要感谢[1]的作者提出的中心采样和GIoU的技巧。


我们也感谢 Chaorui Deng基于HRNet的FCOS,以及他用box回归定位中心度分支的建议。


References

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yzsma3oo-1648097564963)(images/image-20220318194251814.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1PmMvjI0-1648097564964)(images/image-20220318194308507.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nhV4Vyyh-1648097564964)(images/image-20220318194335068.png)]在这里插入图片描述

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/563617.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-02
下一篇 2022-04-02

发表评论

登录后才能评论

评论列表(0条)

保存