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

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.hqwc.cn/news/211948.html

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

相关文章

Android——资源IDnonFinalResIds和“Attribute value must be constant”错误

一、异常描述 通过资源ID引用资源提示错误 Attribute value must be constant 二、解决方案 在根目录下的文件 gradle.properties 中添加如下配置,然后Sync Project android.nonFinalResIdsfalse 三、问题原因 android.nonFinalResIds 是Android开发中一个用于解…

3D火山图绘制教程

一边学习,一边总结,一边分享! 本期教程内容 **注:**本教程详细内容 Volcano3D绘制3D火山图 一、前言 火山图是做差异分析中最常用到的图形,在前面的推文中,我们也推出了好几期火山图的绘制教程&#xff0…

单链表实现【队列】

目录 队列的概念及其结构 队列的实现 数组队列 链式队列 队列的常见接口的实现 主函数Test.c 头文件&函数声明Queue.h 头文件 函数声明 函数实现Queue.c 初始化QueueInit 创建节点Createnode 空间释放QueueDestroy 入队列QueuePush 出队列QueuePop 队头元…

C++每日选择题—Day1

第一题 以下C代码会输出什么? #include <iostream> using namespace std; class A { public:A() {}~A() {} private:static int a; }; int main() {cout << sizeof(A) << endl;return 0; } A&#xff1a;0 B&#xff1a;1 C&#xff1a;4 D&#xff1a;8 答…

【陈老板赠书活动 - 18期】-如何成为架构师这几本书推荐给你

陈老老老板&#x1f9b8; &#x1f468;‍&#x1f4bb;本文专栏&#xff1a;赠书活动专栏&#xff08;为大家争取的福利&#xff0c;免费送书&#xff09; &#x1f468;‍&#x1f4bb;本文简述&#xff1a;生活就像海洋,只有意志坚强的人,才能到达彼岸。 &#x1f468;‍&am…

微信小程序前端环境搭建

搭建微信小程序前端环境 申请小程序测试账号 访问路径 使用微信扫描二维码进行申请&#xff0c;申请成功之后&#xff0c;进入界面&#xff0c;获取小程序ID(AppID)和秘钥(AppSecret) 安装微信web开发者工具 访问路径 选择稳定开发的版本 需要在小程序的设置中将默认关闭…

微软发布最新.NET 8长期支持版本,云计算、AI应用支持再强化

11 月 15 日开始的为期三天的 .NET Conf 在线活动的开幕日上&#xff0c;.NET 8作为微软的开源跨平台开发平台正式发布。.NET 团队着重强调云、性能、全栈 Blazor、AI 和 .NET MAUI 是.NET 8的主要亮点。.NET团队在 .NET Conf 2023 [1]活动开幕式上表示&#xff1a;“通过这个版…

c++版本opencv计算灰度图像的轮廓点

代码 #include<iostream> #include<opencv.hpp>int main() {std::string imgPath("D:\\prostate_run\\result_US_20230804_141531\\mask\\us\\104.bmp");cv::Mat imgGray cv::imread(imgPath, 0);cv::Mat kernel cv::getStructuringElement(cv::MORPH…

6.1.webrc媒体协商

那今天呢&#xff1f;我们来看一下y8 rtc的媒体协商&#xff0c;那实际上在我们之前的课程中呢&#xff1f;我已经向你介绍过y8 rtc的媒体协商了。只不过呢&#xff0c;角度是不一样的&#xff0c;在之前介绍外边tc媒体协商的时候呢&#xff0c;我们是从应用的角度来看。那web …

unity shaderGraph实例-可交互瀑布

不要问我水在哪里&#xff0c;你自己相像这是一个瀑布&#xff0c;瀑布的效果我还不会做 效果展示 整体结构 这里片元着色器最后输出的baseColor应该是黑色&#xff0c;白色为错误。 各区域内容 区域1 计算球到瀑布的距离&#xff0c;然后减去一个值&#xff0c;实现黑色区域…

微服务实战系列之Feign

前言 不知不觉&#xff0c;“微服务实战系列”已完成了六篇&#xff0c;每篇都聚焦一个主题&#xff0c;目的是便于各位盆友能够快速、全面地接收和消化。 博主从服务注册到服务监控&#xff0c;从服务路由到服务安全&#xff0c;从身份认证到加密技术均有涉猎。凡此均有关微服…

思维模型 等待效应

本系列文章 主要是 分享 思维模型 &#xff0c;涉及各个领域&#xff0c;重在提升认知。越是等待&#xff0c;越是焦虑。 1 等待效应的应用 1.1 等待效应在管理中的应用 西南航空公司是一家美国的航空公司&#xff0c;它在管理中运用了等待效应。西南航空公司鼓励员工在工作中…