(通过自适应训练样本选择缩小基于锚的检测和无锚检测之间的差距)
Shifeng Zhang1,2 , Cheng Chi2,3 , Yongqiang Yao4 , Zhen Lei1,2 , Stan Z. Li1,2
1 CBSR, NLPR, CASIA 2 UCAS 3 AIR, CAS 4 BUPT
几年来,基于Anchor的检测器一直占据着目标检测的主导地位。近来,由于FPN和Focal Loss的提出,无锚检测器变得流行。在本文中,我们首先指出,基于锚点的检测与不基于锚点的检测之间的本质区别实际上是如何定义正向训练样本和负向训练样本,这导致了它们之间的性能差距。如果他们在训练过程中对正样本和负样本采用相同的定义,无论从一个box还是一个点回归,最终的表现都没有明显的差异。这说明如何选择正、负训练样本对当前的目标检测具有重要意义。然后,我们提出了一种自适应训练样本选择(ATSS),可以根据目标的统计特征自动选择正样本和负样本。它显著地提高了anchor-based 和anchor-free 检测器的性能,并缩小了两者之间的差距。最后,我们讨论了在图像上每个位置平铺多个anchors 来检测目标的必要性。在MS COCO上进行的大量实验支持了我们前面提到的分析和结论。利用新引入的ATSS,我们在不增加任何开销的情况下,将最先进的检测器大幅度提高到了50.7%AP。该代码可从https://github.com/sfzhang15/ATSS获得。
1. Introduction
目标检测是计算机视觉领域一个长期存在的课题,其目的是检测预定义类别的目标。准确的目标检测将对图像识别和视频监控等多种应用产生深远的影响。近年来,随着卷积神经网络(CNN)的发展,基于anchor的检测方法已成为目标检测的主流,一般分为一阶段方法[36,33]和两阶段方法[47,9]。这两种方法都是先在图像上放置大量的预置anchors,然后对anchors的类别进行预测,并对这些anchors的坐标进行一次或多次的细化,最后输出这些细化后的anchors作为检测结果。由于两阶段方法对锚点的细化程度是单阶段方法的几倍,因此两阶段方法的计算结果更准确,而单阶段方法的计算效率更高。常用检测基准的最新结果仍然由基于anchor的检测器持有。
但是,由于FPN [32]和Focal Loss [33]的出现,近年来学术界关注的焦点转向了无锚检测器。无锚检测器可以通过两种不同的方式直接查找没有预设锚的物体。一种方法是首先定位几个预定义或自学习的关键点,然后限制对象的空间范围。我们称这种类型的无锚检测器为基于关键点的方法[26,71]。 另一种方法是利用目标的中心点或区域定义正值,然后预测从正值到目标边界的四个距离。 我们称这种无锚检测器为基于中心的方法[56,23]。 这些无锚检测器能够消除与锚相关的那些超参数,并取得了与基于锚的检测器相似的性能,使得它们在泛化能力方面更具潜力。
在这两类无锚检测器中,基于关键点的方法遵循与基于锚的检测器不同的标准关键点估计流程。但是,基于中心的检测器与基于anchor的检测器相似,它将点作为预设样本而不是anchor boxes来处理。以一阶段基于anchor的检测器RetinaNet [33]和基于中心的无锚检测器FCOS [56]为例,它们之间存在三个主要区别:(1)每个位置平铺的anchors数量。 RetinaNet在每个位置平铺多个anchor boxes ,而FCOS在每个位置平铺一个anchor 。(2)正负样本的定义。RetinaNet使用交并比(IoU)来进行正、负采样,而FCOS则利用空间和尺度约束来选择样本。(3)回归开始状态。RetinaNet从预设anchor box回归目标anchor box,而FCOS从anchor point定位目标。如[56]中所述,无锚的FCOS比基于锚的RetinaNet具有更好的性能,值得研究这三个差异中的哪一个是性能差距的重要因素。在这三个差异中,哪一个是造成性能差距的重要因素是值得研究。
在本文中,我们通过严格排除两者之间的所有实现不一致之处,以公平的方式研究基于锚和无锚方法之间的差异。从实验结果可以看出,这两种方法的本质区别在于对正训练样本和负训练样本的定义不同,导致了两者之间的性能差距。如果他们在训练过程中选择相同的正负样本,则无论从一个box还是从一个 point回归,最终的性能都不会出现明显的差距。因此,如何选择正训练样本和负训练样本值得进一步研究。受此启发,我们提出了一种新的自适应训练样本选择(ATSS)方法,该方法可以根据目标特征自动选择正样本和负样本。它缩小了基于anchor的检测器和anchor-free的检测器之间的差距。此外,通过一系列的实验,可以得出结论,不需要在图像上的每个位置平铺多个anchors 来检测目标。在MS COCO [34]数据集上的大量实验支持了我们的分析和结论。最新的AP 50.7%是通过应用新引入的ATSS而不产生任何开销实现的。这项工作的主要贡献可以概括为:
●指出基于锚点的检测器和不带锚点的检测器之间的本质区别实际上是如何定义正训练样本和负训练样本。
●提出自适应训练样本选择,以根据目标的统计特征自动选择正负训练样本。
●证明在图像上的每个位置平铺多个anchors以检测目标是一项吃力不讨好的操作。
●在MS COCO上实现最先进的性能,而不引入任何额外的开销。
3. Difference Analysis of Anchor-based and Anchor-free Detection(基于锚和无锚检测的差异分析)
在不失一般性的前提下,采用了具有代表性的基于锚的RetinaNet [33]和无锚的FCOS [56]来剖析它们之间的差异。在本节中,我们将重点讨论最后两个差异:正/负样本定义和回归开始状态。剩下的一个区别是:每个位置平铺的anchors数量,将在后续章节中讨论。因此,我们只需为RetinaNet每个位置平铺一个方形anchor,这与FCOS非常相似。在其余部分中,我们首先介绍实验设置,然后排除所有实现上的不一致之处,最后指出基于anchor的检测器与anchor的检测器之间的本质区别。
3.1实验设置
数据集。所有实验都是在具有挑战性的MS COCO [34]数据集上进行的,该数据集包括80个对象类。按照惯例[33,56],trainval35k分割中的所有115K图像均用于训练,而minival分割中的所有5K图像均用作分析研究的验证。我们还将主要结果提交给评估服务器,以获得测试-开发部分的最终性能。
训练细节。我们使用具有5级特征金字塔结构的ImageNet [49]预训练的ResNet-50 [16]作为主干。新添加的层以与[33]相同的方式初始化。对于RetinaNet, 5级特征金字塔中的每一层都与一个具有8S尺度的方锚相关联,其中S为总步长。在训练过程中,我们调整输入图像的大小,使其短边为800,长边小于或等于1333。采用随机梯度下降(SGD)算法对整个网络进行90K次迭代训练,每次迭代动量为0.9,权值衰减为0.0001,批量大小为16。我们设置初始学习率为0.01,在迭代60K和80K时分别衰减0.1。除非另有说明,否则在实验中使用上述训练细节。
推理细节。在推理阶段,我们按照与训练阶段相同的方式调整输入图像的大小,然后通过整个网络将其转发,以输出带有预测类的预测边界框。在此之后,我们使用预设分数0.05来过滤掉大量的背景边界框,然后输出每个特征金字塔的前1000个检测结果。最后,使用非最大抑制(Non-Maximum Suppression, NMS),每个类的IoU阈值为0.6,以生成每个图像最终的前100个置信检测。
3.2.Inconsistency Removal(不一致删除)
我们将基于anchor的检测器RetinaNet标记为每个位置只有一个方形锚框(#A=1),这与无锚点检测器FCOS几乎相同。但是,如文献[56]所述,FCOS在MS COCO最小子集(minival子集)上的AP性能大大优于RetinaNet(#A = 1),即37.1% vs 32.5%。此外,对FCOS进行了一些新的改进,包括将中心性移动到回归分支,使用GIoU损失函数以及通过相应的步长对回归目标进行归一化。这些改进将FCOS的AP性能从37.1%提升到37.8% ,使得差距进一步拉大。然而,基于锚的检测器(32.5%)和无锚检测器(37.8%)之间的AP差距部分来自于FCOS中提出或使用的一些普遍改进,例如在头部添加GroupNorm [62],使用GIoU [48]回归损失函数,限制地面真实框[56]中的正样本,引入中心分支[56],并为每个级别的特征金字塔添加可训练的标量(trainable scalar)[56]。这些改进也可以应用于基于锚的检测器,因此它们不是基于锚的方法和无锚方法之间的本质区别。我们将它们一一应用于RetinaNet(#A = 1),以排除这些实现上的不一致。 如表1所示,这些无关紧要的差异将基于锚的RetinaNet提高到37.0%,与无锚FCOS相比仍有0.8%的差距。到目前为止,在消除了所有不相关的差异之后,我们可以以一种相当公平的方式来探索基于锚的检测器与无锚的检测器之间的本质差异。
表1:在MS COCO minival集合上分析RetinaNet和FCOS之间的实现不一致性。“#A = 1”表示每个位置有一个方形锚框。
3.3 本质区别(Essential Difference)
应用这些通用改进后,这只是基于anchor的RetinaNet(#A = 1)和无锚点FCOS之间的两个区别。一种是关于检测中的分类子任务,即定义正样本和负样本的方法。另一个是关于回归子任务,即从anchor box或anchor point开始的回归。
Classification(分类)。如图1(a)所示,RetinaNet利用IoU将不同金字塔级别的锚框分为正值和负值。它首先标记每个目标的最佳锚框,并将IoU>θp的锚框标记为正,然后将IoU <θn的锚框标记为负,最后在训练期间忽略其他锚框。如图1(b)所示,FCOS使用空间和尺度约束来划分不同金字塔层次的锚点。它首先将ground-truth box内的anchor points作为候选正样本,然后根据每个金字塔级别3所定义的尺度范围从候选中选择最终的正样本,最后那些未选择的anchor points为负样本。
[3在FCOS中有几个预设的超参数,用于定义五个金字塔级别的比例范围:P3为[m2,m3];P4为[m3,m4];P5为[m4,m5];P6为[m5,m6];P7为[m6,m7]。]
图1:正样本(1)和负数样本(0)的定义。蓝色框,红色框和红点是 ground-truth,anchor box和anchor point。(a) RetinaNet使用IoU同时在空间和尺度维度上选择正(1)。(b)FCOS首先在空间维度上找到候选正值(?),然后在尺度维度上选择最终的正值(1)。
如图1所示,FCOS首先使用空间约束在空间维度中找到候选正值,然后使用尺度约束在尺度维度中选择最终正值。相反,RetinaNet利用IoU直接在空间和尺度维度上同时选择最终的正值。这两种不同的样本选择策略会产生不同的正样本和负样本。如表2第1列所列,对于RetinaNet(#A=1),使用空间和尺度约束策略而不是IoU策略将AP性能从37.0%提高到37.8%。对于FCOS,如果使用IoU策略选择正样本,AP性能从37.8%下降到36.9%,如表2第2列所示。这些结果表明,正样本和负样本的定义是锚定检测器和无锚检测器的本质区别。
表2:在MS COCO minival集合上分析RetinaNet和FCOS之间的差异。
Regression(回归)。在确定正样本和负样本后,从正样本中回归出目标的位置,如图2(a)所示。RetinaNet从anchor box回归,锚定框(anchor box)和目标框(object box)之间有四个偏移,如图2(b)所示,而FCOS从anchor point 以四个距离回归到目标的边界,如图2(c)所示。这意味着对于一个正样本,RetinaNet的回归起始状态是一个box,而FCOS是一个 point。但是,如表2的第1行和第2行所示,当RetinaNet和FCOS采用相同的样本选择策略以具有一致的正/负样本时,无论从一个点或一个框开始回归,最终性能都没有明显差异,即37.0%对36.9%和37.8%对37.8%。 这些结果表明,回归开始状态是无关紧要的差异,而不是本质的差异。
图2:(a)蓝点和框是目标的中心和边界,红点和框是anchor的中心和边界。(b)RetinaNet从anchor box回归四个偏移量。 (c)FCOS从anchor point回归四个距离。
Conclusion(结论)。根据这些公平的实验,我们可以指出,基于anchor的一级检测器与基于中心点的无锚检测器之间的本质区别实际上是如何定义正负训练样本,这对于当前的目标检测具有重要意义,值得进一步研究。
4. Adaptive Training Sample Selection (自适应训练样本选择)
在训练目标检测器时,我们首先需要定义正样本和负样本进行分类,然后使用正样本进行回归。根据前面的结论,前者至关重要,无锚检测器FCOS改进了这一步骤。它引
入了一种定义正样本和负样本的新方法,与传统的基于IoU的策略相比,该方法具有更好的性能。受此启发,我们深入研究了目标检测中最基本的问题:如何定义正负训练样本,并提出自适应训练样本选择(ATSS)。与这些传统策略相比,我们的方法几乎没有超参数,并且对于不同的设置具有鲁棒性。
4.1. Description(说明)
以往的样本选择策略存在一些敏感超参数,例如基于anchor的检测器中的IoU阈值和无锚点的检测器中的尺度范围。这些超参数设置后,所有的 ground-truth boxes 都必须根据固定的规则来选择其正样本,这些规则适用于大多数目标,但有些外部目标会被忽略。因此,这些超参数的不同设置将产生非常不同的结果。
为此,我们提出了一种在不需要任何超参数的情况下,根据目标的统计特性自动划分正负样本的ATSS方法。算法1描述了该方法如何对输入图像进行处理。对于图像上的每个ground-truth box g,我们首先找出其候选正样本。如第3至6行所述,在每个金字塔等级上,根据L2距离,我们选择了k个anchor boxes,它们的中心距离ground-truth box g的中心最近。假设存在L个特征金字塔层,则ground-truth box g将具有k×L个候选正样本。之后,我们计算这些候选值和ground-truth g之间的IoU作为第7行的Dg,其平均值和标准偏差在第8行和第9行中分别计算为mg和vg。利用这些统计数据,在第10行中,该ground-truth g的IoU阈值以tg=mg+vg的形式获得。最后,在第11至15行中,我们选择IoU大于或等于阈值tg的这些候选样本作为最终的正样本。值得注意的是,我们还将正样本的中心限制在地面真值框内,如第12行所示。此外,如果将anchor box分配给多个ground-truth boxes,则会选择IoU最高的那个。其余均为负样本。我们方法背后的一些动机解释如下。
根据anchor box和目标之间的中心距离选择候选目标。对于RetinaNet,当anchor box的中心靠近目标中心时,IoU会更大。对于FCOS,离目标中心越近的anchor point将产生更高质量的检测。因此,离目标中心越近的 anchor是更好的候选值。
使用平均值和标准偏差之和作为IoU阈值。目标的IoU平均值mg是该目标的预设anchors适用性的度量。如图3(a)所示,较高的mg表示其具有高质量的候选目标,并且IoU阈值应该较高。如图3(b)所示,较低的mg表示其大多数候选目标均为低质量的,并且IoU阈值应较低。此外,物体的IoU标准差vg是衡量哪些层适合检测该目标的一种方法。如图3(a)所示,较高的vg表示该目标存在最合适的金字塔级别,将vg添加到mg可获得较高的阈值,仅从该级别中选择正样本。如图3(b)所示,较低的vg意味着存在一些适合该目标的金字塔级别,将vg添加到mg可获得一个较低的阈值,可以从这些级别中选择适当的正样本。利用平均mg和标准偏差vg之和作为IoU阈值tg,可以根据目标的统计特性,自适应地从适当的金字塔级别上为每个目标选择足够多的正样本。(以图3(a)为例计算平均值mg和标准偏差vg)
图3:ATSS的图示。 每个级别的IoU都有一个候选值。 (a)具有高mg和高vg g的ground-truth。(b)具有低mg和低vg的ground-truth。
将正样本的中心限制为目标。中心在目标外的anchor是一个很差的候选对象,它会被目标外的特征所预测,这不利于训练,应该排除在外。
维护不同目标之间的公平性。根据统计理论4,理论上大约有16%的样本位于置信区间[mg + vg,1]中。尽管候选对象的IoU不是标准正态分布,但统计结果表明,每个目标都有大约0.2 * kL个正样本,这与其大小,纵横比和位置无关。 相反,RetinaNet和FCOS的策略对于较大的目标往往有更多的正样本,从而导致不同目标之间的不公平。(4http://dwz1.cc/sNIgLI2)
保持超参数自由。在我们的方法中只有一个超参数k。随后的实验将证明它对k的变化相当不敏感,并且所提出的ATSS可以被认为是无超参数的。
4.2. Verification(验证)
基于Anchor的RetinaNet。为了验证针对基于anchor的检测器的自适应训练样本选择的有效性,我们使用它替代了改进的RetinaNet(#A = 1)中的传统策略。它持续地将性能提高了2.3% (AP)、2.4% (AP50)、2.9% (AP75)、2.9% (APS)、2.1% (APM)和2.7% (APL)。这些改进主要是由于根据每个ground-truth的统计特性动态地选择正样本。由于我们的方法只重新定义了正样本和负样本,而没有产生任何额外的开销,因此可以认为这些改进是免费的。
Anchor-free FCOS。所提出的方法也可以应用于两种版本的anchor-free FCOS:lite版本(简化版本)和 full 版本(完整版本)。 对于精简版本,我们将提出的ATSS的一些思想应用于FCOS,即用我们的方法代替其选择候选正样本的方法。FCOS将目标框中的anchor points视为候选目标,这会导致大量低质量的正样本。反之,我们的方法为每个ground-truth选择每个金字塔级别的前k = 9个候选。我们方法的精简版已合并到FCOS的官方代码中作为中心抽样,如表3所示,它将FCOS的AP从37.8%提高到38.6%。但是,精简版本中仍然存在尺度范围的超参数 。
对于完整版本,我们让FCOS中的anchor point 成为8S尺度的anchor box来定义正样本和负样本,然后仍将这些正样本从anchor point回归到目标上(如FCOS)。 如表3所示,它显著提高了AP、AP50、AP75、APS、APM、APL的性能(AP:1.4%、AP50:1.7%、AP75:1.7%、APS:0.6%、APM:1.3%和APL:2.7%)。值得注意的是,这两个版本在空间维度上选择了相同的候选项,但是在尺度维度上从候选项中选择最终正样本的方式有所不同。如表3的最后两行所示,完整版本(ATSS)在不同指标上的性能大大优于精简版本(中心采样)。这些结果表明,在尺度维度上,我们方法中的自适应方法比FCOS中的固定方法更适合从候选样本中选择正样本。
表3:在MS COCO minival集上对提议方法的验证。ATSS和中心采样是我们提出的方法的完整版和精简版。
4.3. Analysis
使用所提出的自适应训练样本选择来训练目标检测器仅存的一个超参数k和一个相关的anchor boxes设置。本小节对它们逐一进行分析。
超参数k。我们进行了一些实验来研究超参数k的鲁棒性,该超参数k用于从每个金字塔等级中选择候选正样本。如表4所示,使用[3、5、7、9、11、13、15、17、19]中k的不同值来训练检测器。我们观察到,所提出的方法对k从7到17的变化非常不敏感。k太大(例如19)将导致太多低质量的候选目标,从而稍微降低性能。k太小(例如3)会导致准确性明显下降,因为候选正样本太少会导致统计不稳定。总的来说,唯一的超参数k具有很强的鲁棒性,所提出的ATSS可以视为无超参数。
表4:MS COCO minival集合上k的不同超参数分析。
Anchor Size。引入的方法借助anchor boxes来定义正样本,我们还研究了 anchor size的影响。在之前的实验中,每个位置都平铺了一个8S的方形anchor(S表示金字塔等级的总步长)。如表5所示,我们在[5、6、7、8、9]中使用不同比例的方形anchor进行了一些实验,性能相当稳定。此外,如表6所示,还对8S anchor box 进行了几个不同长宽比的试验。这些性能对这种变化也不敏感。这些结果表明,所提出的方法对于不同的anchor设置具有较强的鲁棒性。
表5:在MS COCO minival集上以固定的宽高比1:1进行的不同anchor 尺度的分析。
表6:MS COCO minival 集上固定比例8S的不同anchor 高宽比分析。
4.4. Comparison
我们将表8中MS COCO测试开发子集上的最终模型与其他最新的目标检测器进行了比较。在前人工作的基础上[33,56],这些实验采用多尺度训练策略,即在训练过程中随机选择640到800之间的比例来调整图像较短边的大小。此外,我们将迭代总数增加一倍为180K,学习率降低点则分别为120K和160K。 其他设置与前面提到的设置一致。
如表8所示,我们使用ResNet-101的方法在没有任何附加条件的情况下,获得了43.6%的AP,这比所有具有相同主干的方法都要好,包括Cascade R-CNN [5] (42.8% AP)、C-Mask RCNN [7] (42.0% AP)、RetinaNet [33] (39.1% AP)和RefineDet [66] (36.4% AP)。通过使用更大的主干网ResNeXt-32x8d-101和ResNeXt-64x4d-101[63],我们可以进一步将本文所提方法的AP精度提高到45.1%和45.6%。45.6%的AP结果优于所有anchor-free和基于anchor的检测器,仅比SNIP[54]低0.1% (45.7% 的AP),后者引入了改进的多尺度训练和测试策略。由于我们的方法是关于正样本和负样本的定义,因此它与大多数当前技术兼容并互补。 因此,我们将可变形卷积网络(DCN)[10]用于ResNet和ResNeXt主干网以及检测塔的最后一层。DCN使ResNet-101、ResNeXt-32x8d-101和ResNeXt-64x4d-101的AP性能分别提高到46.3%、47.7%和47.7%。通过单模型和单尺度测试,获得了47.7%的最佳结果,大大优于以往的所有检测方法。最后,通过多尺度测试策略,我们的最佳模型获得了50.7%的AP。
表8:MS COCO测试开发集的检测结果。粗体表示最佳性能。
4.5. Discussion
以前的实验是基于每个位置只有一个锚的RetinaNet。基于anchor和anchor-free探测器之间仍有一个未探讨的差异:每个位置平铺的anchors的数量。实际上,原始的RetinaNet在每个位置上平铺了9个锚点(3个比例x 3长宽比),我们将其标记为RetinaNet(#A = 9),达到AP的36.3%,如表7第一行中所列。此外,表1中的这些普遍改进也可用于RetinaNet (#A=9),将AP性能从36.3%提高到38.4%。在不使用所提出的ATSS的情况下,改进的RetinaNet (#A=9)的性能优于RetinaNet (#A=1),即38.4%(表7中的性能)vs 37.0%(表1中的性能)。这些结果表明,在传统的基于IoU的样本选择策略下,每个位置平铺更多的anchor boxer是必要的。
表7:讨论在MS COCO minival集上的每个位置平铺多个anchors的必要性。
但是,在使用我们提出的方法之后,我们将得出相反的结论。具体来说,所提出的ATSS还将RetinaNet (#A=9)的AP提高了0.8%,AP50提高了1.4%,AP75提高了1.1%,达到与表7第3行和第6行所列的RetinaNet (#A=1)相似的性能。此外,当我们将锚定比例(anchor scales)或高宽比从3更改为1时,结果几乎与表7第4行和第5行相同。换句话说,只要选取合适的正样本,无论在每个位置平铺多少anchors,结果都是相同的。因此,我们得出的结论是,在我们提出的方法下,每个位置平铺多个anchors是一项费力不讨好的操作,需要进一步研究,以发现每个位置多个anchors的正确作用。
5. Conclusion
在这项工作中,我们指出一阶段基于anchor的检测器和基于中心的anchor-free 检测器之间的本质区别实际上是正训练样本和负训练样本的定义。这表明,在训练过程中如何选取正、负样本是目标检测的关键。受此启发,我们深入研究了这一基本问题,并提出了自适应训练样本选择方法,该方法根据目标的统计特征自动划分正训练样本和负训练样本,缩小了基于anchor的检测器与anchor-free检测器之间的差距。此外,我们讨论了在每个位置平铺多个anchors的必要性,并证明了在当前情况下这是一个费力不讨好的操作。在具有挑战性的基准MS COCO上进行的大量实验表明,该方法可以在不增加任何额外开销的情况下实现最先进的性能。