【玩转全栈】----YOLO8训练自己的模型并应用

继上篇:

【玩转全栈】---基于YOLO8的图片、视频目标检测-CSDN博客

        相信大家已经可以训练一些图片和视频了,接下来我将为大家介绍如何训练自己的特定模型,并用其进行检测

目录

准备数据

图片数据

标识数据

配置文件

运行

测试训练结果

存在的问题

准备数据

图片数据


首先要准备一些图片数据,其中包含一些相同的要素,这里我就拿王者荣耀进行演示。

我在B站下载了个视频,对其中英雄形象比较明显的进行的截屏,截了25张:

截图:

标识数据

        然后需要这25张图片的标识数据,需要用标识工具,我用的大发YOLO标注工具,他是要收费的,如果大家需要的话,找我私,我会发给你,我博客上面不好分享,怕被告。

        使用也非常简单,先导入图片,勾出人物框,添加类型,确定类型,保存标注即可。这样,会自动创建该图片的标注文件,大家一张一张标注好即可。

配置文件

创建下图所示目录:

xun可以自己随便取

将图片数据分别复制进imgs中的train和val中,再将标记文件分别复制进labels中的train和val中。

再创建一个.yaml文件

内容如下:

path: D:\.idea\YOLO\Yolo8\yolo8_learn\xun  #数据集根目录
train: images/train  #训练集图片路径
val: images/val  #验证集图片路径
nc: 10  #类别数量
names: ['千年老茧','周瑜','梦琪','百里守约','张飞','廉颇','赵云','海月','夏洛特','公孙离']  #类别名称

按要求写即可。

创建一个py文件,文件内容如下:

# 开始训练模型from ultralytics import YOLOimport os
os.environ['CURL_CA_BUNDLE'] = ""
# 加载预训练模型
model = YOLO('yolo8l.pt')
# 开始训练模型
model.train(data='data.yaml',  #训练数据集epochs=500,  #训练轮次imgsz=640,  #输入图片尺寸(会转换为该尺寸)batch=32,  #每次训练的批量device='cpu'   #GPU更快
)
print("训练结束")

训练模型中的参数都是用的官方推荐参数,大家直接抄就行,具体参数解释也在后面。

当然,用CPU训练会非常满,尤其在一些参数还比较大的时候,我们测试用可以稍微调小点,比如这样:

model.train(data='data.yaml',  #训练数据集epochs=100,  #训练轮次imgsz=320,  #输入图片尺寸(会转换为该尺寸)batch=32,  #每次训练的批量device='cpu'   #GPU更快
)

运行

运行.py文件,出现以下画面:

这表示正在训练,Epach是进程。

训练结束后会得到一个训练文件:

在目录下的weights文件夹中的best.pt,就是训练完的最优模型(适用于最终运用)

last.pt 是训练的最后一轮模型(适用于继续训练),即可以放在这个位置:

# 开始训练模型from ultralytics import YOLOimport os
# import certifi
# print(certifi.where())os.environ['CURL_CA_BUNDLE'] = ""
# 加载预训练模型
model = YOLO('last.pt')
# 开始训练模型
model.train(data='data.yaml',  #训练数据集epochs=500,  #训练轮次imgsz=320,  #输入图片尺寸(会转换为该尺寸)batch=8,  #每次训练的批量device='cpu'   #GPU更快
)
print("训练结束")

测试训练结果

将best.pt作为训练模型,对该视频进行训练

# 检测模型结果
from ultralytics import YOLO
# 模型训练完自动保存到D:\.idea\YOLO\Yolo8\yolo8_learn\runs\detect\train6\weights
# best.pt  训练完的最优模型(适用于最终运用)
# last.pt  训练的最后一轮模型(适用于继续训练)
# 加载自己训练好的模型
model = YOLO(r'D:\.idea\YOLO\Yolo8\yolo8_learn\runs\detect\train6\weights\best.pt')
# 开始检测
model('2.mp4',show=True,save=True)

静静等待训练结束。

训练结果:

YOLO8识别王者荣耀视频

存在的问题

