基于Transformer的图像目标检测算法:DETR(DEtection TRansformer)
字数 1616 2025-10-30 17:43:25

基于Transformer的图像目标检测算法:DETR(DEtection TRansformer)

题目描述
DETR(DEtection TRansformer)是一种基于Transformer架构的端到端目标检测算法。与传统方法(如Faster R-CNN)依赖锚框(anchor boxes)和非极大值抑制(NMS)不同,DETR将目标检测视为一个集合预测问题,直接输出所有检测目标的边界框和类别。其核心创新在于使用Transformer的编码器-解码器结构,通过全局注意力机制建模图像中物体之间的关系,从而消除手工设计的组件,简化检测流程。

解题过程循序渐进讲解

  1. 问题建模:集合预测

    • 目标:将目标检测任务定义为集合预测问题。模型需直接生成一个无序集合,每个元素包含一个目标的类别和边界框(中心坐标、宽高)。
    • 关键点:集合大小固定为N(N需显著大于图中典型目标数,如100),多余位置用“无目标”(∅)类别填充。这避免了传统方法中对锚框尺寸的依赖和NMS后处理。
  2. 整体架构:编码器-解码器 Transformer

    • 输入处理
      • 图像先通过CNN主干网络(如ResNet)提取特征图,得到维度为\(C \times H \times W\)的特征。
      • 用1x1卷积压缩通道数至d(如d=256),再将特征图展平为\(d \times HW\)的序列,作为Transformer编码器的输入。
    • 位置编码:向序列添加正弦位置编码,弥补Transformer本身对位置不敏感的特性。
    • 编码器
      • 通过多层自注意力机制建模全局上下文,使每个像素位置感知全图信息。输出编码后的特征序列。
    • 解码器
      • 输入N个可学习的向量(称为“对象查询”),每个查询代表一个潜在的检测目标。
      • 解码器通过交叉注意力机制,让对象查询与编码器输出交互,逐步聚焦到特定目标的位置和类别。
    • 输出头
      • 每个解码后的查询通过一个前馈网络(FFN),直接预测类别(含∅)和边界框(归一化坐标)。
  3. 核心机制:二分图匹配损失

    • 挑战:模型输出是无序集合,需与真实标注(GT)框建立唯一对应关系以计算损失。
    • 解决方案:使用匈牙利算法进行二分图匹配,找到最优的一对一分配:
      • 代价函数:综合类别预测误差和边界框误差。具体为:
        \(\text{cost} = -\mathbb{1}_{c_i \neq \varnothing} \cdot p_{\sigma(i)}(c_i) + \mathbb{1}_{c_i \neq \varnothing} \cdot \mathcal{L}_{\text{box}}(b_i, \hat{b}_{\sigma(i)})\)
        其中,\(p_{\sigma(i)}(c_i)\)是预测类别概率,\(\mathcal{L}_{\text{box}}\)为边界框损失(L1损失+GIOU损失)。
      • 分配结果:每个GT框唯一匹配一个预测框,未匹配的预测被赋为∅。
    • 损失计算:基于分配结果,对匹配的预测计算交叉熵损失(类别)和边界框损失。
  4. 训练与推理优化

    • 训练技巧
      • 编码器预训练可加速收敛;解码器使用辅助损失(在每层解码后均计算损失)以改善梯度流动。
      • 对象查询在训练中学会关注图像不同区域(如有的查询专检测小目标,有的关注边缘)。
    • 推理流程
      • 图像输入模型,直接输出N个预测框。
      • 过滤掉类别为∅的预测,其余即为最终检测结果,无需NMS后处理。
  5. 优缺点分析

    • 优势:端到端简化流程、无需NMS、全局上下文建模能力强(尤其适合遮挡场景)。
    • 局限
      • 小目标检测性能较弱(因Transformer计算全局注意力时细节易丢失)。
      • 训练收敛慢,需更长时间(对比Faster R-CNN)。
    • 改进方向:后续工作(如Deformable DETR)引入多尺度特征和可变形注意力,提升小目标检测效率和速度。
基于Transformer的图像目标检测算法:DETR(DEtection TRansformer) 题目描述 DETR(DEtection TRansformer)是一种基于Transformer架构的端到端目标检测算法。与传统方法(如Faster R-CNN)依赖锚框(anchor boxes)和非极大值抑制(NMS)不同,DETR将目标检测视为一个集合预测问题,直接输出所有检测目标的边界框和类别。其核心创新在于使用Transformer的编码器-解码器结构,通过全局注意力机制建模图像中物体之间的关系,从而消除手工设计的组件,简化检测流程。 解题过程循序渐进讲解 问题建模:集合预测 目标 :将目标检测任务定义为集合预测问题。模型需直接生成一个无序集合,每个元素包含一个目标的类别和边界框(中心坐标、宽高)。 关键点 :集合大小固定为N(N需显著大于图中典型目标数,如100),多余位置用“无目标”(∅)类别填充。这避免了传统方法中对锚框尺寸的依赖和NMS后处理。 整体架构:编码器-解码器 Transformer 输入处理 : 图像先通过CNN主干网络(如ResNet)提取特征图,得到维度为\( C \times H \times W \)的特征。 用1x1卷积压缩通道数至d(如d=256),再将特征图展平为\( d \times HW \)的序列,作为Transformer编码器的输入。 位置编码 :向序列添加正弦位置编码,弥补Transformer本身对位置不敏感的特性。 编码器 : 通过多层自注意力机制建模全局上下文,使每个像素位置感知全图信息。输出编码后的特征序列。 解码器 : 输入N个可学习的向量(称为“对象查询”),每个查询代表一个潜在的检测目标。 解码器通过交叉注意力机制,让对象查询与编码器输出交互,逐步聚焦到特定目标的位置和类别。 输出头 : 每个解码后的查询通过一个前馈网络(FFN),直接预测类别(含∅)和边界框(归一化坐标)。 核心机制:二分图匹配损失 挑战 :模型输出是无序集合,需与真实标注(GT)框建立唯一对应关系以计算损失。 解决方案 :使用匈牙利算法进行二分图匹配,找到最优的一对一分配: 代价函数 :综合类别预测误差和边界框误差。具体为: \( \text{cost} = -\mathbb{1} {c_ i \neq \varnothing} \cdot p {\sigma(i)}(c_ i) + \mathbb{1} {c_ i \neq \varnothing} \cdot \mathcal{L} {\text{box}}(b_ i, \hat{b} {\sigma(i)}) \) 其中,\( p {\sigma(i)}(c_ i) \)是预测类别概率,\( \mathcal{L}_ {\text{box}} \)为边界框损失(L1损失+GIOU损失)。 分配结果 :每个GT框唯一匹配一个预测框,未匹配的预测被赋为∅。 损失计算 :基于分配结果,对匹配的预测计算交叉熵损失(类别)和边界框损失。 训练与推理优化 训练技巧 : 编码器预训练可加速收敛;解码器使用辅助损失(在每层解码后均计算损失)以改善梯度流动。 对象查询在训练中学会关注图像不同区域(如有的查询专检测小目标,有的关注边缘)。 推理流程 : 图像输入模型,直接输出N个预测框。 过滤掉类别为∅的预测,其余即为最终检测结果,无需NMS后处理。 优缺点分析 优势 :端到端简化流程、无需NMS、全局上下文建模能力强(尤其适合遮挡场景)。 局限 : 小目标检测性能较弱(因Transformer计算全局注意力时细节易丢失)。 训练收敛慢,需更长时间(对比Faster R-CNN)。 改进方向 :后续工作(如Deformable DETR)引入多尺度特征和可变形注意力,提升小目标检测效率和速度。