DETR 【目标检测里程碑的任务】

DETR通过端到端设计消除目标检测中的NMS问题,利用Transformer处理全局信息并生成集合预测,通过二分图匹配算法优化训练和推理。尤其在大物体检测上表现出色,但对小物体处理仍有提升空间。

paper with code - DETR

标题

End-to-End Object Detection with Transformers

  1. end-to-end 意味着去掉了NMS的操作(生成很多的预测框,nms 去掉冗余的预测框)。因为有了NMS ,所以调参,训练都会多了一道工序,都会比较复杂和麻烦,不是所有硬件都支持的。

所以一个【端到端 detr】 解决了上述的问题,把目标检测转化成了集合预测的问题。

DETR 不再出很多冗余的框,一下就让模型训练和部署变得很简单。

【全新的架构】

摘要

补一嘴。目标检测 任务 天然的就不适合 自回归的架构(GPT系列)。理解一下:检测大物体,不需要依赖检测小物体, 检测右边的物体也不需要先检测左边的物体。且自回归是顺序推理,目标检测想要的一定是并行的一起出框。

引言

之前的一些工作都是不是直接预测目标框,而是设计了一些回归任务 来生成了很多接近重复的框。

再用nms来去除重复的框。所以需要很多的先验知识来设计NMS,如何可以好的去除这些冗余的框。DETR的目标就是消除这个鸿沟。

模型架构

训练整个流程分为以下四步:

  1. 用cnn去抽特征 。把特征拉直 送给transformer
  2. encoder的作用就是学习这些全局的信息,使用encoder的好处是:每一个像素点或者说每一个特征都和其他的特征有交互了,那么就大概可以知道哪块是哪个物体,对于同一个物体就应该只出一个框。
  3. decoder的作用生成框的输出。object query 。 query 限定了要出多少个框。query和self-attention做交互,从而得出了最后的框。默认是100。那么问题来了,这100个框 怎么得到最后的ground truth呢?

    使用了二分图匹配算法。
  4. 预测的框和ground truth的框做匹配,再匹配的框里面去算目标检测的loss。

(补充知识)DETR的二分图匹配损失函数是如何工作的?

DETR的全局损失函数采用了一个称为二分图匹配的方法,通过这种方法可以实现预测与实际目标的唯一匹配。在训练过程中,DETR会推断出一个固定大小的N个预测对象集合,然后通过最优的二分图匹配算法将这些预测对象与实际目标进行匹配。在匹配完成后,会对每个对象的特定损失(如边界框损失)进行优化。这个匹配的过程类似于用于将提议框或锚点与实际目标进行匹配的启发式分配规则。不同之处在于,DETR需要在直接集预测的情况下找到一对一的匹配,而不会出现重复的匹配。实际上,在匹配成本中,对于对象和空集之间的匹配成本并不依赖于预测结果,这意味着在这种情况下,成本是一个常数。DETR的全局损失函数还考虑了类别预测项,通过使用概率而不是对数概率,使得类别预测项与边界框损失项具有可比性,并且在实验中观察到了更好的性能表现。

推理的流程

  1. 和训练的逻辑一致,除了不再需要做训练的loss,直接在最后的输出上,用一个阈值去卡一个置信度。

结论

  1. 检测大物体的性能好,因为对大物体有全局建模的能力了,不再受限于anchor的设置
  2. 小物体就性能差了些。
  3. 对于未来的展望,后续的工作来改进。
    1. Deformable DETR 通过多尺度的特征来解决了小物体的问题。wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==训练太慢。

相关工作

  1. 集合预测
  2. transformer 并行解码
  3. 目标检测的相关工作 . 性能比较低,往往用手工设计的人工干预。

    1. set based loss Learning non-maximum suppression
    2. relation network Relation Networks for Object Detection cvpr 2018 

RNN系列 对比transformer 并行推理。

DETR 最终能够work的主要原因!!!还是用了transformer

主要算法

  1. 基于集合的目标函数

再说 二分图匹配,抽象点来说,举个例子,如何分配一些工人,去干一些活,让最后的支出最小。

最优二分图匹配,最后能给一个唯一解,能够给到每个人都去做最擅长的工作,让总支出最小。典型:匈牙利算法 工程实现:scipy linear-sum-assignment

  1. 模型结构框架

参考: DETR 论文精读【论文精读】_哔哩哔哩_bilibili

### 目标检测领域的最新创新点和研究进展 #### 1. 基于Region Proposal的目标检测框架演进 目标检测领域的一个重要里程碑是由 Ross B. Girshick 提出的 R-CNN 框架。这一框架通过引入 region proposal 和卷积神经网络 (CNN),取代了传统的滑动窗口加手工设计特征的方法,显著提升了目标检测的效果并推动了深度学习在该领域的广泛应用[^1]。 随着技术的发展,R-CNN 的后续版本 Fast R-CNN 和 Faster R-CNN 进一步优化了性能和效率。特别是 Faster R-CNN 中提出的区域建议网络 (Region Proposal Network, RPN) 实现了端到端的训练过程,大幅减少了计算开销。 #### 2. 单阶段目标检测模型的进步 单阶段目标检测模型(如 YOLO 系列和 SSD)因其高效性和实时性而受到广泛关注。其中,YOLOv1 是最早实现端到端实时目标检测的模型之一。近年来,YOLO 系列不断迭代更新,在速度和精度之间取得了更好的平衡。例如,最新的 YOLO 版本结合了低光照增强模块 IGAB,进一步扩展了其应用场景至复杂环境下的物体检测[^4]。 #### 3. 跨模态融合与多任务学习 为了提高目标检测的鲁棒性和泛化能力,研究人员开始探索跨模态信息融合以及多任务联合学习的技术路径。这些方法通常涉及将不同传感器的数据(如 RGB 图像、深度图、红外图像等)或者多种视觉任务(如语义分割、实例分割、姿态估计等)结合起来共同指导目标检测器的学习过程[^2]。 #### 4. 变分自动编码器与生成对抗网络的应用 变分自动编码器(VAEs)和生成对抗网络(GANs)也被尝试应用于解决目标检测中的某些挑战性问题,比如数据不平衡、标注不足等问题。通过生成高质量的人工样本补充真实世界中稀少类别对象的数量,从而改善整体系统的识别效果。 #### 5. Transformer架构融入目标检测 Transformer 架构最初用于自然语言处理(NLP),后来被成功迁移到计算机视觉领域。DETR(Detection Transformer)首次展示了如何仅依靠标准 Transformers 来完成整个目标检测任务,开创了一个全新的方向——即无需复杂的 anchor 设计即可达到高精度的结果。此外,还有其他一些基于 Transformer 的改进方案陆续发布出来,它们各自针对特定方面进行了加强,例如 Retinexformer 就是在此背景下诞生的一种专门应对低光条件下图像增强需求的新颖解决方案。 ```python import torch from transformers import DetrForObjectDetection model = DetrForObjectDetection.from_pretrained('facebook/detr-resnet-50') inputs = processor(images=image, return_tensors="pt") outputs = model(**inputs) # 解码预测框坐标及分类得分 probs = outputs.logits.softmax(-1)[0, :, :-1] bboxes_scaled = rescale_bboxes(outputs.pred_boxes[0], image.size) ``` 上述代码片段展示的是 DETR 模型加载及其推理操作的基本流程。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值