Skip to content

Co-DETR:协作式混合分配训练的DETR

Co-DETR(DETRs with Collaborative Hybrid Assignments Training)是由商汤科技提出的一种新型目标检测框架,旨在通过协作式混合分配训练方案提升DETR(DEtection TRansformer)的性能。DETR是一种基于Transformer的端到端目标检测方法,但由于其一对一的标签分配方式,存在训练效率低、收敛速度慢等问题。Co-DETR通过引入多种标签分配方式,显著优化了这些问题。

https://github.com/Sense-X/Co-DETR https://arxiv.org/abs/2211.12860

视频

https://www.bilibili.com/video/BV1Y5bveHEpD/

1. 背景知识

1.1 DETR简介

DETR将目标检测问题转化为集合预测问题,通过Transformer架构实现端到端的目标检测。其核心组件包括:

  • CNN特征提取器:提取图像特征。
  • Transformer编码器和解码器:捕获全局上下文信息。
  • 匹配机制:通过匈牙利算法,将预测结果与标签进行一一对应。

1.2 DETR的挑战

  • 标签分配效率低:匈牙利算法计算复杂度高,导致训练效率低。
  • 收敛速度慢:由于一一分配机制,优化困难,收敛速度慢。

2. Co-DETR的核心思想

2.1 核心改进

Co-DETR通过以下两种方式优化DETR:

  1. 协作式分配:结合匈牙利匹配和一对多标签分配,提高正样本利用率。
  2. 双分支结构
  3. 全局分支:保持DETR的全局优化能力。
  4. 局部分支:通过一对多标签分配增强局部特征学习。

2.2 优势

  • 更快的收敛速度:通过增加正样本的参与比例,加速优化。
  • 性能提升:在COCO数据集上实现更高的mAP(平均精度)。

3. Co-DETR的模型结构

Co-DETR的模型结构如下图所示:

+-------------------+    +----------------+
| Transformer编码器 | -> |  全局分支(DETR)|
+-------------------+    +----------------+
            |                       |
            |                       |
    +-------------------+    +----------------+
    | Transformer解码器 | -> | 局部分支(混合分配)|
    +-------------------+    +----------------+

4. Co-DETR的实现方法

4.1 数据加载与预处理

使用COCO数据集作为训练和测试集。

4.2 构建Co-DETR模型

Co-DETR通过以下步骤实现:

  1. 协作式混合分配训练
  2. 引入多个辅助头(auxiliary heads),每个辅助头使用不同的标签分配方式(如ATSS、Faster RCNN)。
  3. 不同的标签分配方式丰富了编码器输出的监督信号,使其更具判别性。
  4. 损失函数定义为: $$ L_{\text{enc}} = \sum_{i=1}^{K} L_i(\hat{P}{\text{pos}, i}, P}, i}) + L_i(\hat{P{\text{neg}, i}, P) $$ 其中,}, i\(L_i\) 是第 \(i\) 个辅助头的损失函数,\(\hat{P}_{\text{pos}, i}\)\(\hat{P}_{\text{neg}, i}\) 是预测的正样本和负样本,\(P_{\text{pos}, i}\)\(P_{\text{neg}, i}\) 是对应的监督目标。

  5. 定制化正查询生成

  6. 从辅助头中提取正样本坐标,生成额外的定制化正查询。
  7. 定制化正查询通过以下公式生成: $$ Q_i = \text{Linear}(\text{PE}(B_{\text{pos}, i})) + \text{Linear}(E({F^*}, {\text{pos}})) $$ 其中,\(\text{PE}(\cdot)\) 表示位置编码,\(E(\cdot)\) 表示特征提取。

  8. 训练目标

  9. Co-DETR的训练目标为: $$ L_{\text{global}} = \sum_{l=1}^{L} \left( L_{\text{dec}, l} + \lambda_1 \sum_{i=1}^{K} L_{\text{dec}, i, l} + \lambda_2 L_{\text{enc}} \right) $$ 其中,\(L_{\text{dec}, l}\) 是原始一对一匹配分支的损失,\(L_{\text{dec}, i, l}\) 是第 \(i\) 个辅助分支的解码器层的损失,\(\lambda_1\)\(\lambda_2\) 是平衡损失的系数。

5. 实验结果

5.1 在COCO数据集上的表现

模型 收敛轮数 mAP
DETR 500 42.0
Co-DETR 300 45.8

5.2 消融实验

  • 混合分配策略:提升了3.2%的mAP。
  • 局部分支:提升了2.5%的mAP。

6. 总结

Co-DETR通过引入协作式混合分配策略,成功优化了DETR的标签分配效率和收敛速度。在实际应用中,这种改进为目标检测任务带来了显著的性能提升,同时保留了DETR的端到端特性。你可以尝试将Co-DETR应用于更多目标检测任务,探索其在不同场景下的表现。

Ref

https://blog.csdn.net/athrunsunny/article/details/134565362 https://zhuanlan.zhihu.com/p/647310222 https://www.qinglite.cn/doc/188564e7a0bc9f760 https://blog.csdn.net/qq_54185421/article/details/134639190 https://zhuanlan.zhihu.com/p/658786433 https://blog.huangque888.com/archives/61028.html https://young-eng.github.io/YoungBlogs/2024/11/23/Co-DETR/