可以看到训练结果很一般,主要有以下几个原因:

1、王者荣耀技能特效太花,英雄动作太多,影响检测;

2、训练图片量比较少;

3、贪图时间,一些参数调得较小。

4、(个人因素)我也是训练完才发现,我的配置文件表和标注软件上的设置标注顺序不一样,这就导致只有千年老茧和赵云是符合的,其他的英雄顺序都乱了,希望大家能注意到这点。

下篇博客将更新一些更高阶的玩法,敬请期待。

感谢您的三连!!!

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

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

相关文章

OpenCV文字绘制支持中文显示

OpenCV版本:4.4 IDE:VS2019 功能描述 OpenCV绘制文本的函数putText()不支持中文的显示,网上很多方法推荐的都是使用FreeType来支持,FreeType是什么呢?FreeType的官网上有介绍 FreeType官网 https://www.freetype.or…

梯度下降法 (Gradient Descent) 算法详解及案例分析

梯度下降法 (Gradient Descent) 算法详解及案例分析 目录 梯度下降法 (Gradient Descent) 算法详解及案例分析1. 引言2. 梯度下降法 (Gradient Descent) 算法原理2.1 基本概念2.2 算法步骤2.3 梯度下降法的变种3. 梯度下降法的优势与局限性3.1 优势3.2 局限性4. 案例分析4.1 案…

GPSd定时检测保活TCP GPS源

为了在 TCP GPS 源丢失连接时自动重新连接,可以编写一个监控脚本,定期检查 gpspipe 输出中的 TCP 源数据是否存在。如果检测到丢失,则使用 gpsdctl 或直接命令重新添加 TCP 源。 1、工具 检查并安装必要工具,本例需要使用 gpspi…

我谈《概率论与数理统计》的知识体系

学习《概率论与数理统计》二十多年后,在廖老师的指导下,才厘清了各章之间的关系。首先,这是两个学科综合的一门课程,这一门课程中还有术语冲突的问题。这一门课程一条线两个分支,脉络很清晰。 概率论与统计学 概率论…

ElasticSearch JavaRestClient查询之快速入门

文章目录 查询操作流程概述构建并发起请求1. 创建请求对象2. 设置请求体3. 发送请求 查询结果的解析1. 解析结果结构2. 获取总条数3. 获取命中的数据 完整示例代码总结 查询操作流程概述 Elasticsearch 查询操作大致可以分为两个部分: 构建并发起请求:…

Quartus:开发使用及 Tips 总结

Quartus是Altera(现已被Intel收购)推出的一款针对其FPGA产品的综合性开发环境,用于设计、仿真和调试数字电路。以下是使用Quartus的一些总结和技巧(Tips),帮助更高效地进行FPGA项目开发: 这里写目录标题 使用总结TIPS…

elementUI Table组件实现表头吸顶效果

需求描述 当 table 内容过多的时候,页面上滑滚动,表头的信息也会随着被遮挡,无法将表头信息和表格内容对应起来,需要进行表头吸顶 开始编码💪 环境:vue2.6、element UI step1: 给el-table__h…

用于牙科的多任务视频增强

Multi-task Video Enhancement for Dental Interventions 2022 miccai Abstract 微型照相机牢牢地固定在牙科手机上,这样牙医就可以持续地监测保守牙科手术的进展情况。但视频辅助牙科干预中的视频增强减轻了低光、噪音、模糊和相机握手等降低视觉舒适度的问题。…

Vue3轮播图左右联动

1、轮播图部分,右边鼠标移入,左边对应展示轮播图 可以在swiper 官网 Swiper中文网-轮播图幻灯片js插件,H5页面前端开发 选择vue中使用swiper npm i swiper 左右两边的联动:左边的轮播图和右边的小的列表他们的列表组成结构是一样的&#…

windows下本地部署安装hadoop+scala+spark-【不需要虚拟机】

注意版本依赖【本实验版本如下】 Hadoop 3.1.1 spark 2.3.2 scala 2.11 1.依赖环境 1.1 java 安装java并配置环境变量【如果未安装搜索其他教程】 环境验证如下: C:\Users\wangning>java -version java version "1.8.0_261" Java(TM) SE Runti…

