《DETRs with Collaborative Hybrid Assignments Training》 加入one to many matching 辅助头训练的DETR

这篇具有很好参考价值的文章主要介绍了《DETRs with Collaborative Hybrid Assignments Training》 加入one to many matching 辅助头训练的DETR。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

《DETRs with Collaborative Hybrid Assignments Training》 加入one to many matching 辅助头训练的DETR
最近看到一篇不错的DETR论文,翻译了下,以作记录。
论文地址:https://arxiv.org/pdf/2211.12860.pdf
开源地址:https://github.com/Sense-X/Co-DETR

《DETRs with Collaborative Hybrid Assignments Training》 加入one to many matching 辅助头训练的DETR

背景

自DETR新范式提出以来,有很多文章都致力于解决DETR模型训练慢、精度一般的问题。DETR将对象检测视为集合预测(set prediction)问题,并引入基于transformer encoder-decoder架构的一对一匹配(one to one matching )方法。以这种方式,每个GT将单独分配给一个query,不再需要一对多匹配(one to many matching)的先验设计(如anchor、手工设计的GT匹配机制等)。DETR简化了检测的pipeline(指不需要nms),作为一种新范式引发了诸多DETR的变体。Deformable DETR作为DETR变体中的佼佼者,将稀疏的可变形transformer、二阶段检测、级联更新bbox等操作引入到DETR中,得到了相当不错的效果。
最近(2022年)不少论文都将目光集中在了one to one matching机制上,年初CVPR的Denosing DETR认为one to one matching机制在模型训练的初期导致了损失不稳定,GT无法很好的与query稳定的进行匹配,因此提出了加入噪声干扰的GT输入作为query,与GT进行损失计算来辅助加速DETR模型训练,该课题组在此基础上提出了DINO、Mask DINO等模型,将DETR模式推到了SOTA的水平。此后,Group DETR、H-DETR等论文通过扩展query的方式将DETR的one to one matching转换为one to many matching的模式来加速模型训练,并取得了不错的效果。
本篇论文同样将目光放在了DETR的one to one matching 问题上,作者分析了Deformable DETR,认为one to one matching探索了不太积极的query,从而导致了训练的低效。作者从encoder生成的潜在表示和decoder中的attention学习两个方面对此进行了详细分析。首先比较了Deformable DETR和one to many matching方法之间潜在特征的可分辨性得分,其中作者用ATSS的检测头替换decoder,利用每个空间坐标中特征的l2范数来表示可分辨性得分。给定encoder的输出 F ∈ R C × H × W F∈ R^{C×H×W} FRC×H×W,可以得到可分辨性得分图 S ∈ R 1 × H × W S∈ R^{1×H×W} SR1×H×W。当相应区域的分数较高时,可以更好地检测对象。如下图所示,通过对可分辨性得分应用不同的阈值来演示IoF-IoB曲线(IoF:前景相交,IoB:背景相交)。
《DETRs with Collaborative Hybrid Assignments Training》 加入one to many matching 辅助头训练的DETR

ATSS中较高的IoF-IoB曲线表明其相较于Defomable DETR更容易区分前景和背景。进一步可视化可分辨性得分图 S ∈ R 1 × H × W S∈ R^{1×H×W} SR1×H×W

《DETRs with Collaborative Hybrid Assignments Training》 加入one to many matching 辅助头训练的DETR
很明显,一些显著区域中的特征在one to many matching方法中被充分激活,但在one to one matching中很少被激活。
为了探索decoder的训练问题,作者还基于Deformable DETR和Group DETR(其将更多的正样本query引入到decoder中)演示了decoder中cross attention的IoF-IoB曲线。

《DETRs with Collaborative Hybrid Assignments Training》 加入one to many matching 辅助头训练的DETR
如图所示,太少正样本query也会影响atttention的学习,而在decoder中增加更多的正样本query可以稍微缓解这种情况。

