Bridging the Gap Between Anchor-based and Anchor-free Detection via ATSS论文阅读 - CVPR2020 oral
Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sample Selection论文阅读
论文下载地址:点击此链接跳转
这是博主自己在github整理的目标检测方向论文的合集,应该算比较全,目前已更新至2020ECCV,即将更新:2020IJCAI合集,欢迎下载…
知乎上很好的一个评价贴:如何评价zhangshifeng最新的讨论anchor based/ free的论文?. 作者有亲自回答,推荐阅读。
一、Abstract
目标检测已经被基于anchor的检测器主导了好几年了,由于FPN和Focal loss的提出,anchor-free检测器又开始流行了起来,这篇文章首先指出了anchor-based和anchor-free检测器的本质区别在于如何去定义正负训练样本,这也导致了二者间的性能差异。如果它们采用相同的正负样本定义,那么无论是从框回归还是点回归,最终的表现不会有非常明显的差别。这也说明了如何去分辨正负训练样本对当前的目标检测器来说是至关重要的。作者提出了一个Adaptive Training Sample Selection(ATSS),根据目标的特征统计自动选择正负样本,这个方法显著提升了这两种检测器的检测性能,并弥补了二者间的差距。最后还作者讨论了在每个位置平铺多个anchor来检测目标的一个必要性。
二、Introduction
anchor-free检测器主要是通过两种方式来找到目标:第一种是先定位几个预定义的或者是自学习的keypoints,然后去限制目标的空间范围,这种叫做基于关键点的anchor-free检测器。第二种方法是将目标的中心点或中心区域定义为postives,然后预测从positives到目标四个边的距离,这种称为基于中心的anchor-free。anchor-free检测器能够消除掉和anchor相关的超参,并取得了和基于anchor的检测器相似的检测性能,同时泛化能力也更强。
在这两种anchor-free检测器中,基于关键点的方法遵循标准的关键点估计方式,而基于中心的检测器与基于anchor的检测器是类似的,只是基于中心的检测器是将点作为预设定的样本,而不是anchors。
作者对one-stage检测器RetinaNet和基于中心的anchor-free检测器FCOS作了比较,二者主要有三点差异:
(1) 每个位置设定的平铺anchor的数量:Retinanet是在每个位置平铺多个anchor,而FCOS是在每个位置设置一个点。
(2) 对于正负样本的定义:RetinaNet是根据IOU来划分的正负样本,而FCOS是利用空间和尺度上的限制来选择样本。
(3) 回归起始状态:RetinaNet是从预定义的anchor框来回归目标边界框,而FCOS是从anchor点来定位目标。
相比RetinaNet,FCOS能够取得更好的性能,因此作者对这三个差异中哪一个是造成性能差异的关键因素进行了研究,作者最终确定了二者间的本质差别在于如何定义的正负训练样本,这也导致了二者间的性能差异。作者基于这一点提出了ATSS,并经一系列试验后得出在一张图像的每个位置平铺多个anchor是没有必要的
Contributions:
1、提出了anchor-free与anchor-based检测器间的关键差异在于如何定义正负训练样本。
2、提出了一个自适应训练样本选择方法(ATSS)来根据目标的统计特征选择正负训练样本。
3、证明了在图像每个位置平铺多个anchor是不必要的操作
4、能够不引入任何额外的负担带来精度的提升,达到SOTA效果
三、Difference Analysis of Anchor-based and Anchor-free Detection
这一块是对FCOS以及Retinanet间的各个差异做了研究,来确定最关键的,影响最大的那个差异。
3.1 Inconsistency Removal
作者先是将retinanet改为与FCOS相似的在每个位置只生成一个anchor box,但这样FCOS会比retinanet的性能要好很多。不过由于FCOS相比retinanet有加很多trick,比如在head用GN,用GIOU做回归损失,限制正样本在gt box中,引入centerness分支,对每一层特征金字塔添加可训练的标量,作者将这些不是关键的差异也加在了retinanet上,来除去这些不一致,可以看到加入后retinanet的精度到了37.8,不过与FCOS相比仍有0.8的差异。
3.2 Essential Difference
在应用了通用的改进后,FCOS和retinanet主要还有两点不同,首先是分类任务中对于怎样去定义正负样本,然后是回归任务中对每一个anchor box和anchor point的一个回归起点不同。
3.2.1 Classification.
Retinanet是根据的iou来划分来自不同层级特征金字塔的anchors为正负样本,首先是标记每个目标的最佳anchor,IOU大于阈值θp的为正样本,IOU小于阈值θn的为负样本,其余的anchor box被忽略。FCOS则是利用的空间和尺度的限制来确定的正负样本,首先是在空间维度考虑,选择在GT框中的anchor points为候选正样本,然后是从尺度维度,根据为每个金字塔层级定义的尺度范围来从中选取最终的正样本,没被选取的anchor points即为负样本。
这两种不同的采样方式产生了不同的正负样本,如表2所示:
当retinanet使用通过空间和尺度的限制来确定的正负样本的时候ap能从37.0升至37.8,FCOS使用IOU策略ap则会从37.8降为36.9。这个结果表明,正负样本的定义是anchor-based和anchor-free检测器的本质区别。
3.2.2 Regression.
在确定了正负样本后,正样本会向着目标回归。RetinaNet是根据anchor box和目标框在四个方向上的偏移做回归,而FCOS则是根据anchor points到边界框四条边的一个偏移做回归。也就是对于一个正样本,它在RetinaNet的回归起始状态是一个方框,而在FCOS是一个点。但这由上表可看出对ap并没有什么实质影响,表明这个回归起始状态是一个无关紧要的区别。
综上:anchor-based和anchor-free检测器的本质区别在于如何对正负样本进行定义。
四、Adaptive Training Sample Selection
训练目标检测器时,我们首先需要定义正负样本进行分类,然后是使用正样本进行回归。之前的分析可以看出前者会更关键一些,而FCOS有对此提出了一种新的正负样本的定义方法,实现了更好的检测性能,因此作者对此作了研究,并提出了Adaptive Training Sample Selection(ATSS),一种几乎没有超参并且对不同的设置具有较强的鲁棒性。
之前的样本选取策略有一些很敏感的超参,比如iou阈值,尺度范围等等。设置好这些超参后,GT必须根据这些固定的规则来选取他们的正样本,这些超参数的不同设置将产生非常不同的结果。因此,作者提出了一个几乎不需要任何超参数,根据目标统计特征自动划分正负样本的ATSS方法。
对于每一个GT box g,先找出它的候选正样本集,对特征金字塔的每一层,我们根据anchor boxes的中心和g的中心的l2距离来选择k个anchor boxes。假设有L个特征金字塔层级,则GT g会有k×L个候选正样本。然后计算这些候选正样本与GT间的IOU,记为Dg,并计算Dg的均值和方差记为mg和vg,这样来计算得到对于此GT g的阈值:tg=mg+vg,最终我们根据阈值选取正样本,同时作者还限制了选取的正样本的中心必须在gt box内。此外,如果一个anchor box被分配给了多个GT,那么他会选择iou最高的GT,对其他gt则会作为负样本。
作者考虑的是:
1、中心更靠近目标中心的anchor boxes应该是质量更好的候选框
2、IoU的均值mg是对该目标预设的anchor的适宜性的衡量。图3可推断出高mg表明候选集质量较高,IOU阈值也会更高,低mg表明候选集质量较低,IOU阈值会相应较小。IOU的标准差vg则是对哪一层适合来检测当前目标的一个衡量,较高的vg表明有一个特征金字塔层级非常适合检测此对象,加上vg到mg会获得一个较高的阈值,这样会基本只从那一层级选取正样本,较低的vg则是表示有多个特征金字塔层级适合检测此目标,mg+vg得到一个较低的阈值来从这些层级中选择合适的正样本。这样利用均值mg和标准差vg的和作为IoU阈值tg,就可以自适应地从适当的金字塔层级中为每个对象选取足够的正样本。
3、anchor的中心如果在目标的中心外的话应该是一个较差的候选框,应当排除。
4、我们还需要保持不同目标间的一个公平性。理论上大约16%的样本会处于置信区间[mg+vg,1]中,尽管候选框的iou分布不是一个正态分布,但统计结果显示每个目标都有大约0.2*kL个正样本,这相对于其尺度,长宽比和位置来说是不变的,但retinanet和FCOS中会对大目标有很多正样本,这是一种不公平的现象。
5、保持hyperparameter-free。这个方法只需要一个超参k,基本做到了free。
作者在retinanet和FCOS中验证了ATSS的有效性。改进的主要原因是因为ATSS是基于每个GT的统计特征自适应地选择正样本。
这个实验是研究的每个位置平铺的anchor数量的影响,作者先是对原始的retinanet加入了第一个表中的各种改进(gn, giou等),发现ap从36.3到了38.4,比表一中每个位置只用一个anchor的效果要好,表明在传统的基于iou的样本选择策略下,每个位置平铺更多的anchor是有效的。不过在使用了ATSS后,可以看到,不管每个位置平铺多少个anchor,结果都近乎一样,所以在每个位置平铺多个anchor在合适的正负样本选择策略下可能是一种无用操作。
和一些sota做了比较,实验非常丰富,
所以综上,这篇文章主要就是指出了anchor-free与anchor-based检测器间的一个关键差异是对于正负样本的定义。anchor-based检测器是根据iou来判定的,anchor-free检测器则是根据在空间和尺度的限制来从anchor points中选取正负样本。作者提出了ATSS,一种自适应训练正负样本选择策略,会根据目标的一个特征统计结果来确定正负样本。