DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记

DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记

  • 一、Abstract
  • 二、引言
  • 三、相关工作
    • 目标检测中的 DETR
    • 其它视觉任务中的 DETR
    • 标签赋值
  • 四、方法
    • 4.1 基础知识
      • 通用的 DETR 框架
      • 通用的可变形 Deformable-DETR 框架
    • 4.2 混合匹配
      • 4.2.1 混合分支计划
        • 一对一匹配分支
        • 一对多匹配分支
      • 4.2.2 更多的混合匹配变体
        • 混合 epoch 计划
        • 混合层计划
  • 五、实验
    • 5.1 提升基于 DETR 的方法
      • 2D 目标检测的结果
      • 3D 目标检测的结果
      • 多人姿态估计的结果
      • 多目标跟踪的结果
      • 全景分割的结果
    • 5.2 消融实验
      • 不同混合匹配计划的比较
      • 计算/训练时间/GPU 内存的成本
      • 基于 Deformable-DETR 的每个组建的有效性
      • 一对多匹配分支内 K K K 的选择
      • 一对多匹配分支内 T T T 的选择
      • 共享参数的效果
      • 仅使用一对多匹配的比较
    • 5.3 与 SOAT 方法的比较
  • 六、结论
  • 补充
    • A、数据集
    • B、更多的超参数细节
    • C、全景分割的结果
    • D、更多的消融结果
    • E、加速混合匹配

写在前面

  有个城市之星的活动,加紧赶一篇博文出来吧。这是 VALSE 2023 大会(VALSE 2023 无锡线下参会个人总结 6月11日-2)上的一篇 Poster 论文,遂找来读读。

  • 论文地址:DETRs with Hybrid Matching
  • 代码地址:https://github.com/HDETR
  • 收录于:CVPR 2023
  • PS:2023 每周一篇博文,主页 更多干货,欢迎关注吖,这是这周加更的一篇,还剩 2 篇未补,期待 5 千粉丝有你的参与咩 ~

一、Abstract

  一对一匹配是 DETR 建立端到端训练的关键,以至目标检测不再需要 NMS了。然而更少的 queries 被赋值为正样本,导致一对一匹配显著减低了正样本的有效训练。于是提出混合匹配计划:在训练中结合原始的一对一匹配分支和辅助的一对多匹配分支。在推理过程中,仅采用原始的一对一匹配分支,维持端到端的优点以及 DETR 相同推理效率的同时,提高精度。本文提出的方法名为 H-DETR,提升了一系列包括 Deformable-DETR、PETRv2、PETR、TransTrack 等方法在大量视觉任务上的表现。

二、引言

  DETR 在各大视觉任务上都取得了突破性的进展,后续的工作通过重新设计更加先进的 Transformer 编码器和解码器结构,或者 query 的构成方法都实现了一定的提升。与之前不同,本文关注于一对一匹配造成的训练效率问题:仅给每个 GT 赋值一个 query。例如,在单个图像中,Deformable-DETR 通常从一组 300 个 queries 中仅选择少于 30 个的 query 来匹配 GT。于是将近 99% 的 COCO 图像中 boxes 选择标注的数量少于 30,而剩下的 270 个 queries 被赋值为空,仅由分类损失来监督,而这导致了非常低的定位能力。
  为了克服一对一匹配的问题以及扩大正样本 queries 所带来的好处,本文提出混合匹配计划,通过引入额外的一对多匹配分支来赋值多个 queries 到每个正样本。在推理过程中,仅采用原始的一对一解码器分支,维持了端到端的优点以及 DETR 相同的推理效率的同时,提高了精度。
  本文提出的混合匹配方法名为 H-DETR,在大量的视觉任务上验证了 H-DETR 及其变体的有效性。如下图所示;

DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第1张图片

三、相关工作

目标检测中的 DETR

  列举 Deformable-DETR、DAB-DETR、DINO-DETR、DE-DETR。不同于这些工作,本文关注于 DETR 中的匹配机制,提升训练效率的同时保留了原版 DETR 的优点。

其它视觉任务中的 DETR

  分割、3D 目标检测、姿态估计、目标跟踪。对于分割任务,首先构造 baseline 方法:Mask-Deformable-DETR,然后在这个 baseline 加上本文提出的方法。对于其他任务,直接采用最近提出的 PETRv2、PETR、TransTrack 作为 baseline 来验证本文的混合匹配方法。

标签赋值

  现有的标签赋值可划分为两类:一对多的标签赋值,即为每个 GT box 赋值多个正样本的预测;一对一的标签赋值,为每个 GT box 仅赋值一个正样本预测,方法举例:POTO。本文采用混合匹配的方法。

