快速入门必看!RT-DETR手把手训练自己的数据集去跑实验,基于 ultralytics 仓库源码改进,配置虚拟环境,准备数据集、训练、验证、推理测试 ,实现0到1的完整教学过程。

本文介绍

本文介绍了使用Ultralytics框架训练RT-DETR模型的全流程。首先需要创建Python 3.10虚拟环境,安装指定版本的PyTorch和相关依赖包。然后准备数据集,修改配置文件,并详细介绍训练、验证和推理三个核心步骤的代码实现。训练阶段使用RTDETR类加载模型配置,设置训练参数;验证阶段评估模型性能;推理阶段可对图片、视频等进行预测。文中还提供了清华大学镜像源加速下载,以及详细的参数配置说明,帮助用户快速搭建RT-DETR目标检测模型。

RT-DETR创新改进目录:新RT-DETR 有效涨点改进目录 | 包含各种卷积、主干改进、各种注意力机制、Neck特征融合改进、损失函数、AIFI创新改进、独家创新、小目标检测、特殊场景检测等最全大论文及小论文必备创新改进点

全新RT-DETR创新改进专栏地址:最全RT-DETR创新改进高效涨点+永久更新中(至少500+改进)+高效跑实验发论文

RT-DETR论文解读,看这篇博客内容:

【CVPR2024 RT-DETR 全文解读】实时目标检测更快更准、帮助你更好去理解、适合小白快速入门了解RT-DETR模型

目录

本文介绍

一、下载最新版本ultralytics 源码

二、创新RT-DETR虚拟环境

第一步创建一个自己的虚拟环境:

第二步进入到自己的虚拟环境:

第三步:安装pytorch,建议不要安装太新版本

第四步:直接复制以下所有命令到控制台回车运行

三、准备自己的数据集

将自己数据集放到datasets文件夹里(若没有datasets文件夹就自己创建一下)

修改data.yaml 配置文件

四、Ultralytics调参 1:1还原RT-DETR官方版本实验环境,更方便改进,高效涨点!!!

(这步操作非常重要,可以参考我的这个调参教程)

五、训练自己的数据集

五、验证自己的模型效果

六、推理测试自己的模型


一、下载最新版本ultralytics 源码

下载源码地址:ultralytics/ultralytics: Ultralytics 🚀

二、创新RT-DETR虚拟环境

第一步创建一个自己的虚拟环境:

conda create -n new_name python=3.10

第二步进入到自己的虚拟环境:

conda activate new_name 

第三步:安装pytorch,建议不要安装太新版本

pytorch官网:Previous PyTorch Versions

pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu121

第四步:直接复制以下所有命令到控制台回车运行

pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install torchsummary -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install onnx==1.14.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install onnxruntime==1.15.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pycocotools==2.0.7 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install PyYAML==6.0.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install scipy==1.13.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install onnxsim==0.4.36 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install onnxruntime-gpu==1.18.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install timm==1.0.7 thop efficientnet_pytorch==0.7.1 einops grad-cam==1.5.4 dill==0.3.6 albumentations pytorch_wavelets==1.3.0 tidecv PyWavelets -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install mmcv==2.2.0 -f https://download.openmmlab.com/mmcv/dist/cu121/torch2.3/index.html

三、准备自己的数据集

如果自己没有数据集,可以去这个官网上找公共数据集去练习:Roboflow Datasets

将自己数据集放到datasets文件夹里(若没有datasets文件夹就自己创建一下)

修改data.yaml 配置文件

四、Ultralytics调参 1:1还原RT-DETR官方版本实验环境,更方便改进,高效涨点!!!

(这步操作非常重要,可以参考我的这个调参教程)

超详细调参数教程、1:1还原RT-DETR最佳性能

【RT-DETR创新改进】改进前必看!对Ultralytics调参, 1:1还原RT-DETR官方版本实验参数,使用原汁原味的RT-DETR模型,才能高效跑实验、高效涨点、收割小论文、完成大论文!!!

五、训练自己的数据集

创健train.py脚本

import warnings
warnings.filterwarnings('ignore')
from ultralytics import RTDETR

# 模型配置文件,以相对路径调用,也可以使用绝对路径
model_yaml_path = './ultralytics/cfg/models/rt-detr/rtdetr-r18.yaml'
#数据集配置文件,以相对路径调用,也可以使用绝对路径
data_yaml_path = './datasets/data.yaml'
if __name__ == '__main__':
    model = RTDETR(model_yaml_path)
    # model.load('rtdetr-l.pt') # 加载预训练权重
    #训练模型
    results = model.train(data=data_yaml_path,
                          imgsz=640,
                          epochs=200,
                          batch=8,
                          workers=0,
                          project='runs/RT-DETR/train',
                          name='exp',
                          )

