目标检测新纪元:DETR到Mamba实战解析

🚀【实战分享】目标检测的“后 DEⱯ”时代:DETR/DINO/RT-DETR及新型骨干网络探索(含示例代码)

目标检测从 YOLO、Faster R-CNN 到 Transformer 结构的 DETR,再到 DINO、RT-DETR,近两年出现了许多新趋势:更高效的端到端结构、更少的手工设计(比如不再需要 NMS)、以及新型轻量化骨干网络(比如 Mamba、ConvNeXt、ViT 等)被引入检测任务中。

作为从事目标检测的小伙伴,我最近在研究并实践了这些新方法,本文结合理论与实战,系统梳理最新进展,并给出部分实战代码示例,希望对大家有所帮助。


📌 DETR 的革命:端到端检测

2019 年底,Facebook AI 提出 DETR(Detection Transformer),通过 Transformer 的 encoder-decoder 和 bipartite matching loss,把目标检测变为一个序列到序列的预测问题。

优点:

  • 不需要 NMS 和 anchor

  • 端到端优化

缺点:

  • 收敛慢(通常需要 500 epoch)

  • 对小目标不友好

后续很多工作都在解决 DETR 的缺点,如:

  • Deformable DETR:引入可变形注意力,加速收敛到 50 epoch

  • Conditional DETR、DN-DETR:加快收敛

  • DAB-DETR:引入动态 anchor box

  • DINO:加速收敛 + 大幅提升精度


🐬 DINO:更快更准的 DETR

DINO(DETR with Improved DeNoising Anchor boxes)是 2022 年 IDEA 提出的改进版本,关键点:

  • 引入 denoising training(对 GT 加噪声,引导模型学习鲁棒性)

  • 使用双头结构(两个 decoder head,一个负责 denoising loss,一个负责 matching loss)

DINO 的 COCO AP 达到 50+,并且收敛更快。

✅ 实际体验:在 MMDetection 中用 DINO,比原始 DETR 收敛速度明显快很多,并且小目标检测性能也有提升。


⚡ RT-DETR:实时 DETR

2023 年 Ultralytics 和 IDEA 合作推出了 RT-DETR

  • 完全保留 DETR 思路(encoder-decoder)

  • 用更轻量的骨干网络(如 CSPDarknet、ConvNeXt)

  • 引入多层解码器特征融合

  • 支持实时检测:COCO AP50 达到 53.3%,速度可达 70+ FPS

RT-DETR 实现了 端到端结构也能做到实时检测,对工程落地意义重大。


🧬 新趋势:新型骨干网络与检测结合

检测算法的进步不仅在检测头、损失设计,还在骨干网络:

  • ConvNeXt:纯卷积结构,接近 ViT 表现

  • Swin Transformer / ViT:用自注意力捕捉全局特征

  • Mamba:最近非常热的状态空间模型(SSM),轻量高效

比如最近 IDEA 提出了 Mamba-DETR,把 Mamba 结构替代传统 Transformer 作为 backbone,也取得了不错结果。


🧪 小试牛刀:用 RT-DETR 检测自定义数据集

下面用 Ultralytics 的 rtdetr(官方 PyTorch 实现)做个示例:
假设你已经准备好了 COCO 格式的数据集。

📦 安装

pip install ultralytics

🏗️ 新建训练脚本 train_rtdetr.py

from ultralytics import RTDETR# 加载 RT-DETR 模型
model = RTDETR('rtdetr-l.pt')  # 官方训练好的大模型# 开始训练
model.train(data='data.yaml',        # COCO 格式数据集配置文件epochs=50,imgsz=640,batch=16,lr0=1e-3,device=0
)

⚠️ data.yaml 内容示例:

train: ./images/train
val: ./images/val
nc: 3
names: ['apple', 'banana', 'orange']

✅ 测试与预测

# 验证
metrics = model.val()# 单张图片预测
results = model.predict('test.jpg', conf=0.5)
results.show()  # 展示结果
results.save()  # 保存结果

