当前位置: 首页 > news >正文

YOLOv8从菜鸟到精通(二):YOLOv8数据标注以及模型训练

数据标注

前期准备

先打开Anaconda Navigator,点击Environment,再点击new(new是我下载anaconda的文件夹名称),然后点击创建

点击绿色按钮,并点击Open Terminal

输入labelimg便可打开它,labelimg是图像标注工具,在上篇文章中有讲到如何下载

标注工具的使用

找个空目录新建一个文件夹,我这里名称叫做yolotest,也可以设置其他名称

在 yolotest 目录下新建labels和images文件夹

在images文件夹新建test,train,val三个文件夹

在labesl下面新建train,val两个文件夹

images文件夹下面的test,train,val三个文件夹,全部存放相同的要训练的图片,例如train下面是 1.png,2.png,将这个两个文件复制一份到val,再复制一份到test

labels下面的train,val两个文件夹存放的是用labelimg标注的标签数据文件,等会 labelimg 使用会用到这个文件夹

将准备好的图片放到 images/train 文件夹下面并且复制一份到 images/val 和 images/test两个文件夹

数据集获取:https://storage.googleapis.com/openimages/web/visualizer/index.html?type=detection&set=train&c=%2Fm%2F05676x

来到labelimg界面,点击 Open Dir 按钮,选择到你的 images/train 文件夹即可,例如 D:\YOLOv8\yolotest\images\train。点击 Change Save Dir 按钮,选择到你的 labels/train 文件夹即可,例如 D:\YOLOv8\yolotest\labels\train。最后点击Save 下面的格式按钮,调整到 YOLO 格式的模式即可。

接下来开始标注数据

我选的例子是苹果,首先在图片上右键菜单,选择 Create RectBox 选项,或者点击左侧的 Create RectBox

苹果图片区域拉出选框,会弹出框,输入分类名称,这里填写的是apple,点击ok即可保存 ,这分类名称注意后面函数调用要用到。

此时在使用时可能会出现如下错误

解决方法

找到canvas.py,例如:D:\anaconda\envs\yolotest\Lib\site-packages\libs\canvas.py,打开它将526、530、531行的float改为int即可。

修改前后

修改完成后就可以正常工作啦!!!

我们继续接着上步,第一个图片标注完成后,点击左侧的 Save 按钮保存,然后点击 Next Image 切换标注下一张图片,操作和第一张图片类似

图标标注保存后,会在 labels/train 文件夹存储了标注的数据,classes.txt内容就是分类名称,其他的是和图片相同的名称的txt标注文件

最后,将 labels/train 文件夹数据复制到 labels/val 文件夹,等会验证模型的时候使用

至此,数据标注就完成啦!

模型训练

在 yolotest 文件下新建一个训练的配置文件,例如文件名称叫 apple.yaml,使用记事本打开,填写内容如下

path: D:/YOLOv8/yolotest
train: images/train
val: images/val
test: images/test
nc: 1
names: ["apple"]

# 有多个类别的话,按照以下方法写

# names: ["111","222"]

  • 参数解释

 path: 代表训练的根目录,这里的 yolotest在D盘,就写 D:/YOLOv8/yolotest,其他盘的路径自己修改

train: 代表要训练的图片文件夹,相对于path路径

val: 代表要验证的图片文件夹,相对于path路径

test: 代表要测试的图片文件夹,相对于path路径

nc: 代表分类名称数量,这是1个,因为使用labelimg标注的是1个类别,如果是多个数据就跟和实际类别数量一样的即可

names: 是一个json数组,代表的是标注的分类名称,labelimg使用的是apple这一个分类名称,这里就这样写即可

切记如果有多个分类名称的话名称的顺序不要写错,会影响训练结果

开始训练

在控制台输入命令,在cmd窗口,输入d:回车,在输入 cd YOLOv8/yolotest,进入这个文件夹 yolotest,其他路径自行进入

输入以下训练命令,下面两个任选一个,截图参数看ultralytics官网

yolo detect train data=d:/YOLOv8/yolotest/apple.yaml model=d:/YOLOv8/yolotest/yolov8s.pt imgsz=640

