超越YOLO11!DEIM:先进的实时DETR目标检测

DEIM: DETR with Improved Matching for Fast Convergence
 

arXiv: https://arxiv.org/abs/2412.04234 

Project webpage:https://www.shihuahuang.cn/DEIM/
GitHub:https://github.com/ShihuaHuang95/DEIM

1 背景:DETR目标检测框架

目标检测(Object Detection) 是计算机视觉中的核心任务,用于识别图像或视频中的所有目标,并为每个目标提供其类别和位置。简单来说,目标检测结合了分类和定位的能力,既要知道目标是什么,也要知道它们在哪儿。

目前主流的目标检测方法可以分为三类:

  • • 基于区域候选(Region Proposal)的方法:例如 R-CNN 系列(如 Faster R-CNN [1])。

  • • 基于锚点(Pixel Anchor)的方法:例如 YOLO 系列(You Only Look Once [2])。

  • • 基于可学习查询(Learnable Queries)的方法:例如 DETR 系列(Detection with Transformer [3])。

实时目标检测(Real-time Object Detection) 要求模型不仅要精准,还要以极低的延迟(Latency)运行,通常需要达到或超过 30FPS,以满足实时应用需求。YOLO 系列因其优秀的性能和速度平衡,长期是实时检测领域的主流框架。它采用密集锚点(Dense Anchors)和“一对多”(One-to-Many, O2M)匹配策略,即在训练节点单个GT框会有多个匹配框优化bbox regression损失。这样的好处是,在训练过程中,对匹配的容错性比较高。为去除冗余框,YOLO 会使用非极大抑制(Non-Maximum Suppression, NMS)等后处理方法。

Detection with Transformer(DETR [3]) 是近年来备受关注的一种基于 Transformer 架构的目标检测方法。DETR 使用稀疏的可学习查询(Sparse Learnable Queries)和“一对一”(One-to-One, O2O)匹配机制,在训练阶段限制每个目标仅匹配一个正样本(Positive Sample)。这种设计使 DETR 摒弃了复杂的后处理步骤(如 NMS),实现了真正的端到端(End-to-End)目标检测。随着 DETR 框架的不断优化,RT-DETR [4] 已经实现了低延迟目标检测(Low-Latency Object Detection),逐渐在实时检测场景中超越 YOLO,成为实时目标检测的热门选择。关于DETR的代码细节可以参考 Meta的DETR (ECCV 2020) 以及 隐藏在代码的细节

DETR的收敛速度较慢。 对比Faster R-CNN [1] 在COCO上仅用十几个epochs取得的效果,DETR [3] 需要数倍epochs,例如最开始的版本中需要500epochs。导致这个问题的原因有两个:

  • 稀疏的监督信息——O2O匹配机制在训练过程中仅分配一个正样本给每个目标,对比O2M匹配机制则是分配数倍的正样本给每个目标,随着正样本减少,这样的监督信息大大地减少;

  • 低质量的匹配(IoU很低)——不同于pixel-anchor based的YOLO检测器,在训练过程中会有10k左右的候选框,非常密集,甚至每个像素点都有好几个不同尺寸的候选框,使得最后目标附近有非常高质量的预测框。而DETR中的queries数一般是100或者300,这样少数量的queries在空间上也呈现稀疏性,会使得有一些匹配的框和目标空间交集很小,这样的低质量匹配会影响优化。

2 DEIM加快训练收敛

DEIM 提出了两项改进加速收敛:

  1. Dense O2O:通过增加正样本数量,提升监督信号密度。

  2. MAL(Matchability-Aware Loss):优化匹配质量的损失函数。

2.1 Dense O2O:提升匹配数量

O2O (如上图 b) 匹配策略每目标仅分配一个正样本,而 O2M(One-to-Many, 如上图a)策略分配多个正样本。为了弥补 O2O 的不足,DEIM 使用简单而高效的 Dense O2O (如上图c) 方法:通过数据增强(如 Mosaic 和 MixUp),将单目标图片拼接成多目标图片,显著增加匹配数量。这样可以避免引入复杂辅助解码器或副作用(如增加重叠框)。

在基于 RT-DETRv2-R50 [4] 模型的 COCO 数据集训练中,我们统计了每个样本在一个 epoch 内使用 O2M(One-to-Many,SimOTA)和 O2O(One-to-One,Hungarian Matching)分配正样本数量的差异。结果如下图所示:

  • 正样本数量:在 O2O 策略下,大多数训练数据的正样本数量少于 10。

  • 比例对比:相同图片下,O2M 生成的正样本数量是 O2O 的多倍,大部分样本的比例达到 6 倍以上,部分甚至超过 10 倍。

