深度学习项目之RT-DETR训练自己数据集
RT-DETR
- 1.模型介绍
- 📌 什么是 RT-DETR ?
- 📖 核心改进点
- 📊 结构示意
- 🎯 RT-DETR 优势
- ⚠️ RT-DETR 缺点
- 📈 应用场景
- 📑 论文 & 官方仓库
- 2.模型框架
- 3.Yaml配置文件
- 4.训练脚本
- 5.训练完成截图
- 6.总结与讨论
1.模型介绍
📌 什么是 RT-DETR ?
RT-DETR(Real-Time Detection Transformer) 是百度和视觉学界联合提出的一种端到端实时目标检测方法,是DETR 系列的加速优化版。
它解决了原始 DETR(2020) 推理慢、收敛慢的问题,让 Transformer-based 检测器能在实时速率下工作,同时保持高精度。
📖 核心改进点
模块 | 原始DETR | RT-DETR |
---|---|---|
编码器 | Transformer Encoder | 精简型 Encoder + 动态特征增强 |
检测头 | 查询-匹配式 DETR Head | Group-DETR Head(分组预测更高效) |
匹配方式 | 匈牙利匹配 | 匈牙利匹配(保留,稳定可靠) |
上采样 | FPN特征拼接 | 多层特征解耦动态融合 |
NMS | 不用(端到端预测) | 不用,直接输出 Top-N 框 |
收敛速度 | 极慢(500轮起步) | 极快(50轮左右) |
📊 结构示意
🌱 下图是简化结构
输入图像│
Backbone(ResNet/ConvNext)│
Neck(多层特征)│
精简 Transformer Encoder│
Group DETR Head(查询式)│
匈牙利匹配 (训练时)│
直接输出预测结果 (无需NMS)
🎯 RT-DETR 优势
✅ 实时速率,接近 YOLOv8 的 FPS
✅ 端到端,不用NMS、anchor
✅ 精度高,尤其是遮挡、细粒度目标表现优异
✅ 支持多种backbone(ResNet50、ResNet101、ConvNeXt)
✅ 高效、轻量,适合工程部署
⚠️ RT-DETR 缺点
⚠️ 对硬件要求较高(特别是显存)
⚠️ 动态查询 Head 复杂,不如 YOLO 系列直观
⚠️ 小目标场景需微调特征提取策略
📈 应用场景
📦 智能制造缺陷检测
📦 智慧城市交通分析
📦 卫星遥感小目标检测
📦 实时安全监控
📑 论文 & 官方仓库
- 📖 论文:RT-DETR: Real-Time Detection Transformer
- 📦 仓库:PaddleDetection-RT-DETR
2.模型框架
##3.数据集配置
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license# COCO128 dataset https://www.kaggle.com/datasets/ultralytics/coco128 (first 128 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco/
# Example usage: yolo train data=coco128.yaml
# parent
# ├── ultralytics
# └── datasets
# └── coco128 ← downloads here (7 MB)# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]train: /root/DATA/backup/images/train #
val: /root/DATA/backup/images/val# Classes
names:0: person1: bicycle2: car3: motorcycle4: airplane5: bus6: train7: truck8: boat9: traffic light10: fire hydrant11: stop sign12: parking meter13: bench14: bird15: cat16: dog17: horse18: sheep19: cow20: elephant21: bear22: zebra23: giraffe24: backpack25: umbrella26: handbag27: tie28: suitcase29: frisbee30: skis31: snowboard32: sports ball33: kite34: baseball bat35: baseball glove36: skateboard37: surfboard38: tennis racket39: bottle40: wine glass41: cup42: fork43: knife44: spoon45: bowl46: banana47: apple48: sandwich49: orange50: broccoli51: carrot52: hot dog53: pizza54: donut55: cake56: chair57: couch58: potted plant59: bed60: dining table61: toilet62: tv63: laptop64: mouse65: remote66: keyboard67: cell phone68: microwave69: oven70: toaster71: sink72: refrigerator73: book74: clock75: vase76: scissors77: teddy bear78: hair drier79: toothbrush
以COCO为例
3.Yaml配置文件
# Ultralytics YOLO 🚀, AGPL-3.0 license
# RT-DETR-l object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/rtdetr# Parameters
nc: 80 # number of classes
scales: # model compound scaling constants, i.e. 'model=yolov8n-cls.yaml' will call yolov8-cls.yaml with scale 'n'# [depth, width, max_channels]l: [1.00, 1.00, 1024]backbone:# [from, repeats, module, args]- [-1, 1, HGStem, [32, 48]] # 0-P2/4- [-1, 6, HGBlock, [48, 128, 3]] # stage 1- [-1, 1, DWConv, [128, 3, 2, 1, False]] # 2-P3/8- [-1, 6, HGBlock, [96, 512, 3]] # stage 2- [-1, 1, DWConv, [512, 3, 2, 1, False]] # 4-P3/16- [-1, 6, HGBlock, [192, 1024, 5, True, False]] # cm, c2, k, light, shortcut- [-1, 6, HGBlock, [192, 1024, 5, True, True]]- [-1, 6, HGBlock, [192, 1024, 5, True, True]] # stage 3- [-1, 1, DWConv, [1024, 3, 2, 1, False]] # 8-P4/32- [-1, 6, HGBlock, [384, 2048, 5, True, False]] # stage 4head:- [-1, 1, Conv, [256, 1, 1, None, 1, 1, False]] # 10 input_proj.2- [-1, 1, AIFI, [1024, 8]]- [-1, 1, Conv, [256, 1, 1]] # 12, Y5, lateral_convs.0- [-1, 1, nn.Upsample, [None, 2, "nearest"]]- [7, 1, Conv, [256, 1, 1, None, 1, 1, False]] # 14 input_proj.1- [[-2, -1], 1, Concat, [1]]- [-1, 3, RepC3, [256]] # 16, fpn_blocks.0- [-1, 1, Conv, [256, 1, 1]] # 17, Y4, lateral_convs.1- [-1, 1, nn.Upsample, [None, 2, "nearest"]]- [3, 1, Conv, [256, 1, 1, None, 1, 1, False]] # 19 input_proj.0- [[-2, -1], 1, Concat, [1]] # cat backbone P4- [-1, 3, RepC3, [256]] # X3 (21), fpn_blocks.1- [-1, 1, Conv, [256, 3, 2]] # 22, downsample_convs.0- [[-1, 17], 1, Concat, [1]] # cat Y4- [-1, 3, RepC3, [256]] # F4 (24), pan_blocks.0- [-1, 1, Conv, [256, 3, 2]] # 25, downsample_convs.1- [[-1, 12], 1, Concat, [1]] # cat Y5- [-1, 3, RepC3, [256]] # F5 (27), pan_blocks.1- [[21, 24, 27], 1, RTDETRDecoder, [nc]] # Detect(P3, P4, P5)
4.训练脚本
# @File: train.py
# @Author: chen_song
# @Time: 2025-06-03 17:55# 10:43开始的
from ultralytics import RTDETR# Load a COCO-pretrained RT-DETR-l model
weigth = r"/root/CS/ultralytics-main/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml"
model = RTDETR(weigth)# Display model information (optional)
model.info()# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="/root/CS/ultralytics-main/ultralytics/cfg/datasets/coco.yaml",epochs=100,batch=64,imgsz=640,workers=10,amp=True,project=r'/root/CS/ultralytics-main/runs/train',name='exp',)# Run inference with the RT-DETR-l model on the 'bus.jpg' image
# results = model("path/to/bus.jpg")
5.训练完成截图
6.总结与讨论
虽然RT-DETR比DETR精度更高,FPS更高,但是参数量依旧很大,普通显卡不够训练。未来考虑轻量化改进以及图像压缩等操作。
相关文章:

深度学习项目之RT-DETR训练自己数据集
RT-DETR 1.模型介绍📌 什么是 RT-DETR ?📖 核心改进点📊 结构示意🎯 RT-DETR 优势⚠️ RT-DETR 缺点📈 应用场景📑 论文 & 官方仓库2.模型框架3.Yaml配置文件4.训练脚本5.训练完成截图6.总结…...

以太网帧结构和封装【二】-- IP头部信息
1字节 byte 8比特 bit 【位和比特是同一个概念】 比特/位,字节之间的关系是: 位(Bit) 中文名:位(二进制位)。 英文名:Bit(Binary Digit 的缩写)。 含义&…...
mysql 悲观锁和乐观锁(—悲观锁)
适合悲观锁的使用场景: 悲观锁更适合在,写操作较多、并发冲突高、业务需要强一致性等场景下使用悲观锁。 如何使用悲观锁: 悲观锁主要通过以下两个 SQL语句实现: 1、SELECT...FOR UPDATE; 这个语句会在所查询中的数据行上设置排…...

Promtail采集服务器本地日志存储到Loki
✅ 一、前提条件 已安装 Loki 服务 日志文件目录可访问(如 /var/log) 具备 sudo 权限 🧩 二、下载 Promtail 二进制文件 # 替换为你想要的版本 VERSION"3.5.1"# 创建目录 sudo mkdir -p /opt/promtail cd /opt/promtail# 下载并…...
python第31天打卡
import numpy as np from tensorflow import keras from tensorflow.keras import layers, optimizers, utils, datasets# 数据加载和预处理函数 def load_and_preprocess_data():(x_train, y_train), (x_test, y_test) datasets.mnist.load_data()# 重塑并归一化图像数据x_tr…...
4.1 HarmonyOS NEXT原生AI能力集成:盘古大模型端侧部署与多模态交互实战
HarmonyOS NEXT原生AI能力集成:盘古大模型端侧部署与多模态交互实战 在HarmonyOS NEXT的全场景生态中,原生AI能力成为连接设备、服务与用户的核心纽带。通过盘古大模型端侧轻量化部署、多模态交互技术及环境感知系统,开发者能够构建"主…...

