锅炉信息网 > 锅炉知识 > 锅炉百科

ATSS解读

发布时间:

简介Anchor-free方法成为单阶段检测之后又一个热门的目标检测的研究方向,不过实际上不论是anchor-based方法还是anchor-free方法,其

简介

Anchor-free方法成为单阶段检测之后又一个热门的目标检测的研究方向,不过实际上不论是anchor-based方法还是anchor-free方法,其最关键的区别其实在于正负样本的选择方式,这直接导致了它们效果的区别。这个观点在ATSS这篇文章中被提出,论文还认为如果anchor-free方法和anchor-based方法采用同一个正负样本的选择方式,那么无论是基于点还是基于anchor进行回归,效果差别不会特别大。由此,论文提出了自适应样本选择机制(Adaptive Training Sample Selection,ATSS)来根据目标的统计信息自动选择正负样本。这极大地改善了anchor-based方法和anchor-free方法并弥补了连各种方法论之间地性能鸿沟,将ATSS用到当前SOTA检测器上也能带来明显地任务涨点。

  • 论文标题
    Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sample Selection
  • 论文地址
    http://arxiv.org/abs/1912.02424
  • 论文源码
    https://github.com/sfzhang15/ATSS

介绍

卷积神经网络兴起后,目标检测长期被anchor-based方法通知,前后经历了二阶段方法到单阶段方法的转变。不过无论哪种方法都是在图像上平铺大量预定义的anchor,然后经过一次或者多次的anchor的类别预测和坐标修正,最后输出修正过的anchor作为检测结果。这里二阶段方法会对anchor进行多次修正,而单阶段只会进行一次修正,因此二阶段方法精度较高单阶段方法速度较快。

但是,最近目标检测研究的目光投向了anchor-free目标检测器的研究上,anchor-free的兴起和FPN和Focal Loss的提出是密不可分的(kaiming大神牛逼)。anchor-free不使用预定义的anchor直接检测目标,主要分为两种,分别是keypoint-based方法和center-based方法。前者首先定位一些预定义或者自学习的关键点接着对目标的空间范围进行约束。后者则使用目标的中心点或者中心区域定义正样本,然后预测正样本到目标边界的四个距离。无论是哪种anchor-free方法都能消除那些关于anchor定义的超参数(实际工程中预定义这些超参数其实并不容易)并且获得和anchor-based方法相似的精度表现,使得其在泛化能力啊上有更多的潜力,因而受到广泛关注。

在上述的两种anchor-free检测器中,keypoint-based方法遵循基本的关键点估计的pipeline,这和anchor-based方法是完全不同的。不过,center-based方法和anchor-based方法其实是类似的,只不过是将点(point)而不是anchor作为预设的样本。以单阶段anchor-based检测器RetinaNet和center-based anchor-free方法FCOS为例,它们主要有三个不同:(1)每个位置平铺的anchor数目不同。 RetinaNet每个位置会平铺几个anchor box而FCOS每个位置只会设定一个anchor point(由于center-based方法可以理解为point就是anchor)。(2)正负样本的定义方式不同。 RetinaNet根据IOU来选择正负样本,FCOS则利用空间和尺度约束来选择样本。 (3) 回归的起始状态。 RetinaNet从预定义的anchor处回归边界框,而FCOS则从预定义的point上定位目标。

FCOS获得了比RetinaNet好得多的表现,上述三个因素中哪个起决定作用是值得考虑的。ATSS论文中,作者通过消除anchor-based方法和anchor-free方法的所有不一致因素以一个公平的方式研究了两者的不同之处。实验表明,两种方法关键性的不同在于正负样本的定义方式,这是导致它们性能差距的核心因素。如果它们训练时采用相同的正负样本选择策略,那么无论是基于anchor还是基于point,不会有什么太明显的差距。

因此,其实如何选择正负样本是值得研究的,论文提出了一种自适应训练样本选择策略(ATSS),它基于目标的特性自动选择正负样本,弥补了anchor-based方法和anchor-free方法之间的差距。此外,论文还通过实验发现,每个位置平铺多个anchor是没有必要的。将ATSS用于现有的检测器,可以在COCO数据集上获得新的SOTA表现。

不同点分析