✍️ 工程小经验

  • 小数据集:尝试冻结 backbone,只微调检测头

  • 分辨率:增大 imgsz 能提高 AP,但显存需求更高

  • 小目标:多用多尺度特征;或用 DINO

  • 部署:RT-DETR 支持导出 ONNX / TensorRT,非常适合边缘设备


📚 更多参考

  • DETR 原论文

  • DINO 论文

  • RT-DETR GitHub

  • Mamba: Linear-Time Sequence Modeling with Selective SSMs


结语

目标检测正进入后 DETR 时代:端到端、无 NMS、轻量化、多模态正成为趋势。
不论是 DINO 还是 RT-DETR,都极大降低了工程落地门槛。
未来也许会有更多与状态空间模型(如 Mamba)结合的新检测器,值得关注和尝试。

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

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

相关文章

【IOS】XCode创建firstapp并运行(成为IOS开发者)

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍XCode创建firstapp并运行 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路…

class类和style内联样式的绑定 + 事件处理 + uniapp创建自定义页面模板

目录 一.class类的绑定 1.静态编写 2.动态编写 二.style内联样式的绑定 三.事件处理 1.案例1 2.案例2 四.uniapp创建自定义页面模板 1.为什么要这么做? 2.步骤 ①打开新建页面的界面 ②在弹出的目录下,新建模板文件 ③用HBuilderX打开该模板…

android 卡顿和丢帧区别

Android 卡顿(Jank)与丢帧(Frame Drop)的核心区别在于问题本质与用户感知,以下是分层解析: ️ 一、本质差异 维度卡顿(Jank)丢帧(Frame Drop)定义用户可感知…

【python实用小脚本-125】基于 Python 的 Gmail 邮件发送工具:实现高效邮件自动化

引言 在现代办公和开发环境中,邮件通信是一种重要的沟通方式。自动化发送邮件可以大大提高工作效率,例如发送通知、报告或文件。本文将介绍一个基于 Python 的 Gmail 邮件发送工具,它能够通过 Gmail 的 SMTP 服务器发送邮件,并支持…

gateway断言配置详解

一、Predicate - 断⾔ 1、简单用法 spring:cloud:gateway:routes:- id: after_routeuri: https://example.orgpredicates:- After2017-01-20T17:42:47.789-07:00[America/Denver] 2、自定义断言 新建类VipRoutePredicateFactory,注意VipRoutePredicateFactory名字…

基于大模型的尿毒症全流程预测与诊疗方案研究报告

目录 一、引言 1.1 研究背景与意义 1.2 研究目的与方法 1.3 国内外研究现状 二、尿毒症相关理论基础 2.1 尿毒症的定义、病因与发病机制 2.2 尿毒症的症状与诊断标准 2.3 尿毒症的治疗方法概述 三、大模型技术原理与应用 3.1 大模型的基本概念与发展历程 3.2 大模型…

裸金属服务器租用平台-青蛙云

企业对服务器性能与灵活性的要求与日俱增。青蛙云M-启强裸金属服务器租用平台应运而生,为企业提供了一种兼具物理机性能和云计算弹性的解决方案。裸金属服务器租用平台的优势​(一)高配性能,无虚拟化开销​裸金属服务器直接运行在物理硬件之上&#xff0…

[Terence Tao访谈] AlphaProof系统 | AI嗅觉 | 研究生学习 | 庞加莱猜想(高维) | 复杂问题简单化

玩这些有趣的东西。通常情况下什么也得不到,你必须学会说:“好吧,再试一次,什么都没发生,我会继续前进。” DeepMind的AlphaProof系统 Q:DeepMind的AlphaProof系统是通过强化学习训练的,使用的…

Aseprite工具入门教程4之动画导入Unity

1、时间轴功能 (1)眼睛图标 显示/隐藏图层图层隐藏时无法绘制 (2)锁定图标 锁定后无法移动或编辑图层防止意外在错误图层上绘制 (3)单元格图标 两个点代表帧分开,一个椭圆代表帧统一。分开就…

