DETRs with Hybrid Matching

CVPR2023| DETRs with Hybrid Matching基于一对一与一对多匹配混合策略的DETR改进算法

  • 论文链接:https://arxiv.org/pdf/2207.13080.pdf
  • 源码链接:https://github.com/HDETR/H-Deformable-DETR

简介

基于DEtection TRansformer(DETR)的模型在各种基础视觉识别任务(目标检测、实例分割、全景分割、指向性目标分割、视频实例分割、姿态估计、多目标跟踪、深度估计、文本检测、线分割检测、基于点云或多视图的3D目标检测、视觉问答等领域)上取得了巨大成功。

目前已有很多角度对于DETR模型进行改进,包括重新设计Transformer编码器,Transformer编码器架构或者重新设计查询公式。不同于先前的改进方法,本文方法关注于由一对一匹配(对于一个GT只分配一个查询)造成的低效率训练问题。例如由于COCO数据集中超过99%图像中包含少于30个标注框,Deformable-DETR只考虑从池中的300个查询中选择少于30个匹配GT,剩下的超过270查询被标注 ∅ \emptyset ,且只由分类损失监督训练。

为了客服一对一匹配的缺点,并释放探索积极查询的优势,本文提出一种简单的混合匹配策略,以生成信息量更大的查询用于在每次前向传播过程中于GT匹配。混合匹配核心思想是使用一对多匹配提高训练策略,使用一对一匹配避免NMS后处理。

这里使用两个解码器分支同意一对一匹配和一对多匹配。在训练阶段,维护一个解码器分支处理查询组用于一对一匹配和另一个解码器分支吃力额外的查询用于一对多匹配。评估阶段中,只是用第一个解码器分支,以及一对一匹配方法监督的第一组查询。本文方法避免了NMS后处理另外推断阶段不会引入额外的计算成本。

本文方法

DETR方法简介

DETR架构

给定输入 I \mathbf{I} I,DETR首先使用backbone和Transformer编码器提取一系列增强的像素嵌入 X = { x 0 , x 1 , … , x N } \mathbf{X} = \{\mathbf{x}_{0},\mathbf{x}_{1},\ldots,\mathbf{x}_{N}\} X={x0,x1,,xN}。之后将像素嵌入和默认物体查询嵌入组 Q = { q 0 , q 1 , … , q n } \mathbf{Q} = \{\mathbf{q}_{0},\mathbf{q}_{1},\ldots,\mathbf{q}_{n}\} Q={q0,q1,,qn}传入Transformer解码器。之后DETR在每个Transformer解码器之后将特定任务预测头应用于更新的物体查询嵌入独立生成一组预测 P = { p 0 , p 1 , … , p n } \mathbf{P}=\{\mathbf{p}_{0},\mathbf{p}_{1},\ldots,\mathbf{p}_{n}\} P={p0,p1,,pn}。最后DETR在预测和GT之前执行一对一二分匹配。DETR基于最小匹配损失匹配GT和预测值并应用相应的监督损失。

Deformable DETR架构

Deformable DETR的主要改进点包括:

  1. 使用多尺度可变形自注意力和多尺度可变形交叉注意力模块取代原始的多头自注意力或交叉注意力。

  2. 用迭代细化预测方法替代原来的独立分层预测方法。

  3. 由原来Transformer编码器输出生成的动态查询替换原始图像内容不想管查询。

混合分支架构

维护两组查询 Q = { q 1 , q 2 , … , q n } \mathbf{Q} = \{\mathbf{q}_{1},\mathbf{q}_{2},\ldots,\mathbf{q}_{n}\} Q={q1,q2,,qn} Q = { q ^ 1 , q ^ 2 , … , q ^ n } \mathbf{Q} = \{\widehat{\mathbf{q}}_{1},\widehat{\mathbf{q}}_{2},\ldots,\widehat{\mathbf{q}}_{n}\} Q={q 1,q 2,,q n}。在预测结果上使用一对一或一对多匹配。

一对一匹配分支

使用 L L L Transformer解码器处理第一组查询,对于每一个解码器层形成预测。在预测和GT间使用二分匹配,计算损失:
L o n e 2 o n e = ∑ l = 1 L L H u n g a r i a n ( P l , G ) \mathcal{L}_{one2one} = \sum_{l=1}^{L}\mathcal{L}_{Hungarian}(\mathbf{P}^{l},\mathbf{G}) Lone2one=l=1LLHungarian(Pl,G)
使用与DETR和Deformable DETR相同的损失函数,包括一个分类损失,一个 L 1 \mathcal{L}_{1} L1损失和GIOU损失。

一对多匹配分支

使用相同的L个Transformer层处理第二组查询,得到 L L L组预测。为了能一对多匹配,简单复制GT K K K次得到增广后的目标 G ^ = { G 1 , G 2 , … , G K } \widehat{\mathbf{G}} = \{\mathbf{G}^{1},\mathbf{G}^{2},\ldots,\mathbf{G}^{K}\} G ={G1,G2,,GK} G 1 = G 2 = … = G K = G \mathbf{G}^{1}=\mathbf{G}^{2}=\ldots=\mathbf{G}^{K}=\mathbf{G} G1=G2==GK=G。这里也使用二分匹配预测和增广后目标。
L o n e 2 m a n y = ∑ l = 1 L L H u n g a r i a n ( P ^ l , G ^ ) \mathcal{L}_{one2many} = \sum_{l=1}^{L}\mathcal{L}_{Hungarian}(\widehat{\mathbf{P}}^{l},\widehat{\mathbf{G}}) Lone2many=l=1LLHungarian(P l,G )
在整个训练过程中使用两个损失的组合 λ L o n e 2 m a n y + L o n e 2 o n e \lambda\mathcal{L}_{one2many}+\mathcal{L}_{one2one} λLone2many+Lone2one

其他混合匹配变体

混合训练周期框架

Hybrid epoch scheme。核心改变是在不同训练周期使用不同的策略。

一对多匹配训练周期

在最初的 ρ \rho ρ训练周期,使用一对多匹配策略处理 L L L个Transformer解码器层得到的 L L L组输出,同时也需要增广GT G ^ = { G 1 , G 2 , … , G K } \widehat{\mathbf{G}} = \{\mathbf{G}^{1},\mathbf{G}^{2},\ldots,\mathbf{G}^{K}\} G ={G1,G2,,GK}。使用与之前相同的一对多匹配策略。

一对一匹配训练周期

在剩下的 ( 1 − ρ ) (1-\rho) (1ρ)训练周期用一对一匹配代替一对多匹配。

混合层策略

Hybrid layer scheme。这里对于不同的Transformer解码器输出使用不同的配对策略:首先的 L 1 L_{1} L1个Transformer解码器层使用一对多匹配。剩下 L 2 L_{2} L2个解码器层使用一对一配对策略。

你可能感兴趣的:(深度学习,计算机视觉,人工智能,目标检测)