首页 > 编程知识 正文

FCOS Fully Convolutional OneStage Object Detection

时间:2023-05-05 00:45:43 阅读:241434 作者:1082

摘要

我们提出了全卷积的单级目标检测器(FCOS)来解决以每像素预测的目标检测问题,类似于语义分割。几乎所有最先进的目标检测器,如 RetinaNet,SSD,Yolov3,Faster R-CNN 都依赖于预定义的锚框。相比之下,我们提出的检测器 FCOS是无锚框以及建议框。通过消除预定义的锚框,完全避免了训练过程中与锚框相关的计算复杂性。更重要的是,我们还避免了所有与锚框相关的超参数,它们通常对最终的检测性能非常敏感。对于仅有的后处理非最大抑制(NMS) ,FCOS在ResNext64x4d-101采用单模型和单尺度测试的 ap 达到44.7% ,超过了以往的单级检测器,具有更简单的优点。在第一次,我们证明了一个更简单和灵活的检测框架,实现了更高的检测准确性。我们希望所提出的 fcos 框架可以作为许多其他实例级任务的简单而强大的替代方案。

1 引言

目标检测是计算机视觉领域中一项基本而又富有挑战性的任务,它要求算法为图像中每个感兴趣的实例预测一个带有类别标签的锚框。所有当前的主流目标检测器,如Faster R-CNN[24] ,SSD [18]和Yolov2,v3[23]都依赖于一组预先定义的锚框,长期以来,人们一直认为锚框的使用是目标检测器成功的关键。尽管基于锚框的目标检测器取得了巨大的成功,但需要注意的是,锚定探测器也存在一些缺点: 1)如文献[15,24]所示,检测性能对锚框的尺寸、hdsddp和数量非常敏感。例如,在 retinanet [15] ,这些超参数在coco数据集基准上影响性能高达4% 。因此,这些超参数需要在基于锚框的目标检测器中仔细调整。2)即使经过精心设计,由于锚箱的尺寸和hdsddp是固定的,探测器在处理形状变化较大的物体时遇到困难,特别是对于小物体。预定义的锚定盒还会影响检测器的泛化能力,因为它们需要针对不同目标大小或长宽比的新检测任务进行重新设计。3)为了获得较高的召回率,需要一个基于锚框的目标检测器在输入图像上密集地放置锚定框(例如,对于较短的一侧为800的图像,在特征金字塔网络中有超过180k 的锚框(fpn)[14])。在训练期间,这些锚框大多被标记为负样本。在训练过程中,过多的负样本加剧了正负样本之间的不平衡。4)锚框也涉及到复杂的计算,例如与真实框框计算交并(iou)得分。
最近,全卷积网络(fcns)[20]在语义分割[20,28,9,19]、关键点检测[,计数,深度估计等密集预测任务中取得了巨大的成功。作为高级视觉任务之一,目标检测可能是唯一一个偏离整洁的完全卷积像素预测框架的主要原因是使用了锚盒。问一个问题是很自然的: 我们能否以一种整洁的逐像素预测方式来解决目标检测问题,比如用类似于 fcn 的方式来进行语义分割?因此,这些基本的愿景任务可以统一到(几乎)一个框架中。我们证明答案是肯定的。此外,我们证明,第一次,更简单的基于 fcn 的探测器比基于锚的探测器获得更好的性能。
在文献中,一些工作试图利用基于 fcns 的框架来处理目标检测,比如 densebox [12]。具体来说,这些基于 fcn 的框架直接预测了一个4d 向量加上特征映射层次上每个空间位置的类别。如图1所示(左) ,4d 矢量描绘了从边界框的四个边到位置的相对偏移量。这些框架类似于 fcns 的语义分割,除了每个位置都需要回溯一个4d 连续向量。然而,为了处理不同大小的锚框,densebox [12]调整训练图像到一个固定的尺度。因此 densebox 必须对图像金字塔进行检测,这违背了 fcn 计算所有卷积的哲学。此外,更重要的是,这些方法主要用于特殊领域的目标检测,如场景文本检测[33,10]或人脸检测[32,12] ,因为人们认为,这些方法不能很好地应用于一般的目标检测高度重叠的包围盒。如图1(右)所示,高度重叠的包围盒会导致难以消除的模糊性: 不清楚究竟是哪个包围盒对重叠区域中的像素进行回溯。
在续集中,我们仔细研究了这个问题,并表明,有了 fpn,这种模糊性可以大大消除。因此,我们的方法已经可以获得与传统锚基探测器相当的检测精度。此外,我们观察到我们的方法可能会在远离目标物体中心的位置产生一些低质量的预测包围盒。为了抑制这些低质量的检测,我们引入了一种新的“中心”分支(只有一层)来预测像素到其相应包围盒中心的偏差。(3).这个评分然后用于降低重量低质量检测边框和合并的 nms 检测结果。简单而有效的中心分支允许基于 fcn 的检测器在完全相同的训练和测试环境下胜过基于锚的检测器。
这个新的检测框架具有以下优点。现在,检测与许多其他 fcnsolved 任务相结合,比如语义分割,使得重用这些任务的想法变得更加容易。•检测变成无建议、无锚定,这大大减少了设计参数的数量。设计参数通常需要启发式调整和许多技巧,以达到良好的性能。因此,我们新的探测框架,使得探测器,特别是它的训练,变得相当简单。•通过去除锚定箱,我们的新探测器完全避免了与锚定箱相关的复杂计算,例如在训练过程中的欠条计算和锚定箱与地面真值箱之间的匹配,从而比基于锚定箱的对应方案更快地进行训练和测试,以及更少的训练内存占用。•没有花哨的功能,我们在一级探测器中取得了最先进的成果。我们还证明了所提出的 fcos 可以作为两级检测器中的区域建议网络(rpn) ,并且可以获得比基于锚的 rpn 网络更好的性能。鉴于更简单的无锚探测器的性能更佳,我们鼓励社会各界重新考虑在目标检测中设置锚箱的必要性,因为这些锚箱目前被视为探测的行业标准。•拟议的检测器可以立即扩展,以解决其他视觉任务,只需最小修改,包括实例分割和关键点检测。我们相信这种新方法可以作为许多实例预测问题的新基线

2 相关工作

基于锚的探测器。基于锚的检测器继承了传统滑动窗口和基于建议的检测器(如 fast r-cnn [6])的思想。在基于锚点的探测器中,锚点盒可以被看作预定义的滑动窗口或方案,分为正面或负面的斑块,并通过额外的偏移量回归来精化对边界盒位置的预测。因此,这些探测器中的锚箱可视为训练样本。与以往快速 rcnn 等重复计算每个滑动窗口/方案的图像特征不同,锚定框利用了 cnns 的特征映射,避免了重复特征计算,大大加快了检测过程。锚箱的设计由更快的 r-cnn 在其 rpns [24] ,ssd [18]和 yolov2[22]中推广,并已成为现代探测器的惯例。
然而,如上所述,锚定框导致过多的超参数,这通常需要仔细调整为了达到良好的性能。除了上述描述锚定形状的超参数外,基于锚定的探测器还需要其他超参数来将每个锚定盒标记为正、忽略或负样本。在以前的工作中,他们经常使用锚定框和地面真值框之间的交集超联(iou)来确定锚定框的标签(例如,如果其 iou 在[0.5,1]中,则为正锚定)。这些超参数对最终的精度有很大的影响,需要启发式调整。同时,这些超参数是特定于检测任务的,使检测任务偏离了用于其他密集预测任务(如语义分割)的整洁的、完全卷积的网络结构。
无锚检波器。最流行的无锚探测器可能是 yolov1[21]。Yolov1没有使用锚定框,而是在物体中心附近的点预测边界框。只使用靠近中心的点,因为它们被认为能够产生更高质量的检测。然而,由于只有靠近中心的点才能用来预测包围盒,因此 yolov1的记忆力低下,正如 yolov2[22]中提到的。因此,yolov2[22]也使用了锚箱。与 yolov1相比,fcos 利用地面真值包围盒中所有点的优点来预测包围盒,而低质量检测到的包围盒被提出的“中心性”分支所抑制。因此,fcos 能够提供基于锚的检测器的可比召回性,如我们的实验所示。
Cornernet [13]是最近提出的一级无锚检测器,它检测一个包围盒的一对角,并将它们组成最终检测到的包围盒。Cornernet 需要更复杂的后处理来对属于同一实例的角点对进行分组。学习额外的距离度量是为了分组。
另一类无锚探测器,如[32]是基于 densebox [12]的。由于很难处理重叠的包围盒,而且召回率相对较低,因此这种检测器系列被认为不适用于一般的目标检测。在这项工作中,我们表明,这两个问题可以在很大程度上减轻与多层次 fpn 预测。此外,我们还表明,与我们提出的中心分支一起,更简单的检测器可以实现更好的检测性能,甚至比其基于锚定的同行。

3 我们的研究

在本节中,我们首先用逐像素预测的方式重新构建目标检测。接下来,我们展示了如何利用多层次预测来提高召回率和解决重叠边界框导致的模糊性。最后,我们提出了我们的“中心”分支,它有助于抑制低质量的检测包围盒,并大大提高了整体性能。

3.1 全卷积单目标检测器

本文提出了一种新的特征映射算法,该算法首先将特征映射转化为特征映射,然后将特征映射转化为特征映射。定义了一个输入图像的地面真值包围盒为{ bi } ,其中 bi = (x (i)0,y (i)0,x (i)1y (i)1,c (i))∈ r4 × {1,2… c }。这里(x (i)0,y (i)0)和(x (i)1y (i)1)表示边界盒的左上角和右下角的坐标。C (i)是边界框中的对象所属的类。C 是类的数目,对于 ms-coco 数据集来说是80个。对于特征映射 fi 上的每个位置(x,y) ,我们可以将其映射回输入图像,即(bs2c xs,?第二季? ys) ,即位置(x,y)的感受野中心附近。不同于以输入图像上的位置作为多个锚点盒的中心,并以这些锚点盒为参考回溯目标包围盒的基础上,直接回溯目标包围盒的位置。换句话说,在基于锚的检测器中,我们的检测器直接将位置视为训练样本,而不是锚盒,这与 fcns 的语义分割相同[20]。具体来说,如果位置(x,y)落入任何一个地面真相框,则该位置的类别标签 c/* 即为该地面真相框的类别标签,则该位置(x,y)被视为正数样本。否则就是一个负数样本,c * = 0(背景等级)。除了分类标签外,我们亦以四维实数 t = * (l * 、 t * 、 r * 、 b )作为分类地点的回归指标。这里 l/ 、 t/* 、 r/* 和 b/* * 是指从所在位置到包围盒四边的距离,如图1所示(左)。如果一个位置落入多个包围盒中,那么它就是一个模糊的样本。我们简单地选择面积最小的包围盒作为回归目标。在下一节中,我们将表明,多层次预测,模糊样本的数量可以显著减少,从而几乎不影响检测性能。形式上,如果位置(x,y)与一个包围盒 bi 相关,那么该位置的训练回归指标可以表示为: l * = x-x (i)0,t * = y-y (i)0,r = x (i)1-x,b * = y (i)1-y (1)值得注意的是,fcos 可以利用尽可能多的前景样本来训练回归。它不同于基于锚的探测器,只考虑锚箱有足够高的欠条和地面真相箱作为阳性样本。我们认为,这可能是 fcos 优于锚基业务的原因之一。
网络输出。对应于训练目标,我们网络的最后一层预测一个80d 的分类标签向量 p 和一个4d 的向量 t = (l,t,r,b)包围盒坐标。在[15]之后,我们不再训练多类分类器,而是训练 c 二进制分类器。与[15]相似,我们在骨干网络的特征映射之后分别增加了四个卷积层用于分类和回归分支。此外,由于回归目标总是正的,因此我们使用 exp (x)将任何实数映射到回归分支顶部的(0,∞)。值得注意的是,fcos 的网络输出变量比流行的基于锚的检测器[15,24]少9 × 每个位置有9个锚盒。
损失函数。我们对训练损失函数的定义如下: l ({ p px,y } ,{ t tx,y }) = 1 npos x,y lcls (p px,y,c x,y) λ npos x,y 1{ c x,y > 0} lreg (t tx,y,t t t x,y) ,(2)其中包含[15]中的局灶性损失和[32]中的损失。Nposs 表示正样本的个数,λ 为1,本文给出了 lreg 的平衡权。总和计算的所有位置的特征地图菲。1{ c x * i > 0}为指示函数,如 x * i > 0,则为1。
推论。Fcos 的推论很简单。给定一个输入图像,通过网络进行转发,得到特征映射图像上每个位置的分类得分 ppx,ymr 和回归预测 ttx,ymr。根据[15] ,我们选择 px,y > 0.05的位置作为正样本,反演方程。(1)获得预测的包围盒。

3.2 基于 fcos 的 fpn 多层次预测

这里我们展示了如何用 fpn [14]多层次预测来解决两个可能的 fcos 问题。1) cnn 中最终特征映射的大跨步(例如,16 ×)可能导致相对较低的最佳可能召回(bpr)1。对于基于锚定的检测器,由于大步幅而导致的低召回率可以通过降低正锚定盒所需的 iou 分数在一定程度上得到补偿。对于 fcos 来说,乍一看,人们可能会认为 bpr 比基于锚的探测器低得多,因为不可能回忆起一个由于大跨步而在最终特征映射中没有位置编码的对象。这里,我们通过实验证明,即使大幅提高,基于 fcn 的 fcos 仍然能够产生良好的 bpr,甚至比正式实现的 detectron 中基于锚的检测器 retinanet [15]的 bpr 更好7。因此,业务流程再造实际上不是 fcos 的问题。此外,多层次的 fpn 预测[14] ,业务流程重组可以进一步改进,以匹配锚基网络能达到的最佳业务流程再造。2)地面真值盒中的重叠会导致难以解释的模糊性,即重叠盒中的某个位置应该回归到哪个边界盒?这种模糊性导致基于 fcn 的检测器性能下降。在本文中,我们证明了多级预测可以很好地解决模糊问题,基于 fcn 的检测器可以获得与基于锚的检测器相同甚至更好的性能。
根据 fpn [14] ,我们在不同的特征映射层次上检测不同大小的物体。具体来说,我们使用定义为{ p3,p4,p5,p6,p7}的五个级别的特征映射。P3,p4和 p5是由骨干 cnns 的特征映射图 c3,c4和 c5产生的,后面跟着1 × 1卷积层,在[14]中有自上而下的连接,如图2所示。P6和 p7分别是在 p5和 p6上施加一个卷积层,步幅分别为2。因此,特征级别 p3、 p4、 p5、 p6和 p7分别具有跨度8、16、32、64和128。
不同于基于锚点的检测器,它将不同尺寸的锚点盒分配到不同的特征层次,我们直接限制每个层次的边界盒回归范围。更具体地说,我们首先计算所有特征层次上每个地点的立次/次数、次/次/立次数和 b/* 次数。其次,如某个位置的最大值(l * 、 t * 、 r * 、 b /) > mi 或 max (l * 、 t * 、 r * 、 b /) < mi-1,则该位置会被设定为负数样本,因此不再需要回归一个边界框。这里的 miis 最大距离功能水平,我需要倒退。M2、 m3、 m4、 m5、 m6和 m7分别设置为0、64、128、256、512和∞。因为不同大小的物体被分配到不同的特征层次,而且大多数重叠发生在大小相当不同的物体之间。如果一个地点,即使使用了多层次的预测,仍然被分配到多个地面真相盒,我们只需选择面积最小的地面真相盒作为目标。实验结果表明,多层次预测可以很大程度上消除前述的模糊性,将基于 fcn 的检测器提高到与基于锚点的检测器相同的水平。
最后,在[14,15]之后,我们在不同的特征层之间共享头,不仅使检测器的参数有效,而且提高了检测性能。然而,我们观察到不同的特征级别需要回归不同的大小范围(例如,p3的大小范围是[0,64] ,p4的大小范围是[64,128]) ,因此,对不同的特征级别使用相同的头部是不合理的。因此,我们不使用标准 exp (x) ,而是使用 exp (6)和一个可训练标量 si 来自动调整特征级别 pi 的指数函数底部,这稍微提高了检测性能。

3.3 Center-ness for FCOS

在 fcos 中使用多级预测后,fcos 与基于锚的检测器的性能仍然存在差距。我们观察到,这是由于许多低质量的预测包围盒生产的位置远离一个对象的中心。我们提出了一个简单而有效的策略,以抑制这些低质量检测边界盒没有引入任何超参数。具体地说,我们添加了一个与分类分支平行的 singlerayer 分支(如图2所示)来预测一个位置的“中心性”。中心度表示从该位置到该位置所负责的对象中心的归一化距离,如图7所示。如以 l/* 、 t/* 、 r/* 和 b/* 作为回归指标,则中心度指标的定义为:
我们在这里雇佣特工,来减缓中心主义的衰退。中心度范围从0到1,因此用二进制交叉熵(bce)损失来训练。将损失加到损失函数 eq 中。(2).测试时,最终得分(用于对检测到的包围盒进行排序)通过将预测的中心度与相应的分类得分相乘来计算。因此,中心可以减轻分数的包围盒远离中心的一个对象。因此,这些低质量的包围盒可以通过最终的非最大值抑制(nms)过程进行滤除,从而大大提高了检测性能。中心性的另一种替代方法是只使用地面真理包围盒的中心部分作为正的样本,其价格为一个额外的超参数,如作品[12,33]所示。在我们提交之后,[1]中已经表明,两种方法的结合可以获得更好的性能。实验结果见表3。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。