五、验证自己的模型效果

创健val.py脚本

import warnings
warnings.filterwarnings('ignore')
from ultralytics import RTDETR

# 训练好的模型配置文件,以相对路径调用,也可以使用绝对路径
model_yaml_path = './runs/RT-DETR/train/exp/weights/best.pt'  #这行使用训练和的best.pt文件

#数据集配置文件,以相对路径调用,也可以使用绝对路径
data_yaml_path = './datasets/data.yaml'
if __name__ == '__main__':
    model = RTDETR(model_yaml_path)
    model.val(data=data_yaml_path,
              split='val',
              imgsz=640,
              batch=4,
              # save_json=True, # 这个保存coco精度指标的开关
              project='runs/RT-DETR/val',
              name='exp',
              )

六、推理测试自己的模型

创健predict.py脚本

import warnings
warnings.filterwarnings('ignore')
from ultralytics import RTDETR

if __name__ == '__main__':
    model = RTDETR('./rtdetr-l.pt') # 使用自己训练好的权重文件
    model.predict(
        source='./ultralytics/assets/bus.jpg',  # 预测的数据源,可以是图片、文件夹、视频路径等
        imgsz=640,                     # 图片的输入尺寸
        project='runs/detect',         # 预测结果保存的项目目录
        name='exp',                    # 子目录名(最终保存路径为 runs/detect/exp)
        save=True,                     # 是否保存预测后的图片
        # visualize=True,              # 是否可视化中间特征图(默认注释掉,即不启用)
        # show_conf=False,             # 是否显示置信度(关闭显示)
        # show_labels=False,           # 是否显示标签(关闭显示)
    )

<think>我们使用ultralytics库中的RTDETR模型训练自定义数据集 步骤: 1. 安装ultralytics库(如果未安装) 2. 准备数据集,格式为YOLO格式(包含images和labels文件夹,以及一个dataset.yaml文件) 3. 编写训练代码 注意:RT-DETRUltralytics库支持的一种目标检测模型。 下面是一个训练RT-DETR模型的示例代码: 首先,确保安装了最新版本的ultralytics库: pip install ultralytics 然后,创建一个Python脚本,比如train_rtdetr.py,内容如下: </think>### RT-DETR训练自定义数据集实现(基于Ultralytics库) 以下是使用Ultralytics训练RT-DETR模型的完整代码示例。请确保已安装`ultralytics==8.0.196+`版本(`pip install ultralytics --upgrade`),并准备好YOLO格式的数据集: ```python from ultralytics import RTDETR # 初始化RT-DETR模型(可选预训练权重:'rtdetr-l.pt'/'rtdetr-x.pt') model = RTDETR('rtdetr-l.pt') # 使用官方预训练权重初始化 # 训练配置 results = model.train( data='your_dataset.yaml', # 数据集配置文件路径 epochs=100, # 训练轮次 imgsz=640, # 输入图像尺寸 batch=16, # 批次大小(根据GPU调整) device='0', # 使用GPU 0(多卡用'0,1,2,3') project='rtdetr_train', # 训练结果保存目录 name='exp1', # 实验名称 optimizer='AdamW', # 优化器(可选SGD/Adam) lr0=0.0001, # 初始学习率 warmup_epochs=5, # 学习率预热轮次 weight_decay=0.0005, # 权重衰减 dropout=0.1, # Dropout比例 seed=42 # 随机种子 ) # 验证训练结果 metrics = model.val() # 默认使用验证集 print(f"mAP50-95: {metrics.box.map}") # 输出评估指标 # 导出为ONNX格式(可选) model.export(format='onnx') # 保存到rtdetr_train/exp1/weights/ ``` ### 关键步骤说明: 1. **数据集准备**: - 创建`your_dataset.yaml`文件,示例内容: ```yaml path: /dataset_root train: images/train # 训练集路径 val: images/val # 验证集路径 names: 0: class1 1: class2 ... # 类别名称 ``` 2. **参数调整建议**: -数据集:降低`batch`大小,增加`epochs`(200+) - 过拟合时:增大`dropout`(0.2-0.5),添加`weight_decay` - 学习率策略:使用`cos_lr`调度器(在`train()`中添加`cos_lr=True`) 3. **高级功能**: - 冻结骨干网络:`model.train(freeze=10)`(冻结前10层) - 混合精度训练:添加`amp=True`减少显存占用 - 恢复训练:`model = RTDETR('last.pt').train(resume=True)` > **注意**:训练会自动保存最佳权重(`best.pt`)和最后权重(`last.pt`)到`rtdetr_train/exp1/weights/`目录。训练日志可通过TensorBoard查看。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值