【模型复现】自制数据集上复现刚发布的最新 yolov9 代码


Code 链接: YOLOV9
Paper 链接: YOLOV9: Learning What You Want to Learn Using Programmable Gradient Information

1. 环境安装

# 创建环境
conda create -n yolov9 python=3.7

# 激活环境
conda activate yolov9 

# torch 安装
# 本机 CUDA 为 11.8,故安装了符合要求的 pytorch==1.13,这里需要自行根据 CUDA 版本安装适配的 torch 版本
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117

# pip 包
cd yolov9
pip install -r requirements.txt

2. 数据准备

  • 准备 yolo 格式的训练数据,数据集的文件结构为:
    my_datasets/
    ├─train.txt
    ├─val.txt
    ├─images
    │	├──train
    │	│	├──xxx.jpg		
    │	│	└──xxx.jpg		
    │	└──val
    │		├──xxx.jpg		
    │		└──xxx.jpg	
    └──labels
    	├──train
    	│	├──xxx.txt	
    	│	└──xxx.txt			
    	└──val
    		├──xxx.txt			
    		└──xxx.txt	
    

3. 模型复现

3.1 模型文件修改

  • yolov9/models/detect 路径下选择 yolov9-c.yaml 文件,修改 nc 为训练的标签数量
    在这里插入图片描述

3.2 数据文件修改

  • yolov9/data 路径下新建 my_datasets.yaml 文件,以路径下的 coco.yaml 为标准进行参数配置,
    • 修改 path 为数据存储路径
    • 修改 names 为对应的标签名
      在这里插入图片描述

3.3 预训练权重下载

  • README.md 文件中点击下述链接即可下载对应的模型权重文件
    在这里插入图片描述
  • 注意:截止目前只支持 C 和 E 版本的权重下载,S 和 M 版本预训练权重尚未发布!!!

3.4 训练超参数配置

  • yolov9 路径下进入 train_dual.py 文件进行超参数配置,常用需修改参数如下:
    • weights:预训练权重路径
    • cfg:模型配置文件路径
    • data:数据配置文件路径
    • epoches:训练 epoch 数量
    • batch-size:训练 batch-size 数量
    • imgsz:图片大小
    • optimizer:优化器
  • 训练中按需进行超参数配置
    在这里插入图片描述

3.5 模型训练

  • 单卡训练指令
    python train_dual.py
    
  • 多卡训练指令
    python -m torch.distributed.launch --nproc_per_node 8 train_dual.py
    
  • 在终端中运行训练命令,若看到下述界面,即成功复现!!!
    在这里插入图片描述

4. 模型验证

4.1 验证超参数配置

  • yolov9 路径下进入 val_dual.py 文件进行超参数配置,常用需修改参数如下:
    • data:数据配置文件路径
    • weights:训练完成的 best.pt 权重路径
    • batch-size:验证 batch-size 数量
    • imgsz:图片大小
    • task:验证数据集选择,如 valtest
  • 验证中按需进行超参数配置
    在这里插入图片描述

4.2 训练效果验证

  • 单卡验证指令
    python val_dual.py
    
  • 多卡验证指令
    python -m torch.distributed.launch --nproc_per_node 8 val_dual.py
    
  • 在终端中运行验证命令,若看到下述界面,即成功验证!!!
    在这里插入图片描述

5. 模型推理

5.1 推理超参数配置

  • yolov9 路径下进入 detect.py 文件进行超参数配置,常用需修改参数如下:
    • data:数据配置文件路径
    • weights:训练完成的 best.pt 权重路径
    • batch-size:验证 batch-size 数量
    • imgsz:图片大小
    • task:验证数据集选择,如 valtest
  • 推理中按需进行超参数配置
    在这里插入图片描述

5.2 模型推理

  • 单卡推理指令

    python detect.py
    
  • 多卡推理指令

    python -m torch.distributed.launch --nproc_per_node 8 detect.py
    
  • 在终端中运行推理命令,若看到下述界面,即成功推理!!!
    在这里插入图片描述

  • 可进入保存路径进行推理图片查看,推理示例如下:
    在这里插入图片描述

6. 踩坑记录

  • 报错:AttributeError: ‘list’ object has no attribute ‘device’
    在这里插入图片描述
  • 解决方法:
    在这里插入图片描述
    • 修改 utils/general.py 脚本中第 903 行,将 prediction = prediction[0] 修改为 prediction = prediction[0][1] 即可.
      在这里插入图片描述
  • 47
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 25
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值