研究重点:如何有效增加正样本数量,从而提供更密集的监督信息,成为优化模型的重要方向。

为了增加正样本数量,一些方法在维持 O2O 框架的基础上进行了改进,典型方法包括:

  • Group DETR [5]:使用多组 queries,每组单独执行 O2O,使每个目标拥有多个正样本。

  • Co-DETR [6]:引入常见的 O2M 匹配算法(如 Faster R-CNN [1] 和 FCOS [2])作为辅助训练。

然而,这些方法存在一些问题:

  • 需要多个辅助解码器(Decoder),增加训练资源消耗。

  • 需要平衡主解码器与辅助解码器的损失,避免影响主框架性能。

  • 辅助训练可能引入高质量重叠框,最终需要使用 NMS 后处理。

DEIM提出了一种 Dense O2O 方法,通过有效增加图片中的目标数量,提升监督信息密度。如下图,简单地将单目标图片复制 4 次并拼接在一起,生成包含 4 个目标的图片,进而获得 4 个正样本。这种方法接近 O2M 策略,但避免了 O2M 的问题,且几乎零成本,仅需简单的数据增强(Mosaic 和 Mixup)即可实现。

2.2 MAL:提升匹配质量

VFL [7](Varifocal Loss)是目前常用的目标检测损失函数,尤其在实时 DETR 框架中被广泛应用。VFL 主要针对 O2M 和基于锚点(Pixel Anchor)的检测器设计,不存在正样本少或匹配质量差的问题。

然而,在 DETR 框架中,VFL 存在两个明显问题:

  • 对于 IoU 较低的匹配,损失不会随着置信度增加而增加。

  • IoU=0 时被视为负样本,进一步减少了正样本数量。

为解决这些问题,我们基于 Focal Loss 提出了 MAL(Matching-Aware Loss)。MAL 更加简洁,仅有一个超参数 gamma,同时有效解决了 VFL 的缺陷,提高了 DETR 框架的性能。

通过对比 VFL 和 MAL 在低质量匹配(IoU=0.05)和高质量匹配(IoU=0.95)下的表现,可以发现:

低质量匹配(IoU=0.05):MAL 会随着置信度增加而加大惩罚,而 VFL 惩罚不明显。

图片

高质量匹配(IoU=0.95):MAL 和 VFL 表现相同。

图片

3 实验:DEIM的效果

3.1 整体性能

DEIM 显著加速了基于 DETR 的实时目标检测模型的收敛速度。相比目前的SOTA D-FINE-L [8],仅需一半的训练批次即可达到更高性能。DEIM 优化了 D-FINE 系列模型,在性能与时延的平衡上成为当前最优检测器,超越了最新的 YOLOv11 [9]。

3.2 实时目标检测性能

和现有的各种大小的实时目标检测模型进行了对比(包括X,L,M和S)结果显示DEIM可以加速和提升最好的检测器D-FINE [8],成为了目前最强的实时目标检测器。其中提升最明显的是小目标(APs)和高准确的预测(AP75)。例如在D-FINE-X [8]中,DEIM在整体AP仅提升0.7下,却提升了1.3 AP75和1.5 APs。说明了DEIM能有效地提升预测框的准确度。

3.3 基于ResNet框架对比经典DETR算法

主流 DETR 模型多基于 ResNet [10],DEIM 应用于 RT-DETRv2 [4]也能显著提升结果。结果显示,DEIM 能显著提升 RT-DETRv2 [4] 的性能,整体提升约 1 个点,其中 APs 和 AP75 提升最为明显,均超过 1.2 个点。与 DINO [11] 模型对比,在相同训练周期(36 epochs)下,DEIM-RT-DETRv2-R50 的 AP 提升接近 3 个点。这证明了 DEIM 的算法泛化性,并表现出更快更优的性能。

3.4 CrowdHuman数据集上的泛化实验

在更具挑战性的 CrowdHuman [12] 数据集上,DEIM 相比 D-FINE-L [8] 提升了 1.5 AP,其中 APs 和 AP75 提升最明显,均达 3 个点。实验证明了 DEIM 在不同数据集上的强泛化性。

3.5 Ablation Study: 验证 DEIM 的有效性

从以下三个方面验证了 DEIM 的有效性:

实现 Dense O2O 的方法。Dense O2O 利用 Mosaic 和 MixUp 两种技术有效增加目标数量。实验结果表明,这两种方法显著加速了训练收敛,并且具有互补性。因此,我们的方法结合了 Mosaic 和 MixUp,最终同时使用两者以达到最佳效果。

MAL 中的超参数 gamma。针对 MAL 的 gamma 值进行实验发现,当 gamma = 1.5 时性能最佳。这为 MAL 的使用提供了一个有效的默认配置,同时进一步优化探索可能会带来更好的表现。

