【超详细】基于ultralytics代码训练YOLOv5/8/9/10/11s—Visdrone2019数据集

主要内容如下:

1、Visdrone2019数据集介绍
2、下载、制作YOLO格式训练集
3、模型训练、验证及预测

服务器:NVIDIA TITAN RTX 24G
运行环境:Python=3.8(要求>=3.8),torch1.12.0+cu113(要求>=1.8)
原始数据集百度AI stduio下载链接https://aistudio.baidu.com/datasetdetail/115729
Visdrone-YOLO格式数据集下载链接https://aistudio.baidu.com/datasetdetail/295374
ultralytics官网https://github.com/ultralytics/ultralytics
ultralytics版本:8.3.38
注意事项:ultralytics版本8.1.45开始,启用cache=True跑Visdrone2019精度会严重降低,8.1.44及之前正常!!!
🌹🌹🌹—>关于cache=True掉点问题,急需大佬指导,🌹🌹🌹

往期内容:

【超详细】跑通YOLOv8之深度学习环境配置1-Anaconda安装
【超详细】跑通YOLOv8之深度学习环境配置2-CUDA安装
【超详细】跑通YOLOv8之深度学习环境配置3-YOLOv8安装
【超详细】基于YOLOv8的PCB缺陷检测
【超详细】基于YOLOv8改进1-Drone-YOLO复现
【超详细】基于YOLOv8训练无人机视角Visdrone2019数据集

1 数据集介绍

1.1 简介

VisDrone数据集是由天津大学等团队开源的一个大型无人机视角的数据集,官方提供的数据中训练集是6471、验证集是548、测试集1610张。数据集共提供了以下12个类,分别是:‘忽略区域’, ‘pedestrian’, ‘people’, ‘bicycle’, ‘car’, ‘van’,‘truck’, ‘tricycle’, ‘awning-tricycle’, ‘bus’, ‘motor’, ‘others’,其中忽略区域、others是非有效目标区域,本项目中予以忽略;

1.2 数据集介绍和YOLO训练集制作

详情见文章1和2https://blog.youkuaiyun.com/weixin_45679938/article/details/142439297
数据标签分布如下
在这里插入图片描述

2 YOLOv5/8/9/10/11s模型训练及精度验证

2.1 模型训练

在ultralytics-main目录新建一个train.py脚本,内容如下:
注意:以下训练不使用cache=True,训练轮数为100epoch,不同的YOLO训练只需要修改预训练权重位置即可!!!

import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
from ultralytics import YOLO

# Load a model
# model = YOLO("yolov8s.yaml")  # build a new model from scratch
model = YOLO("yolov8s.pt")  # load a pretrained model (recommended for training)
# Use the model
model.train(data="/home/ubuntu/work/ct/datasets/visdrone2019/VisDrone.yaml", imgsz=640, epochs=100, workers=4, batch=8, close_mosaic=10)
metrics = model.val()  # evaluate model performance on the validation set

2.2 验证集和测试集精度验证

在ultralytics-main目录新建一个val.py脚本,内容如下:

import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
from ultralytics import YOLO

# Load a model
model = YOLO('weights/visdrone_v8/weights/best.pt')  # 加载训练好的权重
metrics = model.val(split='test')  # split='val'即为验证集精度验证,'test'为测试集
2.2.1 YOLOv11s结果如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2.2 YOLOv10s结果如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2.3 YOLOv9s结果如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2.4 YOLOv8s结果如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2.5 YOLOv5s结果如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2.6 YOLOv3-tiny结果如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3 模型预测

在ultralytics-main目录新建一个predict.py脚本,内容如下:

import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
from ultralytics import YOLO

# Load a model
model = YOLO("weights/visdrone_v8/weights/best.pt")  # load model
model.predict(source=r"visdrone2019/VisDrone2019-DET-test-dev/images/0000006_01111_d_0000003.jpg", save=True, save_conf=True, save_txt=True, name='output')

结果可视化如下
在这里插入图片描述

结论

由上可知,除YOLOv3-tiny之外,最新U版代码Visdrone2019数据集YOLOv5~11s模型训练100轮,mAP50都能取到0.4+的结果,继续训练仍有提示空间。后续再补上YOLOv6s和YOLOv7-tiny的结果。
另外,关于最后10轮关闭mosaic数据增强精度降低问题:
在这里插入图片描述

