DETR(Detection Transformer)
DETR 全称 Detection Transformer ,是由Facebook AI于2020年提出的基于Transformer的端到端目标检测算法 。它彻底摒弃了传统目标检测中的锚框(Anchor)、区域提议(Region Proposal)和非极大值抑制(NMS)等手工设计的组件,直接通过Transformer的序列建模能力 完成目标的定位与分类,开创了目标检测的全新范式。
一、核心思想
DETR的核心是 "将目标检测视为集合预测问题":
- 输入图像经过CNN主干网络提取特征图,再将特征图展平为一维序列,并添加位置编码(弥补Transformer对位置信息不敏感的缺陷)。
- 将特征序列输入Transformer编码器,通过自注意力机制捕捉图像全局特征关联。
- 解码器接收一组可学习的目标查询向量(Object Queries) ,通过交叉注意力机制与编码器输出的图像特征交互,直接预测出一个目标集合(每个查询向量对应一个目标的类别和边框)。
- 最终通过匈牙利算法(Hungarian Algorithm)完成预测框与真实框的最优匹配,无需NMS后处理。
二、算法架构
DETR的架构由 CNN主干网络 + Transformer编码器-解码器 + 预测头 三部分组成,流程如下:
输入图像 → CNN主干网络提取特征 → 特征展平+位置编码 → Transformer编码器 → Transformer解码器(结合Object Queries) → 预测头(分类+边框回归) → 匈牙利算法匹配 → 输出检测结果
1. CNN主干网络
- 采用经典卷积网络(如ResNet50/101)作为骨干,将输入图像(如3×H×W3×H×W3×H×W)转换为高维特征图(如2048×H32×W322048×\frac{H}{32}×\frac{W}{32}2048×32H×32W)。
- 作用:提取图像的底层和中层视觉特征,为Transformer提供高质量输入。
2. 特征预处理与位置编码
- 特征展平 :将二维特征图转换为一维序列,形状从 C×H′×W′C×H'×W'C×H′×W′ 变为 (H′×W′)×C(H'×W')×C(H′×W′)×C(CCC为通道数,H′×W′H'×W'H′×W′为序列长度)。
- 位置编码 :由于Transformer不具备位置感知能力,DETR为每个特征点添加正弦位置编码(与特征维度相同),编码信息包含特征点的空间坐标,直接与特征序列相加。
3. Transformer编码器
- 由多层自注意力层和前馈网络(FFN)组成,输入为带位置编码的特征序列。
- 自注意力机制会计算每个特征点与其他所有特征点的关联权重,捕捉图像全局上下文信息(例如缺陷与背景的关系、多个缺陷的相对位置)。
4. Transformer解码器
- 核心创新点是引入 Object Queries:一组固定数量(如100个)的可学习向量,与解码器输入维度相同。
- 解码器通过交叉注意力层 ,让每个Object Query与编码器输出的图像特征序列交互,聚焦到图像中可能存在目标的区域;同时通过自注意力层,让不同Query之间相互抑制,避免重复预测同一目标。
- 每个Object Query最终会对应一个预测结果(类别+边框)。
5. 预测头与匈牙利匹配
- 预测头 :由3层感知机(MLP)组成,对每个解码器输出的Query向量进行预测:
- 分类分支:预测该Query对应的目标类别(含背景类)。
- 边框回归分支:预测目标的归一化边框坐标(x,y,w,hx,y,w,hx,y,w,h)。
- 匈牙利算法 :这是DETR的关键后处理步骤,作用是一对一匹配预测框与真实框,计算匹配损失(分类损失+边框损失),无需NMS去除重复框。
三、关键优势
- 端到端设计:摒弃锚框、NMS等手工组件,简化检测流程,降低调参难度,更符合深度学习"端到端学习"的理念。
- 全局上下文建模 :Transformer的自注意力机制能捕捉长距离依赖,适合检测大目标 或分布分散的目标(如金属表面的多个裂纹缺陷)。
- 灵活扩展性:可轻松结合CNN的多尺度特征(如DETR++),或引入Vision Transformer(ViT)作为主干网络(如ViTDet),提升小目标检测精度。
- 泛化能力强:在自然图像(COCO数据集)和工业场景(如金属缺陷检测、PCB板检测)中均有良好表现。
四、局限性
- 小目标检测精度不足:由于CNN主干网络下采样倍数高(32倍),小目标的特征信息易丢失,导致小缺陷(如微小气孔)检测效果弱于YOLO、Faster R-CNN等算法。
- 推理速度较慢:Transformer的注意力机制计算复杂度高(与序列长度平方成正比),实时性不如轻量级YOLO模型,难以满足高帧率工业生产线需求。
- 训练成本高:需要大量数据和较长训练周期(通常需训练500~1000个epoch),对硬件显存要求较高。
五、与传统检测算法的对比
| 特性 | DETR | Faster R-CNN | YOLO系列 |
|---|---|---|---|
| 核心机制 | Transformer集合预测 | 锚框+区域提议 | 锚框+网格划分 |
| 后处理 | 匈牙利算法(无需NMS) | 需NMS | 需NMS |
| 小目标检测 | 较弱 | 中等 | 较强 |
| 实时性 | 低 | 中 | 高 |
| 工业缺陷适配性 | 适合大缺陷/多缺陷场景 | 通用 | 适合实时在线检测 |