经典论文系列 | 缩小Anchor-based和Anchor-free检测之间差距的方法:自适应训练样本选择 ​

简介: 本文介绍一篇CVPR2020的论文,它在paperswithcode上获得了16887星,谷歌学术上有261的引用次数。论文主要介绍了目标检测现有的研究进展、anchor-based和anchor-free的背景和各自的方法差异,并提出了一种新的正负样本选择方案,用于消除这两者之间的差距。

Background


近年来,随着卷积神经网络的发展,目标检测已被基于anchor-based的检测器所主导,大致可分为one-stage方法和two-stage方法。他们都首先在图像上平铺大量预设的anchor,然后预测类别并将这些anchor的坐标细化一次或几次,最后输出这些细化的anchors作为检测结果。由于two-stage方法比one-stage方法细化锚点数倍,因此前者具有更准确的结果,而后者具有更高的计算效率。常见检测基准的最新结果仍然由Anchor-based的检测器持有。


由于 FPN和 Focal Loss的出现,最近的学术注意力已经转向Anchor-free检测器。Anchor-free检测器以两种不同的方式可以直接找到没有预设锚的目标。


一种方法是首先定位几个预定义或自学习的关键点(keypoint),然后绑定目标的空间范围。我们将这种类型的Anchor-free检测器称为keypoint-based的方法。另一种方法是使用目标的中心点或中心区域来定义正样本,然后预测从正样本到目标边界的四个距离。我们称这种Anchor-free检测器为center-based的方法。这些Anchor-free检测器能够消除那些与锚相关的超参数,并实现了与Anchor-based的检测器相似的性能,使其在泛化能力方面更具潜力。


在这两种Anchor-free检测器中,keypoint-based的方法遵循不同于Anchor-based的检测器的标准关键点估计管道。然而,center-based的检测器类似于Anchor-based的检测器,它将点视为预设样本而不是锚框。


以one-stage anchor-based检测器RetinaNet和center-based anchor-free检测器FCOS为例,它们之间主要有3个区别:


(1) 每个位置平铺的锚点。RetinaNet 在每个位置平铺多个锚框,而 FCOS 在每个位置平铺一个锚点。


(2) 正负样本的定义。RetinaNet 重新排序IoU用于选择正负样本,而 FCOS 利用空间和尺度约束来选择样本。


(3) 回归起始状态。RetinaNet 从预设的锚框回归目标边界框,而 FCOS 从锚点定位目标。


正如 FCOS论文中所报告的,Anchor-free FCOS 的性能比Anchor-based的 RetinaNet 好得多,值得研究这三个差异中的哪一个是性能差距的重要因素。

 

创新思路


这篇论文通过严格排除它们之间的所有实现不一致,以公平的方式调查anchor-based和anchor-free方法之间的差异。从实验结果可以得出结论,这两种方法的本质区别在于正负训练样本的定义,导致它们之间的性能差距。如果它们在训练时选择相同的正负样本,无论是从一个框还是一个点回归,最终的表现都没有明显的差距。因此,如何选择正负训练样本值得进一步研究。


受此启发,论文提出了一种新的自适应训练样本选择 (Adaptive Training Sample Selection, ATSS),以根据目标特征自动选择正样本和负样本。它弥补了anchor-based和anchor-free检测器之间的差距。


此外,通过一系列在MS COCO数据集上的实验,可以得出结论,不需要在图像上每个位置平铺多个anchors来检测物体。SOTA的 AP 50.7% 是通过应用新引入的 ATSS 而不引入任何开销来实现的。

 

Contribution


这项工作的主要贡献可以概括为:


  • 表明anchor-based和anchor-free检测器之间的本质区别实际上是如何定义正负训练样本。


  • 提出自适应训练样本选择,根据目标的统计特征自动选择正负训练样本。


  • 证明在图像上的每个位置平铺多个锚点以检测对目标是无用的操作。


  • 在不引入任何额外开销的情况下,在 MS COCO 上实现SOTA性能。

 

Anchor-based和Anchor-free的区别分析


