ATSS 算法——揭秘anchor-free和anchor-based算法差异_AI之路-CSDN博客_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/ATSS2018年发表的CornerNet...https://blog.csdn.net/u014380165/article/details/103795048轻松掌握 MMDetection 中常用算法(四):ATSS - 知乎文@ 0000070 摘要在 轻松掌握 MMDetection 中常用算法(三):FCOS 一文中详细说明了主流的 anchor-free 算法 FCOS,文章最后也提到了其存在两个需要结合数据集定制的超参,特别是 regress_range,而 ATSS 算法基…https://zhuanlan.zhihu.com/p/358125611mmdetection最小复刻版(七):anchor-base和anchor-free差异分析 - 知乎0 摘要论文题目: Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sample Selection 论文地址: https://arxiv.org/abs/1912.02424ATSS简单来说就是 (1) 对于anchor-fre…https://zhuanlan.zhihu.com/p/272471302

如何评价zhangshifeng最新的讨论anchor based/ free的论文? - 知乎论文: Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sample…https://www.zhihu.com/question/359595879       本文更加直接的点出了正负样本的定义就是anchor-based和anchor-free方法的关键,作者基于此提出了atss,adaptive training sample selection,既可以应用在anchor-based的方法上,也可以应用在anchor-free的方法上,atss有两个超参k和anchor size,作者通过实验论证这两个超参是相当鲁棒的,比anchor的设置,IOU阈值的设置,中心采样范围的设置,以及fpn范围的设置要方便的多。atss的核心在计算离gt中心点近的k个anchor(l2距离)的IOU的均值和标准差,然后相加,用这个价值来筛选anchor,IOU的均值表示anchor的质量,标准差表明哪一层fpn的特征图适合预测gt。整体的框架是承接fcos和retinanet的。

1.Introduction

        一阶段和二阶段的anchor-based算法,两者都是现在图像上平铺大量预设的anchor,然后对这些anchor进行分类和回归,最后输出这些细化后的anchor作为输出。

        当前的目标检测算法由anchor-based和anchor-free组成,前者可以分为一阶段和二阶段算法,后者可以分为keypoint-based和center-based方法。在这anchor-free的方法中,keypoint-based是和标准的关键点检测的pipline是一致的,和anchor-based的检测pipline差距较大,center-based检测器和anchor-based的检测思路是相似的,它将点视为预设样本从而代替anchor。以retinanet和fcos为例说明两者之间的三个区别:1.每个位置平铺的anchor数量,retinanet在每个位置平铺多个anchor,而fcos在每个位置只有一个点。2.正负样本的定义。retinanet用IOU阈值计算正负样本,fcos利用空间和尺度约束(spatial and scale constraint)选择样本。3.回归起始状态。retinanet从预定义anchor回归检测框,fcos从点定位对象。总体来说,fcos要比retinanet的效果好。

        从实验结果中可知,这两种方法的本质区别在于正负训练样本的定义导致了两者之间的差距。同时还有一个结论,在图像的每个位置上平铺多个anchor是没有必要的。

2.different analysis of anchor-based and anchor-free detection

我们关注retinanet和fcos的两个差异,正负样本定义和回归起始状态。

2.1 inconsistency removel

        原始的fcos和retinanet在coco上的AP为37.1%:32.5%,fcos还进行了一些改进,比如将centerness分支移动到回归支路,使用giou,使用相应的步长对回归支路norm(在mmdet中norm on bbox),把fcos从37.1%提升到37.8%,在retinanet(A=1),指的是每个位置只有一个方形anchor的retinanet,也使用这些trick,添加GN,使用giou,限制gt box中的正样本,引入centerness和在每个fpn上引入可训练的s,如下所示,可将retinanet提升到37.8%,还有0.8%的差距。

 2.2 essential difference

        在这些通过改进之后,retinanet(A=1)和fcos之间只有两个区别,一个是关于检测子任务的,定义正负样本的方式,一个是关于回归子任务的,从anchor box回归还是从anchor point回归。

classification.如上图所示,左边是retinanet,右边是fcos,retinanet通过IOU阈值将不同级别的anchor划分为正负样本,IOU>p的是正样本,IOU<p是负样本,忽略其他anchor。fcos使用空间和尺度约束来划分来自不同层级的点,它先将中心采样内的点视为正样本,然后根据max(l,t,r,b)在不同的fpn层级范围中确定正负样本,从右图中上面那个p1最终不在范围就全是负样本,p2为正样本,这里要说明一点,p1,p2都是fpn层级的特征,不是输入的图像,正常是stride=8,16,32,64,128的图,因此映射回原图肯定不是点,而是具有一定区域的感受野,在上图中明显p2的感受野比p1的要大。从上图也可以看出fcos最终选的正样本要比retinanet多。

