论文阅读笔记-Fully Convolutional One-Stage Object Detect

这篇是发表在CVPR2019的目标检测论文,主要创新点在anchor-free的目标检测。FCOS是全卷积的one-stage目标检测算法,类似于语义分割,FCOS以pixel-wise的预测方式解决目标检测问题。由于不需要anchor box,FCOS在训练时可以避免由anchor box带来的复杂运算,如计算overlap。FCOS的anchor-free检测方式也避免了由anchor带来的对结果高度敏感的超参数。仅仅使用NMS预处理,使用ResNeXt-64x4d-101做backbone的FCOS取得了AP 44.7%的结果。

论文:FCOS: Fully Convolutional One-Stage Object Detection

一、Introduction

object-detection是计算机视觉中一项基本但具有挑战性的任务,它要求算法为图像中每个感兴趣的实例预测带有类别标签的边界框。现有的主流检测器,如Faster R-CNN、SSD、YOLO等,依靠一组预定义的anchor box,长期以来anchor box也一直被是这些算法成功的关键。尽管这些算法都取得了巨大的成功,但值得注意的是anchor-based的检测算法仍存在一些缺陷。1)检测的性能对anchor的大小、长宽比、数量等参数敏感。例如,受超参数等影响,RetinaNet在COCO benchmark上等性能波动范围高达4%。在anchor-based的检测器中,这些超参数需要仔细的调整。2)尽管仔细的设计了超参数,由于anchor的尺寸和长宽比是固定的,检测器依然难以处理形状变化太大的物体,尤其是对于小的物体。预定义的anchor box依然会影响检测器的泛化性能,因为anchor box需要在新任务上根据不同物体的尺寸和长宽比重新设计。3)为了获得高的召回率,anchor-based的检测算法需要在图上稠密的放置大量的anchor,其中大部分anchor都是负例。过多的负样本会加剧训练过程中正负例的imbalance。4)anchor box还涉及复杂的运算,如计算IoU。

近来,FCN在密集预测任务,如语义分割、depth estimation、keypoint detection and counting等任务中取得了巨大的成功。作为高级视觉任务之一的object-detection可能是唯一偏离全卷积pixel-wise预测框架的对象,这主要是由于使用了anchor box。这自然会产生一个问题:是否可以像FCN进行语义分割那样,使用pixel-wise预测的方式来解决目标检测任务?因此,这些基本的视觉任务可以(几乎)统一在一个框架中。这篇论文证明答案是肯定的。而且,这篇论文首次证明,基于FCN的检测器比基于anchor的检测器更简单,其性能甚至更高。

已有一些文献尝试使用FCNs-based框架进行object-detection,如DenseBox。具体来说,这些基于FCN的框架可直接预测4D向量以及特征图级别上每个空间位置的类别。如图1(左)所示,4D向量描述了从一个bounding box的四边到该位置的相对偏移。这些框架类似于用于语义分割的FCN,不同之处在于每个位置都需要回归一个4D连续向量。为了处理不同尺寸的bounding box,DenseBox将训练图片裁剪和resize到固定到尺寸。因此,DenseBox必须对图像金字塔进行检测,这与FCN一次计算所有卷积的哲学背道而驰。此外,更重要的是,这些方法主要用于特殊领域的异物检测,例如场景文本检测或人脸检测,因为认为这些方法在应用于具有高度重叠的边界框的通用对象检测的效果不佳 。如图1(右)所示,高度重叠的边界框会导致难以理解的歧义:不清楚对于重叠区域中的像素,该对哪个边界框进行回归。

论文阅读笔记-Fully Convolutional One-Stage Object Detection

论文续篇中,仔细研究了该问题,并表明使用FPN可以消除这种歧义。结果,本文的方法已经可以获得与传统的anchor-based的检测器相当的检测精度。此外,还观察到本文对方法可能会在远离目标物体中心的位置产生许多低质量的预测bounding box 。为了抑制这些低质量的检测,我们引入了一种新颖的“center-ness”分支(仅一层),以预测像素与其相应边界框中心的偏差,其定义如Eq(3)所示。然后这个分数在NMS中用于抑制低质量检测框以及聚合检测结果。简单而有效的中心度分支使基于FCN的检测器在完全相同的训练和测试设置下胜过anchor-based的检测器。