Dense O2O 和 MAL 的组合性能。Dense O2O 和 MAL 的组合具有明显的协同效果。实验表明,二者互补,共同使用能够进一步提升检测器的性能,验证了其在目标检测任务中的有效性和实用性。

总结

DEIM 通过 Dense O2O 和 MAL 两项改进,解决了 DETR 在监督信号和匹配质量上的不足,不仅显著加速了收敛速度,还在多个数据集上提升了性能,成为当前最优的实时目标检测方案。

参考文献

  • [1] Faster R-CNN; Ren et al. "Faster R-CNN: Towards real-time object detection with region proposal networks." TPAMI, 2016.

  • [2] YOLO; Redmon el al. "You only look once: Unified, real-time object detection." CVPR. 2016.

  • [3] DETR; Carion et al. "End-to-end object detection with transformers." ECCV, 2020

  • [4] RT_DETR; Zhao et al. "Detrs beat yolos on real-time object detection." CVPR, 2024

  • [5] Group-DETR; Chen, et al. "Group detr: Fast detr training with group-wise one-to-many assignment." ICCV. 2023.

  • [6] Co-DETR; Zong et al. "Detrs with collaborative hybrid assignments training." ICCV. 2023.

  • [7] VFL; Zhang et al. "Varifocalnet: An iou-aware dense object detector." CVPR. 2021.

  • [8] D-FINE; Peng et al. "D-FINE: Redefine Regression Task in DETRs as Fine-grained Distribution Refinement." arXiv. 2024

  • [9] YoloV11; Khanam and Muhammad. "YOLOv11: An overview of the key architectural enhancements." arXiv. 2024.

  • [10] ResNet; He, et al. "Deep residual learning for image recognition." CVPR, 2016.

  • [11] DINO; Zhang et al. "Dino: Detr with improved denoising anchor boxes for end-to-end object detection." ICLR. 2022.

  • [12] CrowdHuman; Shao, et al. "Crowdhuman: A benchmark for detecting human in a crowd." arXiv. 2018.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/948780.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深入理解 Java 接口的回调机制

前言 回调是一种非常重要的编程技术,它广泛应用于事件驱动的编程、异步任务和框架设计中。在 Java 中,回调机制通常通过 接口 来实现。本篇博客将详细解析 Java 接口的回调原理、实现方式,以及实际开发中的应用场景。 泪崩了,期末…

二、用例图

二、用例图 (一)、用例图的基本概念 1、用例图的定义: 用例图是表示一个系统中用例与参与者关系之间的图。它描述了系统中相关的用户和系统对不同用户提供的功能和服务。 用例图相当于从用户的视角来描述和建模整个系统,分析系统的功能与…

【软考网工笔记】计算机基础理论与安全——网络安全

病毒 Melissa 宏病毒 1. 是一种快速传播的能够感染那些使用MS Word 97 和MS Office 2000 的计算机宏病毒。 2. 前面有**Macro** 表示这是宏病毒; 3. 宏病毒可以感染后缀为.xls的文件;Worm 蠕虫病毒 1. 通常是通过网络或者系统漏洞进行传播。 2. 利用信…

STM32 拓展 低功耗案例3:待机模式 (register)

需求描述 寄存器操作进入待机模式。待机模式的唤醒方式比较有限。我们这次使用WKUP引脚的上升沿唤醒。PA0就是WKUP引脚。 当然PA0仍然需要工作在下拉输入模式,只有这样当按键按下的时候才会有一个上升沿。 由于我们电路中PA0已经连接了LED1,所以要产生…

windows中硬件加速gpu计划开启cpu的使用率居高不下

1.加速gpu计划开启在任务管理器的gpu选项中看不到cuda选项,这给我们进行深度学习训练和推理带来很大影响。 2.开启硬件加速CPU的占用率明显增高,特别用GPU进行实时视频流解码时就不会分配给GPU解码,造成cpu占用居高不下。不利于深度学习训练…

【Go】运行自己的第一个Go程序

运行自己的第一个Go程序 一、Go语言的安装Go环境安装查看是否安装成功配置GOPROXY(代理) 二、Goland安装三、Goland破解四、新建项目 开一篇专栏记录学习Go的过程,一门新语言从hello world开始,这篇文章详细讲解Go语言环境搭建及hello world实现 一、Go语…

提升汽车金融租赁系统的效率与风险管理策略探讨

内容概要 在汽车金融租赁系统这个复杂的生态中,提升整体效率是每个企业都渴望达成的目标。首先,优化业务流程是实现高效运行的基础。通过分析目前的流程,找出冗余环节并进行简化,能够帮助企业缩短审批时间,提高客户满…

计算机网络 (25)IPV6