yolo detect train data=d:/YOLOv8/yolotest/apple.yaml model=d:/YOLOv8/yolotest/yolov8s.pt epochs=100 imgsz=640

这个时候系统会下载yolov8s.pt的基础训练文件

环境配置成功,一切无误,开始训练

训练完毕,注意这里的 Results saved后面的路径是动态的,截图中是在 runs/detect/train文件夹下,就是D:/YOLOv8/yolotest文件夹下

最后,在训练完成的目录中可以找到 best.pt 的训练模型以及训练中被标记和选中目标的图片结果集

相关文章:

YOLOv8从菜鸟到精通(二):YOLOv8数据标注以及模型训练

数据标注 前期准备 先打开Anaconda Navigator,点击Environment,再点击new(new是我下载anaconda的文件夹名称),然后点击创建 点击绿色按钮,并点击Open Terminal 输入labelimg便可打开它,labelimg是图像标注工具,在上篇…...

Winforms开发基础之非主线程操作UI控件的误区

前言 想象一下,你正在开发一个桌面应用程序,用户点击按钮后需要执行一个耗时操作。为了避免界面卡顿,你决定使用后台线程来处理任务。然而,当你在后台线程中尝试更新UI控件时,程序突然崩溃了。这是为什么呢&#xff1…...

Flutter中Get.snackbar和Get.dialog关闭冲突问题记录

背景: 在使用GetX框架时,同时使用了Get.snackbar提示框和Get.dialog加载框,当这两个widget同时存在时,Get.dialog加载框调用Get.back()无法正常关闭。 冲突解释: 之所以会产生冲突,是因为Get.snackbar在关…...

springcloudalibaba集成fegin报错ClassNotFoundException解决方案

集成fegin遇到问题: java.lang.ClassNotFoundException: com.netflix.config.CachedDynamicIntProperty 解决方案: 在pom文件中添加依赖 <dependency><groupId>com.netflix.archaius</groupId><artifactId>archaius-core</artifactId><versi…...

【HTML+CSS+JS+VUE】web前端教程-31-css3新特性

圆角 div{width: 100px;height: 100px;background-color: saddlebrown;border-radius: 5px;}阴影 div{width: 200px;height: 100px;background-color: saddlebrown;margin: 0 auto;box-shadow: 10px 10px 20px rgba(0, 0, 0, 0.5);}...

力扣264. 丑数 II

给你一个整数 n &#xff0c;请你找出并返回第 n 个 丑数 。丑数 就是质因子只包含 2、3 和 5 的正整数。 //用一个数组来保存第1到第n个丑数 //一个丑数必须是乘以较小的丑数的 2、3 或 5来得到。 //使用三路合并方法&#xff1a;L2、L3 和 L5三个指针遍历2、3、5倍的丑数序列…...

计算机网络之---TCP连接管理

TCP连接管理 TCP&#xff08;传输控制协议&#xff09;是面向连接的协议&#xff0c;在数据传输之前需要建立连接&#xff0c;在数据传输完成后需要断开连接。TCP连接的建立和断开都遵循特定的规则&#xff0c;分别称为三次握手&#xff08;Three-Way Handshake&#xff09;和四…...

《CPython Internals》阅读笔记:p118-p150

《CPython Internals》学习第 8 天&#xff0c;p118-p150 总结&#xff0c;总计 33 页。 一、技术总结 补充一些本人整理的关于 Context-Free Grammar(CFG) 的知识。 1.symbol(符号) A mathematical symbol is a figure or a combination of figures that is used to repre…...

C/C++ 数据结构与算法【排序】 常见7大排序详细解析【日常学习,考研必备】带图+详细代码

常见7种排序算法 冒泡排序&#xff08;Bubble Sort&#xff09;选择排序&#xff08;Selection Sort&#xff09;插入排序&#xff08;Insertion Sort&#xff09;希尔排序&#xff08;Shell Sort&#xff09;归并排序&#xff08;Merge Sort&#xff09;快速排序&#xff08;…...

三只松鼠携手爱零食,社区零售新高峰拔地而起