去除不一致性


论文使用one-stage anchor-based检测器RetinaNet和center-based anchor-free检测器FCOS作为实验对象,通过消除它们之间使用方法的不一致性,即把FCOS上的一些操作加到RetinaNet上,如GIoU loss、GroupNorm等,得到了两个基本一致的检测器--RetinaNet(#A=1)和FCOS。

bfe6e44991bde34c94c7174cc3d4c04c.png

在去掉这些细节优化的影响后,两者只剩下了在分类和回归两个任务上的差别----定义正负样本的方法差别和回归的是anchor box或anchor point的差别。

 

分类的差别


原始的正负样本选择做法:


如图1(a),RetinaNet使用IOU将来自不同level的anchor box划分为正负样本,对于每个目标,在IOU>θp的所有anchor box中,选一个最大的作为正样本,所有IOU<θn的都认为是负样本,其他的都忽略掉。


如图1(b),FCOS使用空间和尺度约束将anchor点分配到不同的level上,首先将所有在ground truth box内的anchor点作为候选点,然后基于预先对每个level设置的尺度范围来选择最终的正样本,没有选中的点就是负样本。

351b97e2b096bbd4d5ff95e0f9f28d7f.png实验的正负样本选择做法:交换各自的方案。


如下表2所示,如果在RetinaNet(#A=1)使用空间和尺度约束的方式来代替IOU来选择正负样本,RetinaNet(#A=1)的performance可以提升到37.8%。而对于FCOS,如果使用IOU的策略在选择正负样本,那么performance会降到36.9%。这表明了正负样本的选择策略才是这两种方法的根本区别。


6516b5f20dac195b7a04da70f2a9203d.png回归的差别


在正负样本确定之后,需要对正样本进行目标位置的回归。如图2所示,RetinaNet回归的是anchor box和ground truth的4个offset,而FCOS回归的是anchor点到4条边的距离。这表明RetinaNet的回归起点是一个框,而FCOS的回归起点是一个点。

2da502fa87079280afe105c2a72c1c99.png

根据上面表2结果所示,当RetinaNet和FCOS使用相同的正负样本选择策略的时候,两者并没有明显的差别,这表明回归的起点并不是两个方法的本质区别。


因此,one-stage anchor based目标检测方法和center-based anchor free的目标检测方法的本质区别在于正负样本的选取策略上。

 

Adaptive Training Sample Selection


背景


在训练目标检测器时,我们首先需要定义正负样本进行分类,然后使用正样本进行回归。根据前面的分析,定义正负样本是至关重要的,anchor free detection FCOS 改进了这一步。它引入了一种定义正样本和负样本的新方法,比传统的基于 IoU 的策略实现了更好的性能。


以前的样本选择策略有一些敏感的超参数,例如anchor-based检测器中的 IoU 阈值和anchor-free检测器中的尺度范围。设置这些超参数后,所有的ground-truth box都必须根据固定的规则选择它们的正样本,这适用于大多数目标,但会忽略一些外部目标。因此,这些超参数的不同设置会产生非常不同的结果。

14e855a8b27e6ca3268a763f7e94e824.png

关于ATSS算法的几点说明:


  • 根据锚框和目标之间的中心距离选择候选目标。对于 RetinaNet,锚框的中心越靠近目标的中心,IoU 越大。对于 FCOS,离目标中心越近的锚点将产生更高质量的检测。因此,离目标中心越近的锚点是更好的候选者。


  • 使用均值和标准差之和作为 IoU 阈值。


  • 维护不同目标之间的公平性。RetinaNet 和 FCOS 的策略往往对更大的目标有更多的正样本,导致不同目标之间的不公平。而ATSS统计结果表明,每个目标大约有 0.2 ∗ kL 个正样本,这与其尺度、纵横比和位置是没有关系的。


  • 几乎没什么超参数。

 

Conclusion



使用新引入的 ATSS,SOTA检测器大幅提高到 50.7% 的 AP,而不会引入任何开销。

4012022927d9fc7658fbc6083db4c30d.png



相关文章
|
7月前
|
机器学习/深度学习 计算机视觉 Python
【DRConv】动态区域感知卷积结构可提升卷积的表示能力 | 复现《Dynamic Region-Aware Convolution》
【DRConv】动态区域感知卷积结构可提升卷积的表示能力 | 复现《Dynamic Region-Aware Convolution》
215 1
【DRConv】动态区域感知卷积结构可提升卷积的表示能力 | 复现《Dynamic Region-Aware Convolution》
|
5月前
|
机器学习/深度学习 数据采集 监控
算法金 | DL 骚操作扫盲,神经网络设计与选择、参数初始化与优化、学习率调整与正则化、Loss Function、Bad Gradient
**神经网络与AI学习概览** - 探讨神经网络设计,包括MLP、RNN、CNN,激活函数如ReLU,以及隐藏层设计,强调网络结构与任务匹配。 - 参数初始化与优化涉及Xavier/He初始化,权重和偏置初始化,优化算法如SGD、Adam,针对不同场景选择。 - 学习率调整与正则化,如动态学习率、L1/L2正则化、早停法和Dropout,以改善训练和泛化。
47 0
算法金 | DL 骚操作扫盲,神经网络设计与选择、参数初始化与优化、学习率调整与正则化、Loss Function、Bad Gradient
|
6月前
|
机器学习/深度学习 计算机视觉
【YOLOv8改进】EMA(Efficient Multi-Scale Attention):基于跨空间学习的高效多尺度注意力 (论文笔记+引入代码)
YOLO目标检测专栏介绍了创新的多尺度注意力模块EMA,它强化通道和空间信息处理,同时降低计算负担。EMA模块通过通道重塑和并行子网络优化特征表示,增强长距离依赖建模,在保持效率的同时提升模型性能。适用于图像分类和目标检测任务,尤其在YOLOv8中表现出色。代码实现和详细配置可在文中链接找到。
|
7月前
|
机器学习/深度学习 计算机视觉
【YOLOv8改进】MPDIoU:有效和准确的边界框损失回归函数 (论文笔记+引入代码)
YOLO目标检测专栏介绍了YOLO的有效改进和实战案例,包括卷积、主干网络、注意力机制和检测头的创新。提出了一种新的边界框回归损失函数MPDIoU,它基于最小点距离,能更好地处理不同宽高比的预测框,包含重叠、中心点距离和尺寸偏差的全面考虑。MPDIoU损失函数在YOLACT和YOLOv7等模型上的实验显示了优于现有损失函数的性能。此外,还介绍了WIoU_Scale类用于计算加权IoU,以及bbox_iou函数实现不同IoU变体的计算。详细实现和配置可在相应链接中查阅。
|
7月前
|
传感器 编解码 算法
Anchor-free应用一览:目标检测、实例分割、多目标跟踪
Anchor-free应用一览:目标检测、实例分割、多目标跟踪
146 0
|
算法 数据挖掘 计算机视觉
|
机器学习/深度学习 自动驾驶 算法
3D检测经典 | 第一个Anchor-Free、第一个NMS-Free 3D目标检测算法!!!(一)
3D检测经典 | 第一个Anchor-Free、第一个NMS-Free 3D目标检测算法!!!(一)
221 0
|
算法 计算机视觉
3D检测经典 | 第一个Anchor-Free、第一个NMS-Free 3D目标检测算法!!!(二)
3D检测经典 | 第一个Anchor-Free、第一个NMS-Free 3D目标检测算法!!!(二)
104 0
|
机器学习/深度学习 算法 自动驾驶
改进YOLOX | Push-IOU+Dynamic Anchor进一步提升YOLOX性能
改进YOLOX | Push-IOU+Dynamic Anchor进一步提升YOLOX性能
186 0
|
网络架构
YOLOv5抛弃Anchor-Base方法 | YOLOv5u正式加入Anchor-Free大家庭
YOLOv5抛弃Anchor-Base方法 | YOLOv5u正式加入Anchor-Free大家庭
280 0