YOLOV8目标检测——最全最完整模型训练过程记录

文章目录

  • 前言
  • 1 下载yolov8([网址](https://github.com/ultralytics/ultralytics))
  • 2 配置conda环境
  • 3 用pycharm打开文件
  • 3 训练自己的YOLOV8数据集
  • 4 run下运行完了之后没有best.pt文件
  • 5 导出为onnx文件
  • 6 yolov8应用完整案例(免费且包含源代码、数据集)
  • 总结

前言

本文记录一下yolov8训练目标检测模型的过程,以及其中的一些需要注意的地方。本人是yolov5直接使用的yolov8,因此本文也记录了与yolov5的训练过程不一样的地方。

原创声明:如有转载请注明文章来源。码字不易,如对卿有所帮助,欢迎评论、点赞、收藏。

1 下载yolov8(网址)

在这里插入图片描述

2 配置conda环境

这边说一下,pip这里会自动安装cpu版本的torch。因此安装torch要去官网下载,不注意的话后面训练模型会超级慢。

Prompt终端
1、创建一个新的环境,终端输入:
conda create -n YOLOV8_1 python=3.9 
2、激活环境:
conda activate YOLOV8_1
3、转到YOLOV8所在文件夹:
cd /d D:\python_set\ultralytics-yolov8-main
4、安装requirements.txt中的包
pip install -r requirements.txt

3 用pycharm打开文件

打开之后你可能会觉得yolov5文件包里面啥都有,怎么yolov8里面好像啥也没有,连个train.py都没有,还怎么用呀!其实这就是工程化代码的特点,你可以基于这个框架自己创建一个train,只要几行代码就可以训练好了。不会再是yolov5一个train文件看得头大。

  • 在ultralytics中加入创建dataset文件夹,子文件夹code_inspection是本人的项目。里面存档你的images、lables和yaml文件
    在这里插入图片描述
  • images

在这里插入图片描述

  • labels

在这里插入图片描述

  • yaml文件,这个是从coco128中改的(coco128.yaml路径为:ultralytics/cfg/datasets/coco8.yaml)

在这里插入图片描述

3 训练自己的YOLOV8数据集

  • 打开终端

在这里插入图片描述输入如下:

# 相关参数需要自己修改一下,这个应该很好理解
yolo detect train data=datasets/code_inspection/code_inspection.yaml model=yolov8n.yaml pretrained=ultralytics/yolov8n.pt epochs=200 batch=8 lr0=0.01 resume=True

运行之后会出现一个询问:wanna会询问你要不要使用wandb记录训练结果,这个时候需要你点击进入链接,创建一个wandb的账号,账号会自动生成一个号码(20个字符作用的一个号码),就可以用wandb了。
在这里插入图片描述

yolov5yolov8
有train detect文件没有train detect文件,最好用终端训练
没有wandb有wandb

4 run下运行完了之后没有best.pt文件

yolov8的训练的文件会放在网络端,当然也是有办法放在本地的。我是没有的。
在这里插入图片描述
点击进入最上面的链接
在这里插入图片描述
按照如下顺序点击即可下载模型。反正我觉得不是很方便。
在这里插入图片描述
啊这,过了个小时,run文件下权重文件直接就出现了。可能是我重启之后的效果。
在这里插入图片描述

5 导出为onnx文件

这个倒是很方便的。创建一个文件,赋值下面代码就可以了。

from ultralytics import YOLO# Load a model
model = YOLO('best.pt')  # load a custom trained model# Export the model
model.export(format='onnx')

6 yolov8应用完整案例(免费且包含源代码、数据集)

大图像中的小目标检测——基于YOLOV8+OnnxRuntime部署+滑动窗口+Zbar的条码检测研究

总结

入门yolov8目标检测的步骤:

  1. 环境配置
  2. 标注数据集,标注的报错点在这里
    ((以YOLO标注为例)labelimg标注闪退的几种情况详解,报错IndexError: list index out of range)
  3. 熟悉训练过程。由于yolov8加入了一些可视化的东西,用过yolov5之后再来看yolov8会有反应不过来wandb的用法。
  4. 找一个案例练习,在这里给大家提供一个超级赞的案例,工业产线上的目标检测案例。
    (大图像中的小目标检测——基于YOLOV8+OnnxRuntime部署+滑动窗口+Zbar的条码检测研究)

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

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

相关文章

springboot 程序设计优雅退出

一 springboot优雅退出 1.1 概述 在springboot2.3版本后,实现了优雅退出功能。当server.shutdowngraceful启用时,在 web 容器关闭时,web 服务器将不再接收新请求,并将剩余活动执行完成给设置一个缓冲期。缓冲期 timeout-per-shu…

基础MySQL的语法练习

基础MySQL的语法练习 create table DEPT(DEPTNO int(2) not null,DNAME VARCHAR(14),LOC VARCHAR(13) );alter table DEPTadd constraint PK_DEPT primary key (DEPTNO);create table EMP (EMPNO int(4) primary key,ENAME VARCHAR(10),JOB VARCHAR(9),MGR …

100 # mongoose 的使用

mongoose elegant mongodb object modeling for node.js https://mongoosejs.com/ 安装 mongoose npm i mongoose基本示例 const mongoose require("mongoose");// 1、连接 mongodb let conn mongoose.createConnection("mongodb://kaimo313:kaimo313loc…

城市正视图(Urban Elevations, ACM/ICPC World Finals 1992, UVa221)rust解法

如图5-4所示,有n(n≤100)个建筑物。左侧是俯视图(左上角为建筑物编号,右下角为高度),右侧是从南向北看的正视图。 输入每个建筑物左下角坐标(即x、y坐标的最小值)、宽度…

Linux基础命令1——Linux的命令格式与命令分类

目录 Linux命令格式 Linux命令分类 如何判断命令的类型——Type命令 内置命令 外部命令 alias命令 命令的执行效率与过程 Linux命令格式 命令格式 完整的命令格式分为三部分:命令、参数、对象 其中命令与参数、参数与参数、参数与对象之间最少要有一个空格做…

有哪些比较好用的协同办公软件

在疫情期间,协同办公大放异彩,解决了很多公司线上办公的问题,所以在后疫情时代,协同办公软件成为了提高工作效率和团队协作的重要工具。 随着科技的不断进步,越来越多的协同办公软件涌现出来。在本文中,我们…

NFTScan | 10.16~10.22 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期:2023.10.16~ 2023.10.22 NFT Hot News 01/y00ts:迁移回以太坊的跨链桥已上线,将承担第一天所有 Gas 费 10 月 16 日,y00ts 发推称,将 y00…

k8s-----10、Controller-Deployment

Controller-Deployment 1、什么是controller2、 pod和controller关系3、Deployment控制器应用场景3.1 部署时yaml文件书写3.2 实际部署应用3.3 升级回滚3.3.1 升级3.3.2 回滚 3.4 弹性伸缩 1、什么是controller 在集群上管理和运行容器的对象 2、 pod和controller关系 pod是…

黑豹程序员-架构师学习路线图-百科:SpringBoot

文章目录 1、什么是SpringBoot?2、SpringBoot发展史3、为什么我们要使用SpringBoot 1、什么是SpringBoot? Spring Boot是一个用于创建独立的、基于Spring框架的Java应用程序的开源框架。 Spring Boot简化了Spring应用程序的开发和部署,使开发…

gulp打包vue3+jsx+less插件

最终转换结果如下 在根目录下添加gulpfile.js文件,package.json添加命令npm run gulp var gulp require(gulp) var babel require(gulp-babel) var less require(gulp-less) var del require(del); var spawn require(child_process).spawn;const outDir &…

VS Code C# 开发工具包正式发布

前言 微软于本月正式发布Visual Studio Code C#开发工具包,此前该开发套件已经以预览版的形式在6月份问世。经过4个月的测试和调整,微软修复了350多个问题,其中大部分是用户反馈导致的问题。此外,微软还对产品进行了300多项有针对…

unity脚本_力 c#

创建一个脚本 将代码挂载到物体上 取消物体的重力 运行即向z轴运动 加力之后 是否停止是由阻力影响 如果阻力为零 则会一直运动 如果希望就算有阻力也让物体一直动就将加力代码放在Update函数里 using UnityEngine; public class Power : MonoBehaviour{ Rigidbody rigidBo…