原理

作者提出一种简单有效的辅助训练模型Co-DETR,使用通用的one to many matching来提高encoder和decoder的训练效率。具体而言,就是将一些原有的one to many matching辅助检测头(如ATSS、Faster RCNN的检测头)加在encoder的输出后进行损失训练,并将结果输出到decoder中辅助decoder进行训练。这些辅助检测头可以通过one to many matching进行监督。不同的标签分配丰富了对encoder的监督,这迫使encoder具有足够的辨别力,以支持这些辅助检测头的损失收敛。one to many matching可以引入大量正样本作为query输入decoder中,以提高decoder的训练效率。并且Co-DETR只在训练阶段加入辅助检测头,因此仅在训练阶段中引入额外的计算开销,不会影响到模型推理的效率。Co-DETR的网络结构如下图所示:
《DETRs with Collaborative Hybrid Assignments Training》 加入one to many matching 辅助头训练的DETR
具体而言,给定encoder的输出特征 F F F,首先通过多尺度适配器将其转换为特征金字塔 { F 1 , . . . , F J } \{F_1,...,F_J\} {F1,...,FJ},其中 J J J表示具有 2 2 + J 2^{2+J} 22+J下采样步长的特征图。特征金字塔由单尺度encoder中的单个特征图构建,使用双线性插值和3×3卷积进行上下采样。对于多尺度encoder,只对多尺度encoder特征F中最粗糙的特征进行下采样以构建特征金字塔。定义了 K K K个具有相应标签分配方式 A k A_k Ak的辅助头,对于第 i i i个辅助头, { F 1 , . . . , F J } \{F_1,...,F_J\} {F1,...,FJ}被发送给它以获得预测 P ^ i \hat P_i P^i。在第 i i i个头, A i A_i Ai用于计算 P ^ i \hat P_i P^i中正样本和负样本的监督目标。将 G G G表示为GT集,辅助头 A i A_i Ai的计算可表示为:
P i { p o s } , B i { p o s } , P i { n e g } = A i ( P ^ i , G ) \mathbf P^{\{pos\}}_i, \mathbf B^{\{pos\}}_i, \mathbf P^{\{neg\}}_i = A_i(\hat\mathbf P_i, \mathbf G) Pi{pos},Bi{pos},Pi{neg}=Ai(P^i,G)
式中, B i { p o s } \mathbf B^{\{pos\}}_i Bi{pos}是空间正样本所在的位置的集合。 P i { p o s } \mathbf P^{\{pos\}}_i Pi{pos} P i { n e g } \mathbf P^{\{neg\}}_i Pi{neg}是相应位置的监督目标,包括类别和回归偏移。损失函数可以定义为:
L i e n c = L i ( P ^ i { p o s } , P i { p o s } ) + L i ( P ^ i { n e g } , P i { n e g } ) L^{enc}_i = L_i(\hat P^{\{pos\}}_i, P^{\{pos\}}_i) + L_i(\hat P^{\{neg\}}_i, P^{\{neg\}}_i) Lienc=Li(P^i{pos},Pi{pos})+Li(P^i{neg},Pi{neg})
对于 K K K个辅助检测头,其损失函数可定义为:
L e n c = ∑ i = 1 K L i e n c L^{enc}=\sum_{i=1}^KL^{enc}_i Lenc=i=1KLienc
在one to one matching中,每个GT框将仅分配给一个特定query作为监督目标。太少的正样本query导致decoder中的cross attentation学习效率低下。为了缓解这一问题,根据每个辅助头中的标签分配 A i A_i Ai生成了足够的正样本query。具体来说,给定第 i i i个辅助头中的正坐标集 B i { p o s } ∈ R M i × 4 \mathbf B^{\{pos\}}_i\in R^{M_i×4} Bi{pos}RMi×4 ,其中 M i M_i Mi是正样本的数量,额外的正样本query Q i ∈ R M i × C Q_i \in R^{M_i×C} QiRMi×C可通过以下方式生成:
Q i = L i n e a r ( P E ( B i { p o s } ) ) + L i n e a r ( E ( F ∗ , p o s ) ) Q_i = Linear(PE(\mathbf B^{\{pos\}}_i)) + Linear(E({F_∗}, {pos})) Qi=Linear(PE(Bi{pos}))+Linear(E(F,pos))
因此,有 K + 1 K+1 K+1组query有助于单个one to one matching分支, K K K个分支在训练期间具有one to many matching。辅助one to many matching的分支与原始主分支中的 L L L个decoder层共享相同的参数。辅助分支中的所有query都被视为正样本query,因此匹配过程被丢弃。具体而言,第 i i i个辅助分支中的第 l l l个decoder层的损失可以定义为:
L i , l d e c = L ~ ( P ~ i , l , P i { p o s } ) . L^{dec}_{i,l} = \tilde L(\tilde \mathbf P_{i,l}, \mathbf P^{\{pos\}}_i). Li,ldec=L~(P~i,l,Pi{pos}).
Co-DETR的全体损失函数可被定义为:
L g l o b a l = ∑ j = 1 L ( L ~ l d e c + λ 1 ∑ i = 1 K L i , l d e c + λ 2 L e n c ) L^{global} = \sum^L_{j=1}(\tilde L^{dec}_l + \lambda_1 \sum^K_{i=1} L^{dec}_{i,l} + \lambda_2 L^{enc}) Lglobal=j=1L(L~ldec+λ1i=1KLi,ldec+λ2Lenc)
式中, L ~ l d e c \tilde L^{dec}_l L~ldec为原始主分支中 L L L个decoder层的损失。

