[目标检测]Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sample S

1、 为什么要做这个研究(理论走向和目前缺陷) ?
Anchor based 和Anchor free算法的性能差距原因不明。
2、 他们怎么做这个研究 (方法,尤其是与之前不同之处) ?
通过比较两个比较有代表性的anchor based和anchor free的单步检测器retinaNet和FCOS,先一步步控制变量,最后得出差距原因在于正负例anchor(box/point)的采样策略不同造成的差距,至于回归的是anchor box的偏移还是anchor point距离预测框四边界的距离,并不重要。还提出了一种自适应的正负例anchor的采样策略,即每个金子塔层的每个像素点,仅设置一个默认的anchor box(大小为8S,S为输入图片到当前层fm的缩放比例,8,16,32,64等),根据gt box的大小设置在不同的层寻找正例点,在每一层对于每个gt box寻找9个距离gt box中心点最近的anchor点作为候选正例,然后计算9个IOU值的均值和标准差,以均值+标准差对这9个anchor点进行一侧筛选,然后再筛选掉不在gt框内的anchor点,剩下的Anchor点作为此gt box的正例anchor box(point),其余Anchor box(point)作为负例anchor box(point)。之后对于,基于anchor的算法,回归的是正例Anchor box的偏移值,而anchor free算法(FCOS),回归的是anchor point距离四个框边界的距离。
3、 发现了什么(总结结果,补充和理论的关系)?
证明基于统计的自适应的正负例anchor(box/point)选择策略是anchor free和anchor based算法差距的原因,至于是回归anchor box的偏移还是anchor point距离四边界的距离,影响不大。还证明这种自适应的正负例anchor选择策略的几个超参数(选择几个最近点,每个anchor点的默认Anchor box的大小、ratio等)的敏感度不大。

摘要:FPN和Focal Loss的出现分别解决了anchor free方法中的召回率低和类别/难易不平衡问题,使得anchor free检测器持续升温。本文指出,anchor free和anchor based的主要性能差距原因在于如何定义训练时的正例和负例,如果选择同样的定义策略,他们的结果并没有多大性能差异。本文提出一种自适应样本选择策略来自动选择正例和负例样本,这种策略是基于目标的统计特性设计的。本文还指出,只要正例样本和负例样本选择得当,每个位置点用多少anchor(默认3*3=9个)影响不大,一个就够了。

1、 引言
一阶段anchor based检测器代表RetinaNet和Anchor free检测器代表FCOS很像,他们的主要差别在于:
1) 每个位置堆叠的anchor(此处anchor包括anchor box和anchor poing)数目不同。RetinaNet每个像素点堆叠多个Anchor box,FCOS在每个像素点堆叠一个anchor点(FCOS中的一个anchor 点相当于一个RetinaNet中的一个Anchor box)。
2) 对于正例和负例anchor的定义不同。RetinaNet使用Anchor box和gt box的IOU来分类正负例,而FCOS利用空间(anchor 点的位置是否在gt框内,是否在gt框的中心点出)和尺度(根据anchor点对应 的gt框的大小决定此正例Anchor点应该FPN的哪一层)限制选择正负例anchor point。
3) 框回归时的初始状态。RetinaNet从一个预定义的anchor box来回归得到一个精细化的框,而FCOS直接从一个anchor点回归四个边界到此点的位置来回个一个预测框。
本文的主要贡献:
1) 指出anchor-based检测器和Anchor-free检测的重要不同在于定义训练样本正负例的不同。
2) 根据目标的统计特征提出自适应的训练正负样本选择策略。
3) 证明如果正负例样本选择得当,anchor-based 检测器中在每个像素点堆叠多个Anchor box并没有什么用。
4) 几乎不添加额外的计算负担就达到SOTA性能。

2 相关工作
2.1 anchor-based检测器
两阶段:Faster R-CNN及其各种变种。
一阶段:SSD等。
2.2 Anchor-free检测器
基于关键点的方法:CornerNet及其变种, ExtremeNet, CenterNet, RepPoints等
基于中心的方法:YOLOv1,GA-RPN, FCOS, CSP, FoveaBox等。
3,有无anchor检测器不同点分析
以RetinaNet和FCOS为代表进行分析。
训练时设置RetinaNet的每个像素点anchor box只有一个为8S(S为输入图片到当前层的缩放比例,一般为8, 16, 32, 64)大小的方形anchor box。

3.2 移除不一致
1)将RetinaNet原本每个像素点有9个anchor box改为1个,跟FCOS一致。
2)给RetinaNet加上或改为:头部加GroupNorm, 改用GioU回归损失,限制正例anchor box的某点在gt box之中,为FPN的每一层引入centerness 分支添加一个可训练的标量,
通过以上达到跟FCOS一致。提高RetinaNet的mAP到37%,低了FCOS的37.8%有0.8个百分点。

