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

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

文章目录

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

概要

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

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

在这里插入图片描述

理论知识

整体架构流程

参考于: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
每张影像对应一张同名txt,txt内格式如下:

0 0.5623046875 0.5 0.629296875 0.9986111111111111
1 0.515625 0.42569444444444443 0.30234375 0.85

第一列为类别编号label;二列为中心横坐标与图像宽度比值;三列为中心纵坐标与图像高度比值y_center;四列为bbox宽度与图像宽度比值width;五列为bbox高度与图像高度比值height。图框计算公式为:
x_min = (x_center - width / 2) * image_width
y_min = (y_center - height / 2) * image_height
x_max = (x_center + width / 2) * image_width
y_max = (y_center + height / 2) * image_height

数据放置路径

我们创建一个统一的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/imagesnc: 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 YOLOif __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 setmetrics = model.val()

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

预测

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

# -*- coding: utf-8 -*-from ultralytics import YOLOif __name__ == '__main__':# Load a modelmodel = YOLO(model=r'pretrain/yolo11n-seg.pt')model.predict(source=r'123.mp4',save=True,show=True,)

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


http://www.mrgr.cn/news/91349.html

相关文章:

  • 国产FPGA开发板选择
  • 驱动开发、移植(最后的说法有误,以后会修正)
  • Go语言实现十大排序算法超细节图片讲解
  • 垃圾回收器
  • java连接redis
  • javacv将视频切分为m3u8视频并播放
  • 【分布式理论11】分布式协同之分布式事务(一个应用操作多个资源):从刚性事务到柔性事务的演进
  • 基于Python豆瓣电影数据可视化分析系统的设计与实现
  • DFS算法篇:理解递归,熟悉递归,成为递归
  • 【NLP 25、模型训练方式】
  • 用 Python 实现 DeepSeek R1 本地化部署
  • 中药细粒度图像分类
  • Spring Cloud Gateway中断言路由和过滤器的使用
  • 深入解析 iOS 视频录制(一):录制管理核心MWRecordingController 类的设计与实现
  • C++编程,#include <iostream>详解,以及using namespace std;作用
  • compose multiplatform写一个简单的阅读器
  • Ubuntu 22.04.5 LTS 安装企业微信,(2025-02-17安装可行)
  • 最新Apache Hudi 1.0.1源码编译详细教程以及常见问题处理
  • 【PCIe 总线及设备入门学习专栏 1.1 -- PCI 设备访问方法】
  • 用deepseek学大模型08-卷积神经网络(CNN)