超越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.

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《GICv3_Software_Overview_Official_Release_B》学习笔记

1.不同版本的 GIC 架构及其主要功能如下图所示: 2.GICv2m(Generic Interrupt Controller Virtualization Model)是针对ARM架构的GIC(通用中断控制器)的一种扩展, GICv2m扩展为虚拟化环境中的中断管理提供了…

PADS Logic原理图中有很多页原理图,如何(怎样)删除其中一页或者多页

我们在进行PADS Logic进行原理图设计的时候,有时候可能遇到一次性设计了很多页的原理图,比如说十几页的原理图。那么我们在进行PADS Layout的时候,可能将这些原理图绘制两块板或者多块PCB板,那么这时候我们需要将其中的一张原理图…

网络安全的学习与实践经验(附资料合集)

学习资源 在线学习平台: Hack This Site:提供从初学者到高级难度的挑战任务,适合练习各种网络安全技术。XCTF_OJ:由XCTF组委会开发的免费在线网络安全网站,提供丰富的培训材料和资源。SecurityTube:提供丰…

问题清除指南|关于num_classes与 BCELoss、BCEWithLogitsLoss 和 CrossEntropyLoss 的关系

前言:关于「 num_classes 1 」引发的探究。 2024年尾声,学弟问到一个问题:在研究工作 CNNDetection 的github开源代码 networks/trainer.py 文件的 line 27 self.model resnet50(num_classes1) 中,变量 num_classes 的值为1&…

CSS——1.优缺点

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><link rel"stylesheet" type"text/css" href"1-02.css"/></head><body><!--css&#xff1a;层叠样式表…

ETCD渗透利用指南

目录 未指定使用put操作报错 未指定操作版本使用get报错 首先etcd分为两个版本v2和v3&#xff0c;不同的API结果无论是访问URL还是使用etcdctl进行通信&#xff0c;都会导致问题&#xff0c;例如使用etcdctl和v3进行通信&#xff0c;如果没有实名ETCDCTL_API3指定API版本会直接…

开源数据集成平台白皮书重磅发布《Apache SeaTunnel 2024用户案例合集》!

2025年新年临近&#xff0c;Apache SeaTunnel 社区用户案例精选&#x1f4d8;也跟大家见面啦&#xff01;在过去的时间里&#xff0c;SeaTunnel 社区持续成长&#xff0c;吸引了众多开发者的关注与支持。 为了致谢一路同行的伙伴&#xff0c;也为了激励更多人加入技术共创&…

【RTD MCAL 篇3】 K312 MCU时钟系统配置

【RTD MCAL 篇3】 K312 MCU时钟系统配置 一&#xff0c;文档简介二&#xff0c; 时钟系统理论与配置2.1 K312 时钟系统2.1.1 PLL2.1.2 MUX_0系统2.1.3 MUX_6 时钟输出2.1.4 option B推荐方案 2.2 EB 配置2.2.1 General 配置2.2.2 McuClockSettingConfig配置2.2.2.1 McuFIRC配置…

vite-plugin-imagemin安装问题

vite-plugin-imagemin 是一款图片资源压缩插件,能够在打包的时候显著的降低图片资源占用。不过,在安装过程中我们遇到了如下的问题。 对于上面的问题,有以下几种常见的解决方案: 1,使用 yarn 在 package.json 内配置(推荐) 打开 package.json 配置文件,然后添加如下脚本…

c-动态内存管理 (动态内存管理比较深入的分析和理解博客总结)

本节博客主要是堆C语言动态内存管理进行一定深度的谈论, 主要谈论主题请见目录~ 目录 1. 复习 与 铺垫(动态内存管理基本知识)1.1 什么是动态内存管理(基本代码)?1.2 为什么要有动态内存管理?1.3 什么是野指针? 2. C程序地址空间分布2.1 两者的空间是如上图所示的吗? 我们验…

【JVM】总结篇-运行时内存篇

文章目录 JVM内存模型&#xff08;内存结构&#xff09;程序计数器 pc虚拟机栈本地方法栈 native堆堆空间堆中一些JVM参数堆中垃圾回收过程MinorGC MajorGC FullGC年轻代GC(Minor GC)触发机制&#xff1a;老年代GC&#xff08;Major GC/Full GC&#xff09;触发机制&#xff1a…

Tableau数据可视化与仪表盘搭建-安装教程

下载 tableau.com/zh-cn/support/releases 滚动到最下方的下载 在下载的同时 我们点击登录&#xff0c;去注册一个tableau的账号 下面点击我们下载好的tableau安装程序 不要自定义安装&#xff0c;会有路径问题 点击试用14天 点击激活 激活学生 tableau.com/zh-cn/academic…

GitHub的简单操作

引言 今天开始就要开始做项目了&#xff0c;上午是要把git搭好。搭的过程中遇到好多好多的问题。下面就说一下git的简单操作流程。我们是使用的GitHub,下面也就以这个为例了 一、GitHub账号的登录注册 https://github.com/ 通过这个网址可以来到GitHub首页 点击中间绿色的S…

【2025最新计算机毕业设计】基于Spring Boot+Vue影院购票系统(高质量源码,提供文档,免费部署到本地)

作者简介&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容&#xff1a;&#x1f31f;Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…

数据安全防护

数据安全防护有几个层面 边界安全 网络防火墙负责的部分 认证 kerberos负责的部分 授权 识别用户是否有访问某个模块的权限 认证是kerberos负责的事情 1. 客户端请求认证服务器&#xff0c;希望得到访问服务端票据的票据 2.客户端拿到访问服务端票据的票据后&#xff0c;去…

Cursor连接腾讯云Cloud Studio开发环境

文章目录 环境准备Cloud StudioCursor Cursor连接Cloud Studio开发环境 环境 腾讯云Cloud Studio语言模板All In One实例Windows 11Firefox 133.0.3 (64 位)Cursor 0.44.9 准备 Cloud Studio 在腾讯云Cloud Studio&#xff08; https://ide.cloud.tencent.com/ &#xff09…

【工具整理】WIN换MAC机器使用工具整理

最近公司电脑升级&#xff0c;研发同学统一更换了 Mac Book Pro 笔记版电脑&#xff0c;整理一下安装了那些软件以及出处&#xff0c;分享记录下&#xff5e; 知识库工具 1、语雀 网址&#xff1a;语雀&#xff0c;为每一个人提供优秀的文档和知识库工具 语雀 个人花园&…

面试题解,Java中的“对象”剖析

一、说一说JVM中对象的内存布局&#xff1f;new一个对象到底占多大内存&#xff1f; 话不多说&#xff0c;看下图&#xff0c;对象的内存布局图 一个对象的内存布局主要由三部分组成&#xff1a;对象头&#xff08;Object Header&#xff09;、实例数据&#xff08;Instance D…

大白话拆解——多线程中关于死锁的一切(七)(已完结)

前言&#xff1a; 25年初&#xff0c;这个时候好多小伙伴都在备战期末 小编明天还有一科考试&#xff0c;日更一篇&#xff0c;今天这篇一定会对小白非常有用的&#xff01;&#xff01;&#xff01; 因为我们会把案例到用代码实现的全过程思路呈现出来&#xff01;&#xff…

家教老师预约平台小程序系统开发方案

家教老师预约平台小程序系统将连接学生/家长与家教老师&#xff0c;提供一站式的家教服务预约体验。 一、用户需求分析1、家教老师&#xff1a;希望获得更多的学生资源&#xff0c;通过平台展示自己的教学特长和经验&#xff0c;管理个人日程&#xff0c;接收并确认预约请求&a…