• ATSS介绍


    之前看了yolov7的paper,发现最近几年的目标检测热点好像不是网络结构了,而是正负样本分配策略,于是去回顾了一篇2020年的CVPR火文:ATSS

    原文标题:Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sample Selection

    ATSS取自Adaptive Training Sample Selection

    论文地址:https://arxiv.org/pdf/1912.02424.pdf


    目录

    一、论文背景介绍:

    二、实验细节

    三、作者提出的ATSS方法


    一、论文背景介绍:

            往常,目标检测主流的算法都是anchor-based(不管一阶段还是二阶段),最近几年,anchor-free的算法越来越受欢迎,并且声称比anchor-based的精度高,那么他们差距到底在哪呢?为什么会有这种差距?

            这篇论文就是主要思考了这个问题并且进行研究,发现实际上无锚框和基于锚框的算法本质的区别(带来精度差异的原因)是如何定义正训练样本和负训练样本。

            作者提出了(自己研究出了)一套自适应样本选择方法(Adaptive Training Sample Selection, ATSS),它显著提高了基于锚和无锚检测器的性能(用的是自己提出的ATSS),因此结论就是样本的选择方法才是带来精度的提升的原因。

            此外,这篇文章还挖了个坑,发现在图像上的每个位置没有必要放多个anchor(放一个足矣),但是具体不知道为啥,还有待研究。

    二、实验细节

    作者以具有代表性的anchor-based算法RetinaNet和anchor-free算法FCOS进行对比实验,进行探究到底他们差异在哪。

    首先,RetinaNet和FCOS主要有三个不同点:

    • 每个位置上的anchor数量不同。RetinaNet每个位置生成9个anchor;FCOS仅生成1个point。
    • 正负样本分配策略不同。RetinaNet根据anchor与gt的MaxIoU进行分配;FCOS根据point是否落在gt内(空间限制),以及不同FPN特征层的回归范围限定(尺度限定)来进行分配。
    • 回归策略不同。RetinaNet回归pred bbox和anchor的delta;FCOS直接回归point到pred bbox四边的距离。

    除了三个主要不同点,FCOS还比RetinaNet多了五个小技巧trick(详见FCOS文章):

    • GroupNorm。FCOS在head卷积层采用GN代替BN。
    • GIoU Loss。FCOS采用GIoULoss作为回归定位损失函数。
    • In GT Box。FCOS限制正样本要在gt内。
    • Centerness。FCOS多预测了一个centerness分支。
    • Scalar。FCOS在回归定位预测时,多了一个可学习参数scale。

    为了公平起见,RetinaNet每个位置只放了一个正方形锚框,并且RetinaNet进行了FCOS里同等的tricks,最后微调的RetinaNet和FCOS精度只差0.8%左右。

    然后作者发现实际上他们俩的差异就在两方面:如何定义正样本和负样本;回归方法。

    作者通过对比实验发现,正负样本的定义不同才是导致精度差异的最大原因。

    FCOS首先使用空间约束来寻找空间维度上的候选正样本,然后使用尺度约束来选择尺度维度上的最终正样本。

    RetinaNet则是用IoU同时选择出空间和尺度维度上的最终正样本,因此FCOS更好点。

    而回归方法不影响精度。其中FCOS从中心点开始回归,回归跟GT的边框四条边的四个距离

    而RetinaNet从锚框开始回归,回归四个偏移量(两个是GT中心点坐标,两个是锚框大小)

    最后来看anchor数量的影响,直接抛出实验结论,对于基于MaxIoU的正负样本分配策略而言,anchor数量对精度是有显著影响的,从anchor数量1到9可以带来1.8%的精度提升。很好理解,因为anchor太少,可能有些gt没有被分配上,导致精度下降。

    但是如果采用FCOS的正方样本分配策略或者后续提出的ATSS分配策略,那么anchor数量对精度的影响忽略不计

    三、作者提出的ATSS方法

    作者提出了一种ATSS分配策略。具体来说,分为以下几步:

    1、对于图像上的每一个groud-truth box记为g,在每一层特征金字塔,根据L2距离选取跟g的中心点最近的k个候选正样本(anchor box),那么如果有L层特征金字塔,总共会选择出L*k个候选框

    2、计算每个候选框和g的IoU值,并且计算这个IoU值集合的均值和方差

    3、均值和方差求和作为IoU阈值,筛选出大于这个阈值的候选框作为最终的正样本们

    4、此外,如果将一个锚框分配给多个ground-truth box,则会选择IoU最高的那个。剩下的是负样本。此外,正样本的中心一定被限制在gt内,这是当正样本的前提,不然不考虑。

    作者还分析了这些步骤采用的动机(原因)

    1、为什么考虑跟GT中心点L2距离最近的?

    RetinaNet中IOU越大的anchor,越靠近gt中心,同样的,FCOS中越靠近gt中心的point,检测出的预测框质量越高。

    2、为什么计算均值和方差求和作为IoU阈值?

    使用某个gt与所有anchor的iou均值和方差来确定该gt的自适应的iou阈值这就是ATSS中的关键,也是Adaptive自适应一词的由来,一句话概括,自适应阈值就是基于统计学而得的iou阈值。

    3、为什么正样本的中心一定要被限制在gt内?

    借鉴了FCOS的分配策略中的空间限制,要求point落于gt内,原因是落在gt外,提取的图像特征不正确。

    题外话:k是ATSS中唯一的超参数,而且通过后续实验发现,k的设置对精度影响不大!

  • 相关阅读:
    Install OnlyOffice with docker
    考研西电(833),考什么?计算机组成原理第一章要点
    npm、yarn与pnpm详解
    解决flume采集日志使用KafkaChannel写不到hdfs的问题
    将多个 TransformerEncoderLayer 层堆叠起来,形成一个完整的 Transformer 编码器
    .NET 8 Release Candidate 1 (RC1)现已发布,包括许多针对ASP.NET Core的重要改进!
    OP-TEE的内存和缓存管理(五):OP-TEE的共享内存和cache
    抖音账号矩阵系统源码开发之——视频发布功能开发
    ES2015+ 备忘清单
    使用maven 导入项目注意事项
  • 原文地址:https://blog.csdn.net/jiangqixing0728/article/details/126411467