ATSS 论文学习

Abstract

基于anchor的检测器在过去很多年都主导着目标检测领域。最近由于FPN和 Focal Loss 的提出, anchor-free 的检测器逐渐流行了起来。本文中,作者指出了基于anchor和anchor-free方法的本质区别,就是如何定义正负样本,它造成了这些方法之间的表现差异。如果它们在训练时采用同样的正负样本定义,它们最终的表现并没有明显的不同,不管是从边框还是一个点进行的回归。这就说明,如何选取正负训练样本对目前的目标检测器是非常关键的。然后,作者提出了一个自适应的训练样本选取(ATSS)方法,根据目标的统计特征自动地选择正负样本。它极大地提升了基于anchor和anchor-free检测器的性能,将二者的差距弥补起来。最后作者认为在图像的每个位置上放置多个anchor很有必要。作者在MS COCO数据集上进行了充分的试验,支持前面的分析和结论。ATSS 方法将SOTA检测器的性能大幅度提升到了 50.7 % 50.7\% 50.7%AP,而没有增加任何成本。代码放在了:https://github.com/sfzhang15/ATSS

1. Introduction

目标检测在计算机视觉领域是一个长期存在的课题,目的是检测到特定类别的物体。精确的目标检测方法对于图像识别和视频监控有着重要的影响。近些年,随着卷积神经网络的发展,目标检测一般都是采用基于anchor的方法,大致可以分为单阶段检测器和双阶段检测器。它们都是在一张图片上放置大量的预先定义好的 anchors,然后预测其类别,优化这些anchor的坐标,最终将这些优化后的 anchors 作为检测结果输出。由于双阶段方法需要优化的 anchors 的数量是单阶段方法的好几倍,前者的准确率要高一些,而后者的计算效率要高一些。在常用的检测基准上,SOTA的方法一般都是基于 anchor 的。

但是,由于FPN和 Focal Loss 的出现,最近学术领域又开始关注在 anchor-free 检测器上。Anchor-free 检测器以两种不同的方式来直接找到物体,无需预先定义 anchors。一种方式是首先定位到多个预定义或自学习的关键点,然后约束物体的空间范围。作者称这种 anchor-free 方法为 keypoint-based 方法。另一种就是利用中心点或中心目标区域来定义正样本,然后预测它到目标四个边的距离。这类 anchor-free 方法被称作为 center-based 方法。这些 anchor-free 方法降低了有关anchor的超参数,取得的效果与 anchor-based 方法类似,使它们更具泛化潜能。

这两类 anchor-free 检测器中,keypoint-based 方法延续了标准的关键点预测流程,这与 anchor-based 方法不同。但是,center-based 方法与 anchor-based 方法类似,将点看作为预先设定的样本。以单阶段的基于 anchor 的 RetinaNet 和 center-based 的 anchor-free 方法 FCOS 为例,它们主要有三个不同之处:

  • 每个位置上放置的 anchors 个数不同。RetinaNet 在每个位置上都放多个 anchor boxes,而FCOS 在每个位置上只放一个 anchor point。
  • 正负样本的定义不同。RetinaNet 利用 IOU 来判断其正负,而FCOS利用空间和尺度的约束来选取样本。
  • 回归起始状态不同。RetinaNet 从预先定义的 anchor box 来回归目标边框,而FCOS则从 anchor point 出发,定位物体。

如[56]所报告的,anchor-free 的 FCOS 取得的表现要比 anchor-based RetinaNet 好,那么我们就应该研究一下,这三点中的哪一点造成了这些差距。

本文中,作者以非常公平的方式研究了 anchor-based 和 anchor-free 的方法的差异,排除了所有实现上的不一致。从实验结果可以得到,这两类方法的主要不同就是正负训练样本的定义,它造成了性能上的差异。如果在训练时,它们选择同样的正负样本,最终的表现就不会出现明显的不同,无论是从一个边框来回归,还是一个点来回归。因此,如何选择正负样本需要进一步的研究。受此启发,作者提出了一个新的自适应训练采样方法(ATSS),基于目标物体的特征自动地选择正负样本。它弥补了 anchor-based 和 anchor-free 检测器之间的差距。此外通过一系列的实验证明,在图像的每个位置上没有必要放置多个 anchors。在MS COCO数据集上的实验支撑了本文的分析和结论。通过使用ATSS,作者获得了 50.7 % 50.7\% 50.7% AP,没有带来任何的额外开支。本文主要贡献如下:

  • 指出了 anchor-based和anchor-free 方法的核心差异,它们定义正负样本的方式。
  • 提出了一个自适应的训练采样方法,根据物体的统计特征,自动选择正负样本来训练。
  • 证明在图片上每个位置摆放多个 anchors 是不必要的。
  • 在MS COCO数据集上取得了SOTA的表现,而没有增加任何成本。