regression.确定正负样本之后,从上图中retinanet从anchor回归样本,fcos从点回归样本,retinanet用l1 loss回归,fcos用iou loss回归,east中也是iou loss.

上表中,横着看,也就是采用相同的正负样本确定形式,不同的回归方式,两者的AP是差不多一致的,但是竖着看,采用相同的回归方式,但是不同的正负样本定义形式,fcos的样本定义形式始终比IOU阈值定义要高,因此可以确定的是单阶段的anchor-based和center-based的本质区别是如何定义正负训练样本。

3.adaptive training sample selection

3.1 description

在anchor-based中的IOU阈值和anchor-free中的尺度范围(fcos)是样本选择策略中很敏感的超参,为此提出了几乎没有超参数根据对象的统计特征自动划分正负样本的atss算法。简单描述一下这个算法,假设当前图片中,一共有2个gt bbox,一共5个fpn输出层,每层都是100个anchor。

1.遍历每个gt bbox,和500个anchor都计算IOU和中心点坐标的l2距离。

2.遍历5个fpn输出层,对于每个gt bbox,都选择topk(9)个l2距离最小的anchor,则每个gt bbox都选出了9*5个候选anchor。

3.遍历每个gt bbox,将挑选出来的45个anchor所对应的IOU计算均值和标准差,然后相加,此时2个gt bbox都可以得到各自的全局预测正负样本阈值。

4.最后遍历每个gt bbox,在候选框中将IOU值低于阈值的anchor设置为负样本,其余设置为正样本。

关于这个方法的motivation如下,对于retinanet,anchor的中心越靠近物体的中心,iou越大,对于fcos,离对象中心越近的点将产生更高质量的检测,因此里对象中心越近的点是更好的候选者。什么意思呢?上面这个atss核心就是根据l2拿到每层离gt最近的9个anchor,然后把anchor的iou均值和标准差加载一起当阈值。那为什么这个iou的均值和标准的和就可以当阈值呢?

iou的均值为mg,iou的标准差为vg,一个对象的iou均值mg是对这个对象的预设anchor的质量的衡量,mg越大就表明它具有高质量的候选anchor,因此mg是iou的均值,mg说明iou值大,iou值则是非常好的正样本anchor,如图a,mg=0.312,图中level3是很高质量的anchor,图b中的mg=0.122,很明显从level1-5的anchor质量都不高,柱状图上面的标示是iou的值。此外,对象的vg是衡量哪些层是和检测该对象,标准差是衡量两级分化的指标,如果level1-5中有IOU阈值特别高的层级,那么标准差也会高,和均值之和则恰好把这个level给筛选出来,从图a中,vg=0.3,则mg+vg=0.612,则level是非常适合做该对象检测的anchor正样本的,图b中,vg=0.097很低,mg+vg=0.219,虽然anchor质量不行,但是由于比较稳定,可以筛选出不错的正样本。使用均值mg和标准vg从适当的fpn层级中为每个对象自适应的选择足够多的正样本,这样的选法还是很有道理的。

        根据理论,大约16%的样本处于置信区间[mg+vg,1],尽管候选iou不是标准正态分布,但统计结果表明每个对象至少有0.2kl个正样本,k是topk,atss中超参,l是fpn的层级数,0.2*9*5=9,起码有9个。

3.2 analysis

atss对k和anchor size都是不敏感的,因为atss是需要anchor的,因此在retinanet版本中atss对anchor的设置就包括了scale和aspect ratio,一般ratios就设为1,scales也为1,但是在每个fpn的特征图上要对所有的anchor做8s的扩大,stride是总的步长,即8,16,32,64,128.

3.3 results

整体来说, atss的核心还是在自动为正负样本筛选阈值上,几乎不需要超参数,atss既可以用在retinanet上,也可以用在fcos上,mmdet是继承的retinanet版本的,需要一个1x1x8的anchor,先用l2计算距离最近的在每层上的9个anchor,再把5层的9个anchor拿出来计算均值标准差,再求和做阈值,确实合理,均值能表征anchor的质量,标准差能表征哪几层适合做正样本,这样的话就代替了fcos中的中心采样之后,计算max的落在哪个fpn层范围上来计算正负样本了,l2距离和iou都是正样本的强相关条件,这两个都好,正样本的质量完全有保证,文章还是很有意义的,鲜明的支出anchor-based和anchor-free的差异就在如何定义正负样本上。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