【Group DETR论文阅读】:分组一对一匹配实现一对多监督,极速收敛DETR训练范式
论文信息标题Group DETR: Fast DETR Training with Group-Wise One-to-Many Assignment会议ArXiv 2023单位百度VIS、北京大学、澳大利亚国立大学代码github.com/Atten4Vis/GroupDETR论文https://arxiv.org/pdf/2207.13085.pdf一、引言DETR 收敛慢的终极答案——分组来凑DETR 系列一直被一个问题卡脖子一对一匹配bipartite matching太稀疏监督信号太弱收敛巨慢。传统检测FCOS/Faster R-CNN为什么快因为用一对多匹配一个真实框分配给多个锚点/特征点监督强度拉满。但直接把一对多搬进 DETR 会直接崩掉模型会疯狂重复预测完全去掉 NMS 的意义就没了。于是 Group DETR 直接封神用 K 组查询组内一对一匹配组间互不干扰 → 等价于一对多监督效果爆炸各种 DETR 变种收敛速度大幅提升50epoch 达到原版 500epoch 效果即插即用不修改推理结构无缝适配 Conditional DETR、DAB-DETR、DN-DETR 等二、核心动机一对一太弱一对多太野分组刚刚好Group DETR 优化了 DETR 变体的训练过程。通过在 COCO val2017 [34] 数据集上使用 ResNet-50 [22] 进行训练得到了训练收敛曲线。虚线和粗线分别代表基线模型和 Group DETR 对应的模型。最佳效果需在彩色环境下查看。展示 Conditional DETR、DAB-DETR 等 baseline 与 Group DETR 的收敛曲线。虚线 原始模型粗线 加入 Group DETR明显看到同样 epoch 下 AP 大幅提升收敛速度翻倍。为什么一对多不能直接用直接一对多会让模型失去“去重”能力因为没有组内竞争机制全是重复框。Group DETR 的思路分组 → 组内一对一竞争 → 组间不通信 → 总监督变多完美平衡“强监督”和“去重能力”。三、全文精读Group DETR 到底怎么做3.1 背景回顾DETR 标准流程编码器提取图像特征E n c o d e r ( I ) → X Encoder(I) \to XEncoder(I)→X解码器查询输出预测D e c o d e r ( X , Q ) → Q ^ , P r e d i c t o r ( Q ^ ) → Y Decoder(X,Q) \to \widehat{Q},\quad Predictor(\widehat{Q}) \to YDecoder(X,Q)→Q,Predictor(Q)→Y一对一匹配bipartite matchingσ arg min σ ∑ n 1 N ℓ ( y n , y ˉ σ ( n ) ) \sigma \mathop{\arg\min}\limits_{\sigma} \sum_{n1}^N \ell(y_n,\bar{y}_{\sigma(n)})σσargminn1∑Nℓ(yn,yˉσ(n))总损失L ∑ n 1 N ℓ ( y σ ( n ) , y ˉ n ) \mathcal{L} \sum_{n1}^N \ell(y_{\sigma(n)},\bar{y}_n)Ln1∑Nℓ(yσ(n),yˉn)符号解释I II输入图像X XX图像特征Q QQ物体查询y n y_nyn模型第n个预测y ˉ n \bar{y}_nyˉn第n个真实框σ \sigmaσ最优匹配排列ℓ \ellℓ分类回归损失3.2 核心创新1分组查询机制把原本 N 个查询变成K 组查询每组 N 个Q 1 , Q 2 , . . . , Q K Q_1,Q_2,...,Q_KQ1,Q2,...,QK每组独立经过解码器得到 K 组预测Y 1 , Y 2 , . . . , Y K Y_1,Y_2,...,Y_KY1,Y2,...,YK每组独立做一对一匹配σ 1 , σ 2 , . . . , σ K \sigma_1,\sigma_2,...,\sigma_Kσ1,σ2,...,σK总损失 K 组平均L 1 K ∑ k 1 K ∑ n 1 N ℓ ( y k , σ k ( n ) , y ˉ k , n ) \mathcal{L} \frac{1}{K}\sum_{k1}^K \sum_{n1}^N \ell(y_{k,\sigma_k(n)},\bar{y}_{k,n})LK1k1∑Kn1∑Nℓ(yk,σk(n),yˉk,n)通俗解释让 K 个“平行 DETR”一起训练共享权重互不干扰监督信号强 K 倍。3.3 核心创新2分组自注意力Separate Self-Attention关键约束组内 queries 可以互相看组间完全屏蔽数学表达S A ( Q 1 ) , S A ( Q 2 ) , . . . , S A ( Q K ) SA(Q_1),\ SA(Q_2),\ ...,\ SA(Q_K)SA(Q1),SA(Q2),...,SA(QK)左边Group DETR 结构分组并行解码组内自注意力组间隔离。右边推理时只取一组和普通 DETR 完全一样。为什么必须隔离组内竞争保证组内不重复预测组间隔离让每组都能独立监督不互相干扰去重3.4 核心创新3推理完全不变推理阶段只取第一组查询其余 K-1 组全部扔掉。结构、速度、部署完全和原版 DETR 一致四、核心公式详解逐字符解释4.1 总损失函数L 1 K ∑ k 1 K ∑ n 1 N ℓ ( y k , σ k ( n ) , y ˉ n ) \mathcal{L} \frac{1}{K}\sum_{k1}^K \sum_{n1}^N \ell(y_{k,\sigma_k(n)},\bar{y}_{n})LK1k1∑Kn1∑Nℓ(yk,σk(n),yˉn)K KK分组数量通常取 2~4k kk第k组N NN每组查询数y k , σ k ( n ) y_{k,\sigma_k(n)}yk,σk(n)第k组第n个匹配预测y ˉ n \bar{y}_nyˉn第n个真实框ℓ \ellℓ分类损失框回归损失4.2 分组自注意力S A ( Q k ) Softmax ( Q k Q k T d ) V k SA(Q_k) \text{Softmax}\left(\frac{Q_k Q_k^T}{\sqrt{d}}\right)V_kSA(Qk)Softmax(dQkQkT)VkQ k Q_kQk第k组查询d dd特征维度V k V_kVk第k组值特征五、核心代码PyTorch 可直接运行# # Group DETR 核心分组解码器层# classGroupDETRDecoderLayer(nn.Module):def__init__(self,d_model,nhead,num_groups2):super().__init__()self.num_groupsnum_groups self.self_attnnn.MultiheadAttention(d_model,nhead)self.cross_attnnn.MultiheadAttention(d_model,nhead)self.ffnnn.Sequential(...)defforward(self,queries,img_feats):Nqueries.shape[0]//self.num_groups# 每组query数Kself.num_groups# 分组自注意力核心 ifself.training:# 拆成 K 组q_listqueries.split(N,dim0)# [N,B,C] * K# 拼成并行形式 [N, K*B, C]q_paralleltorch.cat(q_list,dim1)# 组内自注意力不跨组attn_out,_self.self_attn(q_parallel,q_parallel,q_parallel)# 恢复形状 [K*N, B, C]attn_outtorch.cat(attn_out.split(B,dim1),dim0)else:# 推理只用一组attn_out,_self.self_attn(queries,queries,queries)# 交叉注意力 FFN不变attn_outattn_outqueries cross_outself.cross_attn(attn_out,img_feats,img_feats)[0]attn_out ff_outself.ffn(cross_out)cross_outreturnff_out六、实验结果与深度分析6.1 收敛速度对比表格1来自原文 Figure 1 Table 1模型训练轮数APConditional DETR-DC55043.8Group Conditional5047.1DAB-DETR-DC55045.7Group DAB-DETR5048.2结论Group 能给任意 DETR 涨 2~4 个 AP收敛快几倍。6.2 分组稳定性实验更稳定的分配方式。x 轴表示“迭代次数”y 轴表示不稳定性得分该得分由 DN-DETR [29] 提出得分越低标签分配就越稳定。在 COCO val2017 数据集上可以看到 DETR 组的分配方式比 DN-DETR 和其基准 DAB-DETR 组更为稳定。Group DETR 比 DN-DETR 标签分配更稳定。越低越稳定Group DETR DN-DETR DAB-DETR解释多组监督让预测更鲁棒匹配更稳定。七、全文总结最精髓 5 句话DETR 慢 一对一匹配监督太弱一对多直接用 模型重复预测无法去重Group DETR K 组查询 组内一对一 组间隔离等价一对多强监督又保留 DETR 去重能力即插即用、推理不变、极速收敛、吊打所有 DETR 变种Group DETR 是目前最简单、最有效、最通用的 DETR 训练加速方案之一工业落地必备。