与 DN-DETR 和 DINO-DETR 的关系
  本文提出的方法与最近的这两个方法有关,通过引入 GT 目标噪声增强来辅助 queries。然而 DN-DETR 和 DINO-DETR 主要解决的是:由 Hungarian 赋值带来的不稳定性问题,本文主要解决:一对一匹配过程中正样本训练不充分的问题。
  另外,DN-DETR 和 DINO-DETR 都设计了噪声方式以及在噪声 querise 和 GT 目标间手动赋值,本文提出的方法使用端到端赋值的方式来匹配辅助的 queries 和 GT boxes,相比于匈牙利匹配则更简单。DN-DETR/DINO-DETR 需要微调或者重新设计噪声方式及 query 的格式,本文的方法更容易拓展到其他 DETR 变体上而不需要额外的微调。

四、方法

4.1 基础知识

通用的 DETR 框架

  给定输入图像 I I I,DETR 首先应用 Backbone 和 Transformer 编码器来提取出增强的像素 embedding X = { x 0 , x 1 , ⋯   , x N } X=\{x_0,x_1,\cdots,x_N\} X={x0,x1,,xN},之后将 X X X 和一组默认的目标 query embedding Q = { q 0 , q 1 , ⋯   , q n } Q=\{q_0,q_1,\cdots,q_n\} Q={q0,q1,,qn} 送入到 Transformer 解码器。然后在解码器的输出上,DETR 利用特定任务的预测头将更新后的 Q Q Q 输出为一组预测 P = { p 0 , p 1 , ⋯   , p n } P=\{p_0,p_1,\cdots,p_n\} P={p0,p1,,pn}。最后 DETR 在预测和 GT G = { g 0 , g 1 , ⋯   , g n } G=\{g_0,g_1,\cdots,g_n\} G={g0,g1,,gn} 间执行一对一的双边匹配。具体来说,DETR 将具有最小匹配损失的预测和 GT 关联起来,然后利用相应的监督损失来训练。示意图如下:

DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第2张图片
后续的一些工作根据不同的的视觉识别任务修改目标 query 从而实现不同的功能,例如修改目标 query 为 mask query、pose query、track query、bins query 等等。

通用的可变形 Deformable-DETR 框架

  Deformable-DETR 从以下几个方面提升了 DETR:

  • 采用多尺度 deformable self-attention 和多尺度 deformable cross-attention 替代了原始的多头自注意力和交叉注意力机制;
  • 用迭代的精炼预测代替了原始的每层独立预测;
  • 用 Transformer 解码器输出的动态 query 代替了原始的图像上下文不相关的 query。

需要注意的是 Deformable-DETR 和 DETR 同样执行的是一对一双边匹配原则。

4.2 混合匹配

  混合匹配方法关键在于结合一对一匹配和一对多匹配,其中一对一匹配对于移除 NMS 是必须的,而一对多匹配丰富了与 GT 匹配的 queries 数量。

DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第3张图片

4.2.1 混合分支计划

  采用两组 queries Q = { q 1 , q 2 , ⋯   , q n } Q=\{q_1,q_2,\cdots,q_n\} Q={q1,q2,,qn} Q ^ = { q ^ 1 , q ^ 2 , ⋯   , q ^ n } \widehat Q=\{\widehat q_1,\widehat q_2,\cdots,\widehat q_n\} Q ={q 1,q 2,,q n},前者用于执行一对一匹配,后者执行一对多匹配。

一对一匹配分支

  采用 L L L 层解码器处理第一组 Q Q Q,在每个解码器的输出层分别执行预测。之后在每一层的 {predictions,GT} 间执行双边匹配,估计 L ( P l , G ) \mathcal{L}{(\mathbf{P}^l,\mathbf{G})} L(Pl,G)
L one2one = ∑ L Hungarian ( P l , G ) \mathcal{L}_{\text{one2one}} =\sum\mathcal{L}_{\text{Hungarian}}(\mathbf{P}^l,\mathbf{G}) Lone2one=LHungarian(Pl,G)其中 P l \mathbf{P}^l Pl 表示第 l l l 层 Transformer 解码器层的输出预测。沿用 DETR 和 Deformable-DETR,选择 L m a t c h ( ⋅ ) \mathcal{L}_{match}(\cdot) Lmatch() L H u n g a r i a n ( ⋅ ) \mathcal{L}_{Hungarian}(\cdot) LHungarian():由一个分类损失、 L 1 \mathcal{L}_1 L1 回归损失和 GIoU 损失组成。