实验

作者并保持训练设置与baseline一致,将Co-DETR引入到Deformable DETR++(two stage 和+iterative bounding box refinement)中。采用ATSS和Faster RCNN作为K=2的辅助头,采用ATSS作为K=1的辅助头。将query的数量设置为300,并默认将 λ 1 \lambda_1 λ1设为1.0, λ 2 \lambda_2 λ2设为2.0。
《DETRs with Collaborative Hybrid Assignments Training》 加入one to many matching 辅助头训练的DETR
可以看到CO-DETR取得了相当不错的效果。
《DETRs with Collaborative Hybrid Assignments Training》 加入one to many matching 辅助头训练的DETR
当采用MixMIM作为主干网络并采用Objects365进行预训练时,CO-DETR将COCO mAP提升到了64.4,几乎达到了SOTA水平。以更少的额外数据大小实现了卓越的性能。

如果与DINO中的Denosing机制联合使用,是否会带来更好的提升,希望可以看到后续跟进的report或者论文。文章来源地址https://www.toymoban.com/news/detail-440819.html

到了这里,关于《DETRs with Collaborative Hybrid Assignments Training》 加入one to many matching 辅助头训练的DETR的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【论文阅读】One For All: Toward Training One Graph Model for All Classification Tasks

    会议: 2024-ICLR-UNDER_REVIEW 评分:6,6,6,10 作者:Anonymous authors 文章链接:ONE FOR ALL: TOWARDS TRAINING ONE GRAPHMODEL FOR ALL CLASSIFICATION TASKS 代码链接:ONE FOR ALL: TOWARDS TRAINING ONE GRAPHMODEL FOR ALL CLASSIFICATION TASKS  设计一个能够解决多个任务的模型是人工智能长期发展的一个目标。最近,

    2024年01月18日
    浏览(37)
  • 论文笔记:ViTGAN: Training GANs with Vision Transformers

    2021 论文研究的问题是:ViT是否可以在不使用卷积或池化的情况下完成图像生成任务 即不用CNN,而使用ViT来完成图像生成任务 将ViT架构集成到GAN中,发现现有的GAN正则化方法与self-attention机制的交互很差,导致训练过程中严重的不稳定 ——引入了新的正则化技术来训练带有

    2024年02月07日
    浏览(34)
  • 【论文阅读】InstructGPT: Training language models to follow instructions with human feedback

    论文链接:InstructGPT 🤗关注公众号 funNLPer 了解更多AI算法🤗 把语言模型变大并不意味着会让模型更好的理解用户意图,例如大的语言模型会生成一些不真实、有害的、没有帮助的输出给用户,换句话说,这些模型并没有和用户的意图对齐(aligned)。在这篇论文中我们展示了

    2023年04月19日
    浏览(42)
  • 论文阅读《Vision-Language Pre-Training with Triple Contrastive Learning》

    本文是2022年CVPR上的一篇 多模态 论文,利用对比学习和动量来进行图片与文本信息的上游预训练。 作者提出问题 简单的跨模态比对模型无法确保来自同一模态的相似输入保持相似。(模态内部语义信息损失) 全局互信息最大化的操作没有考虑局部信息和结构信息。 对于上

    2024年04月13日
    浏览(36)
  • LeetCode2085. Count Common Words With One Occurrence

    Given two string arrays words1 and words2, return the number of strings that appear exactly once in each of the two arrays. Example 1: Input: words1 = [“leetcode”,“is”,“amazing”,“as”,“is”], words2 = [“amazing”,“leetcode”,“is”] Output: 2 Explanation: “leetcode” appears exactly once in each of the two arrays. We count this s

    2024年01月16日
    浏览(27)
  • Personalize Segment Anything Model with One Shot【论文翻译】

    ​ https://arxiv.org/pdf/2305.03048.pdf https://github.com/ZrrSkywalker/Personalize-SAM 通过大数据预训练驱动,分段任意模型(Segment Anything Model,SAM)已被证明是一个强大且可提示的框架,革新了分割模型。尽管其具有普遍性,但在没有人力提示的情况下,定制SAM以适应特定的视觉概念仍未得

    2024年02月12日
    浏览(33)
  • OSFormer: One-Stage Camouflaged Instance Segmentation with Transformers

    地址:https://arxiv.org/pdf/2207.02255.pdf 1. 摘要     OSFormer为基于transformer的伪装实例分割(CIS)框架,有两个关键设计,首先是位置敏感transformer(LST),通过【位置引导查询】和【混合卷积前向传播网络】获得定位标签和实例级参数;第二,开发粗糙到精细融合模块(CFF)合并来

    2024年02月12日
    浏览(46)
  • 【论文阅读】An Evaluation of Concurrency Control with One Thousand Cores

    Staring into the Abyss: An Evaluation of Concurrency Control with One Thousand Cores 随着多核处理器的发展,一个芯片可能有几十乃至上百个core。在数百个线程并行运行的情况下,协调对数据的竞争访问的复杂性可能会减少增加的核心数所带来的收益。探索当前DBMS的设计对于未来超多核数的

    2024年02月08日
    浏览(30)
  • 【解决】RuntimeError: Boolean value of Tensor with more than one value is ambiguous

    在用pytorch进行损失函数计算时,报错误: 翻译过来就是说: 具有多个值的张量的布尔值不明确  我是这报错: 啥意思?,你问我,我也不知道呀!、、、  错误原因分析: 其实是,因为我损失函数调用时没有初始化,所以导致报错 其实我是初始化了,但是因为没有+(),

    2024年02月16日
    浏览(36)
  • 【Soft NMS】《Soft-NMS – Improving Object Detection With One Line of Code》

    ICCV-2017 NMS 是许多目标检测算法重要的步骤之一 NMS 的缺点,if an object lies within the predefined overlap threshold, it leads to a miss.(sets the score for neighboring detections to zero) Intuitively, if a bounding box has a very high overlap with M M M (maximum score), it should be assigned a very low score, while if it has a l

    2024年02月16日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包