YOLOv8训练自己的目标检测数据集

news2024/11/15 19:28:15

YOLOv8训练自己的目标检测数据集

目录标题

  • 源码下载
  • 环境配置
  • 安装包
  • 训练自己的数据集
    • 数据集文件格式
    • 数据集文件配置
    • 超参数文件配置
    • 训练数据集
      • 命令行训练
      • 脚本.py文件训练
  • 进行detect
    • 显示detect的效果

源码下载

YOLOv8官方的GitHub代码,同时上面也有基础环境的配置要求以及代码运行的教程。下载后的源码文件名应该是ultralytics-main。

环境配置

这里可参考YOLOv5,YOLO v7的代码环境配置。

安装包

需要额外的安装一些包,因为后面需要用到。

pip install ultralytics

训练自己的数据集

数据集文件格式

  • 数据集文件格式是txt的yolo格式,整体数据集文件格式如下:
    在这里插入图片描述
  • 同时images下的文件格式如下: train(训练集图片),val(测试集图片),test(测试集图片)
    在这里插入图片描述
  • 同时labels下的文件格式如下: train(训练集图片对应的标签),val(测试集图片对应的标签),test(测试集图片对应的标签)
    在这里插入图片描述
  • 整体数据集格式文件如下

├── linhuo
│ ├── images
│ │ ├── train
│ │ ├── val
│ │ ├── test
│ ├── labels
│ │ ├── train
│ │ ├── val
│ │ ├── test

数据集文件配置

数据集文件配置的位置如下:

ultralytics-main/ultralytics/cfg/datasets/

在该文件下创建数据自己数据集文件配置的yaml文件,这是我创建自己数据集配置的yaml文件。同时yaml文件内要说明以下内容:

  • 索引到数据集文件images下的train、val
  • 数据集标注的类别数目
  • 数据集标注的类别名称
  • 如我的数据集只有1类, 标注类别是fire
    在这里插入图片描述

超参数文件配置

超参数文件配置的路径:

ultralytics-main/ultralytics/cfg/default.yaml

具体的超参数说明可以看看网上的教程,这里主要配置model,data,patience。

  • model: 可以配置yolov8n.pt, yolov8n.yaml(这里填写配置yolov8n.pt, yolov8n.yaml的具体路径),如果配置yolov8n.yaml需要将类别数目改为1。
model: './weights/yolov8n.pt'  # (str, optional) path to model file, i.e. yolov8n.pt, yolov8n.yaml
  • data: 这里是填写数据集文件配置的地址。
data: 'ultralytics/cfg/datasets/linhuo.yaml'   # (str, optional) path to data file, i.e. coco128.yaml
  • patience: epochs to wait for no observable improvement for early stopping of training(就是多少次没有训练一个好的结果就会提前停止训练)。

训练数据集

命令行训练

  • task=detect:目标检测
  • mode=train:训练模式
  • model=yolov8n.pt:模型预训练权重的地址,我是默认放到ultralytics-main目录下
yolo task=detect mode=train model=yolov8n.pt data=ultralytics/cfg/datasets/linhuo.yaml batch=16 epochs=500

脚本.py文件训练

  • 新建立一个python脚本文件 mytrain.py
    在这里插入图片描述

代码为:直接运行即可。

from ultralytics import YOLO
# 权重网络模型加载权重模型
model = YOLO('ultralytics/cfg/models/v8/yolov8.yaml').load('./weights/yolov8n.pt')  # build from YAML and transfer weights

# Train the model: 数据集配置yaml
results = model.train(data='ultralytics/cfg/datasets/linhuo.yaml', epochs=500, batch=16)

进行detect

  • 新建立一个python脚本文件 mypre.py上面图片有
from ultralytics import YOLO
model = YOLO('runs/detect/train/weights/best.pt')

# 检测的图片的路径
source = 'ultralytics/assets/2708.jpg'

# 预测结果
results = model.predict(source, save=True)

显示detect的效果

在这里插入图片描述

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

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

相关文章

springboot+jsp学生健康体检档案评估系统_ju8pu

本基于Java的学生健康档案管理信息系统采用Java语言来进行开发,从角色上分为管理员,辅导员,档案管理员和学生几个具体功能如下 (1)管理员部分功能主要包括,个人中心,档案员管理,辅…

【iOS】数据持久化(二)之归档和解档(iOS 13以后)