一对多匹配分支

  之后,采用相同数量 L L L 层 Transformer 解码器来处理第二组 queries Q ^ \widehat {\mathbf{Q}} Q ,得到 L L L 组预测。为执行一对多匹配,简单重复 GT K K K 次,得到增强的目标 G ^ = { G 1 , G 2 , ⋯   , G K } \widehat{\mathbf{G}}=\{{\mathbf{G}}^1,{\mathbf{G}}^2,\cdots,{\mathbf{G}}^K\} G ={G1,G2,,GK},其中 G 1 = G 2 = ⋯ = G K = G \mathbf{G}^1={\mathbf{G}}^2=\cdots={\mathbf{G}}^K=\mathbf{G} G1=G2==GK=G。同样在每层的 {predictions,增强的 GT} 对上执行双边匹配,估计 L match ( P ^ l , G ^ ) \mathcal{L}_{\text{match}}(\widehat{\mathbf{P}}^l,\widehat{\mathbf{G}}) Lmatch(P l,G )
L one2many = ∑ l = 1 L L Hungarian ( P ^ l , G ^ ) \mathcal{L}_{\text{one2many}}=\sum_{l=1}^L\mathcal{L}_{\text{Hungarian}}(\widehat{\mathbf{P}}^l,\widehat{\mathbf{G}}) Lone2many=l=1LLHungarian(P l,G )其中 P ^ l \widehat {\mathbf{{P}}}^l P l 表示第 l l l 层 Transformer 解码器的预测输出。
  训练总体损失为 λ L one2many + L one2one \lambda\mathcal{L}_{\text{one2many}}+\mathcal{L}_{\text{one2one}} λLone2many+Lone2one。为了加快训练速度和并行处理 Q \mathbf Q Q Q ^ \widehat {\mathbf{Q}} Q ,进一步采用一种 masked 多头自注意力来避免彼此交互,实验中并未发现额外的训练损失。最后在评估过程中仅保持一对一匹配分支,即 Q \mathbf Q Q

4.2.2 更多的混合匹配变体

混合 epoch 计划

  不同于混合分支计划,在混合 epoch 计划中,仅维持单组的 queries Q ~ = { q ~ 1 , q ~ 2 , ⋯   , q ~ M } \widetilde{\mathrm{Q}}=\{\widetilde{\mathrm{q}}_1,\widetilde{\mathrm{q}}_2,\cdots,\widetilde{\mathrm{q}}_M\} Q ={q 1,q 2,,q M},在不同的训练 epochs 中基于 Q ~ \widetilde{\mathrm{Q}} Q 来执行一对一匹配和一对多匹配。

一对多匹配训练 epochs
  在第一个 ρ \rho ρ 训练 epochs 内,采用一对一匹配来处理 L L L 层 Transformer 解码器中的 Q ~ \widetilde{\mathrm{Q}} Q ,从而得到 L L L 组预测。同时采用相似的策略通过一对多分支执行一对多匹配得到增强的 G ~ = { G 1 , G 2 , ⋯   , G K ~ } \tilde{\text{G}}=\{\text{G}^1,\text{G}^2,\cdots,\text{G}^{\tilde{K}}\} G~={G1,G2,,GK~}。之后在 L ~ match ( P ~ l , G ~ ) \tilde{\mathcal{L}}_{\text{match}}(\widetilde{\mathbf{P}}^l,\widetilde{\mathbf{G}}) L~match(P l,G ) 间执行双边匹配:
L one2many = ∑ l = 1 L L Hungarian ( P ~ l , G ~ ) \mathcal{L}_{\text{one2many}}=\sum\limits_{l=1}^L\mathcal{L}_{\text{Hungarian}}(\widetilde{\mathbf{P}}^l,\widetilde{\mathbf{G}}) Lone2many=l=1LLHungarian(P l,G )
一对一匹配训练 epochs

  在剩下的 1 − ρ 1-\rho 1ρ 个 epochs 上执行一对一匹配,唯一的区别在于匹配预测和原始的 GT 的损失不同:
L one2one = ∑ L H u n g a r i a n ( P ~ l , G ) \mathcal{L}_{\text{one2one}} =\sum \mathcal{L}_{\mathrm{Hungarian}}(\widetilde{\mathbf{P}}^l,\mathbf{G}) Lone2one=LHungarian(P l,G)最后直接在评估时应用 Q ~ \widetilde{\mathrm{Q}} Q 。总结一下,在一个 ρ \rho ρ epochs 上仅应用 L one2many \mathcal{L}_{\text{one2many}} Lone2many,在剩下的 1 − ρ 1-\rho 1ρ 个 epochs 上应用 L one2one \mathcal{L}_{\text{one2one}} Lone2one