前言 IPv6,全称为“互联网协议第6版”(Internet Protocol Version 6),是由互联网工程任务组(IETF)设计的用于替代IPv4的下一代IP协议。 一、产生背景 IPv4,即互联网协议第4版,是现行…

嵌入式系统(将软件嵌入到硬件里面)

目录 Linux起源 查看操作系统的版本 查看内核的版本: 内核系统架构 系统关机或重启命令 关机: 重启: linux下的软件安装 两种软件包管理机制: deb软件包分为两种: 软件包的管理工具:dpkg apt 1…

Conda 安装 Jupyter Notebook

文章目录 1. 安装 Conda下载与安装步骤: 2. 创建虚拟环境3. 安装 Jupyter Notebook4. 启动 Jupyter Notebook5. 安装扩展功能(可选)6. 更新与维护7. 总结 Jupyter Notebook 是一款非常流行的交互式开发工具,尤其适合数据科学、机器…

web实操9——session

概念 数据保存在服务器HttpSession对象里。 session也是域对象,有setAttribute和getAttribute方法 快速入门 代码 获取session和塞入数据: 获取session获取数据: 请求存储: 请求获取: 数据正常打印&#xff1a…

如何在电脑上使用 FaceTime

如今,视频通话已成为与朋友、家人和同事保持联系的重要组成部分。 FaceTime 是 Apple 推出的一款功能丰富的视频通话应用程序。它以其简单性和视频质量而闻名。但如果您想在 PC 上使用 FaceTime该怎么办?虽然 FaceTime 仅适用于 Apple 设备,但…

(框架漏洞)

1.Thinkphp 1.Thinkphp5x远程命令执⾏及getshell 搭建靶场环境 vulhub/thinkphp/5-rce docker-compose up -d #启动环境 ?sindex/think\app/invokefunction&functioncall_user_func_array&vars[0]system&vars[1][]whoami ?s/Index/\think\app/invokefunctio…

探秘Kafka源码:关键内容解析

文章目录 一、以kafka-3.0.0为例1.1安装 gradle 二、生产者源码2.1源码主流程图2.2 初始化2.3生产者sender线程初始化2.4 程序入口2.5生产者 main 线程初始化2.6 跳转到 KafkaProducer构造方法 一、以kafka-3.0.0为例 打开 IDEA,点击 File->Open…->源码包解…

动态库dll与静态库lib编程4:MFC规则DLL讲解

文章目录 前言一、说明二、具体实现2.1新建项目2.2 模块切换的演示 总结 前言 动态库dll与静态库lib编程4:MFC规则DLL讲解。 一、说明 1.前面介绍的均为Win32DLL,即不使用MFC的DLL。 2.MFC规则DLL的特点:DLL内部可以使用MFC类库、可以被其他…

对比学习损失函数 - InfoNCE

InfoNCE Loss :构建高效对比学习模型 引言 对比学习中的InfoNCE损失函数是自监督学习领域的重要进展,它通过最大化正样本对之间的相似度并最小化负样本对的相似度,有效地引导模型学习到数据的本质特征。InfoNCE不仅提高了表示学习的质量&am…

家用万兆网络实践:紧凑型家用服务器静音化改造(二)

大家好,这篇文章我们继续分享家里网络设备的万兆升级和静音改造经验,希望对有类似需求的朋友有所帮助。 写在前面 在上一篇《家用网络升级实践:低成本实现局部万兆(一)》中,我们留下了一些待解决的问题。…

【STC库函数】Compare比较器的使用

如果我们需要比较两个点的电压,当A点高于B点的时候我们做一个操作,当B点高于A点的时候做另一个操作。 我们除了加一个运放或者比较器,还可以直接使用STC内部的一个比较器。 正极输入端可以是P37、P50、P51,或者从ADC的十六个通道…

东京大学联合Adobe提出基于指令的图像编辑模型InstructMove,可通过观察视频中的动作来实现基于指令的图像编辑。

东京大学联合Adobe提出的InstructMove是一种基于指令的图像编辑模型,使用多模态 LLM 生成的指令对视频中的帧对进行训练。该模型擅长非刚性编辑,例如调整主体姿势、表情和改变视点,同时保持内容一致性。此外,该方法通过集成蒙版、…

海思Linux(一)-Hi3516CV610的开发-ubuntu22_04环境创建

目 录 前 言 一、芯片介绍 二、环境搭建 2.1 前提准备 2.2 虚拟机创建 2.3 ubuntu环境安装 2.4 基础ubuntu环境搭建 2.5 使用MobaXterm登陆ubuntu 前 言 芯片选型:HI3516CV610 选择的开发板是:酷电科技馆的Hi3516CV610-MINI开发板 上一篇文章&#xf…