在之前介绍的数据存储方法中,不管是NSUserDefaults还是plist文件都不能对自定义对象进行存储,OC提供的解归档恰好解决了这个问题 本片文章对 iOS13 以后的版本 归档和解档 进行介绍。老版本的解归档见这篇文章:【iOS】文件(对象数…

使用【画图】软件修改图片像素、比例和大小

打开电脑画图软件,点击开始 windows附件 画图 在画图软件里选择需要调整的照片,点击文件 打开 在弹出窗口中选择照片后点击打开 照片在画图软件中打开后,对照片进行调整。按图中顺序进行 确定后照片会根据设定的值自动调整 保存…

关于接口测试自动化的总结与思考!

序 近期看到阿里云性能测试 PTS 接口测试开启免费公测,本着以和大家交流如何实现高效的接口测试为出发点,本文包含了我在接口测试领域的一些方法和心得,希望大家一起讨论和分享,内容包括但不仅限于: 服务端接口测试介…

51单片机IO口的四种工作状态切换

51单片机IO口的四种工作状态切换 1.概述 这篇文章介绍单片机IO引脚的四种工作模式,每个模式都有各自的用武之地,后面在驱动外设硬件时会用它不同的模式。 2.IO口四种工作模式介绍 PnM1PnM0I/O口工作模式00准双向口:灌电流达20mA&#xff…

刷题学习记录(含2023ISCTFweb题的部分知识点)

[SWPUCTF 2021 新生赛]sql 进入环境 查看源码,发现是get传参且参数为wllm fuzz测试,发现空格,,and被过滤了 同样的也可以用python脚本进行fuzz测试 import requests fuzz{length ,,handler,like,select,sleep,database,delete,h…

nginx 模块相关配置及结构理解

文章目录 模块配置结构模块配置指令先看一下 ngx_command_t 结构一个模块配置的demo简单模块配置的案例演示 模块上下文结构模块的定义 模块配置结构 Nginx中每个模块都会提供一些指令,以便于用户通过配置去控制该模块的行为。 Nginx的配置信息分成了几个作用域(sc…

安卓开发——Android Studio常见报错与解决方法

1. No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-android 这个错误是由于较新版本的NDK的./toolchains目录中没有arm-linux-androideabi文件,解决办法是从旧的NDK版本里面复制到自己的NDK的版本里面,就可以了。 打…

需求调研计划及用户需求调研单

1.目的 2.概述 3.需求调研计划 3.1调研目的 3.2调研范围 3.2.1.调研的职能范围 3.2.2.调研的业务范围 3.2.3.调研的地点范围 3.3调研方式 3.4调研阶段 3.5具体时间安排 软件开发全文档获取:点我获取 1、需求调研计划 2、用户需求调研单 项目名称 客…

【目标检测】保姆级别教程从零开始实现基于Yolov8的一次性筷子计数

前言 一,环境配置 一,虚拟环境创建 二,安装资源包 前言 最近事情比较少,无意间刷到群聊里分享的基于百度飞浆平台的一次性筷子检测,感觉很有意思,恰巧自己最近在学习Yolov8,于是看看能不能复…

Spring配置其他注解Spring注解的解析原理

Spring配置其他注解 Primary注解用于标注相同类型的Bean优先被使用权,Primary是Spring 3.0引入的,与Component和Bean一起使用,标注该Bean的优先级更高,则在通过类型获取Bean或通过Autowired根据类型进行注入时,会选用优…

Mysql数据库 18.Mysql SQL优化

SQL优化 一、插入优化 多条插入语句,影响执行效率 优化方案 1、批量插入: 在一条insert语句中多条数据,但是如果数据量过大,也不能完全使用一条语句语句,建议数据量为一次性插入1000条以下的数据 如果数据量多大&…

【Axure教程】用中继器制作卡片多条件搜索效果

卡片设计通过提供清晰的信息结构、可视化吸引力、易扩展性和强大的交互性,为用户界面设计带来了许多优势,使得用户能够更轻松地浏览、理解和互动。 那今天就教大家如何用中继器制作卡片的模板,以及完成多条件搜索的效果,我们会以…

12个最佳WordPress投票插件

您是否正在为您的网站寻找WordPress投票插件? WordPress投票插件可让您轻松地在您的网站上进行民意调查,用户可以投票。这是在收集见解的同时建立用户参与度的有效策略。 在本文中,我们精心挑选了最好的WordPress投票插件,可帮助…

【Vue】创建第一个实例

步骤&#xff1a; 1.创建容器 2.引包 3.创建实例 4.添加配置项 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><!--准备容器 --> <di…

ubuntu搭建phpmyadmin+wordpress

Ubuntu搭建phpmyadmin wordpress Linux系统设置&#xff1a;Ubuntu 22配置apache2搭建phpmyadmin配置Nginx环境&#xff0c;搭建wordpress Linux系统设置&#xff1a;Ubuntu 22 配置apache2 安装apache2 sudo apt -y install apache2设置端口号为8080 sudo vim /etc/apache…

VBA经典应用69例:Find方法的应用

《VBA经典应用69例》&#xff08;版权10178981&#xff09;&#xff0c;是我推出的第九套教程&#xff0c;教程是专门针对初级、中级学员在学习VBA过程中可能遇到的案例展开&#xff0c;这套教程案例众多&#xff0c;紧贴“实战”&#xff0c;并做“战术总结”&#xff0c;以便…

旅行商问题(枚举,回溯,动态规划,贪心,分支界限)

文章目录 问题描述暴力枚举回溯法动态规划法贪心法分支界限法 问题描述 假设有一个货郎担要拜访n个城市&#xff0c;他必须选择所要走的路程&#xff0c;路程的限制时每个城市只能拜访一次&#xff0c;而且最后要走到原来出发的城市&#xff0c;要求路径长度。 旅行商问题将要…

C语言第二十五弹--打印菱形

C语言打印菱形 思路&#xff1a;想要打印一个菱形&#xff0c;可以分为上下两部分&#xff0c;通过观察可以发现上半部分星号的规律是 1 3 5 7故理解为 2对应行数 1 &#xff0c;空格是4 3 2 1故理解为 行数-对应行数-1。 上半部分代码如下 for (int i 0;i < line;i){//上…

【C/PTA】函数专项练习(四)

本文结合PTA专项练习带领读者掌握函数&#xff0c;刷题为主注释为辅&#xff0c;在代码中理解思路&#xff0c;其它不做过多叙述。 目录 6-1 计算A[n]1/(1 A[n-1])6-2 递归实现顺序输出整数6-3 自然数的位数(递归版)6-4 分治法求解金块问题6-5 汉诺塔6-6 重复显示字符(递归版)…