计算机系统应用教程网站

网站首页 > 技术文章 正文

论文阅读笔记-ATSS

btikc 2024-09-11 01:32:00 技术文章 13 ℃ 0 评论

张士峰在CVPR 2020发了一篇论文解读目标检测中关于Anchor-base和Anchor-free方法间的差别。论文首先指出如何定义正、负训练样本,是anchor-based检测与anchor-free检测的本质区别,是导致两者之间的性能差距的根本原因。如果正负样本的定义相同,无论从一个anchor还是point回归,其结果性能都差不多。因此,正负样本的选取对于object-detection任务极其重要。这篇论文提出ATSS,一种自适应训练样本选择方法,能够根据目标的统计特征自动选择正、负样例,能显著提高这两种检测方法的性能,弥补两者之间的diff。论文最后还讨论了在每个position平铺多个anchor进行object-detection的必要性。

论文:《Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sample Selection》

链接:https://arxiv.org/abs/1912.02424

代码:https://github.com/sfzhang15/ATSS

一、Introduction

object-detection是computer-vision领域中一个久远的课题,其目的是检测事先定义好的目标。准确的目标检测将对图像识别和视频监控等多种应用产生深远的影响。近年来,随着CNN的发展,anchor-based的目标检测方法逐渐成为主流,一般可分为one-stage和two-stage这两种。这两种方法都需要先在image上平铺大量的anchor,然后预测这些anchor的类别以及对anchor的坐标进行refine,最后将这些refined的anchor输出。由于two-stage对anchor的refine程度是one-stage方法的七倍以上,因此,two-stage的结果更准确,而one-stage的计算效率更高。通用detection基准的stat-of-the-art结果仍然由anchor-based的检测器产生。

然而,随着FPN和focal loss的出现,近年来学术界越加多的关注于anchor-free的方法。anchor-free的方法通过2种方式搜索没有预先设定anchor的目标。其一是,首先定位几个预定义或self-learned的关键点,然后约束object的空间范围。这种方法称作Keypoint-based方法。另一种是使用object的中心点或者region来定义正例,然后预测从正例到object边界的四个距离。这种方法称之为center-based方法。这些anchor-freed的检测器能够消除关于anchor的超参数,并得到与anchor-based检测器相匹配的性能,因此,更具有泛化能力。

在这两种anchor-free检测方法中,keypoint-based方法遵循与anchor-based方法不同的关键点预估pipeline,而center-based方法与anchor-based方法类似,将点当作预设的样本而非anchor来处理。以one-stage的anchor-based检测器,RetinaNet和center-based的anchor-free检测器FCOS为例,它们直接的主要差异有三:(1) 每个位置的anchor的数量。RetinaNet每个位置设置多个anchor,而FCOS设置一个anchor每个位置;(2) 正、负样例的定义。RetinaNet是根据IOU阈值设定,FCOS使用空间和尺度的限制来确定正负样本;(3) 回归开始状态。RetinaNet将目标边界框从预置anchor框中回归,FCOS从点定位目标。anchor-free的FCOS检测器比anchor-based的RetinaNet性能更好,这三个差异中哪一个导致的这种结果是一个值得研究的问题。

这篇文章通过严格排除anchor-based和anchor-free方法之间的所有实现上的不一致性,公平的探究这两种方法之间的差异性。从实验结论上看,如何定义正、负训练样本,是anchor-based检测与anchor-free检测的本质区别,是导致两者之间的性能差距的根本原因。如果在训练中选择相同的正负例,最终的性能没有明显的gap,无论从一个anchor还是point回归。因此,如何选择正负样例值得深入探究。受此启发,本文提出一种新的自适应训练样本选择(ATSS)方法,可以根据目标特征自动选取正负样例,这种方法弥补了anchor-based和anchor-free检测器之间的性能gap。此外,还通过实验得出一个结论:在图上每个位置平铺多个anchor用于检测object是没有必要的。这篇文章的主要贡献总结如下:

?指出anchor-based和anchor-free的本质区别实际上是如何去定义正、负训练样本。

?根据对象的统计特征,提出ATSS方法,自动选择正、负样例。

?指出在图像上的每个位置平铺多个anchor以检测对象是不必要的操作。

?在不引入任何额外开销的情况下,在MS COCO上实现state-of-the-art结果。

二、Related Work

2.1 Anchor-Based Detector