go-zero框架基本配置和错误码封装

文章目录 加载配置信息配置 env加载.env文件配置servicecontext 查询数据生成model文件执行查询操作 错误码封装配置拦截器错误码封装 接上一篇:《go-zero框架快速入门》 加载配置信息 配置 env 在项目根目录下新增 .env 文件,可以配置当前读取哪个环…

2025 最新flutter面试总结

目录 1.Dart是值传递还是引用传递? 2.Flutter 是单引擎还是双引擎 3. StatelessWidget 和 StatefulWidget 在 Flutter 中有什么区别? 4.简述Dart语音特性 5. Navigator 是什么?在 Flutter 中 Routes 是什么? 6、Dart 是不是…

HarmonyOS Next构建工具 lycium 原理介绍

HarmonyOS Next构建工具 lycium 原理介绍 背景介绍 HarmonyOS Next中很多系统API是以C接口提供,如果要使用C接口,必须要使用NAPI在ArkTS与C间交互,这种场景在使用DevEco-Studio中集成的交叉编译工具,以及cmake构建工具就完全够用…

最长递增——蓝桥杯

1.题目描述 在数列 a1​,a2​,⋯,an​ 中&#xff0c;如果ai​<ai1​<ai2​<⋯<aj​&#xff0c;则称 ai​ 至 aj​ 为一段递增序列&#xff0c;长度为 j−i1。 定一个数列&#xff0c;请问数列中最长的递增序列有多长。 输入描述 输入的第一行包含一个整数 n。…

【远程视频必备】Briefing:安全视频群聊让远程办公无忧

文章目录 前言1.关于briefing2.本地部署briefing3.使用briefing4.cpolar内网穿透工具安装5.创建远程连接公网地址6.固定briefing公网地址 前言 对于有远程办公或者身处异地与家人好友视频聊天需求的人来说&#xff0c;在享受高效沟通的同时&#xff0c;也或多或少会有对信息泄…

华为发展历程:战略转型与分析

纵观30多年的发展历程&#xff0c;在创始人任正非及创业团队奋力牵引下&#xff0c;全体员工共同奋斗&#xff0c;华为实现了从“一无所有”到“三分天下”、从“积极跟随者”到“行业领先者”的跨越式发展。 华为在业务战略上经历了数次变革&#xff0c;分别是从农村到城市&a…

热更新杂乱记

热更新主要有一个文件的MD5值的比对过程&#xff0c;期间遇到2个问题&#xff0c;解决起来花费了一点时间 1. png 和 plist 生成zip的时候再生成MD5值会发生变动。 这个问题解决起来有2种方案&#xff1a; &#xff08;1&#xff09;.第一个方案是将 png和plist的文件时间改…

Elementor Pro 3.27 汉化版 2100套模板 安装教程 wordpress主题中文编辑器插件免费下载

插件下载地址 https://a5.org.cn/a5ziyuan/732506.html 转载请注明出处! Elementor Pro 是流行的 Elementor 的付费扩展 WordPress 页面构建器插件. 它为免费的 Elementor 插件添加了许多附加功能和增强功能&#xff0c;使其成为创建美丽的更强大的工具 WordPress 网站。 如果…

【Unity】使用Canvas Group改变UI的透明度

目录 一、前言二、Canvas Group三、结合DOTween达到画面淡进的效果 一、前言 在平时开发中&#xff0c;可以通过控制材质、Color改变UI透明度&#xff0c;除此之外还可以CanvasGroup组件来控制透明度。 二、Canvas Group 官方文档链接&#x1f449;&#x1f449; 点击进入 …

计算机工程:解锁未来科技之门!

计算机工程与应用是一个充满无限可能性的领域。随着科技的迅猛发展&#xff0c;计算机技术已经深深渗透到我们生活的方方面面&#xff0c;从医疗、金融到教育&#xff0c;无一不在彰显着计算机工程的巨大魅力和潜力。 在医疗行业&#xff0c;计算机技术的应用尤为突出。比如&a…