• 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. 实验结果

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

  • 相关阅读:
    如理解WPF绑定中的UpdateSourceTrigger
    硅谷(12)菜单管理
    kafka
    Hystrix 请求合并、请求隔离、优化
    以太网 TCP协议(三次握手、四次挥手)
    UltraEdit文本编辑器下载适用于Win/Mac和Linux
    【Hack The Box】windows练习-- Bankrobber
    C#WPF相对好看的登录界面
    口袋参谋:一键查询任意买家旺旺号,规避被降权风险!
    Java 随笔 代理模式 1-spring aop
  • 原文地址:https://blog.csdn.net/weixin_41560402/article/details/126676760