Two-stage method. Faster RCNN的诞生奠定了two-stage方法的主导地位。FasterRCNN由一个RPN网络和一个对region-wise进行预测、检测目标的网络组成。在此基础上,一系列改进算法被提出,包括体系结构的重新设计与改进、上下文与注意机制、多尺度训练与测试、训练策略与损失函数、特征融合与增强、更好的rpn结构等。迄今为止,detection benchmark的stat-of-the-art结果仍然由two-stage方法保持着。

One-stage method.随着SSD的出现,one-stage检测方法因其高运算效率而广受关注。SSD在卷积网络的多尺度层上设定anchor-box,以直接预测对象类别和anchor-box的偏移量。此后,大量的工作被提出,从不同的方面提升SSD的性能,包括融合不同层次的上下文信息、从scratch训练、引入新的loss函数、anchor的细化与匹配、网络结构的重新设计、引入更丰富的特征与特征对齐。目前,one-stage方法可以以更快的速度达到与two-stage方法相似的性能。

2.2 Anchor-free Detector

Keypoint-based method.这类方法首先定位一些预先设定的或自学习到的关键点,然后生成bounding box来检测目标。CornerNet将对象边界框检测为一对关键点(左上角和右下角), 而CornerNet Lite引入CornerNet-Saccade 和 CornerNet-Squeeze来提高检测速度。第二阶段的Grid RCNN通过使用FCN的位置敏感的优势来预测grid point,然后通过grid point来决定bounding box。ExtremeNet检测四个极端点(最上面、最左边、最下面、最右边)和一个中心点以生成对象bounding box。Zhu et al.使用关键点估计查找对象的中心点,并回归到所有其他特性,包括大小、三维位置、方向和姿势。CenterNet[11]将CornetNet扩展为一个三元组,而不是一对关键点,以提高精确度和召回率。RepPoints将对象表示为一组采样点,并学习如何排列它们用于限定对象的空间区域以及指示语义上的重要region。

Center-based method.这种anchor-free的方法是以object的中心(如中心点或部分)作为前景来定义正例,然后预测正例到物体bounding box四边的距离进行检测。YOLO将图片划分成S X S个格子,包含有一个物体中心的cell负责检测这个物体。DenseBox使用位于对象中心的填充圆来定义正例,然后预测从正例到对象bounding box边界的四个距离以进行定位。GA-RPN将目标中心区域的像素定义为正像素,用以预测由Faster RCNN提出的目标的位置、宽度和高度。FSAF将带有在线特征选择的anchor-free分支附加到RetinaNet。新增加的分支将对象的中心区域定义为正区域,通过预测到其边界的四个距离来定位对象。FCOS将对象边界框内的所有位置视为具有四个距离的正例,并使用新的中心度得分来检测对象。CSP只将目标box的中心点定义为正例,检测长宽比固定的行人。FoveaBox将目标的中间位置定位正例,通过四个距离进行检测。

三、 Difference Analysis of Anchor-based and Anchor-free Detection

在不丧失一般性的情况下,采用了具有代表性的anchor-based RetinaNet和anchor-free FCOS来探究它们之间的差异。在本节中,将重点讨论后两个差异:正/负样例定义和回归开始状态。剩下的一个区别是:每个位置设定的anchor的数量,将在后面的章节中讨论。因此,与FCOS类似,RetinaNet在每个position都支取一个anchor。在剩下的部分中,首先介绍了实验的设定情况,需要排除所有实现上的不一致性,最后指出Anchor-based and Anchor-free检测器之间的本质区别。

3.1 Experiment Setting

Dataset.本文所有实验都在MS COCO数据集上开展,它有80个物体类别,115K图用于训练集,5K用于validation和分析。

Training Detail. 首先用ImageNet预训练一个具有5级特征金字塔的ResNet50作为backbone。对于RetinaNet,五级特征金字塔中的每一层都与一个8S比例的正方形anchor相关联,其中S是总步长。训练时,resize图像保持短边大小为800, 长边为1333。使用momentum为0.9, weight decay为0.001SGD算法训练了90K次迭代,batch size为16。初始化学习率为0.1,在60K和80K时分别以0.1的比例进行衰减。除非另有说明,否则在实验中使用上述训练细节。

Inference Detail.在推理阶段,采用与训练阶段相同的方法调整输入图像的大小,然后通过整个网络进行预测,以输出带有预测类的bounding box。之后,我们使用预设的分数0.05过滤掉大量的背景边界框,然后输出每个特征金字塔的前1000个检测。最后,应用非最大抑制(NMS),每类的IoU阈值0.6,以生成每幅图像的最终前100个置信检测。