2. Related Work

目前的CNN目标检测器都是 anchor-based 或 anchor-free 的。前者又可以分为双阶段和单阶段方法,而后者则可分为 keypoint-based 和 center-based。

2.1 Anchor-based Detectors

双阶段方法。Faster R-CNN 的出现确立了双阶段、anchor-based 检测器的主导地位。Faster R-CNN 由一个 RPN 网络和一个 region-wise 的预测网络(R-CNN)组成,然后预测目标。之后,人们又提出了许多的算法来提升其表现,包括结构重新设计、注意力机制、多尺度训练、训练策略和损失函数、特征融合和增强、候选框平衡等。目前在标准的检测基准上,SOTA的结果仍然被双阶段anchor-based方法统治。

单阶段检测器。随着SSD的出现,由于其计算效率高,单阶段检测器吸引了很多人的关注。SSD 在卷积网络的多尺度上展开 anchor boxes,直接预测物体的类别和 anchor box 偏移量。随后,人们又从多个方面进行大量的工作来提升其性能,如不同层之间上下文信息融合、从零开始训练、引入新的损失函数、anchor优化与匹配、结构重设计、特征增强和对齐等。现在,单阶段 anchor-based 方法已经可以取得与双阶段 anchor-based 方法类似的性能,而速度要更快。

2.2 Anchor-free Detectors

基于关键点的方法。这类 anchor-free 方法首先定位到预先定义或自学习的关键点,然后生成边框来检测物体。CornerNet 通过一对关键点(左上角和右下角)来检测物体的边框,CornerNet-Lite 引入了 CornerNet-Saccade 和 CornerNet-Squeeze 来提升其速度。Grid R-CNN 的第二个阶段利用FCN的位置敏感的优点来预测网格点,然后再判断边框、定位物体。ExtremeNet 检测物体的4个点(最上面、最左面、最下面、最右面)以及一个中心点来生成物体的边框。Zhu 等人利用关键点估计来找到物体的中心点,然后回归出其他的属性,包括大小、三维位置、朝向、姿态等。CenterNet 扩展了CornerNet,通过三个点而不是两个点来提升精度和召回率。RepPoints 将物体表示为一个样本点的集合,通过约束物体的空间范围、强调语义重要的局部区域来学习。

Center-based methods。这类方法将物体的中心区域(中心点或区域)看作为前景,定义正样本,然后预测它到物体四个边的距离。YOLO 将图像分割为 S × S S\times S S×S个网格,如果物体的中心点落在了某网格内,该网格就要负责检测该目标物体。DenseBox 利用物体中心位置的圆圈区域来定义正样本,然后预测该圆圈到物体边界的四个距离。GA-RPN 将物体中心区域的像素点定义为正样本,为 Faster R-CNN 预测物体候选框的位置、宽度和高度。FSAF 在 RetinaNet 之上加了一个 anchor-free 的分支和在线特征选取机制,这个分支将物体的中心区域定义为正样本,利用它到物体的四个边的距离来定位它。FCOS 将物体边框内的所有位置都定义为正样本,然后通过4个距离值和1个 centerness 分数来检测物体。CSP 只将物体的中心点定义为正样本,通过固定的 aspect ratio 来检测行人。FoveaBox 将物体的中间部分位置定义为正样本,每个位置有4个距离来进行检测。

3. Difference Analysis of Anchor-based and Anchor-free Detection

不失一般性,作者仔细分析了 anchor-based的代表方法 RetinaNet 和 anchor-free 的代表方法 FCOS 的差异。在这一节中,作者关注在最后两个差异上:正负样本定义和回归的起始状态。后面也会讨论另一个不同点:每个位置上 anchors 的个数。因此对于 RetinaNet 而言,作者在每个位置上只放置1个正方形 anchor,这样就与 FCOS 类似了。在后续部分,作者首先介绍了实验设定,排除实现上的不一致,最后介绍 anchor-based 和 anchor-free 检测器的关键差异。

