首页 > 其他分享 >【玩转全栈】----YOLO8训练自己的模型并应用

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

时间:2025-01-23 18:27:53浏览次数:3  
标签:---- pt 训练 模型 YOLO YOLO8 全栈 train model

继上篇:

【玩转全栈】---基于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 YOLO

import 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 YOLO

import 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)

静静等待训练结束。

训练结果:

<iframe allowfullscreen="true" data-mediaembed="youku" frameborder="0" id="xaqP1KhX-1737551654709" src="https://player.youku.com/embed/XNjQ1MjI0NjYyNA=="></iframe>

YOLO8识别王者荣耀视频

存在的问题

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

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

2、训练图片量比较少;

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

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

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

感谢您的三连!!!

标签:----,pt,训练,模型,YOLO,YOLO8,全栈,train,model
From: https://blog.csdn.net/2403_83182682/article/details/145305426

相关文章

  • 【AI论文】MMVU:衡量专家级多学科视频理解能力
    摘要:我们推出了MMVU,这是一个全面的专家级、多学科视频理解基准,用于评估基础模型在视频理解方面的表现。MMVU包含3000个由专家标注的问题,这些问题涵盖了四个核心学科领域的27个主题:科学、医疗保健、人文与社会科学以及工程学。与以往的基准相比,MMVU具有三大关键进步。首先,它要......
  • 【玩转全栈】----用户管理案例
    目录案例需求:成果显示:源码展示:部分源码解释及注意1、info_list.html文件2、info_add.html文件3、models.py文件4、views.py文件          经过前面的学习,相信您对Django、MySQL,以及他们之间的连接已经非常熟悉了,本文是一个关于Django、MySQL的一个小案......
  • ES6一些常用语法总结
    1.数组、对象的匹配赋值【解构赋值】let[a,b,c]=[1,2,3]//可以用于变量值之间的转换leta=1;letb=2;[a,b]=[b,a]//成功切换let{name,age}={name:"fanqi",age:27}; //变量名需要和对象的属性名称相对应2.模版字符串leta="中国";letb=`我是${a}人`......
  • 使用 PHP 和 Tesseract OCR 实现验证码识别
    验证码是一种常见的验证手段,用于区分用户和自动化程序。通过OCR(光学字符识别)技术,我们可以实现对验证码的自动化识别。在本文中,我们将使用PHP和TesseractOCR引擎构建一个验证码识别程序。环境准备安装TesseractOCR引擎首先,你需要安装TesseractOCR引擎,这是实现光学......
  • PassGet:一款使用Go语言编写的用于后渗透测试阶段提取Windows平台下常见的应用程序
    免责声明仅限用于技术研究和获得正式授权的攻防项目,请使用者遵守《中华人民共和国网络安全法》,切勿用于任何非法活动,若将工具做其他用途,由使用者承担全部法律及连带责任,作者及发布者不承担任何法律连带责任项目介绍PassGet是一款使用Go语言编写的用于后渗透测试阶段提取Windo......
  • 【Milvus向量数据库】AI应用开发
    一、Milvus介绍上一小节中,全面介绍了向量和向量数据库,今天详细介绍下其中比较出名的开源数据库Milvus。希望对你有帮助Milvus是一个开源的、高性能的向量数据库,专为海量向量数据的快速检索而设计。在人工智能、计算机视觉、推荐系统和其他需要处理大规模向量数据的领域有着广......
  • 循环结构程序设计
    循环语句1、用while语句实现循环1.1while语句的一般形式如下1.2流程图如下1.3while循环举例2、用do-while语句实现循环2.1do-while语句的一般形式和执行过程2.2流程图如下3、for循坏3.1for语句的一般形式和执行过程3.2流程图如下3.3for循环语句举例4、循环语......
  • 2025年1月有什么好用的便宜性价比高的的语音卡、流量卡推荐?
    之前,因为自己网站变现的问题,找了很多变现渠道,有了解到流量卡这个业务,并花了很长时间研究。最近,因为一些工作的原因,需要打的电话比较多,加上之前有了解过流量卡这一块,所以就在想,有没有语音卡呢?找了一堆,发现都是流量卡产品,可用的语音卡比较少,资费最低都是0.1元/分钟或者接近0.1......
  • springboot运动场地的预约系统-计算机毕业设计源码48258
    目 录摘要1绪论1.1研究背景1.2 研究意义1.3论文结构与章节安排2系统分析2.1可行性分析2.2系统流程分析2.2.1用户登录流程2.2.2 数据删除流程2.3 系统功能分析2.3.1功能性分析2.3.2非功能性分析2.4 系统用例分析2.5本章小结3 系统......
  • springboot在线吉他配套服务系统-计算机毕业设计源码53451
    目录摘要1绪论1.1选题背景与意义1.2国内外研究现状1.3论文结构与章节安排2系统分析2.1可行性分析2.2系统流程分析2.2.1数据流程2.2.2业务流程2.3系统功能分析2.3.1功能性分析2.3.2非功能性分析2.4系统用例分析2.5本章小结3系统总体......