其他补充

YOLOv6s:

环境要求:与YOLOv8一致即可!
注意:将tools/train.py移动到主文件夹!
训练命令

cd /home/ubuntu/work/ct/yolov6_7/YOLOv6-main
base:
nohup python train.py --img-size 640 --batch 8 --epochs 100 --workers 4 --conf configs/yolov6s_finetune.py --data /home/ubuntu/work/ct/datasets/visdrone2019/VisDrone_v6.yaml --fuse_ab --device 1 > my_v6s.log 2>&1 &

mbla:
nohup python train.py --img-size 640 --batch 8 --epochs 100 --workers 4 --conf configs/mbla/yolov6s_mbla_finetune.py --data /home/ubuntu/work/ct/datasets/visdrone2019/VisDrone_v6.yaml --fuse_ab --device 1 > my_mbla.log 2>&1 &

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a6cbe23e12de4cd2aaaae7f72bb56507.png

YOLOv6s-mbla:

在这里插入图片描述

YOLOv7-tiny:

环境要求:单独装YOLOv7,numpy 小于 1.24.3,protobuf 小于 4.23.2,否则报错!
训练命令

nohup python train.py --workers 4 --device 0 --epochs 300 --batch-size 8 --data /home/ubuntu/work/ct/datasets/visdrone2019/VisDrone_v6.yaml --img 640 640 --cfg cfg/training/yolov7-tiny.yaml --weights 'yolov7-tiny.pt' --name yolov7-custom --hyp data/hyp.scratch.custom.yaml > my_v7.log 2>&1 &

在这里插入图片描述
在这里插入图片描述

### 使用 YOLOv11 训练 VisDrone2019 数据集 尽管当前提到的是 YOLOv5 的相关内容[^2],但可以推测 YOLOv11 应该继承并改进了其前代版本的功能。以下是基于现有知识以及类比 YOLOv5 的方法来描述如何配置和训练 YOLOv11。 #### 一、环境验证 在开始之前,需确认安装的框架能够正常运行。可以通过尝试加载预定义的数据集(如 COCO128),观察是否有预测结果输出以判断环境是否搭建成功[^1]。 #### 二、数据集准备 对于 VisDrone2019 数据集,需要按照模型的要求整理图像及其标注信息: - **路径结构**: 创建一个 YAML 文件用于指定数据的位置与类别标签。 ```yaml # visdrone.yaml path: ../datasets/VisDrone # 数据集根目录 train: VisDrone2019-DET-train/images # 训练图片位置 (相对于'path') val: VisDrone2019-DET-val/images # 验证图片位置 (相对于'path') test: VisDrone2019-DET-test-dev/images # 测试图片位置 (可选) names: 0: pedestrian # 行人 1: people # 多人群体 2: bicycle # 自行车 3: car # 小汽车 4: van # 货车 5: truck # 卡车 6: tricycle # 三轮车 7: awning-tricycle # 带遮阳棚的三轮车 8: bus # 巴士 9: motor # 摩托车 ``` 此部分直接沿用了已有资料中的设定,适用于大多数目标检测任务。 #### 三、参数调整 针对具体应用场景可能涉及多个超参的选择,下面列举几个重要选项供参考: - `imgsz`: 输入网络层大小,默认可能是 640×640; - `batch_size`: 批次数量依据 GPU 显存容量决定; - `epochs`: 总迭代次数取决于收敛速度及资源限制情况; - `weights`: 初始化权重来源,可以选择官方提供的预训练模型或者自定义路径; 例如启动脚本如下所示: ```bash python train.py --data visdrone.yaml \ --cfg yolov11.cfg \ --weights '' \ --name yolo_v11_visdrone_results \ --img-size 640 \ --batch-size 16 \ --epochs 50 ``` 上述命令行调用了特定于项目的配置文件(`visdrone.yaml`) 和架构设计文档 (`yolov11.cfg`)[^假设存在此类文件]. #### 四、注意事项 由于实际操作过程中可能会遇到各种问题,因此建议密切关注日志记录,并适时保存中间状态以便后续分析调试之用。 ---
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值