【目标检测】对DETR的简单理解

【目标检测】对DETR的简单理解

文章目录

  • 【目标检测】对DETR的简单理解
    • [1. Abs](#1. Abs)
    • [2. Intro](#2. Intro)
    • [3. Method](#3. Method)
      • [3.1 模型结构](#3.1 模型结构)
      • [3.2 Loss](#3.2 Loss)
    • [4. Exp](#4. Exp)
    • [5. Discussion](#5. Discussion)
      • [5.1 二分匹配](#5.1 二分匹配)
      • [5.2 注意力机制](#5.2 注意力机制)
      • [5.3 方法存在的问题](#5.3 方法存在的问题)
    • [6. Conclusion](#6. Conclusion)
    • 参考

1. Abs

两句话概括:

  1. 第一个真正意义上的端到端检测器
  2. 最早将transformer应用到计算机视觉领域方法之一

2. Intro

基于Conv目标检测方法,如YOLO,在精度和速度上都已经非常优秀。

但是这些传统算法往往需要prior和post-process流程,导致额外的计算量,需要复杂的代码来部署模型。

prior:例如,YOLOv5使用聚类算法提前计算anchor boxes

post-process:例如,NMS去除多余预测框

DETR则完全不需要这些,从输入到输出,一气呵成,简洁优雅。

3. Method

3.1 模型结构

网络架构如图所示,同样非常简单

  1. 一个backbone:提取特征
  2. 两个transformer
    1. encoder:将特征图展平成序列,加上位置编码,使用self-attn进一步处理,使得每个特征向量关注到合适的特征表示
    2. decoder:cross-attn,query在特征序列上"逐个问询是否存在目标,目标在哪,有多大",使得query学习到目标的位置信息和特征表示
  3. 两个FFN:对query的信息进行"解压",得到预测结果(类别和边界框)。

3.2 Loss

分类:负log损失

bbox:(GIoU)IoU损失 + L1损失

4. Exp

除了AP75和APs,DETR在同样的参数规模下都超过了Faster RCNN,但是计算量和检测速度更慢。

5. Discussion

5.1 二分匹配

匈牙利算法可参考[3]

  • 由于DETR默认使用100个queries,即模型输出100个预测框,而实际目标数量只有几个;
  • 因此,需要通过二分匹配算法得到最终的预测结果;
  • 简单来说,就是要把query和gt一一对应,如果一张图像中有5个gt,则在100个queries中通过匹配算法筛选出5个最接近gt的预测结果。

5.2 注意力机制

如图是decoder的注意力可视化结果,可以看到query更关注于物体的边边角角,为目标定位提供了有效信息。

5.3 方法存在的问题

  1. 使用self-attn,太长的特征序列会导致爆炸的计算量,因此输入图像也不能太大
  2. transformer收敛速度慢,训练时间长
  3. 小目标效果一般

6. Conclusion

DETR为目标检测提供了简洁有效的端到端检测框架,且达到了主流检测器的水平,但仍然有较多改进空间。

参考

1\] https://arxiv.org/abs/2005.12872 \[2\] https://www.bilibili.com/video/BV1ZT411D7xK/ \[3\] https://blog.csdn.net/qq_54185421/article/details/125992305

相关推荐
不吃香菜?1 分钟前
YOLOv4深度解析:从架构创新到工业落地的目标检测里程碑
yolo·目标检测·目标跟踪
新知图书9 分钟前
OpenCV图像平移示例
opencv·算法·计算机视觉
电极限13 分钟前
一个实际电路的原理图是怎样设计出来的?附带案例流程图!
人工智能·单片机·嵌入式硬件·支持向量机·动态规划
jndingxin1 小时前
OpenCV CUDA 模块图像过滤------创建一个高斯滤波器函数createGaussianFilter()
人工智能·opencv·计算机视觉
搞IT的放牛娃1 小时前
AI人工智能——Matplotlib绘制各种数据可视化图表的基础方法
人工智能·python·机器学习
鸭鸭鸭进京赶烤1 小时前
第六届电子通讯与人工智能国际学术会议(ICECAI 2025)
大数据·图像处理·人工智能·hadoop·机器学习·数据挖掘
lihuayong2 小时前
One-shot和Zero-shot的区别以及使用场景
人工智能·大语言模型·few-shot·zero-shot·one-shot
莱茵菜苗2 小时前
Python打卡训练营day33——2025.05.22
人工智能·pytorch·神经网络
一尘之中2 小时前
觉醒三境:在敦煌的风沙中寻找生命的纹路
人工智能
塔能物联运维2 小时前
塔能科技:工厂能耗精准节能全方位解决方案
大数据·网络·人工智能