论文阅读笔记-Fully Convolutional One-Stage Object Detection

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

  • FCOS与许多基于FCN的思想是统一的,因此可以更轻松的重复使用这些任务的思路。
  • 检测器实现了proposal free和anchor free,显著的减少了设计参数的数目。设计参数通常需要启发式调整,并且设计许多技巧。
  • 另外,通过消除anchor box,新检测器完全避免了复杂的IOU计算以及训练期间anchor box和ground-truth box之间的匹配,并将总训练内存占用空间减少了2倍左右。
  • FCOS可以作为二阶检测器的区域建议网络(RPN),其性能明显优于基于锚点的RPN算法。
  • FCOS可以经过最小的修改便可扩展到其他的视觉任务,包括实例分割、关键点检测。
  • 二、Related Work

    Anchor-based Detectors. Anchor-based检测器继承了传统的基于划窗和proposal的检测器,如Fast RCNN。anchor-based检测器的anchor box可以看作是预定义的划窗或proposal,将其分类为正例或负例,并进行额外的偏移回归以refine对bounding box位置的预测。因此,这类检测器的anchor box可以看作训练样本。与之前的Fast RCNN检测器(重复为每个滑动窗口/proposal计算图像特征)不同,anchor box利用CNN的特征图来避免重复的特征计算,从而大大加快了检测过程。anchor box的设计由Faster RCNN的RPN,SSD,YOLOv2中深受欢迎,已经成为现在检测算法的通常做法。

    然而,如上所示,anchor-box的算法有额外的超参数,需要仔细设计以获得最好的性能。除了关于anchor box形状的超参数,还需要超参数来标定anchor box是正例还是负例。在以前的工作中,经常使用anchor box和ground-truth box的交并比(IOU)来确定anchor框的标签。这些超参数对最终的准确性有极大的影响,需要启发式的调试。同时,这些超参数特定于检测任务,从而使检测任务偏离了用于其他密集预测任务(如语义分割)的整洁的FCN体系结构。

    Anchor-free Detectors.最受欢迎的anchor-free检测器可能是YOLOv1。YOLOv1不使用anchor-box,而是预测对象中心附近的点处的bounding box。 之所以仅使用靠近中心的点,是因为它们被认为能够产生更高质量的检测。 但是,由于仅使用中心附近的点来预测bounding box,正如如YOLOv2中所述,YOLOv1的召回率较低。 因此,YOLOv2 也使用了anchor box。 与YOLOv1相比,FCOS利用ground-truth box框中的所有点来预bounding box框,而proposal的“中心度”分支抑制了检测到的低质量bounding box。 结果,如实验所示,FCOS能够与anchor-based的检测器提供相当的召回率。

    CornerNet是最近提出的一种one-stage的anchor-free检测算法,它检测bounding box的一组对角,并进行分类以形成最终的检测。CornerNet需要更复杂的后处理才能将属于同一实例的角对进行分组。 为了达到分组的目的,CornerNet学习了额外的距离度量。

    另一类anchor-free的检测器是基于DenseBox的。由于难以处理重叠的边界框并且召回率相对较低,该系列检测器被认为不适合用于一般物体检测。 在这项工作中,本文表明,使用多级FPN预测可以大大缓解这两个问题。此外,本文还证实了与提出的中心度分支一起使用,比anchor-based的同类检测器更简单的检测器可以实现更好的检测性能。

    三、Method

    在本节中,首先以pixel-wise的预测方式重新构造object检测任务。 接下来,说明如何利用多级预测来提高召回率并解决边界框重叠导致的歧义。 最后,提出“中心性”分支,该分支有助于抑制检测到的劣质bounding box并大幅度提高整体性能。

    3.1. Fully Convolutional One-Stage Object Detector

    记F_i (R^HXWXC)是cnn backbone的第i层输出的feature map,s是该层整体的stride。输入图片的ground-truth boxes集合为{B_i}。

    论文阅读笔记-Fully Convolutional One-Stage Object Detection

    对于feature map上每个位置(x, y),将其映射到原图的位置:

    论文阅读笔记-Fully Convolutional One-Stage Object Detection

    处于(x,y)的感受野的中心附近,与anchor-based的检测器(将该位置作为anchor box的中心,并回归target的bounding box)不同,FCOS直接在该位置处回归target的bounding box。换句话说,FCOS直接将位置视为训练样本,而不是anchor-based的检测器中的anchor-box,这与用于语义分割的FCN相同。具体来说,如果位置(x,y)落入任何一个ground-truth box并且该位置的类别标签c∗是ground truth box的类别标签,则它被视为正样本。负责是负例,c∗=0。FCOS回归一个4-D向量t∗=(l∗;t∗;r∗;b∗),(l∗;t∗;r∗;b∗)代表该位置到bounding box四个边的距离,如图1(左)所示。如果某个位置落入多个bounding box,则将其视为ambiguous样本。 只需选择面积最小的边界框作为其回归目标。 在下一部分中,将介绍通过多级预测,可以显着减少ambiguous样本的数量,因此它们几乎不会影响检测性能。 如果位置(x,y)与边界框Bi关联,则该位置的训练回归目标可以公式化为:

    论文阅读笔记-Fully Convolutional One-Stage Object Detection

    值得注意的是,FCOS可以利用尽可能多的前景样本来训练回归器。 它与anchor-based的检测器不同,后者仅将与ground-truth box具有足够高的IoU的anchor box视为正样本。 这可能是FCOS优于anchor-based检测器的原因之一。

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

    Loss Function.本文定义的loss函数如下:

    论文阅读笔记-Fully Convolutional One-Stage Object Detection

    Inference. FCOS的推理很简单。 给定输入图像,我们将其通过网络,并获得特征图Fi上每个位置的分类得分p(x,y)和回归预测t(x,y)。 选择p(x,y)> 0.05的位置作为正样本,然后将Eq(1)取反获得预测的边界框。

    3.2. Multi-level Prediction with FPN for FCOS

    在一节展示了如何使用FPN通过多级预测来解决所提出的FCOS可能存在两个问题。1)CNN中最终特征图的大的stride(例如16倍)可能导致相对较低的最佳可能召回率(BPR)。对于anchor-based的检测器,可以通过降低anchor box所需的IOU分数在一定程度上补偿由于stride较大而导致的较低召回率。对于FCOS,乍一看可能会认为BPR可能比anchor-base的检测器低得多,因为不可能召回由于stride较大而导致最终特征图上没有位置编码的对象。在这里,根据实验显示,即使stride较大,基于FCN的FCOS仍然能够产生良好的BPR,甚至可以比官方实现中的anchor-base探测器的RetinaNet 的BPR更好[ 7](见Table1)。 因此,BPR实际上不是FCOS的问题。更进一步,使用多级FPN预测,BPR进一步得到提升,可以与anchor-base的RetinaNet可以实现的最佳BPR相匹配。2)ground-truth(gt) box中的重叠会引起难以理解的歧义,即重叠中的某个位置应该回归哪个bounding box框? 这种歧义导致基于FCN的检测器性能下降。 在这项工作中,证明可以通过多级预测极大地解决歧义问题,并且与anchor-base的检测器相比,基于FCN的检测器可以获得同等甚至更好的性能。

    类比FPN,本文在不同级别的特征图上检测到不同大小的对象。 具体来说,使用了五个级别的特征图,分别定义为{P3,P4,P5,P6,P7}。P3,P4和P5由主干CNN的特征图C3,C4和C5后跟具有自顶向下连接的1×1卷积层所产生,如图2所示,通过在P5和P6上分别应用一个stride为2的卷积层来生成P6和P7。结果,特征等级P3,P4,P5,P6和P7分别具有8、16、32、64和128的stride。

    与anchor-base的检测器不同(后者将不同大小的anchor box分配给不同的特征级别),本文直接限制每个级别的特征所回归的bounding box的尺寸。更具体地说,首先计算所有特征级别上每个位置的回归目标l ∗,t ∗,r ∗和b ∗。接下来,如果某个位置满足max(l ∗,t ∗,r ∗,b ∗)> mi或max(l ∗,t ∗,r ∗,b ∗)<mi-1>

    论文阅读笔记-Fully Convolutional One-Stage Object Detection


    论文阅读笔记-Fully Convolutional One-Stage Object Detection


    3.3. Center-ness for FCOS

    在FCOS中使用多级预测后,FCOS与anchor-base的检测器之间仍然存在性能差距。 观察到,这是由于远离对象中心的位置产生了许多低质量的预测bounding box。

    本文提出了一种简单而有效的策略来抑制这些检测到的低质量的的bounding box,而无需引入任何超参数。 具体来说,本文添加一个与分类分支(如图2所示)平行的单层分支,以预测每个位置位置的“中心度”。 中心度表示从位置到该位置所负责的对象中心的标准化距离,如图7所示。给定某个位置的回归目标l ∗,t ∗,r ∗和b ∗,则中心度目标定义为:

    论文阅读笔记-Fully Convolutional One-Stage Object Detection

    在此处使用sqrt来减慢中心度的衰减。 中心度的范围是0到1,因此可以使用二进制交叉熵(BCE)损失进行训练。损失函数被添加到Eq(2)中。在测试时,通过将预测的中心度乘以相应的分类分数来计算最终分数(用于对检测到的bounding box进行排序)。 因此,中心度可以降低远离对象中心的bouding box的分数。 结果,这些低质量的bounding box很有可能被最终的非最大抑制(NMS)过程滤除,从而显着提高了检测性能。

    中心度的另一个选择是仅仅使用gt box的中心做正样本,需要额外增加一个超参数。两种方法的结合能进一步提升性能,见实验结果Table 3。

    四、 Experiments

    实验是在大规模检测基准COCO上进行的。

    4.1. Ablation Study

    4.1.1 Multi-level Prediction with FPN

    如前所述,基于FCN的检测器的主要关注点是召回率低以及由于gt边界框中的重叠而导致的样本不明确。BPR实验结果Table 1所示,Ambiguous Samples实验结果如Table 2所示。


    论文阅读笔记-Fully Convolutional One-Stage Object Detection

    4.1.2 With or Without Center-ness

    同时使用中心度和阈值可以导致更好的性能,如表3中的“+ ctr. sampling”行所示。也可以使用预测的回归向量来计算中心度,而无需引入额外的中心度分支。 但是,如表4所示,根据回归向量计算出的中心度无法提高性能,因此需要单独的中心度。


    论文阅读笔记-Fully Convolutional One-Stage Object Detection

    论文阅读笔记-Fully Convolutional One-Stage Object Detection

    4.1.3 FCOS vs. Anchor-based Detectors

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

    为了表明FCOS可以作为anchor-base的检测器的简单而强大的替代方案,并且为了进行公平的比较,本文删除了GN(对梯度进行了裁剪以防止爆炸),并在检测器中使用了C5。 如表3所示,在完全相同的设置下,FCOS仍然可以与anchor-base的检测器相媲美(36.3%vs 35.9%)。 此外,值得注意的是,本文直接使用了RetinaNet的所有超参数(例如学习率,NMS阈值等),这些参数已针对anchor-base的检测器进行了优化。 因此认为,如果针对超参数进行调整,则可以进一步提高FCOS的性能。值得注意的是,如表3所示,通过一些几乎无代价的改进,anchor-free检测器的性能可以大大提高。

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


    论文阅读笔记-Fully Convolutional One-Stage Object Detection

    "/<mi-1>


    分享到:


    相關文章: