ATSS:自动选择物体检测中的正负样本

导读
本文认为 , anchor based和anchor free物体检测方法的本质区别在于如何选择样本 , 文章通过实验验证了这个想法 , 并提出了一种自动选取样本的方法 , 在不引入任何计算量的情况下 , 提升了效果 , 并且可以认为是没有任何超参数 。
ATSS:自动选择物体检测中的正负样本文章插图
论文:
代码:
摘要文章指出 , 基于anchor的方法和anchor free的方法的本质区别在于如何定义正负样本 。 所以 , 文章提出了一个自适应的样本选择的方法来根据物体的统计特性自适应的选择正负样本 , 提升了性能 , 同时显著缩小了anchor based和anchor free方法之间的gap 。
1. 介绍anchor free的方法一般有两种:一种是定位可以保卫物体的预定义的特征点 , 称为keypoint-based方法 , 另一种是使用物体的中心点或者物体的区域来定义正样本 , 然后预测该正样本点到4个边的距离 , 这种称为center-based方法 。 这两种方法中 , keypoint-based方法是follow了特征点检测的方法 , 和anchor based方法差别较大 , 而center-based方法则把点看做是样本 , 这和anchor based方法中把anchor看做是样本是非常相似的 。
以RetinaNet和FCOS为例 , 比较这两种方法的区别:(1)每个空间位置的样本数量不同 , RetinaNet的每个位置有好几个anchor , 而FCOS每个位置只有一个anchor点 。 (2)正负样本的定义不同 , RetinaNet使用IOU来定义正负样本 , FCOS使用空间和尺度约束来选择样本 。 (3)回归的初始状态不一样 , RetinaNet从预设的anchor为起点进行回归 , 而FCOS的回归起点是该位置的anchor点 。 从FCOS的论文中可以看到 , FCOS的效果要比RetinaNet好的多 。 所以需要研究一下 , 这三个不同点 , 哪个才是决定性的 。
本文的贡献点:

  • 指出了anchor based和anchor free方法分本质区别在于如何选择正负样本 。
  • 提出了基于物体统计特性自适应的选择正负样本的方法 。
  • 指出了在单个空间位置上叠加多个anchor来做物体检测是没什么用的 。
  • 没有增加任何的开销 , 在MS COCO上达到了SOTA 。
2. Anchor-based和Anchor-free方法的区别分析2.1 去掉不相干的东西我们使用MS COCO来做实验 , 我们把只使用了一个正方形anchor的RetinaNet记做RetinaNet(#A=1) , 这其实和anchor free的FCOS非常接近了 。 不过 , 在FCOS的论中 , FCOS的效果要比RetinaNet好很多 , 一个是37.1% , 一个是32.5% 。 FCOS中还用了一些进一步的优化 , 包括把centerness的预测移动到回归分支中 , 使用GIoU loss , 通过对于的stride对target做归一化 , 这些方法将FCOS从37.1%提升到37.8% 。 在FCOS使用的一些优化方法 , 其实也可以用在RetinaNet中 , 比如在检测头上加GroupNorm , 使用GIoU损失函数 , 限制groundtruth box的正样本 , 引入centerness分支 , 在特征金字塔中引入可训练的尺度参数s 。 不过 , 这些都不是两者的根本的区别 。 我们把这些优化方法一个一个的加入到了RetinaNet(#A=1)中 , 如表1 , performance提升到了37.0% 。 还是有0.8%的gap 。 现在 , 去掉了这些不相干的差别 , 我们可以来探索一下两者的根本差别在哪里 。
ATSS:自动选择物体检测中的正负样本文章插图
2.1 根本的差别现在 , RetinaNet(#A=1)和FCOS只有两个差别了 , 一个和分类子任务相关 , 也就是定义正负样本的方法 , 另一个和回归子任务相关 , 也就是回归的起点是anchor box还是anchor点 。
分类
如图1(a) , RetinaNet使用IOU将来自不同level的anchor box划分为正负样本 , 对于每个物体 , 在IOU>θp的所有anchor box中 , 选一个最大的作为正样本 , 所有IOU


推荐阅读