1. 论文信息

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

论文发表:CVPR2020
论文链接:https://openaccess.thecvf.com
论文代码:https://github.com/sfzhang15/ATSS

1
2
3
4
5
6
7
@inproceedings{zhang2020bridging,
title={Bridging the gap between anchor-based and anchor-free detection via adaptive training sample selection},
author={Zhang, Shifeng and Chi, Cheng and Yao, Yongqiang and Lei, Zhen and Li, Stan Z},
booktitle={Proceedings of the IEEE/CVF conference on computer vision and pattern recognition},
pages={9759--9768},
year={2020}
}

2. 归纳总结

Name Value
标签 #正负样本 #目标检测
数据集 MSCOCO
目的 通过实验发现Anchor-BaseAnchor-Free的区别在于正负样本定义,并提出了ATSS
方法 使用IoU的均值和标准差作为判断正负样本的自适应IoU阈值

3. 问题背景

论文指出单阶段Anchor-BasedCenter-Based Anchor-Free检测算法的性能差异主要来自于正负样本的选择策略不同,基于此问题,作者提出了ATSS(Adaptive Training Sample Selection)方法,该方法能够自动根据真实框(GT)的相关统计特征自适应地选择合适的样本,进而提升模型性能…

4. 主要工作

  • 指出Anchor-FreeAnchor-Based方法的根本差异主要来源于正负样本的选择;
  • 提出ATSS( Adaptive Training Sample Selection)方法来根据对象的统计特征自动选择正负样本;
  • 证明每个位置设定多个anchor是无用的操作;
  • 不引入其它额外的开销,在MS COCO上达到SOTA;

4.1 Anchor-BasedAnchor-Free的区别分析

由于FCOS是基于point进行预测,故可以认为就是一个像素位置有一个anchor,为了公平对比,将RetinaNetanchor也设置为1个(#A=1),将FCOS的训练策略移动到RetinaNet上面,可以发现性能依然是RetinaNet低于fcos 0.8mAP。 排除这个因素后,现在两个算法的区别是:

  • 1.正负样本定义;
  • 2.回归分支中从point回归还是从anchor回归;point回归就是指的每个点预测距离4条边的距离模式,而从anchor回归是指的RetinaNet那种基于anchor偏移量回归的模式。

但作者通过实验分析可以知道回归分支中从point回归还是从anchor回归对最终影响很小,反而是正负样本定义对结果影响最大。

4.2 ATSS

算法流程如下:

论文提出ATSS方法,该方法根据目标的相关统计特征自动进行正负样本的选择,具体逻辑如算法1所示。对于每个GT box g,首先在每个特征层找到中心点最近的k个候选anchor boxes(非预测结果),计算候选box与GT间的IoU $U_g$,计算IoU的均值$m_g$和标准差$v_g$,得到IoU阈值$t_g=m_g+v_g$,最后选择阈值大于$t_g$的box作为最后的输出。如果anchor box对应多个GT,则选择IoU最大的GT。

均值$m_g$表示预设的anchor与GT的匹配程度,均值高则应当提高阈值来调整正样本,均值低则应当降低阈值来调整正样本。标准差$v_g$表示适合GT的FPN层数,标准差高则表示高质量的anchor box集中在一个层中,应将阈值加上标准差来过滤其他层的anchor box,低则表示多个层都适合该GT,将阈值加上标准差来选择合适的层的anchor box,均值和标准差结合作为IoU阈值能够很好地自动选择对应的特征层上合适的anchor box;

根据统计原理,大约16%的anchor box会落在$[m_g+v_g,1]$,尽管候选框的IoU不是标准正态分布,但统计下来每个GT大约有0.2×kL个正样本,与其大小和长宽比无关,而RetinaNet和FCOS则是偏向大目标有更多的正样本,导致训练不公平;其中ATSS仅有一个超参数k,并且实验表明ATSS的性能对k不敏感,参数k在区间$[7,17]$几乎是一样的,过大的设置会到导致过多的低质量候选anchor,而过小的设置则会导致过少的正样本,而且统计结果也不稳定。总体而言,参数k是相对鲁棒的,所以ATSS几乎是hyperparameter-free的。

将ATSS应用到RetinaNet和FCOS上测试效果:

  • 将RetinaNet中的正负样本替换为ATSS,AP提升了2.9%,这样的性能提升几乎是没有任何额外消耗的
  • 在FCOS上的应用主要用两种:lite版本采用ATSS的思想,从选取GT内的anchor point改为选取每层离GT最近的top-$k$个候选anchor point,提升了0.8%AP;full版本将FCOS的anchor point改为长宽为$8S$的anchor box来根据ATSS选择正负样本,但仍然使用原始的回归方法,提升了1.4%AP。两种方法找到的anchor point在空间位置上大致相同,但是在FPN层上的选择不太一样。从结果来看,自适应的选择方法比固定的方法更有效。

论文还补充测试了不同anchor数下的性能,并且其实验结果证明,在每个位置设定多个anchor box是无用的操作,关键在于选择合适的正样本;

5. 实验结果

6. 参考文献

ATSS : 目标检测的自适应正负anchor选择,很扎实的trick | CVPR 2020 - 知乎 (zhihu.com)