合纵连横&#xff0c;这是当前零售行业发展的一个主旋律。从商超之王胖东来的全国调改&#xff0c;到社区零售正在进行的渠道变革&#xff0c;竞争的激烈和商业模式的升级令人目不暇接。 量贩零食赛道在过去一年就是如此&#xff0c;有杀伐&#xff0c;有并购&#xff0c;刀光…...

Java聊天小程序

拟设计一个基于 Java 技术的局域网在线聊天系统,实现客户端与服务器之间的实时通信。系统分为客户端和服务器端两类,客户端用于发送和接收消息,服务器端负责接收客户端请求并处理消息。客户端通过图形界面提供用户友好的操作界面,服务器端监听多个客户端的连接并管理消息通…...

Kibana操作ES基础

废话少说&#xff0c;开干&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;截图更清晰&#xff0c;复制在下面 #库操作#创建索引【相当于数据库的库】 PUT /first_index#获…...

MYSQL8创建新用户报错:You have an error in your SQL syntax;check...

本文所用——MYSQL版本&#xff1a;8.0.25 baidu都是直接创建新用户并赋权&#xff0c;如下&#xff1a; GRANT ALL PRIVILEGES ON *.* TO 用户名% IDENTIFIED BY 密码 WITH GRANT OPTION;但是我用的MYSQL版本它就不行&#xff0c;会报错&#xff01; 经查阅资料发现——MY…...

动漫周边商城系统|Java|SSM|VUE| 前后端分离

【技术栈】 1⃣️&#xff1a;架构: B/S、MVC 2⃣️&#xff1a;系统环境&#xff1a;Windowsh/Mac 3⃣️&#xff1a;开发环境&#xff1a;IDEA、JDK1.8、Maven、Mysql5.7 4⃣️&#xff1a;技术栈&#xff1a;Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库…...

Vue 3 Diff 算法受 `v-for` 循环中的 `key` 属性影响

Vue 3 的 Diff 算法会受到 v-for 循环中的 key 属性的影响&#xff0c;key 的选择直接关系到 Diff 算法的效率和最终的 DOM 更新结果。 key 的作用 在 Vue 中&#xff0c;key 是一种标识&#xff0c;它用于唯一标记每个虚拟 DOM 节点。Diff 算法会根据 key 判断新旧节点是否是…...

江科大STM32入门——看门狗笔记整理

wx&#xff1a;嵌入式工程师成长日记 &#xff08;一&#xff09;简介 WDG(Watchdog)看门狗看门狗可以监控程序的运行状态&#xff0c;当程序因为设计漏洞&#xff08;无法预料&#xff09;、硬件故障、电磁干扰等原因&#xff0c;出现卡死或跑飞现象时&#xff0c;看门狗能及…...

【计算机网络】lab7 TCP协议

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;计算机网络_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1. 实验目的…...

计算机视觉:解锁未来智能世界的钥匙

计算机视觉&#xff1a;解锁未来智能世界的钥匙 在信息技术飞速发展的今天&#xff0c;计算机视觉作为人工智能领域的一个重要分支&#xff0c;正以前所未有的速度改变着我们的生活与工作方式。它使机器能够“看”并理解图像和视频中的信息&#xff0c;为自动驾驶、医疗影像分…...

Java的Stream流和Option类

1. Stream 流 背景 Stream是Java 8引入的一个用于处理集合&#xff08;或其他数据源&#xff09;中的元素的API。它提供了一种声明式的方式来处理数据&#xff0c;并可以链式调用。Stream支持惰性求值&#xff0c;也支持并行流处理。 1.1 创建 Stream 创建一个Stream可以通…...

深入理解ASP.NET Core 管道的工作原理

在 .NET Core 中&#xff0c;管道&#xff08;Pipeline&#xff09;是处理 HTTP 请求和响应的中间件组件的有序集合。每个中间件组件都可以对请求进行处理&#xff0c;并将其传递给下一个中间件组件&#xff0c;直到请求到达最终的处理程序。管道的概念类似于流水线&#xff0c…...

从零设计一个AXI Master:手把手教你为Xilinx MIG DDR4控制器编写自定义测试逻辑