移动硬盘频繁提示格式化?解决异常故障的正确方法

移动硬盘作为数据存储的重要工具,不少人都习惯将照片、文档、项目资料甚至整台电脑的备份都放在里面。但有时,一件令人头疼的事悄然发生: 插上硬盘,系统却突然提示:“使用驱动器中的光盘之前需要将其格式化。是否要将…

Java泛型笔记

1 为什么需要泛型 Java5之前,是没有泛型的。通过两段代码我们就可以知道为何我们需要泛型 public int addInt(int a, int b) {return a b; }public double addDouble(double a, double b) {return a b; } 实际开发中,经常有数值类型求和的需求&…

mysql 图形化界面工具 DataGrip 安装与配置

安装地址: Download DataGrip: Cross-Platform IDE for Databases & SQLhttps://www.jetbrains.com/datagrip/download/?sectionwindows 添加数据源: 下载驱动文件:直接点击下载即可 点击测试连接:成功后点击确定 显示所有数…

linux下进程之间socket通信c程序例程

以下是一个基于 Linux 的 C 程序示例,展示了如何使用 Unix 域套接字(Unix domain socket)在不同进程之间互传 JSON 消息。我们将实现一个简单的客户端 - 服务器模型,服务器监听连接,客户端连接到服务器并发送 JSON 消息…

高云GW5AT-LV60 FPGA图像处理板|MIPI摄像头帧率测试

高云GW5AT-LV60 FPGA图像处理板套件中附带了三个摄像头模组,这三个模组真是各有千秋,接下来我通过简单的一些测试来看看这几个摄像头的差异。 VS-SC130GS 、 VS-SC2210 这两个模组是手动对焦,在使用时需要手动转动镜头调整焦距,这…

机器学习在智能能源管理中的应用:需求响应与可再生能源整合

随着全球能源需求的不断增长和环境问题的日益突出,智能能源管理成为实现可持续发展的关键。智能能源管理系统通过整合先进的信息技术,如物联网(IoT)、大数据和机器学习,能够优化能源的分配和使用,提高能源效…

【网络】Linux 内核优化实战 - net.ipv4.tcp_timestamps

目录 net.ipv4.tcp_timestamps 详解1. 功能与作用2. 参数取值与含义3. 启用/禁用的影响4. 配置方法5. 适用场景建议6. 注意事项总结 net.ipv4.tcp_timestamps 详解 net.ipv4.tcp_timestamps 是 Linux 内核中一个与 TCP 协议相关的网络参数,用于控制是否启用 TCP 时…

第一个Flink 程序:词频统计 WordCount(流处理)

本文重点 本文将通过一个统计词频的小程序来看一下flink是如何对数据进行批处理的,需要声明的是,一般我们使用Flink常常用于流式处理,即使是有界的数据,我们也将其看成是无界数据进行流式处理,所以批量处理并不是很常用,这里只是为了了解一下Flink是如何进行批处理的。 …

在 Kodi 中添加 AList 搭建 WebDav 的方法

文章目录 一、问题背景二、使用方法(一)开启 AList 的 WebDav(二)在 Kodi 添加 WebDav1. 打开设置跳转到媒体设置添加指定类型的媒体库2. 选择添加媒体库3. 添加新的网络位置 一、问题背景 AList 是一种使用 Gin 和 Solidjs 编写…

DAY 49

CBAM 是一种能够集成到任何卷积神经网络架构中的注意力模块。它的核心目标是通过学习的方式,自动获取特征图在通道和空间维度上的重要性,进而对特征图进行自适应调整,增强重要特征,抑制不重要特征,提升模型的特征表达能…

LLM:位置编码详解与实现

文章目录 前言一、绝对位置编码二、相对位置编码三、旋转位置编码 前言 由于attetnion运算的特性,Transformer本身不感知顺序,位置编码是弥补这一缺陷的关键。 一、绝对位置编码 绝对位置编码的方式是通过将每个位置映射到一个高维空间中,该…