作者以RetinaNet和FCOS作为实验方法,消除它们之间的不对等设置研究影响它们性能差距的究竟是正负样本选择还是回归起始状态(另一个因素每个位置的anchor数目后面讨论,这里的实验每个位置只采用一个anchor),作者这边首先叙述了实验设置(包括数据集、训练设置、推理设置),然后将FCOS的一些技巧加到RetinaNet中,逐步实验,得到如下表所示的结果,消除这些不一致的配置之后,两个方法差距仍有0.8,现在就能来探索它们之间的关键区别了。(表格中RetinaNet后的#A=1表示每个位置anchor数目为1。)

在消除了上述不一致之后,其实还剩下两个不同,一个是分类子任务中的定义正负样本的方式,另一个是回归子任务中,回归的起点是anchor box还是anchor point。

分类任务

这部分主要是讲解正负样本选择机制的不同,因为讲述是基于论文中的下图,所以我先对图中进行一些必要性的说明以方便看懂。首先,这里整体上分为上下两个部分,对应两个特征图尺度(源于FPN),上面的是包含较多空间信息的特征图,下面的是包含较多语义信息的特征图;接着,图的左侧是RetinaNet选择正负样本的说明,右侧是FCOS选择正负样本的说明;最后,网格图中的1表示正样本区域,0表示负样本区域,蓝色框、红色框和红色点分别表示GT框、anchor box和anchor point。

那么RetinaNet是如何做的呢,它在每个尺度的特征图上计算anchor box和GT box之间的IOU。首先将每个目标大于IOU阈值且最优的anchor标记为正样本,然后将小于IOU阈值的anchor标记为负样本,其他的都是训练时忽略的样本。如上图左侧所示,上一半的特征图尺度较大,anchor主要负责小目标,没有大于阈值的,所以最终输出全是0,下一半的特征图尺度较小,最中间位置的anchor和GT的IOU超过阈值则将其认定为正样本,标记为1。

接着来看FCOS是如何做的呢,它主要通过空间和尺度约束来划分anchor point。它首先将GT范围内的anchor point作为候选正样本(图上标记为问号),然后根据每个尺度特征图上定义的尺度范围选择正样本,未选择为正样本的就是负样本。如上图右侧上一半所示,大尺度特征图上回归距离超过预定义的范围则定为负样本,均标记为0,而下一半所示的回归距离不在负样本范围内,那么定为正样本,填充为1。

通过上面的分析,可以发现,其实FCOS是先在空间维度上通过空间约束找到合适的候选正样本,再在尺度维度上通过尺度约束选择最终的正样本。RetinaNet则使用IOU同时在空间和尺度维度上完成正负样本的划分。自然的想法就是互换这两种方法的正负样本选择策略呢?就得到了下表的结果,RetinaNet从37.0涨到了37.8,而FCOS从37.8掉到了36.9,这说明正负样本的定义方式就是两类检测器性能差距的关键原因。

回归任务

完成了正负样本的选择(也就是分类任务,目标检测中是先分类后回归的)就可以在正样本的基础上进行目标位置的回归了。如上图a所示,蓝色框和蓝色点表示GT框和GT框的中心点,红色框和红色点表示anchor框和anchor中心点。如图b所示,RetinaNet从anchor框回归四个与GT的偏移量得到预测框;如图c所示,FCOS从anchor point回归与GT的四个距离来得到预测框。

这就是说,RetinaNet和FCOS回归的起点分别是box和point,然而之前的实验表格已经表明,即使它俩用的回归其实状态不同,最终在相同正样本的前提下,最终精度是差不多的,这说明回归起始状态并不是一个很重要的影响因素,甚至没什么影响。

自适应训练样本选择

上一节的实验表明,如何定义正负样本其实是两种类型检测器性能差距的关键,在目标检测中,我们是先完成正负样本的定义和分类再进行正样本的回归的,所以正负样本的选择策略值得研究。FCOS提出了一种不同于以往IOU方法的新策略,获得了较大的性能提升,因此论文也进行了研究并提出了一种自适应训练样本选择策略(ATSS),相比之前的方法,ATSS是一种几乎无参数的策略并具有强大的鲁棒性。

算法描述

之前的样本选择策略都有比较敏感的超参数,比如IOU阈值或者尺度范围。在设置了这些超参数的基础上,所有的GT框必须基于固定的规则选择对应的正样本,这适用于大多数目标但是还是会有部分超出范围的目标被忽略。因此,超参数不同,产生的结果也是大相径庭。

为此,论文作者提出ATSS算法,它自动依据目标的统计特性划分正负样本而几乎不需要任何超参数。下图的Algorithm描述了ATSS针对一幅输入图像的工作流程。对图像上每个GT框,首先找出候选正样本。如算法图中3-6行的描述,对每一级特征图选择center距离的center最近的个anchor box(基于L2距离)。假定有级特征图,那么就有个候选正样本。之后,按照算法图第7行来计算这写候选正样本和GT框之间的IOU,并保存为集合。接着,如算法图8,9两行所示,计算的均值和标准差。基于这两个统计值,设置的IOU阈值为,如第10行所示。最后,选择大于等于IOU阈值的候选正样本作为最终的正样本用于后续训练,这部分对应算法图的11-15行,不过在第12行也对候选正样本中心要在内进行了限制。若一个anchor box被多个GT框选择为正样本,那么最高IOU的被最终选择。除了上述算法命中的,其余的都是负样本。

算法讲完了,论文也分析了上述算法提出的思路来源。首先是为什么用中心点距离来选择候选,这主要考虑到,RetinaNet的IOU阈值中心点靠近时会更高,FCOS也是使用的中心点距离并且效果更好,因此,以框的中心点距离来衡量会有更好的候选产生。

然后就是为什么采用均值和标准差的和作为IOU阈值,其实IOU的均值可以表明anchor对于GT的适用性。如下图a所示,一个较高的IOU均值表示大部分候选质量都比较高则IOU阈值也应该设置较高,如下图b所示,均值较低则表示候选质量较差则IOU阈值也应该设置较低。而IOU的标准差其实可以表明哪一层特征图更加适合用来检测目标。如下图a所示,标准差较大表示有某个级别的特征图特别适合检测,将标准差加到均值上作为IOU阈值可以只获得来自该级别特征图的anchor,如下图b所示,较低的标准差表示几个级别的特征图都比较合适,那么将标准差加上去得到较低IOU阈值来选择适当的几个级别特征图上的anchor。因此,使用均值和标准差的和作为IOU阈值可以基于目标的统计特征自适应选择来自适当级别特征图的足够的正样本。

接着就是为什么要对正样本的中心进行限制,这就很直白了,中心不在GT框内的anchor会基于很多不属于目标的特征进行预测,显然是不合适的候选框。

还有就是如何确保不同目标之间的公平性。根据统计学理论,大约会有的样本在置信区间内。尽管候选框的IOU并不是一个标准的正态分布,但是统计结果表明每个目标有的正样本,这是不受尺度、长宽比和位置影响的。相比之下,RetinaNet和FCOS的策略对于较大的目标往往有更多的正样本,导致不同对象之间的不公平性。

最后就是关于超参数的问题了,其实ATSS只有一个超参数,实验表明,这是个高度不敏感的超参数,因此本方法可以视为无超参数的。

算法验证

作者在RetinaNet和FCOS的基础上添加ATSS模块,结果如下表。在RetinaNet上是有了不小的提高的,在FCOS上比较了原来的尺度选择策略和ATSS策略,显然ATSS有更好的效果。

算法分析

目标检测算法训练时,除了ATSS超参数的选择,还有一个相关因素就是anchor的尺寸,作者这里也进行了讨论。

首先,在COCO上使用不同的值进行实验,发现影响不是特别地大,也就是说ATSS其实是一个几乎无参的方法。

下面是关于anchor size的两个实验图,实验结果表明最终的检测结果其实对该变量也不是很敏感,这进一步验证了ATSS的鲁棒性。

模型对比

和SOTA方法比一比,涨点明显。

讨论

之前忽略的问题,一个位置是否需要多个anchor,事实上,实验说明,采用基于IOU的正负样本选择策略时,平铺多个anchor会带来比较大的收益,但是采用ATSS的话得出的结论是,只要正负样本的选择是恰当的,其实每个位置几个anchor并没有太大区别。所以,在每个位置平铺多个anchor在ATSS方法下是无用的。

总结

论文指出了单阶段anchor-based方法和center-based的anchor-free方法最核心的性能差别的原因就是正负样本的定义策略,并设计了一种自适应训练样本选择策略(ATSS),从而几乎消除了anchor-based和anchor-free的性能差异。并且,在ATSS下,每个位置平铺多个anchor是没有必要的操作。时至今日,ATSS已经受到目标检测社区的关注,被CVPR2020收录为oral,在竞赛中也是非常有效的涨点神器。

精选推荐

  • 711关东煮供应商
    711关东煮供应商

    今天给大家介绍三位,奶粉,全家、罗森这些便利店里关东煮的供应商。店里卖三四块钱一串的关东煮,在网上买不到,一块钱就搞定。首先关东

  • 健康日历|高压锅容易爆炸的4个原因
    健康日历|高压锅容易爆炸的4个原因

    来源:医药养生保健报设计:李雅琴医学审核:姜峰出品人:胡丽丽

  • 高炉
    高炉

    今天这活却是个白事,等到了时辰,那家人便准备火化,本来准备送普炉,我却心中一动,便对那家人说道:“这老人走也不要省,还是送高炉吧。”

  • 高压锅和电压力锅的区别,推荐几款点压力锅
    高压锅和电压力锅的区别,推荐几款点压

    记得之前有一次去朋友家玩,他正在用高压锅煮小米粥,是的,高压锅压小米粥,大概煮了半小时,高压锅突然爆炸了,现场惨不忍睹啊,幸好厨房里没

0