3.3 重要的不同点
应用上述更改后,还有两点不一致:分类子任务中的定义正例负例anchor(box, point)的策略不同(RetinaNet用IOU定义,FCOS用尺度空间位置等定义),回归子任务中的初始状态不同(一个回归anchor box的偏移,一个直接回归anchor point的距离预测框四个边界的距离)。
分类:RetinaNet定义每个anchor box和gt box的IOU>thata_p为正例,IOU<theta_n为负例。而FCOS先将在gt box框内的所有anchor point视为候选正例点,然后基于gt的大小确定这个正例点应该分配到金字塔的哪一层,最后所有其他anchor点设为负例点。
正负例选择过程如下图:
在这里插入图片描述
将在FCOS中应用的空间和尺度限制应用到RetinaNet中,可提高map从37.0%到37.8%,如下表第一列示。如果FCOS的正例采样策略换成RetinaNet基于IOU选择的,其mAP会从37.8%降至36.9%,如下表第二列示:
在这里插入图片描述
回归:RetinaNet从一个anchor框开始回归其偏移值,而FCOS回归anchor point距离边界框的四个距离。如上表所示,即使回归初始策略不同,只要正负例选择策略相同最后结果就基本相同,说明回归初始状态对最后性能并无大影响。
结论:正负例采样策略才是anchor-based 和anchor-free检测器性能不同的关键。

4 自适应的训练采样策略
训练一个检测器时,首先要定义正例和负例来进行分类,然后只用正例来进行回归。其中,如何定义正例和负例是关键所在。

4.1ATSS
对每个金字塔层,每个gt框选择9个离gt框中心点最近(基于欧氏距离)的像素点作为候选正例采样点,然后计算这个9个采样点所对应的的anchor box(每个采样点对应一个anchor box)个gt box 的IOU值,计算9个IOU值的均值mg和方差vg,以tg=mg+vg作为阈值筛选9个采样点中大于IOU值大于阈值tg的anchor box作为精细版的候选anchor box(point),对于精细版版的anchor box(point),还要筛选掉point在gt box中的point(box)。剩下的
点作为最后的正例anchor point。过程整理如下:
选9个最近的anchor box(point)作为候选正例->以iou阈值筛选掉一部分->以anchor point是否在gt box再筛选掉一部分。
剩下的anchor point(box)最为最终这个gt对应的正例框。
此过程可用如下伪代码表示:
在这里插入图片描述
使用均值+方差作为IOU阈值能够自适应选出最合适的正例(包括正例点空间位置和所在的金字塔层):
在这里插入图片描述
统计表明这种采样策略可以保证每个gt box有0.2k金字塔层数 个正例点,其中k=9为最初选择的候选正例点个数。由于RetinaNet和FCOS都有5个金字塔层,这样就能保证每个gt box最终保留大约有9个正例点(这么多??)。

4.2 变化
自适应的采样策略提高RetinaNet 有2.3%.
在FCOS上使用ATSS有两个版本。
1) 第一个版本(lite版)就只改变正例采样策略,即只选择固态框内离gt框最近的9(可能小于9)个点作为正例点,由于每个点只代表一个点,不是Anchor box,无法计算IOU值,故不做再次筛选。此时GT框的回归层选择还是沿用FCOS中采用的即根据GT框的大小分配其所属的金字塔层。如下表第4行。
2) 第二版本(full版)在lite版基础上,加上为每个anchor point设置一个默认anchor box,这个anchor box大小为8S(其中S当前原始图片到当前金字塔层时的缩放比例),根据默认anchor box的大小就可以计算与GT框的IOU值,进而可以进行计算均值方差得IOU阈值再次筛选。这个默认的Anchor box提高lite版的mAP从38.6到39.2。如下表第5行。所以加了默认的anchor box,最后是回归的anchor box的偏移值还是距离四个边的边界???(估计是边界,默认anchor box只是一种筛选正例点的辅助手段。)
在这里插入图片描述
4.3 分析
超参K,不敏感。
在这里插入图片描述
超参anchor size和anchor ratio,也不敏感:
在这里插入图片描述
4.4与其他sota比较。
4.5 讨论
RetinaNet默认每个位置点有9个anchor box,本文实验中全部设置成一个,如果设置成原来的9个会有影响吗?实验显示,设置会9个anchor box+ATSS并不比1个Anchor box+ATSS有提升。说明只要正例anchor选择得当,每个像素点堆叠多少个Anchor box并不重要。
5 结论
证明Anchor based和anchor free检测器性能差距的原因在于正/负例Anchor(box, point)选择策略是否得当,而是否回归anchor box的偏移值还是回归一个Anchor 点距离预测框的四个边界的距离并不是性能差距的原因所在。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值