• Group DETR


    论文:Group DETR: Fast DETR Training with Groupwise One-to-Many Assignment

    1. Motivation

    目标检测中,lable assignment 是模型训练中非常关键且必要的步骤。所谓 label assignment,就是通过决定将 GT 指派给哪个 anchor(anchor box 或 anchor point 或 object query)来预测,来定义或 anchor 的正负性:

    • positive anchor:需要负责预测 GT 的 anchor;
    • negative anchor:不需要负责预测 GT 的 anchor 。

    根据将一个 GT 交给多少个 anchor 来预测,可以将现有的 lable assignment 分为以下两类:

    • one-to-many assignment:一个 GT 由多个 anchor 来预测。由于多个 anchor 同时负责预测同一个 GT,在测试时将产生重复预测。这时需要使用NMS来消除重复的预测框。
    • one-to-one assignment:一个 GT 只由一个 anchor 来预测。这种方法是DETR系列算法所使用的 label assignment 方法,好处是在测试时不会产生重复预测,也就不需要使用NMS。

    作者通过进行多个实验,在DETR系列算法中,不同的label assignment对模型性能的影响。如下图所示,横轴表示object query的数量。 可以得出以下结论:

    • 在one-to-one assignment中,不管是否使用NMS,单独增加object query的数量对模型性能的提升作用很小。
    • 相比于one-to-one assignment的方法,在使用NMS的情况下,one-to-many assignment对模型性能的提升效果很明显。
    • 在one-to-many assignment中,NMS是不可或缺的。
      在这里插入图片描述

    上述实验表明,使用多个anchor来同时预测一个GT可以提升模型性能,因为网络在学习过程中,会隐式地比较这些预测同一个GT的anchor的差异。而使用一个anchor来预测一个GT的好处是不会产生重复预测。对此,作者提出Group-wise One-to-Many assignment,该方法结合了one-to-one assignment和one-to-many assignment的优点,在不增加模型参数量和计算量的前提下,大大提升了模型的检测性能。

    2. 方法

    Group DETR提出的Group-wise One-to-Many assignment的原理如下:

    1. 将所有的object queries分为 K K K组;
    2. 使用同一个decoder self-attention对各个组的object queries进行计算;
    3. 在每个组中进行与DETR一样的one-to-one assignment。在每个组中,一个GT由一个object query负责预测,因此在 K K K个组中,一个GT由 K K K个object queries负责预测。

    在这里插入图片描述
    在前向推断时,只使用第一组object queries。作者通过实验表明,在前向推断时,使用不同组别的object queries的效果基本一样。如下图所示,不同组别的object queries的分布几乎一样。
    在这里插入图片描述

    3. 实验结果

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    【spring Cloud】为啥最后报空指针了?Eureka注册Movie对象不成功?
    【MyBatis】五、MyBatis的缓存机制与逆向工程
    分布式锁:不同实现方式实践测评
    【重识云原生】第六章容器6.4.4节——ReplicaSet组件
    03-JAVA设计模式-解析器模式
    爬取春秋航空航班信息
    拥抱 OpenAPI 3:springdoc-openapi 食用指南
    MySQL【聚合函数】
    【node.js从入门到精通】编写接口,使用CROS解决跨域问题,jsonp的接口
    C#版Facefusion ,换脸器和增强器
  • 原文地址:https://blog.csdn.net/weixin_41560402/article/details/126676760