🎇《DETR 从 0 到 1:目标检测 Transformer 的崛起》
为什么会有 DETR?
在深度学习目标检测发展史上,2014~2019 年几乎被基于卷积神经网络(CNN)的检测器统治:
-
两阶段:Faster R-CNN、Mask R-CNN
-
单阶段:YOLO、SSD、RetinaNet
这些检测器虽然效果强大,但背后依赖:
✅ Anchor(先验框)
✅ NMS(非极大值抑制)
✅ 特征金字塔、手工设计
问题:结构复杂、调参困难、不端到端。
DETR:一个极简而革命的想法
2019 年底,Facebook AI(FAIR)团队提出:
能不能用 Transformer 替代目标检测中复杂的候选框、NMS,把检测建模成序列到序列问题?
这就是 DETR(DEtection TRansformer):
-
不需要 Anchor
-
不需要 NMS
-
用 Transformer 直接预测目标类别 + 边界框
核心流程:
-
Backbone(如 ResNet)提取特征
-
加入固定长度的 learnable object queries
-
Transformer encoder-decoder 编码全局关系
-
输出一组(如 100 个)预测:每个对应一个目标或空目标
🔍 DETR 相比传统检测器的亮点
✅ 端到端:训练时直接最小化预测与 GT 的匹配损失(匈牙利匹配 + L1/IoU loss)
✅ 全局建模:Transformer 自带长距离依赖
✅ 结构简单:避免复杂手工设计
这让检测变得更“优雅”,也更可解释。
DETR 的问题
初版 DETR 同样有短板:
-
收敛很慢(需要数百个 epoch)
-
小目标检测性能不佳
-
对细粒度位置回归不够精准
原因:
-
Transformer 编码对局部信息利用不充分
-
不同尺度特征融合不足
迭代:DETR 系列的进化
自 DETR 之后,学术界和工业界快速提出改进版本:
名称 | 年份 | 改进点 |
---|---|---|
Deformable DETR | 2020 | 用可变形注意力替代全局注意力,收敛更快 |
Conditional DETR | 2021 | 为每个 query 引入条件特征 |
DN-DETR | 2022 | 引入噪声增强,加快收敛 |
H-DETR | 2023 | 利用混合特征、多尺度改进小目标检测 |
DINO | 2022 | 提升性能、对齐特征 |
D-FINE | 2024 | 将位置回归建模为分布优化 |
这些工作大部分遵循一个目标:
更快收敛、更好检测小目标、更强精度。
🔧 DETR 的工作原理(简单示意)
graph LR
A[图像] --> B[Backbone CNN]
B --> C[Flatten + Positional Encoding]
C --> D[Transformer Encoder]
D --> E[Object Queries]
E --> F[Transformer Decoder]
F --> G[预测 N 个目标]
每个 Object Query 学习到不同目标的特征表示,Decoder 输出位置 + 类别。
DETR 的影响
DETR 不仅让 Transformer 在检测领域崭露头角,还启发了:
-
分割(Segmenter、Mask2Former)
-
视频理解(VisTR)
-
全景检测与跟踪
也推动了学界更深入思考:
能否用统一框架解决多种视觉任务?
小结
✅ DETR = Detection + Transformer
✅ 开启了目标检测新范式:端到端 & 无 Anchor & 无 NMS
✅ 后续演化版本不断提升性能,兼顾速度与精度
DETR 从 0 到 1,背后是设计哲学的转变:
用更抽象、更统一的方式解决视觉任务。