论文笔记:目标检测正负样本划分方法Adaptive Training Sample Selection (ATSS)原理
论文名称:Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sample Selection
论文地址:https://arxiv.org/abs/1912.02424
代码地址:https://github.com/sfzhang15/ATSS
该篇论文是CVPR2020收录的论文,论文探讨了目标检测中Anchor-base和Anchor-free方法的实质差异,并提出了Adaptive Training Sample Selection (ATSS)算法来解决。论文的主要贡献有以下四点:
1、指出anchor base和anchor free检测器之间的本质区别实际上是如何定义正训练样本和负训练样本。
2、提出了一种自适应训练样本选择方法ATSS,以根据对象的统计特征自动选择正负训练样本。
3、证明在图像上的每个位置平铺多个锚点来检测对象是一项无用的操作。
4、在不引入任何额外开销的情况下,在MS COCO上实现最先进的性能。
作者将Anchor-base方法的RetinaNet网络和Anchor-free方法的FCOS网络进行了对比实验,首先将在FCOS网络中运用的一些方法如GroupNorm、GIoU Loss、In GT Box、Centerness、Scaler加在了RetinaNet中,发现其AP有了明显提高并逼近FCOS(32.5%到37.0%,FCOS为37.8%)证明这些方法并不是影响两种网络类型的关键。
然后作者将两种网络差异聚焦在了分类子任务和回归子任务的不同,比如如何定义正负样本、anchor box和anchor point的回归。对于正负样本的定义,RetinaNet将anchor box与真实目标框的交并比IoU大于某个阈值划分为正样本,否则为负样本;而FCOS首先将真实框内的锚点视为候选正样本,然后根据为每个金字塔等级定义的比例范围从候选中选择最终的正样本,最后那些未选择的锚点为负样本。如图所示:
对于回归问题,RetinaNet采用的是对anchor box中心点坐标x,y和长宽w,h的偏移量进行回归;而FCOS则是对anchor point的距离真实框的四条边的距离进行回归。如图所示:
作者对RetinaNet的feature maps上每个点只采用一个预定义的anchor box(原网络9个)和FCOS进行了对比实验,实验结果表明,正样本和负样本的定义是anchor base和anchor free检测器之间的本质区别。而回归方式的不同则几乎没有影响。
根据以上实验结果作者提出了此篇论文的核心算法:Adaptive Training Sample Selection (ATSS),来自适应对正负样本进行划分。算法流程如下:
- 对于图像中每个真实框g,在FPN的每一层特征图中选取k与其中心点L2距离最近的anchor box,假设FPN有L层,则每个真实框g就有k×L个候选的anchor box
- 计算每个候选anchor box与真实框g的交并比Dg,并计算这k×L个Dg的均值mg和方差vg,并令真实框g的正样本IoU阈值为tg = mg + vg
- 选取IoU大于阈值且中心点在真实框中的候选框作为正样本
以下这张图解释了选择均值和方差和做为IoU阈值的意义:
随后就是作者进行的一系列实验,来论证这种方法是真滴牛逼。该方法有一个超参数就是每个真实框在每层金字塔中预选取的k个anchor box,然后作者发现只要这个k不是太小(实验选择的是k为3)对结果基本没影响,因此这个唯一的超参数几乎可以认为是*选择的。另外对在原始RetinaNet中每个锚点会预设有9个anchor box,作者实验发现使用了作者提出的算法无论每个点预先设置几个anchor box最后的实验结果基本相同,因此作者认为设置多个anchor box没有必要(作者先前的对比实验只预设了1个),但是为什么没有影响作者也不知道(????)。
以上就是论文的内容,如有理解错的地方请评论更正。论文主要解释了在anchor base中正负样本选择的问题,提出了ATSS算法来解决,而且算法也开源了,作者使用不同backbone可以达到state-of-the-art的表现。