当前位置: 首页 > article >正文

用自己的数据训练yolov11目标检测

文章目录

  • 概要
  • 理论知识
    • 整体架构流程
    • 架构优化
    • 多任务支持
    • 多参数体量
  • 操作实操
    • 环境配置
    • 数据准备
      • 数据标注
      • 数据放置路径
    • 训练
    • 预测

概要

在这里插入图片描述

YOLOv11 是 Ultralytics 团队于 2024 年 9 月 30 日发布的最新目标检测模型,延续了 YOLO 系列实时推理特性,同时通过架构优化与技术创新进一步提升了检测精度、速度和多功能性。以下理论知识部分包括核心特性、改进介绍,操作实操一步步讲怎么训练自己的数据集。

官网:https://github.com/ultralytics/ultralytics?tab=readme-ov-file
提示:以 停车场空位检测 公开数据集示例,可直接运行本人打包代码: 百度云分享:ultralytics-8.3.2.zip 链接: https://pan.baidu.com/s/18f-9tsgajL46czn5PUcUsA?pwd=hjuk 提取码: hjuk
在这里插入图片描述

理论知识

整体架构流程

参考于:https://blog.csdn.net/weixin_51832278/article/details/143631804
在这里插入图片描述

架构优化

  • C3K2 模块:取代了 YOLOv8 的 C2f 模块,通过分割特征图并应用 3x3 小核卷积优化计算效率,减少了参数量的同时提升了特征表达能力。
  • SPFF 模块:采用多尺度池化策略聚合不同分辨率的信息,显著增强了小目标检测能力,解决了早期版本对小物体敏感度不足的问题。
  • C2PSA 注意力机制:引入跨阶段部分空间注意力模块,通过关注特征图中的关键区域(如小目标或遮挡物体),提升了复杂场景下的检测精度。

多任务支持

  • 目标检测(无后缀):基础检测模型,支持旋转边界框(OBB)。
  • 图像分割(后缀 -seg):结合实例分割与语义分割,提升边缘精度。
  • 姿态估计(后缀 -pose):新增人体关键点检测,支持实时运动分析。
  • 图像分类(后缀 -cls):优化分类头结构,经过训练后能够对图像进行类别分类。
  • 多目标跟踪(集成 BoT-SORT 算法):支持视频流中的跨帧目标追踪。

多参数体量

灵活模型尺寸,提供 Nano(n)、Small(s)、Medium(m)、Large(l)、Extra-Large(x)五种尺寸,满足不同场景需求,以基础目标检测为例,各模型对比如下,x消耗时间是n的8倍。上述云盘代码中pretrain文件夹内已下载5类任务的m和x版。
在这里插入图片描述

操作实操

环境配置

在命令行安装requirements.txt即可,最容易出现不匹配的是tensorflow、pytorch、numpy,测试使用的环境如下:

cuda11.3
torch=1.12.0
tensorflow=2.10.0
numpy=1.23.4 
pandas=1.4.3
opencv-python=4.5.5

数据准备

数据标注

见本人另外一篇博客,darklabel数据标注:
https://blog.csdn.net/qq_36112576/article/details/145686376?spm=1001.2014.3001.5502

数据放置路径

我们创建一个统一的data文件夹来放置各类数据,注意images和labels文件名字需一一对应。

data/
├── 数据集1(pklot) /
│   ├── train/
│   │        ├── images/
│   │        └── labels/
│   └── valid/
│            ├── images/
│            └── labels/
└── 数据集2 /
│   ├── train/
│   │        ├── images/
│   │        └── labels/
│   └── valid/
│            ├── images/
│            └── labels/
└── 数据集3 / ........

根目录创建一个 datapklot.yaml 文件(与data文件夹同级),内容如下:
提示:yaml格式文件用于定义数据集的配置,包括数据路径、种类数量、类别名字等信息

train: data/pklot/train/images
val: data/pklot/valid/images

nc: 2
names: ['space-empty', 'space-occupied']

训练

在pycharm中运行train.py,内容如下
提示:D:\\code\\yolov11\\ultralytics-8.3.2\\datapklot.yaml需要绝对路径

# -*- coding: utf-8 -*-

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

if __name__ == '__main__':

    model = YOLO(model=r'ultralytics/cfg/models/11/yolo11.yaml')
    model.load('pretrain/yolo11m.pt')  # 加载预训练权重,改进或者做对比实验时候不建议打开,因为用预训练模型整体精度没有很明显的提升
    model.train(data=r'D:\\code\\yolov11\\ultralytics-8.3.2\\datapklot.yaml',
                imgsz=640,
                epochs=50,
                batch=4,
                workers=0,
                device='',
                optimizer='SGD',
                close_mosaic=10,
                resume=False,
                project='runs/train',
                name='exp',
                single_cls=False,
                cache=False,
                )
    # Evaluate model performance on the validation set
    metrics = model.val()

数据正常加载:
在这里插入图片描述
训练正常进行:
在这里插入图片描述
模型保存在文件夹runs/train/exp次数/weights 中
在这里插入图片描述

预测

在pycharm中运行detect.py,内容如下,以下model为实例分割,可替换为训练模型或上述提到的其他任务模型,检测结果同样保存在runs/中。

# -*- coding: utf-8 -*-

from ultralytics import YOLO

if __name__ == '__main__':

    # Load a model
    model = YOLO(model=r'pretrain/yolo11n-seg.pt')
    model.predict(source=r'123.mp4',
                  save=True,
                  show=True,
                  )

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


http://www.kler.cn/a/550153.html

相关文章:

  • 《DeepSeek训练算法:开启高效学习的新大门》
  • 计算机硬件组成+vmware虚拟机使用
  • CentOS 8 配置bond
  • 【射频仿真技巧学习笔记】Cadence修改图表背景、曲线颜色
  • 2025年02月17日Github流行趋势
  • Redis 08章——复制(replica)
  • Golang | 每日一练 (2)
  • 【Golang学习之旅】如何在Go语言中使用Redis实现分布式锁,并解决锁过期导致的并发问题?
  • Linux软件编程(3)
  • PCDN技术的工作原理
  • GitHub基本操作及Git简单命令
  • 队列+宽搜(典型算法思想)—— OJ例题算法解析思路
  • 亲测有效!使用Ollama本地部署DeepSeekR1模型,指定目录安装并实现可视化聊天与接口调用
  • 在Nodejs中使用kafka(三)offset偏移量控制策略,数据保存策略
  • 通过网线将Keysight DSOX4154A示波器信号传输至电脑的Step
  • 【jar包启动命令简单分享】
  • LeetCode1299
  • Selenium+Pytest自动化测试框架实战
  • springboot接入ShardingJDBC
  • 科技引领未来,中建海龙C-MiC 2.0技术树立模块化建筑新标杆