学习STC51单片机27(芯片为STC89C52RCRC)
每日一言 你读过的书、走过的路、流过的汗,终将成就独一无二的你。 硬件:LCD1602液晶显示 非标协议外设 概述 LCD1602(Liquid Crystal Display)是一种工业字符型液晶,能够同时显示 1602 即 32 字符(16列两行) 那我…...
PAT-甲级JAVA题解(更新中...)
使用JAVA语言进行算法练习,但是有些会出现运行超时情况. 题目链接A1001A1001-PAT甲级JAVA题解 AB FormatA1005A1005-PAT甲级JAVA题解 Spell It RightA1006A1006-PAT甲级JAVA题解 Sign In and Sign OutA1011A1011-PAT甲级JAVA题解World Cup BettingA1012A1012 PAT甲级JAVA题解 …...
Deep Chat:重塑人机对话边界的开源智能对话框架—— 让下一代AI交互无缝融入你的应用
在AI助手泛滥的今天,开发体验碎片化、功能扩展性差、多模态支持不足成为行业痛点。由开发者Ovidijus Parsiunas发起的开源项目 Deep Chat(https://github.com/OvidijusParsiunas/deep-chat),正以模块化设计 全栈兼容性颠覆传统聊…...

DA14531_beacon_大小信标设备开发
蓝牙信标是一款通过广播指定蓝牙信号,实现信标信号扫描、识别和获得辅助信息的电子产品。 不同品名的蓝牙信标采用相同的 UUID 和广播信号格式,但在 MAC 地址、工作寿命、体积和广播周期上有所差异。 小武编程巧用DA14531开发一款蓝牙信标....

【算法训练营Day06】哈希表part2
文章目录 四数相加赎金信三数之和四数之和 四数相加 题目链接:454. 四数相加 II 这个题注意它只需要给出次数,而不是元组。所以我们可以分治。将前两个数组的加和情况使用map存储起来,再将后两个数组的加和情况使用map存储起来,ke…...

Word双栏英文论文排版攻略
word写双栏英文论文的注意事项 排版首先改字体添加连字符还没完呢有时候设置了两端对齐会出现这样的情况: 公式文献 等我下学期有时间了,一定要学习Latex啊,word写英文论文,不论是排版还是公式都很麻烦的,而Latex一键就…...

乡村三维建模 | 江苏农田无人机建模案例
测绘是农田建设的基础工作,测绘的质量和效率直接影响农田建设的进度和成果。传统的人工测量、地面测量等测绘手段,存在效率低、精度差、受环境影响大、成本高等缺点,难以满足高标准农田建设的要求。而无人机倾斜摄影技术具有高效、精确、灵活…...

2025 5 月 学习笔记
计算高斯半径,用于生成高斯热图 这个的意义是什么 有什么作用? 14 核心意义:平衡定位精度与检测鲁棒性 在基于热图的目标检测方法(如CenterNet、CornerNet等)中,计算高斯半径的核心意义在于在精确…...

SpringBoot(七) --- Redis基础
目录 前言 一、Redis入门 二、Redis常用数据类型 三、Redis常用命令 1. 字符串操作命令 2. 哈希操作命令 3. 列表操作命令 4. 集合操作命令 5. 有序集合操作命令 6.通用命令 四、在Java中操作Redis 前言 Redis是一个基于内存的key-value结构数据库,有以下…...
Oracle 故障实例 - 通过备份恢复到某时间点 故障恢复
一、环境和故障描述 1.数据库版本:oracle 11g , linux ;OA系统的后台数据库。 2. 同事在做正式机数据迁移到测试机时,不小心删除了正式机的数据。 导致大量生产数据丢失,系统故障。 3.万幸的是正式机每日都做了数据备份&#x…...
滑动智能降级:Glide优化加载性能的黑科技
简介 在移动应用开发中,图片加载性能直接关系到用户体验,尤其在列表快速滑动场景下,如何平衡流畅度与流量消耗成为开发者面临的核心挑战。本文将深入探讨Glide库的智能降级技术,通过滑动速度动态调整图片加载策略,实现流量节省35%、首屏加载速度提升40%的显著效果。我们将…...
【前端并发请求控制:必要性与实现策略】
前端并发请求控制:必要性与实现策略 一、引言 在现代 Web 开发中,处理大量异步请求是一个常见场景。虽然浏览器和服务器都有其并发限制机制,但前端实现并发控制仍然具有其独特的价值和必要性。本文将深入探讨这个话题。 二、现有的并发限制…...
LeetCode 139. 单词拆分(Word Break) - 动态规划深度解析
文章目录 问题描述动态规划解法解法核心思路完整代码实现关键代码解析1. 数据结构初始化2. 动态规划数组3. 核心循环逻辑4. 子串区间理解(关键)示例演算复杂度分析算法优化点总结本文详细解析LeetCode 139题"单词拆分"的动态规划解法,涵盖核心思路、代码实现、区间…...
@Prometheus动态配置管理-ConsulConfd
文章目录 动态配置管理 Consul Confd**一、目标****二、架构组件****三、环境准备****四、配置 Consul**1. 注册监控目标(服务发现)2. 存储告警规则(KV 存储) **五、配置 Confd**1. 监控目标模板配置2. 告警规则模板配置 **六、配…...
CentOS7 + JDK8 虚拟机安装与 Hadoop + Spark 集群搭建实践
前言 在大数据时代,Hadoop 和 Spark 是两种非常重要的分布式计算框架。本文将详细介绍如何在 CentOS7 JDK8 的虚拟机环境中搭建 Hadoop Spark 分布式集群,包括 Spark Standalone 和 Hadoop Spark on YARN 两种模式,并提供具体的代码示例。…...

从OSI到TCP/IP:网络协议的演变与作用
个人主页:chian-ocean 文章专栏-NET 从OSI到TCP/IP:网络协议的演变与作用 个人主页:chian-ocean文章专栏-NET 前言网络发展LANWAN 协议举个例子: 协议的产生背景 协议的标准化OSI模型参考OSI各个分层的作用各层次的功能简介 TCP/…...

Stream流性能分析及优雅使用
文章目录 摘要一、Stream原理解析1.1、Stream总概1.2、Stream运行机制1.2.1、创建结点1.2.1、搭建流水线1.2.3、启动流水线 1.3、ParallelStream 二、性能对比三、优雅使用3.1 Collectors.toMap()3.2 findFirst(),findAny()3.3 增删元素3.4 ParallelStream 四、总结…...
iOS 电子书听书功能的实现
在 iOS 应用中实现电子书听书(文本转语音)功能,可以通过系统提供的 AVFoundation 框架实现。以下是详细实现步骤和代码示例: 核心步骤: 导入框架创建语音合成器配置语音参数实现播放控制处理后台播放添加进度跟踪 完整…...

【和春笋一起学C++】(十七)C++函数新特性——内联函数和引用变量
C提供了新的函数特性,使之有别于C语言。主要包括: 内联函数;按引用传递变量;默认参数值;函数重载(多态);模版函数; 因篇幅限制,本文首先介绍内联函数和引用…...
GitHub 趋势日报 (2025年06月02日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 1339 prompt-eng-interactive-tutorial 1080 courses 624 onlook 596 system-desi…...
卫星的“太空陀螺”:反作用轮如何精准控制姿态?
卫星的“太空陀螺”:反作用轮如何精准控制姿态? 在距地面500公里的轨道上,一颗遥感卫星正以7.8km/s的速度飞越目标区域。此时星载计算机发出指令:“滚转15并对准目标点”。短短数秒后,数吨重的卫星如同被无形之手推动般…...

proteus新建工程
1 点击新建工程 2 输入项目名,选择工程文件夹 3 下一步 4 不创建pcb 5 直接下一步 6 点击完成 7 创建完毕...
缓存击穿 缓存穿透 缓存雪崩
缓存击穿 缓存穿透 缓存雪崩 在日常开发中,我们经常会在后端引入 Redis 缓存来减轻数据库压力、提高访问性能。本文将逐点介绍 Redis 缓存常见问题及解决策略。 缓存穿透 问题描述: 缓存穿透指的是客户端请求的数据,在缓存中和数据库中都不…...

RTC实时时钟DS1338Z-33/PT7C433833WEX国产替代FRTC1338S
FRTC1338S是NYFEA徕飞公司推出的一种高性能的实时时钟芯片,它采用了SOP8封装技术,这种技术因其紧凑的尺寸和出色的性能而被广泛应用于各类电子设备中。 FRTC1338S串行实时时钟(RTC)是一种低功耗的全二进制编码十进制(BCD)时钟/日历外加56字节的非易失性…...