从零设计AXI Master&#xff1a;构建Xilinx DDR4控制器的定制化测试引擎 在FPGA开发领域&#xff0c;高效访问DDR4内存是提升系统性能的关键。本文将带您深入AXI总线协议的核心&#xff0c;通过Verilog/SystemVerilog实现一个功能完备的AXI Master模块&#xff0c;突破现成IP核…...

从“炼金术”到“建筑学”:深度学习结构设计的五大范式

在深度学习的早期&#xff0c;我们往往沉迷于增加层数、调整学习率或更换激活函数&#xff0c;这种“调参黑盒”更像是某种现代炼金术。但随着领域的发展&#xff0c;优秀的架构设计正逐渐转向“建筑学”——即基于问题的内在物理性质或几何约束&#xff0c;去构建具有特定“脾…...

LLM - 2026 AI 文本转可视化工具终极指南:PicDoc.ai vs Napkin.ai 及 EdrawMax、Whimsical 等 8 大神器深度对比

文章目录概述一、PicDoc.ai vs Napkin.ai&#xff1a;专业全能 vs 轻快协作二、其他 6 大同类工具推荐三、8 大工具终极对比一览表&#xff08;关键指标&#xff09;四、 建议概述 在 2026 年的 AI 生产力浪潮中&#xff0c;把枯燥文字一键变成专业流程图、思维导图、信息图、…...

spring-ai 第一步集成入门

spring-ai 第一步入门 官网spring ai 做什么&#xff1f;涉及相关概念检索增加RAG工具调用 spring-ai 第一步入门 官网 spring-ai网址【https://spring.io/projects/spring-ai】 Spring AI 目前支持将输入和输出处理为语言、图像和音频的模型 spring ai 做什么&#xff1f;…...

多少家庭不是穷,是被面子慢慢拖垮的

——《清醒日常&#xff1a;隐形账本系列》 开篇你可能也经历过这样的时刻。婚礼现场灯光闪得人眼睛发花。你端着酒杯&#xff0c;一边笑着跟老同学说“恭喜恭喜”&#xff0c;一边脑子里飞快算着——这次随多少才不丢人&#xff1f;回家路上&#xff0c;你老婆小声问一句&…...

ZUI 3表单组件完全指南:从基础输入到复杂验证的完整解决方案

ZUI 3表单组件完全指南&#xff1a;从基础输入到复杂验证的完整解决方案 【免费下载链接】zui ZUI is an HTML5 front UI framework. 项目地址: https://gitcode.com/gh_mirrors/zu/zui ZUI 3是一个全新的开源HTML5前端UI框架&#xff0c;提供了丰富的表单组件和完整的表…...

Oracle EBS 资产类别是 真正的树形层级结构(通过弹性域实现父子关系),而 SAP 资产类别(Asset Class)是 扁平结构(无系统内置层级)

Oracle EBS 资产类别是 真正的树形层级结构&#xff08;通过弹性域实现父子关系&#xff09;&#xff0c;而 SAP 资产类别&#xff08;Asset Class&#xff09;是 扁平结构&#xff08;无系统内置层级&#xff09;。下面通过详细原理、实例、配置、报表四个维度彻底对比分析。一…...

杰理之通话之后siri就会异常,siri出来的非常慢【篇】

在连接蓝牙上没有通话前耳机按键打开siri是正常的...

从理论到实践:快马ai生成proteus+arduino温湿度监测全仿真教学案例

今天想和大家分享一个特别实用的嵌入式学习案例——用Proteus和Arduino搭建温湿度监测仿真系统。这个项目特别适合刚接触硬件的同学&#xff0c;因为全程不需要真实设备&#xff0c;通过仿真就能直观理解传感器数据采集和显示的完整流程。 项目核心元件选择 这个仿真系统主要用…...

保姆级教程:用PyTorch从零搭建联邦学习MNIST实验环境(附完整代码)

联邦学习实战&#xff1a;PyTorch搭建MNIST实验环境全流程解析 1. 联邦学习与MNIST实验概述 联邦学习作为一种分布式机器学习范式&#xff0c;正在重塑传统模型训练的方式。不同于集中式训练&#xff0c;联邦学习允许多个客户端在保持数据本地化的前提下协作训练模型&#xff0…...