基于Transformer的图像目标检测算法:DETR(DEtection TRansformer)
字数 1204 2025-11-10 17:05:52
基于Transformer的图像目标检测算法:DETR(DEtection TRansformer)
题目描述
DETR是一个基于Transformer架构的端到端目标检测算法。传统目标检测方法(如Faster R-CNN)依赖手工设计的组件(如非极大值抑制NMS和锚框生成),而DETR通过将目标检测视为一个集合预测问题,使用Transformer编码器-解码器结构直接预测目标边界框和类别,消除了对人工组件的需求。
解题过程
-
问题建模:集合预测
- 目标检测任务可视为预测一组无序的边界框和类别标签。DETR将图像中的目标建模为一个固定大小的集合(例如100个预测),通过二分图匹配损失函数(如匈牙利算法)将预测与真实标签一一对应。
- 优势:无需NMS后处理,因为Transformer的注意力机制能自动处理目标间的关系。
-
模型架构:主干网络 + Transformer + 预测头
- 步骤1:特征提取
使用卷积神经网络(如ResNet)从输入图像提取多尺度特征图,将其展平并添加位置编码后输入Transformer编码器。- 位置编码:使用正弦函数或可学习参数,为特征提供空间信息。
- 步骤2:Transformer编码器
编码器通过自注意力机制建模全局上下文关系,增强特征表示。例如,每个像素能关注图像其他区域,帮助识别被遮挡目标。 - 步骤3:Transformer解码器
解码器输入一组可学习的对象查询(Object Queries),每个查询代表一个潜在的检测目标。通过编码器-解码器注意力机制,查询与图像特征交互,生成最终预测。- 对象查询:可视为模型对目标可能位置的假设,通过训练学习到目标分布的统计特性。
- 步骤4:预测头
使用简单的全连接网络为每个查询预测边界框(中心坐标、宽高)和类别概率。额外添加一个“无目标”类别(∅)处理冗余预测。
- 步骤1:特征提取
-
损失函数:二分图匹配 + 监督信号
- 步骤1:匈牙利匹配
使用匈牙利算法将预测集合与真实标签集合进行最优匹配,计算最小代价(如类别误差和框位置误差)。- 匹配代价公式:\(\text{cost} = \lambda_{\text{class}} \cdot L_{\text{class}} + \lambda_{\text{box}} \cdot L_{\text{box}}\)
- 步骤2:损失计算
对匹配后的预测计算交叉熵损失(类别)和L1损失+GIOU损失(边界框),监督模型优化。
- 步骤1:匈牙利匹配
-
训练与推理
- 训练时使用AdamW优化器,通过梯度下降最小化损失。
- 推理时直接输出前N个预测(如100个),过滤掉“无目标”的预测,无需后处理。
关键创新
- 端到端设计:简化流程,避免NMS和锚框调参。
- 全局上下文建模:Transformer的自注意力机制能捕捉长距离依赖,提升对遮挡或小目标的检测能力。
- 扩展性:框架可泛化到其他任务(如实例分割)。