3.1 实验设定

数据集。所有的实验都是在MS COCO上完成的,它包含80个类别。作者按照一般的操作,trainval35k 里的11.5万张图片用于训练,minival 中的5千张图片用于验证。作者也在评测服务器上提交了结果,得到 test-dev 最终的表现。

训练细节。作者使用 ImageNet 上预训练的 ResNet-50 作为主干网络,它有5个层级的特征金字塔结构。对于 RetinaNet,5个特征金字塔中的每一个网络层都有1个正方形 anchor,它有 8 S 8S 8S个尺度, S S S是总共的步长大小。在训练时,作者将输入图片重新缩放,保证短边长度为800,长边小于或等于1333。整个网络通过 SGD 来训练,momentum 为0.9,weight decay 为0.0001,batch size 为16,训练了9万次迭代。初始学习率为0.01,在6万次和8万次迭代时分别除以10。

推理细节。在推理时,将输入图片重新缩放,与训练阶段类似,然后将它输入进整个网络来输出预测边框和类别。之后,使用预定义的分数0.05来过滤背景边框,然后在每个特征金字塔输出得分最高的1000个检测目标。最后对于每张图片,利用NMS来产生置信度最高的100个检测目标,每个类的IoU阈值为0.6。

在这里插入图片描述

3.2 Inconsistency Removal

