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

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

  • 相关阅读:
    Pandas数据分析21——固定时间点和时间差
    创建git仓库
    无法远程连接到kafka
    ARM开发(5)ARM的接口技术(串行通信与并行通信,同步串行通信与异步串行通信,波特率,串行通信术语,uart,i2c,spi三种协议简单引入)
    【Linux网络编程】高级I/O函数
    Pandas DataFrame 的可视化工具大全
    C#实现图片转Base64字符串.并支持markdown文件打开展示
    a+=b、a-=b、a*=b和a=a+b、a=a-b以及a=a*b的区别(易混淆)
    Scala入门到精通(尚硅谷学习笔记)章节六——流程控制
    【无标题】
  • 原文地址:https://blog.csdn.net/weixin_41560402/article/details/126676760