论文阅读|目标检测之指出anchor-free和anchor-based本质区别的ATSS

论文相关信息

1.论文题目:Bridging the Gap Between Anchor-based and Anchor-free Detection via
Adaptive Training Sample Selection

2.发表时间:2019.12

3.文献地址:https://arxiv.org/abs/1912.02424

4.论文源码:https://github.com/sfzhang15/ATSS

摘要

随着FPN和Focal Loss的提出,anchor-free的检测器变得流行起来。本文首先指出了anchor-based和anchor-free检测器之间的本质区别在于如何定义正负训练样本,这也是导致anchor-based和anchor-free的性能差距的原因。如果他们在训练时对正负样本的定义相同,那么无论是使用边框还是点回归,他们的最终性能都无明显差别。这表明训练时如何选择正负样本对于当前的目标检测器来说是十分重要的。然后作者提出一个自适应训练样本选择方法(Adaptive Training Sample Selection (ATSS)),根据物体的统计特征来适应性的选择正负样本。这极大地提高了anchor-free和anchor-based 检测器的表现,并弥补了他们之间的差距。文章还讨论了图片的每个位置铺多个anchors来的必要性。ATSS能够提高SOTA检测器到50.7% AP,并且不会引入任何开销。

1 .介绍

现在目标检测器仍然以anchor-based为主,可分为一阶段二阶段的,他们都是首先在图片上平铺大量预设号的anchors,然后预测类别并一步步的精炼其位置,最终输出精炼好anchors作为检测结果。由于FPNFocal loss的出现,学者们开始关注anchor-free的检测器了,anchor-free的检测器不适用预设的anchor,可分为两种方式:一种是keypoint-based,即先找一些预设的点或学习得到的点,然后根据这些点生成边框,如CornerNet;还有一种是center-based,即CenterNet的方式,使用物体的中心或者一个区域作为正样本,然后从改正样本回归到物体边框边界的距离。

anchor-free的两种方式中,keypoint-based遵循标准关键点预测的工作流,和anchor-based的工作流不同。而center-based的方式和anchor-based的工作流相似,把点作为预设样本。以一阶段的anchor-based检测器RetinaNet和一阶段的anchor-free的检测器FCOS为例,他们有3大不同:

  1. 每个位置平铺的anchors数量不同。RetinaNet每个位置有几个anchor box,而FCOS每个位置只有一个anchor point。(FCOS的一个point等价于RetinaNet中一个anchor box的中心,所以这里叫做anchor point。)
  2. 正负样本的定义不同。RetinaNet使用的是样本和真实框的IoU判断正负,FCOS使用的是空间和尺度限制来选择样本。
  3. 回归的起始状态。RetinaNet从预设anchor box开始回归物体边框,而FCOS从anchor point开始定位物体。

如FCOS论文提到那样,FCOS的表现比RetinaNet好,本文将探讨是上面三个不同中哪些不同造成的这个性能差异。

从实验结果可以得知,是由于训练样本的正负定义方式不同造成的他们表现差异。因此如何判断训练样本的正负值得进一步学习,为此,本文提出了一个新的自适应训练样本选择机制(ATSS),可以基于物体的特征自动的选择正负训练样本。它弥补了anchor-based和anchor-free的表现差异。此外,通过一系列实验,回答了再要中提到的问题,即在图片的每个位置平铺多个anchors是不必要的

论文的主要贡献:

  • 指出anchor-based和anchor-free检测器之间的本质区别实际上是如何定义正和负训练样本。
  • 提出了一个适应性训练样本(ATSS)选择机制,根据物体特征来自动的选择正负训练样本。
  • 证明在图像上的每个位置平铺多个anchor来检测对象是一项无用的操作。
  • 在不引入任何开销情况下在MS COCO上达到了SOTA表现。

2 .相关工作

当前CNN-based的检测器分anchor-based和anchor-free,anchor-based分为two-stage和one-stage,anchor-free的氛围keypoint-based和center-based。这部分介绍的检测器都比较熟悉。

3 . 分析anchor-based 和anchor-free检测器的不同

为了让结论具有一般性,使用具有代表性的anchor-based检测器ReinaNet和anchor-free检测器FCOS来分析两类检测器的区别。这节将聚焦于最后的两个不同:正负样本的定义方式和回归的起始状态。还有一个不同即每个位置多少anchor留在下一节讨论。因此这里RitinaNet每个位置一个anchor,和FCOS相似。剩下的小节会介绍实验设置,避免不一致的实验,最终指出anchor-based和anchor-free的本质区别。

3.1. 实验设置

数据集。所有的实验都在MS COCO数据集上。遵循惯例,使用trainval135k中的115k图像训练,使用minival分支的所有5k来做验证分析。将模型提交到评估服务器在test-dev上得到最终表现。

训练细节。使用ImageNet上预训练的带有5个层级的FPN的ResNet-50作为骨干网,新增的层采用和ReinaNet一样的初始化方法。FPN上的每层上的每个位置有一个正方形的anchor,尺寸为8S,S为总的stride尺寸。图片的尺寸被resize到最小边800,最大边小于等于1333。优化器SGD,90K iterations,0.9momentum,0.0001weight decay和16的batch size。初始化学习率0.01,60k和80k的时候乘0.1。

推断细节。 推断时图片的尺寸和训练时一样的resize,然后传入整个网络前向传播输出预测框和预测类别。之后使用预设的分值0.05过滤掉背景边框,每个金字塔输出前1000个检测器。最后使用IoU阈值设置0.6(每个类都一样)的NMS来生成置信度前100的检测。

3.2. 去除不一致

将RetinaNet设置为每个位置一个anchor后——RetinaNet(#A=1),FCOS仍然比RetinaNet(#A=1)精度高很多, 37.1% vs. 32.5%。加上FCOS的一些改进使得这个差距变得更大,从37.1% 到37.8%。但是,这个差距主要是由于FCOS中使用的一些通用的改进,如heads中增加GroupNorm,使用GIoU作回归损失函数,限制ground-truth box中的正样本,映入center-ness分支,并未每个金字塔层增加一个可训练的标量。这些改进也可以应用到anchor-based的检测器中,因此他们不是造成anchor-based和anchor-free的核心差异。将这些应用到了RetinaNet(#A=1)以排除不一致设置,如表1所示。结果RetinaNet提高到了 37.0%,但是仍然和FCOS有0.8%的差距。这个差距是在排除所有无关不同情况下的,因此接下来可以探索他们的核心差异。

在这里插入图片描述

表1.RetinaNet和FCOS实现差异分析。#A指每个位置只有一个anchor。

3.3. 核心差异

在应用了通用的改进后,RetinaNet(#A=1)和FCOS只有两点不同:一是检测上的分类子任务,如训练正负样本的定义不同;二是回归子任务,如回归从anchor box还是anchor point开始。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值