作者将每个位置上只有1个正方形anchor box 的 anchor-based 检测器 RetinaNet 记做 RetinaNet(#A=1),和 anchor-free 检测器 FCOS几乎一致。但是在MS COCO minival 数据集上,FCOS 的AP表现要比RetinaNet(#A=1) 高许多, 37.1 % v s . 32.5 % 37.1\% vs. 32.5\% 37.1%vs.32.5%。而且,FCOS也有一些新的改进,如将 centerness 放到回归分支上去,使用 GIoU 损失函数,通过相应的步长来归一化回归目标。这些改进可以将 FCOS 的AP性能提升至 37.8 % 37.8\% 37.8%,使得二者差距更大。但是,FCOS 和 RetinaNet 之间的 AP 差距拉大部分源于一些通用的改进,如检测头里的 GroupNorm、使用 GIoU 回归损失函数、在 ground-truth 边框中限制正样本、引入 centerness 分支、在每个特征金字塔中加入一个可训练的标量。这些改进也可以用于 anchor-based 检测器,因而它们不是 anchor-based 和 anchor-free 方法的根本不同。作者将它们挨个用在RetinaNet(#A=1)方法中,排除实现上的不一致。如表1所示,这些改进将 anchor-based RetinaNet 的AP提升到了 37.0 % 37.0\% 37.0%,但和 FCOS 仍有 0.8 % 0.8\% 0.8%的差距。现在,去除掉那些不相关的差异后,我们就可以研究 anchor-based 和 anchor-free 方法的根本不同了。

在这里插入图片描述

3.3 Essential Difference

在使用了通用的改进技巧后,anchor-based 的 RetinaNet(#A=1) 和 anchor-free FCOS 就只有2个不同之处了。其一就是检测中的分类子任务,即如何定义正负样本的。其二就是回归子任务,即从 anchor box 还是 anchor point 开始回归的。

分类。如图1(a)所示,RetinaNet 利用IoU将不同金字塔层级的 anchor boxes 划分为正负样本。它首先每个目标最优的 anchor box 以及 I o U > θ p IoU>\theta_p IoU>θp的 anchor boxes 标记为正样本,然后将 I o U < θ n IoU<\theta_n IoU<θn的 anchor boxes 标记为负样本,最后在训练中忽略掉其余的 anchor boxes。如图1(b)所示,FCOS 使用空间和尺度约束来划分不同金字塔层级的 anchor points。它首先将 ground-truth 边框内的 anchor points 看作为候选正样本,然后根据每个金字塔层级的尺度范围,从这些候选者中选择最终的正样本,最后剩下的就是负样本。

如图1所示,FCOS 利用空间约束在空间维度上找到候选正样本,然后利用尺度约束在尺度维度上找到最终的正样本。而 RetinaNet 则是利用 IoU,在空间和尺度维度上同时直接地选择最终的正样本。这两个不同的采样策略产生了不同的正负样本。表2第一列是RetinaNet(#A=1)的表现,使用了空间和尺度约束策略后,RetinaNet 的AP也提升到了 37.8 % 37.8\% 37.8%。对于FCOS,如果它采用IoU策略来选取正样本,AP表现也会降低到 36.9 % 36.9\% 36.9%,如第二列所示。这些结果证明,正负样本的定义是 anchor-based 和 anchor-free 方法的根本区别。

在这里插入图片描述

在这里插入图片描述
回归。决定好正负样本之后,从正样本回归得到物体的位置,如图2(a)所示。RetinaNet 用4个偏移量(anchor box 和物体边框之间)对 anchor box 进行回归,如图2(b)。而FCOS 则用4个距离(anchor point 到物体边界)来对 anchor point 进行回归,如图2©。对于正样本,RetinaNet 的回归起始状态是一个边框,而FCOS是一个点。但是,如表2第一行和第二行所示,RetinaNet 和 FCOS 采用同样的采样策略,正负样本一致的时候,并没有明显的性能差异,不论你是从一个点还是一个边框来回归,即 37.0 % v s . 36.9 % 37.0\% vs. 36.9\% 37.0%vs.36.9% 37.8 % v s . 37.8 % 37.8\% vs. 37.8\% 37.8%vs.37.8%。这些结果表明,回归起始状态是不相关的,它不是二者的根本差异。

总结。根据上述实验,作者认为单阶段 anchor-based 检测器和 center-based anchor-free 检测器的根本差异是它们如何定义正负样本的,这对当前目标检测非常重要,值得进一步研究。

4. 自适应训练样本选取

当我们训练一个目标检测器时,首先需要定义分类用的正负样本,然后对正样本做回归。根据前面的结论,前者很关键,anchor-free 检测器 FCOS 改进了这一步。它提出了一个新的方法来定义正负样本,与基于 IOU 的策略相比取得了更好的表现。受此启发,作者研究了最基本的目标检测问题:如何定义正负训练样本,提出了自适应的训练样本选取(ATSS)方法。与传统策略相比,该方法几乎没有超参数,对不同的设定也很鲁棒。

4.1 Description

之前的采样策略有一些敏感的超参数,如anchor-based 方法中的 IoU 阈值,anchor-free 检测器中的尺度范围。等这些超参数设好了之后,基于固定的规则,所有的 ground-truth 边框必须选择它们的正样本,这对大多数目标物体是适用的,但是一些外围物体可能就会被忽略掉。因而,这些超参数的不同设定会导致结果差异很大。

本文提出ATSS方法,根据物体的统计特征自动地划分正负样本,没有任何的超参数。算法1介绍了该方法的原理。对于图片上每个 ground-truth 边框 g g g,首先找到它的候选正样本。如第三行到第六行所说的,在每个金字塔层级上,选择 k k k个 anchor boxes,它们的中心与 g g g 的中心之间的 L 2 L2 L2 距离最接近。假设一共有 L L L个特征金字塔层级,ground-truth 边框 g g g就会有 k × L k\times L k×L个候选正样本。之后,计算这些候选者与ground-truth g g g 之间的 IoU D g D_g Dg,如第七行所说,它的平均数和标准方差为 m g m_g mg v g v_g vg,如第八行和第九行所计算的。有了这些数据,对于 ground-truth g g g,其IoU阈值就可以得到: t g = m g + v g t_g = m_g + v_g tg=mg+vg,如第10行所计算的。最后,作者选择那些IoU高于或等于阈值 t g t_g tg的,作为最终可能的样本,如第11行到第15行所计算的。在第12行,作者也限制了正样本中心必须在 ground-truth 边框内。此外,如果 anchor box 被赋给了多个 ground-truth 边框,选择IoU 最高的那个 ground-truth 边框。其余的就是负样本。

在这里插入图片描述

根据 anchor box与物体边框的中心距离来选择候选样本。对于 RetinaNet,当anchor box的中心接近物体的中心时,IoU就大。对于FCOS来说,anchor point 越接近物体的中心,它就越能产生高质量的检测目标。因此,anchor 距离物体中心越近,候选样本就越好。

在这里插入图片描述

使用平均值和标准方差的和作为IoU阈值。物体的IoU平均值 m g m_g mg是衡量预设anchor对于该目标物体是否合适的测度。如图3(a), m g m_g mg 越大,表示候选样本质量就越高,IoU阈值应该就高。如图3(b), m g m_g mg越小,表示绝大多数的候选样本质量都比较差,IoU阈值应该就低。此外,目标物体的IoU的标准方差 v g v_g vg 可以测量哪一层适合检测该物体。如图3(a), v g v_g vg越高,就表示存在一个最适合该物体的金字塔层级,将 v g v_g vg m g m_g mg加起来,可以得到一个较高的阈值,我们只从那一层中选择正样本。如图3(b),较低的 v g v_g vg意味着存在多个适合该物体的金字塔层级,将 v g v_g vg加到 m g m_g mg得到一个较低的阈值,从这些层级中选择合适的正样本。使用 m g m_g mg v g v_g vg的和作为IoU阈值, t g t_g tg就可以为每个物体自适应地,从合适的金字塔层级上选择足够多的正样本,根据物体的统计特征。

限制正样本中心到物体的距离。如果某 anchor 的中心位于物体的外边,那么它就不是一个好的候选样本,需要物体之外的特征来预测,这对训练是不利的,应该被去除。

在不同物体之间保持公平。根据统计理论,约 16 % 16\% 16%的样本位于 [ m g + v g , 1 ] [m_g+v_g,1] [mg+vg,1]这个置信度区间。尽管候选样本的IoU不是一个标准的正态分布,统计结果表明每个物体有大约 0.2 × k L 0.2\times kL 0.2×kL个正样本,对于尺度、aspect ratio 和位置而言是不变的。然而,RetinaNet和FCOS对于较大物体来说,正样本数量就多一些,导致不同物体之间的不公平。

保证几乎没有超参数。在该方法中只有一个超参数 k k k。后续的实验证明, k k k值的变动没什么影响,我们可以认为 ATSS 没有超参数。

4.2 验证

Anchor-based RetinaNet。为了验证ATSS对于anchor-based检测器的有效性,作者用它来替换RetinaNet(#A=1)中传统的策略。如表3所示,它将AP值提升了 2.3 % 2.3\% 2.3%,AP50提升了 2.4 % 2.4\% 2.4%,AP75提升了 2.9 % 2.9\% 2.9% A P S AP_S APS提升了 2.9 % 2.9\% 2.9% A P M AP_M APM提升了 2.1 % 2.1\% 2.1% A P L AP_L APL提升了 2.7 % 2.7\% 2.7%。这些提升主要因为对于每个ground-truth边框,我们根据其统计特征采用了正样本的动态选取。由于该方法只重新定义了正负样本,没有带来任何额外的支出,因而这些提升可以认为是 cost-free的。

Anchor-free FCOS。该方法也同样可以用于 anchor-free FCOS,可以有两个版本:轻量版和完整版。对于轻量版,作者应用了ATSS中的部分思想,替换了候选正样本的选择方法。FCSO 将物体边框内的 anchor points 作为候选样本,造成大量低质量的正样本。然而,作者在每个金字塔层级上对于每个 ground-truth 物体,只选择 k = 9 k=9 k=9个候选样本。该方法的轻量版已经融合进了FCOS的官方代码,作为中心采样,将FCOS的AP从 37.8 % 37.8\% 37.8%提升到了 38.6 38.6 38.6,如表3所列。但是在轻量版中,尺度范围这个超参数仍然存在。

在这里插入图片描述

对于完整版,作者将FCOS的 anchor point 变为有 8 S 8S 8S个尺度的 anchor box,定义正负样本,然后对anchor point回归这些正样本,就像FCOS一样。如表3所示,AP大幅度提升了 1.4 % 1.4\% 1.4%,AP50提升了 1.7 % 1.7\% 1.7%,AP75提升了 1.7 % 1.7\% 1.7%。这两个版本在空间维度上有着一样的候选样本,但是在尺度维度上,从候选样本中选择最终的正样本的方式不同。如表3最后两行所列,完整版ATSS 的AP值要比轻量版 center sampling 高不少。这表明自适应的方法要比FCOS中从候选样本中固定选取正样本的方式要好。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值