ATSS自适应选择正负样本的目标检测方法

论文信息: Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sample Selection
代码链接:https://github.com/sfzhang15/ATSS
整体信息:这篇论文是中科院张士峰发表在CVPR2020上的一篇文章,论文通过大量实验证明指出anchor-based方法和anchor-free方法的性能差异主要来自于正负样本的选取上,基于此提出ATSS(Adaptive Training Sample Selection)方法,该方法通过自动统计标注GT上的相关统计特征自适应的选择合适的anchor box作为正负样本,在不带来额外计算量和参数的情况下,能够大幅提升模型的性能。

1.差异分析

在不考虑各种trick的情况下,anchor-based方法RetinaNet和anchor-free方法FCOS主要存在两个差异:1)正负样本选取;2)回归起始状态;为公平比较,降低两者方法的差异性,在实验中将RetinaNet的anchor数改为1降低差异性,方便与FCOS比较,作者后续在实验中也验证不同anchor数对模型性能的影响。

1).Inconsistency Removal

atss_Inconsistency Removal

由于FCOS加入了很多trick,为了与RetinaNet进行公平比较,对FCOS上的trick进行对齐,包括GroupNorm、GIoU loss、限制正样本必须在GT内、Centerness branch以及添加可学习的标量控制FPN的各层的尺寸。具体结果如上面表格所示,最终的RetinaNet与FCOS相差无几,但仍然存在0.8个点的差异。

2).Essential Difference

在经过上述实验对齐之后,RetinaNet和FCOS仅存在两个差异:1)正负样本选取;2)回归起始状态;针对这两个差异,论文通过实验做进一步分析。

image-20210224115350117

  • Classification

    在RetinaNet中,通过划分IOU阈值区间来区分正负样本,$\mathrm{IoU}>\theta{p}$ 置为正样本,$\mathrm{IoU}<\theta{n}$ 置为负样本,至于区间内所有样本忽略;在FCOS使用空间尺寸和尺寸限制来区分正负anchor point,正样本首先必须在GT box内,其次需要是GT尺寸对应的层,其余均为负样本;

image-20210224115743063

  • Regression

    在RetinaNet中,模型预测的是相对anchor box的4个偏移量,通过4个偏移量对anchor box进行调整;而在FCOS则预测的是相对于anchor point的4个偏移量,基于anchor point和4个偏移量组成bbox;

    image-20210224143241390

  • Conclusion

    基于上述两个差异,论文做了实验进行交叉对比,实验结果如上表格2所示,在相同正负样本定义下的RetinaNet和FCOS性能几乎一样,不同的定义方法性能差异较大,具体可以看下表格的纵向对比结果;而从横向对比结果上来看,无论是基于box或基于Point的形式,指标基本不发生变化,这也印证了回归初始状态的不同对模型性能影响不大。所以,基本可以确定正负样本的选取是影响模型性能的关键;

2. 自适应样本选取(Adaptive Training Sample Selection)

image-20210224151209904

1).算法流程

论文提出基于统计特征自适应样本选取的方法具体流程如上图所示,具体来说,对于每个标注gt框g,首先针对每个FPN层级基于L2距离找到与目标中心点最近的k个anchor box,计算anchor box与gt box的IOU值,计算所有iou值的均值$m{g}$和标准差$v{g}$,基于均值和阈值的计算结果,得到IOU阈值 $t{g}=m{g}+v{g}$ ,最后选择阈值大于等于$t{g}$ 且中心点位于gt box内的box作为最后的输出。如果anchor box对应多个gt,则选择IoU最大的gt。

2).算法思想

从思想上来看,自适应样本选取的方法遵循如下几点:

  • 基于目标中心距离远近程度来选择样本;在RetinaNet中,anchor box与gt中心点越近一般IoU越高,而在FCOS中,中心点越近一般预测的质量越高;
  • 使用使用iou的统计量均值和方差之和作为iou阈值;均反映的是预设的anchor box与gt的匹配程度,均值高则应当提高阈值来调整正样本,均值低则应当降低阈值来调整正样本。标准差反映的是适合GT的FPN层数,标准差高则表示高质量的anchor box集中在一个层中,应将阈值加上标准差来过滤其他层的anchor box,低则表示多个层都适合该gt,将阈值加上标准差来选择合适的层的anchor box,均值和标准差结合作为IoU阈值能够很好地自动选择对应的特征层上合适的anchor box;
  • 正样本的中心必须位于目标内;若anchor box的中心点不在gt区域内,则其会使用非gt区域的背景特征进行预测,影响模型性能,这种情况应予以剔除;
  • 几乎无超参数;从上面的算法流程可以看出,唯一的超参数就是k,论文后面也通过实验验证ATSS算法对于k值的选取不明感;

3).ATSS实验对比

image-20210224154804455

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

  • 将RetinaNet中的正负样本替换为ATSS,AP提升了2.3%;
  • 在FCOS上的应用主要用两种:lite版本采用ATSS的思想,从选取GT内的anchor point改为选取每层离GT最近的topk个候选anchor point,提升了0.8%AP;full版本将FCOS的anchor point改为长宽为8S的anchor box来根据ATSS选择正负样本,但仍然使用原始的回归方法,提升了1.4%AP。两种方法找到的anchor point在空间位置上大致相同,但是在FPN层上的选择不太一样。从结果来看,自适应的选择方法比固定的方法更有效。至于与其他SOTA方法的对比,可以直接参考论文。

3.Discussion

上面的实验对比可以看出RetinaNet实验中没有涉及任何关于anchor宽高比ratio和尺度scale相关的参数,而且在实验中仅使用了一个anchor,在原始RetinaNet中,一个目标选择的是9个预定义的不同尺度和宽高比的anchor box,因此论文补充实验测试了在不同尺度、不同宽高比以及不同anchors数量下的实验结果。具体实验结果,可以直接参考原文,从论文po出来的实验结果来看,ATSS对于anchor尺度和宽高比并不敏感,而且在每个位置设定多个anchor box是无用的操作,关键在于选择合适的正样本。