混合层计划

  与混合 epoch 计划类似,仅维持单组的 queries Q ‾ = { Q ‾ 1 , Q ‾ 2 , ⋯   , Q ‾ N } \overline{\mathbf{Q}}=\{\overline{\mathbf{Q}}_1,\overline{\mathbf{Q}}_2,\cdots,\overline{\mathbf{Q}}_N\} Q={Q1,Q2,,QN}。在第一个 L 1 L_1 L1 Transformer 解码器层应用一对多匹配,而在剩下的 L 2 L_2 L2 层应用一对一匹配策略。

一对多匹配解码器层
  在第一个 L 1 L_1 L1 层 Transformer 解码器的输出预测和增强的 GT G ‾ = { G ‾ 1 , G ‾ 2 , ⋯   , G ‾ K ‾ } \overline{\mathbf{G}}=\{\overline{\mathbf{G}}^1,\overline{\mathbf{G}}^2,\cdots,\overline{\mathbf{G}}^{\overline{K}}\} G={G1,G2,,GK} 间应用一对多匹配计划:
L one2many = ∑ l = 1 L L Hungarian ( P ‾ l , G ‾ ) \mathcal{L}_{\text{one2many}}=\sum_{l=1}^L\mathcal{L}_{\text{Hungarian}}(\overline{\mathbf{P}}^l,\overline{\mathbf{G}}) Lone2many=l=1LLHungarian(Pl,G)在计算上述损失之前,也需要执行双边匹配 L match ( P ‾ l , G ‾ ) \mathcal{L}_{\text{match}}(\overline{\mathbf{P}}^l,\overline{\mathbf{G}}) Lmatch(Pl,G)

一对一匹配解码器层

对接下来的 L 2 L_2 L2 层 Transformer 解码器,执行一对一匹配计划:
L one2one = ∑ l = L 1 L 1 + L 2 L Hungarian ( P ‾ l , G ) \mathcal{L}_{\text{one2one}}=\sum_{l=L_1}^{L_1+L_2}\mathcal{L}_{\text{Hungarian}}(\overline{\mathbf{P}}^l,\mathbf{G}) Lone2one=l=L1L1+L2LHungarian(Pl,G)总结:在整个训练过程中执行 L one2many \mathcal{L}_{\text{one2many}} Lone2many L one2one \mathcal{L}_{\text{one2one}} Lone2one 的组合。

五、实验

5.1 提升基于 DETR 的方法

2D 目标检测的结果

  
DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第4张图片

3D 目标检测的结果

  
DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第5张图片

多人姿态估计的结果

  
DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第6张图片

多目标跟踪的结果

  
DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第7张图片

全景分割的结果

  见补充材料 C 部分。

5.2 消融实验

不同混合匹配计划的比较

  
DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第8张图片

计算/训练时间/GPU 内存的成本

  
DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第9张图片

基于 Deformable-DETR 的每个组建的有效性

  
DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第10张图片
DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第11张图片

一对多匹配分支内 K K K 的选择

  
DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第12张图片

一对多匹配分支内 T T T 的选择

  
DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第13张图片

共享参数的效果

  
DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第14张图片

仅使用一对多匹配的比较

  
DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第15张图片

5.3 与 SOAT 方法的比较

  
DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第16张图片

六、结论

  本文展示了一种简单但有效的混合匹配方法,解决基于 DETR 系列的方法在多个任务上的低效率问题。结合了一对一匹配方法的优势,即避免 NMS,和一对多匹配的优势,即增加正样本 queries 的数量和训练效率。希望大家都来 follow。

补充

A、数据集

  COCO、LVIS、nuScnes、ScanNetV2、MOT17。

B、更多的超参数细节

  
DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第17张图片

C、全景分割的结果

  
DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第18张图片

D、更多的消融结果

  
DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第19张图片
DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第20张图片
DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第21张图片
DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第22张图片
DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第23张图片

E、加速混合匹配

  在原始方法中,用两个独立的函数来简单执行一对一和一对多的匹配及损失计算,因此增加了整体的训练时间。当与使用相同数量 queries 的 baseline 方法进行比较时,从 75 分钟增加到 85分钟。为了降低这一额外的耗时,在下列算法中融合这两个函数,从而将原始的训练时间从 85 分降为 80 分 。
  
DETR 系列有了新发现?DETRs with Hybrid Matching 论文阅读笔记_第24张图片

写在后面

  别看这篇论文简短且简单,人家这个实验做的可是滴水不漏,工作量恐怖! 实验部分的做法与写法值得好好学习。

你可能感兴趣的:(DETR系列,论文阅读,笔记,深度学习,人工智能,计算机视觉,DETR)