Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sample Selection
参考:https://www.zhihu.com/question/359595879/answer/927861326
这篇工作的主要工作是探索anchor-based和anchor-free的区别和联系
只铺1个anchor的RetinaNet和FCOS非常像,在将FCOS的一些改进加进RetinaNet之后,两者的差距缩小到1个点,方法的不同仅剩正负样本的选取和回归的起点。
实验证明,正负样本的选取导致了性能的差异。FCOS提出了更好的正负样本选取方式,比RetinaNet中基于固定IOU选取正负样本有更好的表现、
本文对正负样本的选取进行了探索,提出一种adaptive的选取方式ATSS
- 对于FCOS,对每个特征层的location做分类和回归,(1)在目标GT bbox之内,并且和GT的类别相同的点视作正样本。(2)对应每个特征层,回归值的一阶范数有上下线,如果不在范围内,则视作负样本。
- 对于RetinaNet,对输入图片会resize到一定范围内:短边800,长边1333。对于RetinaNet的每个特征层上的每个点,产生8个不同的anchor。测试时,置信度低于0.05的图片视作背景,每个特征层输出前1000的detections。最后使用NMS,IoU阈值设置为0.6,对每张图片产生100个目标。
Abstract & Introduction
本文认为anchor-based和anchor-free方法的差异在:如何定义正负样本,而不是对点或框的回归。因此本文提出一种Adaptive Training Sample Selection (ATSS),通过目标的统计特征自动选择正负样本。
anchor-based detectors包括one-stage[33,36]和two-stage[9,47]方法的主要步骤:
- 在图片上铺大量预设的anchors;
- 对anchors预测并分类;
- 输出refined anchors
anchor-free detectors有两种方式寻找目标:
- keypoint-based methods [26,71]:locate several pre-defined or self-learned keypoints and then bound the spatial extent of objects.;例如:CornerNet等,这类方法受关键点检测方法启发,模型结构与关键点检测方法类似。
- center-based methods [23, 56]:使用目标区域中的中心店或区域作为正样本,然后预测点和区域到正样本的距离。例如:FCOS等。
本文主要讨论one-stage anchor-free detector RetinaNet和center-based anchor-free detector FCOS,两者有三个主要差别:
- 每个location铺anchor的数量;
- 正负样本的定义。RetinaNet通过IoU来区分正负样本;FCOS则通过不同特征层的大小尺度限制来区分。
- regression初始状态:RetinaNet从预设值的anchor box开始回归;FCOS从anchor point定位目标。
[56]显示,FCOS比RetinaNet效果更好。
本文的主要贡献:
- anchor-based和anchor-free detectors的主要区别在正负样本的定义
- 提出一种通过目标统计特征来自适应自动选择正负训练样本的方法。
- 没必要在每个location上铺多个anchors
- 在COCO上取得sota。
Related Work
anchor-based detector
two-stage method.:以Faster R-CNN为代表。对它的改进包括:
- architecture redesign and reform [4, 5, 9, 28, 30]
- context and attention mechanism [2, 7, 38, 44, 51]
- multi-scale trainig and testing [41, 54]
- training strategy and loss function [17, 40, 52, 61]
- feature fusion and enhancement [25, 32]
- better proposal and balance [43, 55]
one-stage method:以SSD为代表。对它的改进包括:
- fusing context information [12, 24, 69]
- training from scratch [50, 73]
- feature enrichment and alignment [29, 35, 42, 60, 68]
Anchor-free detector
keypoint-based method:以CornerNet为代表
center-based method:以FCOS为代表
Difference Anlysis of Anchor-based and anchor-free detection
本文剖析了RetinaNet和FCOS之间的差异。本节主要关注:正负样本的定义和回归初始状态
RetinaNet对输入图片会resize到一定范围内:短边800,长边1333。对于RetinaNet的每个特征层上的每个点,产生8个不同的anchor。测试时,置信度低于0.05的图片视作背景,每个特征层输出前1000的detections。最后使用NMS,IoU阈值设置为0.6,对每张图片产生100个目标。
Inconsistency Removal
FCOS论文结果为37.1%。(1)将centerness移到回归分支;(2)使用GIoU损失函数,并且在对应feature map上正则化回归目标,可以将结果提高到37.8%。在FCOS中使用的很多技巧可以移植到RetinaNet中:
- 在heads中添加GroupNorm[62]
- 使用GIoU回归损失函数[48]
- 将正样本限制在GT box中[56]
- 引入centerness branch [56]
- 为每个特征层对应的回归量增加一个可训练的放缩因子 [56]
添加这些tricks后,结果显示如下:
Essential Difference
正负样本的分类:正样本用于回归,对定位影响很大。
RetinaNet用IoU划分来自不同pyramid level的anchor box。将每个目标的最佳anchor box和anchor视作正样本,将
的anchor boxes视作负样本。其余在训练过程中被忽略。
FCOS只将GT bbox范围内的点视作正样本,然后对每个pyramid level不同的回归上下限去进一步筛选正负样本。
结果如下,可以看到在更换正负样本定义后,模型效果提高到和FCOS相同。
bbox的回归
改变后并没有显著影响:
综上,本文认为对结果有显著影响的是正负样本的选择。
Adaptive Training Sample Selection
本文探讨了如何定义正负样本,并提出Adaptive Training Sample Selection (ATSS)
对于anchor-based方法,IoU的阈值设计很重要,对于anchor-free方法,每个pyramid level的scale ranges很重要。本文提出的算法如下:
简单来说,算法步骤如下:
- 在每个pyramid level挑选k个和GT bbox center最近的anchor,作为正样本的候选者。
- 计算这些候选者和GT bbox的IoU
- 将IoU的均值和方差和作为挑选该GT bbox正样本的IoU的阈值
- 满足IoU大于阈值 & 中心在GT bbox的候选者是正样本,其余是负样本
算法动机:
- 无论对RetinaNet还是FCOS,anchor box的中心和GT bbox的中心越靠近越好。
- 如下图所示,均值反应候选者的质量高低,方差反应哪一层适合探测这个目标。
- anchor应该在GT bbox中
- 根据统计学理论,理论上大约有16%的样本在[均值+方差,1]的范围内,正样本的选择和scale、aspect ratio和location无关。
- 对唯一的超参不敏感。
结果
1. Center Sampling是lite version,是指将每层筛选的候选数量定为9。
# multiscale training strategy:训练时,随机选择640-800之间的数作为最短边。
# 以上实验基于3.1的实验设置
2. DCN指Deformable Convolutional Networks
3. 在传统方法上增加anchors数量是有效的,但是在本文方法的基础上则无效了。