3.2. Inconsistency Removal

将anchor-based的RetinaNet在每个位置的anchor设定为1的模型记为RetinaNet (#A=1),然而,FCOS和RetinaNet (#A=1)在性能上存在很大的差距,37.1% vs. 32.5%。FCOS更进一步提升了性能,通过moving centerness to regression branch、使用GIoU loss 函数、归一化回归目标, 将AP性能从37.1% 提升为37.8%。导致性能之间gap的FCOS的提升同样可以应用到anchor-based检测器上。在RetinaNet (#A=1)上逐一实现这些不一致性,表1中展现了相应的提升,AP提升只37.0%,仍然有0.8%的Gap。到目前为止,在消除了所有不相关的差异之后,我们可以以一种相当公平的方式探索anchor-based和anchor-free检测器之间的本质差异。


3.3. Essential Difference

使用了表1所示的提升后,RetinaNet (#A=1)与FCOS之间仅存在2个差异了。一个是关于检测中的分类子任务,即定义正负样例的的方法。另一个是关于回归子任务,即从bounding box或从点开始回归。

Classification.如图1(a)所示,RetinaNet使用IoU将不同金字塔级别的anchor box划分为正例和负例。它首先为每个物体标记一个最好的anchor box,然后IoU大于theta_p的anchor为正例,小于theta_n的anchor为负例,其余的anchor在训练中忽略。如图1(b)所示,FCOS使用空间和比例约束来从不同的金字塔级别划分anchor点。它首先将ground-truth box内的anchor点作为候选正例,然后根据每个金字塔级别定义的比例范围从候选中选择最终的正样本,最后将未选择的anchor点作为负样本。

如图1所示,FCOS首先使用空间约束在空间维度中查找候选正例,然后使用scale约束在scale维度中选择最终正例。相反,RetinaNet利用IoU在空间和scale维度上同时直接选择最终的正例。这两种正负例选择策略诞生了不同的正负样本。如表2第一列所列,对于RetinaNet(#A=1),使用空间和比例约束策略代替IoU策略将AP性能从37.0%提高到37.8%。对于FCOS,如果使用IoU策略选择正样本,AP性能将从37.8%下降到36.9%,如表2第二列所示。这些结果表明,正样本和负样本的定义是anchor-based和anchor-free检测器的本质区别。

Regression.在确定正样本和负样本之后,对象的位置从正样本回归,如图2(a)所示。RetinaNet从anchor box回归,anchor box和对象box之间有四个偏移,如图2(b)所示。而FCOS从anchor点回归四个距离到对象的边界,如图2(c)所示。这意味着对于正样本,RetinaNet是从一个box回归,而FCOS是从一个点回归。然而,表2的第一行和第二行表明,当RetinaNet和FCOS采用相同的样本选择策略来获得一致的正/负样本时,无论用什么方式回归,最终的性能都没有明显的差异,即37.0%VS36.9%和37.8%VS37.8%。这些结果表明回归开始状态是一个不相关的差异而不是本质的差异。

Conclusion. 通过这些实验,可以得出,one-stage的anchor-based检测器与center-based anchor-free检测器的本质区别在于如何定义正负训练样本,这对当前的目标检测具有重要意义,值得进一步研究。

四、Adaptive Training Sample Selection

在训练object-detector时,首先需要定义进行分类的正样本和负样本,然后使用正样本进行回归。根据前面的结论,正负样例的定义是关键,而base-free检测器FCOS改进了这一步骤,它引入了一种新的正负样例定义方法,对比比传统的基于IoU的策略得到了更好的性能。受此启发,本文深入研究了目标检测中最基本的问题:如何定义正负训练样本,并提出了自适应训练样本选择(ATSS)方法。与这些传统策略相比,该方法几乎没有超参数,并且对不同的环境具有鲁棒性。

4.1. Description

已有的样本选择策略都有一些敏感的超参数,如anchor-based检测的IoU阈值、anchor-free检测的尺度范围。这些超参数设置后,所有的ground-gruth box都必须根据固定的规则来选择其正样本,这些规则适用于大多数对象,但会忽略一些外部对象。因此,这些超参数的不同设置将产生非常不同的结果。

为此,我们提出了一种ATSS方法,它几乎不需要任何超参数就可以根据对象的统计特性自动划分正、负样本。算法1描述了所提出的方法对输入图像的工作原理。对于图像上的每个ground-truth box g,我们首先找出它的候选正样本。如第3至6行所述,在每个金字塔级别上,基于L2距离选择中心最接近g中心的k个anchor box。假设有L个特征金字塔层级,则对每个g,有L X k个候选正例。然后,计算这些候选与g的IoU,如第7行所示,记为D_g,如第8-9行所示,计算其均值、方差记为m_g,v_g。如第10行所示,g的IoU阈值为:tg=mg+vg。最后,如第11-15行所示,选择IoU大于tg的候选作为正例。如第12行所示,还需限制正例的中心点位于g box之内。此外,如果一个anchor被分配给ground-truth box,那么将选择IoU最高的一个。剩下的候选为负例。算法中一些动机如下所示:

Selecting candidates based on the center distance between anchor box and object.对于RetinaNet,当anchor box的中心靠近对象的中心时,IoU会更大。对于FCOS,离目标中心越近的anchor点将产生更高质量的检测。因此,离物体中心越近的anchor是更好的选择。

Using the sum of mean and standard deviation as the IoU threshold.一个物体IoU的均值mg衡量其预设anchor的适用性。图3(a)所示的高均值mg表明它有高质量的候选集,IoU阈值应该是高的。低mg如图3(b)所示,表明其候选人大多为低质量,IoU阈值应较低。如图3(a)所示的高vg意味着有一个金字塔级别特别适合于此对象,将vg添加到mg将获得一个高阈值,以便仅从该级别选择正例。如图3(b)所示的低vg意味着有几个适合于此对象的金字塔级别,将vg添加到mg将获得一个低阈值以从这些级别中选择适当的正例。利用平均mg和标准偏差vg之和作为IoU阈值tg,可以根据目标的统计特性,自适应地从适当的特征金字塔水平上为每个对象选择足够多的正例结果。

Limiting the positive samples’ center to object. 中心在物体box外的anchor是一个很差的候选对象,它会被目标外的特征所预测,这不利于训练,应该排除在外。

Maintaining fairness between different objects. 根据统计理论,大约有16%的样本位于[mg+vg, 1]置信区间内。尽管候选的IoU不是标准的正态分布,但是统计的结果表明每个object大约有0.2*Kl个正例,这不因物体的尺寸、纵横比、位置而改变。相比之下,RetinaNet和FCOS的策略对于较大的对象往往有更多的正样本,从而导致不同对象之间的不公平。

4.2 Verification

Anchor-based RetinaNet.替换RetinaNet (#A=1)的策略用以验证在anchor-based检测器上的有效性。性能提升结果如表3所示。这些提升主要是由ATSS带来的,因为仅仅改变了正负样例定义的方法,没有引入额外的开销,这些性能的提升可以认为是cost-free的。

Anchor-free FCOS.ATSS在Anchor-free FCOS的运用有两种不同的版本。the lite and full version。对于lite版本,将所提出的ATSS的一些思想应用到FCOS中,即用我们方法中的方法替换其选择候选正例的方法。FCOS将对象框中的anchor点视为候选点,这会导致大量低质量的正例。相比之下,在每个金字塔级别上为每个ground-truth选择top9个候选。lite版本被合并到FCOS的官方代码中作为center sampling,这使得FCOS的AP性能从37.8%提高到38.6%,如表3所示。但是,lite版本中仍然存在scale范围的超参数。

对于full版本,让FCOS中的anchor点定义为具有8S尺度的anchor box,用来定义正样本和负样本,然后,如FCOS,依然从anchor点回归物体。其性能提升如表3所示。值得注意的是,这两个版本在空间维度上有相同的候选,但是在尺度维度上,从候选者中选择最终正例的方式不同。如表3最后两行所列,完整版本(ATSS)在不同指标上的表现要比精简版本(center sample)好很多。这些结果表明,在尺度维上,我们的方法比FCOS中的固定方法更适合从候选样本中选择正例样本。

4.3. Analysis

Hyperparameter k.过大的k(例如19)将导致过多的低质量候选,从而稍微降低性能。太小的k(例如,3)会导致准确度的显著下降,因为太少的候选正样本会导致统计上的不稳定性。总的来说,唯一的超参数k具有很强的鲁棒性,所提出的ATSS几乎可以看作是无超参数的。

Anchor Size. 如Table5、Table6 所示


4.4 Comparison

anchor-free、anchor-based、ATSS对比


ATSS中anchor预设值数量的必要性


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表