yolov8学习笔记(二)模型训练

目录

yolov8的模型训练

1、制作数据集(标记数据集)

2、模型训练(标记数据集、参数设置、跟踪模型随时间的性能变化)

2.1、租服务器训练

2.2、加训练参数

2.3、看训练时的参数(有条件,就使用TensorBoard)

3、模型验证

4、使用模型进行推理预测(视频、图像、视频流等)

5、模型转换(pt转为onnx等)

6、基准测试

7、评估训练结果

笔记下载


yolov8的模型训练

训练demo:windows使用YOLOv8训练自己的模型(0基础保姆级教学)_windows10使用yolov8常见问题-CSDN博客

1、制作数据集(标记数据集)

数据集概述 -Ultralytics YOLOv8 文档探索Ultralytics 支持的各种计算机视觉数据集,以进行物体检测、分割、姿态估计、图像分类和多物体跟踪。icon-default.png?t=N7T8https://docs.ultralytics.com/zh/datasets/#_8

数据集——增强与制作:

yolov8标签制作,数据增强指定网站。

​​​​​​Roboflow: Give your software the power to see objects in images and videoEverything you need to build and deploy computer vision models.https://roboflow.com/?ref=ultralyticsEverything you need to build and deploy computer vision models.icon-default.png?t=N7T8https://roboflow.com/?ref=ultralytics

使用教程:

注意:他这个网站标记的标签,是按照英语字母的顺序排的(所以我们平时也要养成好习惯,按照英语字母排类别)

比如:

bus、car、van——这样就可以了~(bus索引为0,car为1,van为2,以此类推~)

yolov8 roboflow 数据集增强与制作_哔哩哔哩_bilibiliyolov8标签制作,数据增强指定网站。https://roboflow.com/?ref=ultralytics, 视频播放量 978、弹幕量 0、点赞数 27、投硬币枚数 12、收藏人数 60、转发人数 7, 视频作者 deep_learing, 作者简介 深度学习,相关视频:【yolov8从入门到大神】01、课程基本介绍,roboflow模型辅助打标签,YOLOV9 is comming!我们一起来看看新提出的RepNCSPELAN与C2f有什么区别,YOLOV8项目已集成RepNCSPELAN,yolov8 bottleneck添加注意力机制,iPhone轻松搞定!用手机制作高级RGB-D数据集!,C#环境下部署YOLOv8模型,目标检测,超级简单,注意力机制添加总结,Yolov8源码解析(一),c2f添加注意力机制SA,yolov8检测头原理部分icon-default.png?t=N7T8https://www.bilibili.com/video/BV1o64y1J76p

在这里顺便记录简单标记标签的开源项目:labelimg(使用方法)

蓝奏云下载链接:labelImg-master.zip - 蓝奏云

github项目链接:labelImg - GitHub

大致用法:windows使用YOLOv8训练自己的模型

W是标记快捷键

A是切换为上一张

D是切换位下一张

记得自动保存~

记得去predefined_classes.txt里面修改自己需要的类别

再进阶的话,就用其他好用的工具

比如:自动标注项目AnyLabeling上手体验和教程_哔哩哔哩_bilibili

2、模型训练(标记数据集、参数设置、跟踪模型随时间的性能变化)

2.0用自己电脑的GPU训练:

一站式安装对应显卡版本的cuda和torch(windows)-CSDN博客文章浏览阅读1.1k次,点赞16次,收藏27次。1、安装python环境2、安装VS的C++环境(因为CUDA在安装时,需要VS的里面的工具包来编译。3、安装cuda4、安装pytorch。https://blog.csdn.net/Pan_peter/article/details/136125766用CPU也可以,不过比较慢

火车 -Ultralytics YOLOv8 文档使用Ultralytics YOLO 训练YOLOv8 模型的分步指南,包括单 GPU 和多 GPU 训练示例icon-default.png?t=N7T8https://docs.ultralytics.com/zh/modes/train/#m1m2-mps

多GPU训练

苹果M1和M2 MPS训练

恢复中断的训练

在训练YOLOv8模型时,跟踪模型随时间的性能变化可能非常有价值。

UltralyticsYOLO提供对三种类型记录器的支持 CometClearMLTensorBoard

2.1、租服务器训练

使用教程:云服务器训练YOLOv8-训练&改进教程_哔哩哔哩_bilibili

  1. 训练网址AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDLAutoDL为您提供专业的GPU租用服务,秒级计费、稳定好用,高规格机房,7x24小时服务。更有算法复现社区,一键复现算法。icon-default.png?t=N7T8https://www.autodl.com (找到适合的Torch版本,自带Conda)现在需要最新的yolov8需要 torch>=2.0.0 for deterministic training.

  1. 购买服务器(yolo训练一般显卡4G就够了,不过那里面一般都是12G以上)
  2. 上传训练文件(yolo固定版本库、data数据集、原始模型、train.py

  1. 执行python xxx.py (缺少什么库直接下载就行,缺不了什么,一般就是cv,np,pandas、scipy、seaborn)
  2. 如果缺少cvnp,pandas会无法训练
  3. 如果缺少scipy、seaborn会无法生成一些结果!

注意:可以用【后台运行python】的方法(防止我们远程断网,导致训练中断!)

可以看看这个文章:

Linux——让程序在后台运行(四种方法+使用推荐)_linux 后台运行-CSDN博客文章浏览阅读10w+次,点赞98次,收藏385次。第一种方法不推荐使用第二种方法——在需要查看日志的情况下,建议使用(无需在关闭的那种)第三种方法——在开启后,还需要关闭或还需要输入一些命令的时候下第四种方法——虽然需要学习的时间比前面几种长,但是学会之后,会很方便。_linux 后台运行https://blog.csdn.net/Pan_peter/article/details/128875714

pip install numpypip install opencv-pythonpip install pandaspip install scipypip install seaborn

火车 -Ultralytics YOLOv8 文档

YOLOv8训练参数详解(全面详细、重点突出、大白话阐述小白也能看懂)-CSDN博客文章浏览阅读3w次,点赞75次,收藏607次。model: 模型文件的路径。这个参数指定了所使用的模型文件的位置,例如 yolov8n.pt 或 yolov8n.yaml。模型文件包含了已经训练好的模型的权重和结构。data: 数据文件的路径。该参数指定了数据集文件的位置,例如 coco128.yaml。数据集文件包含了训练和验证所需的图像、标签和其他数据的信息。epochs: 训练的轮数。这个参数确定了模型将会被训练多少次,每一轮都遍历整个训练数据集。训练的轮数越多,模型对数据的学习就越充分,但也增加了训练时间。_yolov8训练参数https://blog.csdn.net/qq_37553692/article/details/130898732

2.2、加训练参数

data: 训练数据集的配置文件路径,一般为.yaml格式,包含了数据集路径、类别数、训练和验证集的划分等信息。

epochs(训练的轮数): 对于新数据集,可以逐渐增加轮数,以找到更佳的性能。

patience(早停的等待轮数): 用于控制在训练过程中是否进行早停,防止过拟合。

device(训练运行的设备): 指定模型训练所使用的设备,如GPUCPU

workers(数据加载时的工作线程数): 在数据加载过程中,可以使用多个线程并行地加载数据,以提高数据读取速度。

batch(每个批次中的图像数量): 一般认为越大越好,但受限于显存空间。

imgsz(输入图像的尺寸): 如果数据集中存在大量小对象,增大输入图像的尺寸可以使得这些小对象从高分辨率中受益,更好的被检测出。一般为正方形,常见大小为416512640等。

savesave_period(保存检查点的频率): 用于保存训练的检查点和预测结果,在训练不稳定中断后可以通过resume重新启动。

cache(数据加载时是否使用缓存): 控制数据加载时是否使用缓存,以提高训练过程中的数据读取速度。

seed: 随机种子,用于实现可重复性。通过设置相同的随机种子,可以使得每次运行时的随机过程保持一致,以便于结果的复现

name: 实验名称。该参数为当前训练任务指定一个名称,以便于标识和区分不同的实验。

optimizer: 选择要使用的优化器。优化器是深度学习中用于调整模型参数以最小化损失函数的算法。

deterministic: 是否启用确定性模式。启用确定性模式后,保证在相同的输入下,每次运行的结果是确定的,不会受到随机性的影响。

rect: 使用矩形训练,每个批次进行最小填充。设置为 True 后,训练过程中使用矩形形状的图像批次,并进行最小化填充。

cos_lr: 使用余弦学习率调度器。如果设置为 True,将使用余弦函数调整学习率的变化情况。

close_mosaic: 禁用mosaic增强的最后第几个轮次。可以指定一个整数值,表示在训练的最后第几个轮次中禁用mosaic增强。

2.3、看训练时的参数(有条件,就使用TensorBoard

主要是TensorBoard还阔以看【网络结构~】

  1. Epoch:表示当前正在进行的训练轮数。每个 epoch 表示模型已经使用整个训练数据集进行了一次完整的训练。
  2. GPu mem:表示当前 GPU 的内存使用情况,以 GB 为单位。这个参数可以告诉你模型在训练期间所使用的 GPU 内存量。如果内存使用过高,可能需要调整模型或减少批量大小。
  3. box loss:表示当前训练轮次中物体检测(bounding box)的损失值。物体检测损失是通过比较模型预测的边界框位置与实际边界框位置之间的差异来计算的。
  4. cls loss:表示当前训练轮次中的分类损失值。分类损失是通过比较模型预测的类别标签与实际类别标签之间的差异来计算的。
  5. dfl loss:表示当前训练轮次中的关键点检测(landmark detection)的损失值。关键点检测损失是通过比较模型预测的关键点位置与实际关键点位置之间的差异来计算的。
  6. Instances:表示当前训练轮次中处理的实例数量。这个参数用于衡量训练过程中处理的图像或样本数量。
  7. Class:表示目标类别的名称。
  8. Images:表示测试集中包含该类别的图像数量。
  9. Instances:表示测试集中该类别的实例数量。
  10. Box(P):表示该类别的目标检测精确率(Precision),即正确预测的边界框数量与预测的边界框总数之间的比例。
  11. R:表示该类别的目标检测召回率(Recall),即正确预测的边界框数量与实际边界框总数之间的比例。
  12. mAP50:表示该类别的平均精确度(mean Average Precision)值,计算方式是在 IoU 阈值为 0.5 的条件下,对每个类别进行精确度的平均计算。
  13. mAP50-95:表示该类别的平均精确度值,在 IoU 阈值从 0.5 0.95 变化时,对每个类别进行精确度的平均计算。

训练完成:

2.4、断续训练

用训练出来的last.pt继续训练

就是在参数中加入:resume=True

官网教程:火车 -Ultralytics YOLOv8 文档

model = YOLO('./last.pt')  # load a partially trained model# Train the modelmodel.train(data='./data/data.yaml', epochs=500, imgsz=640, workers=0, name='car', batch=32, resume=True)

3、模型验证

Val -Ultralytics YOLOv8 Docs

在机器学习流程中,验证是一个关键步骤,让您能够评估训练模型的质量。

4、使用模型进行推理预测(视频、图像、视频流等)

预测 -Ultralytics YOLOv8 文档了解如何在各种任务中使用YOLOv8 预测模式。了解不同的推理源,如图像、视频和数据格式。icon-default.png?t=N7T8https://docs.ultralytics.com/zh/modes/predict/#_4

YOLOv8 可以处理推理输入的不同类型,如下表所示。来源包括静态图像、视频流和各种数据格式。

5、模型转换(pt转为onnx等)

基准 -Ultralytics YOLOv8 文档了解如何剖析YOLOv8 在各种导出格式中的速度和准确性;深入了解 mAP50-95、准确性_top5 指标等。icon-default.png?t=N7T8https://docs.ultralytics.com/zh/modes/benchmark/#_6

6、基准测试

7、评估训练结果

评估训练结果:

Yolov8目标识别——模型训练结果可视化图分析与评估训练结果_yolov8可视化-CSDN博客文章浏览阅读1.4k次,点赞22次,收藏41次。Yolov8在训练完成之后,会在run目录下把训练的过程一些参数与结果示意图保存下来,这里面包含是目标检测性能指标,如下图:表示正确预测的目标数量与总预测数量的比率。表示模型正确预测为正样本的样本数量占所有预测为正样本的样本数量的比例。表示模型正确预测为正样本的样本数量占所有实际正样本的样本数量的比例。综合考虑精确率和召回率,是精确率和召回率的调和平均数。衡量模型检测出的区域与实际目标区域的重叠程度。在目标检测中,AP通常指Precision-Recall曲线下的面积,用于综合评估模型的性能。_yolov8可视化https://blog.csdn.net/matt45m/article/details/135620472

笔记下载

https://wwm.lanzout.com/isyZD1p3puyj
密码:hoab

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/704647.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Open CASCADE学习|视图

目录 Mainwin.h Mainwin.cpp Mainwin.h ​#pragma once#include <QtWidgets/QMainWindow>#include "Displaywin.h"#include "OCC.h"class Mainwin : public QMainWindow{ Q_OBJECTpublic: Mainwin(QWidget* parent nullptr); ~Mainwin();​pri…

【Java程序设计】【C00277】基于Springboot的招生管理系统(有论文)

基于Springboot的招生管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的招生管理系统 本系统分为系统功能模块、管理员功能模块以及学生功能模块。 系统功能模块&#xff1a;在系统首页可以查看首页、专业…

opengl 学习纹理

一.纹理是什么&#xff1f; 纹理是一个2D图片&#xff08;甚至也有1D和3D的纹理&#xff09;&#xff0c;它可以用来添加物体的细节&#xff1b;类似于图像一样&#xff0c;纹理也可以被用来储存大量的数据&#xff0c;这些数据可以发送到着色器上。 采样是指用纹理坐标来获取纹…

机器学习简单介绍

&#xff08;本文为简单介绍&#xff0c;内容源于网络和AI&#xff09; 当今世界,技术与创新的步伐日新月异。在各类智能技术当中,如果说有一个绝对不容忽视的关键词,那就是“机器学习”(Machine Learning)。它是人工智能领域的核心分支,使得机器获得从数据中学习、进而做出决…

Modern C++ std::variant的6个特性+原理

1 前言 上一节《Modern C std::variant的实现原理》我们简单分析了std::variant的实现原理&#xff0c;其实要学好C编程&#xff0c;除了看优秀的代码包括标准库实现&#xff0c;读文档也是很便捷且必须的一种办法。 本节我将逐条解析文档中的五个特性&#xff0c;解析的办法有…

H12-821_77

77.如图所示的交换网络&#xff0c;所有交换机都运行了STP协议&#xff0c;当拓扑稳定后&#xff0c;在以下哪台交换机上修改配置BPDU的发送周期&#xff0c;可以影响STD配置BPDU的发送周期&#xff1f; A.STC B.SWD C.SWA D.SWB 答案&#xff1a;C 注释&#xff1a; 在根桥上…

(十九)devops持续集成开发——jenkins的一些常用插件和工具的安装

前言 本节内容会着重介绍jenkins持续集成开发工具的一些常用插件安装以及全局工具的配置安装&#xff0c;并说明其主要作用。在开始插件和工具安装之前&#xff0c;我们要保证可以正常访问网络&#xff0c;并且使用国内的插件更新地址&#xff0c;便于插件的正常安装。官方的地…

【JavaEE】网络原理: HTTPS协议相关内容

目录 HTTPS 是什么 HTTPS 的工作过程 对称加密 非对称加密 引入证书 理解数据签名 通过证书解决黑客攻击 HTTPS 是什么 HTTPS也是一个应用层协议, 是在HTTP协议的基础上引入了一个加密层. HTTP协议内容都是按照文本的方式明文传输的, 这就导致在传输过程中出现一些被篡…

蜂邮EDM-新手教程-新手也能使用

一、登录注册账号&#xff0c;注册登录地址&#xff1a;fengemail.com 二、配置邮箱 选择“账号设置”——“邮箱设置”进行发信邮箱配置。每个账号将默认存在一个“系统默认接口”&#xff0c;点击右侧的编辑按钮即可对该配置进行修改。 注&#xff1a;发信邮箱暂不支持个人…

抖音数据抓取工具|抖音视频下载工具

抖音数据抓取工具是一款基于C#开发的高效实用软件&#xff0c;旨在为用户提供便捷的抖音视频数据获取和处理功能。该工具不仅支持通过关键词进行搜索抓取&#xff0c;还能够通过分享链接进行单个视频的抓取和下载&#xff0c;为用户提供了多样化的数据采集方式。 主要功能模块…

SpringMVC 学习(四)之获取请求参数

目录 1 通过 HttpServletRequest 获取请求参数 2 通过控制器方法的形参获取请求参数 3 通过 POJO 获取请求参数&#xff08;重点&#xff09; 1 通过 HttpServletRequest 获取请求参数 public String handler1(HttpServletRequest request) <form action"${pageCont…

安装python的docker库

文章目录 一、在线安装二、制作离线安装包2.1 报错处理 一、在线安装 先确定是否有pip命令。 yum install python-pip直接安装。 pip install docker查看docker库。 pip list二、制作离线安装包 在有互联网的环境下直接安装。 #docker为下载下来的包名。 pip download do…

typecho 给文章创建目录树

受益于 shortcode 短代码插件和泽泽短代码中目录树的显示样式&#xff0c;形成了自己实现添加文章目录的思路&#xff1a; 一、文章目录树的结构 <div id"toc"><div class"toc-left"><div class"toc-btn" type"button&quo…

搜维尔科技:用于运动科学的 OptiTrack,范围标记、步态捕捉!

OptiTrack 系统提供世界领先的测量精度和简单易用的工作流程&#xff0c;为研究人员和生物力学师的研究提供理想的 3D 跟踪数据。 对所有主要数字测力台、EMG 和模拟设备的本机即插即用支持为研究人员提供了在 Visual3D、MotionMonitor、MATLAB 和其他第三方生物力学软件包中进…

Android加载富文本

直接用webview加载&#xff1a; package com.example.testcsdnproject;import androidx.appcompat.app.AppCompatActivity;import android.annotation.SuppressLint; import android.graphics.Color; import android.os.Bundle; import android.util.Log; import android.webk…

Nexus Repository Manager

Nexus Repository Manager https://s01.oss.sonatype.org/#welcome https://mvnrepository.com/-CSDN博客

Ubuntu22.04环境下载安装中文搜狗输入法

0、查看CPU系统架构 确定架构后&#xff0c;下载对应的安装包&#xff0c;否则无法正常安装应用程序 1、进入搜狗拼音输入法官网&#xff0c;下载搜狗输入法 搜狗输入法-首页搜狗拼音输入法官网下载&#xff0c;荣获多个国内软件大奖的搜狗拼音输入法是一款打字更准、词库更大…

3、函数定义,函数调用,this指向总结,闭包

一、函数的定义方式 1、函数声明 function demo1() {var num 12var result Math.pow(num,2)//指数函数return result }2、函数表达式 var demo2 function (x,y) { //内置对象arguments前面的两个参数 是 x,yvar sum arguments[0] arguments[1]console.log(sum) }3、构…

精品基于SpringBoot+Vue的常规应急物资管理系统

《[含文档PPT源码等]精品基于SpringBootVue的常规应急物资管理系统[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; Java——涉及技术&#xff1a; 前端使用技术&#xff…

计网Lesson15 - TCP可靠传输

文章目录 1. 停止等待ARQ协议2. 连续ARQ协议与滑动窗口协议 1. 停止等待ARQ协议 ARQ&#xff08;Automatic Repeat–reQuest&#xff09;自动重传请求 几种重传情况 发送端丢失 发送方过久没有接收到接收方的确认报&#xff0c;这种情况会触发超时重传机制&#xff0c;发送方…