当前位置: 首页 > 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 的训练模型以及训练中被标记和选中目标的图片结果集

http://www.lryc.cn/news/520668.html

相关文章:

  • Winforms开发基础之非主线程操作UI控件的误区
  • Flutter中Get.snackbar和Get.dialog关闭冲突问题记录
  • springcloudalibaba集成fegin报错ClassNotFoundException解决方案
  • 【HTML+CSS+JS+VUE】web前端教程-31-css3新特性
  • 力扣264. 丑数 II
  • 计算机网络之---TCP连接管理
  • 《CPython Internals》阅读笔记:p118-p150
  • C/C++ 数据结构与算法【排序】 常见7大排序详细解析【日常学习,考研必备】带图+详细代码
  • 三只松鼠携手爱零食,社区零售新高峰拔地而起
  • Java聊天小程序
  • Kibana操作ES基础
  • MYSQL8创建新用户报错:You have an error in your SQL syntax;check...
  • 动漫周边商城系统|Java|SSM|VUE| 前后端分离
  • Vue 3 Diff 算法受 `v-for` 循环中的 `key` 属性影响
  • 江科大STM32入门——看门狗笔记整理
  • 【计算机网络】lab7 TCP协议
  • 计算机视觉:解锁未来智能世界的钥匙
  • Java的Stream流和Option类
  • 深入理解ASP.NET Core 管道的工作原理
  • 多模态论文笔记——CLIP
  • brpc之baidu_protocol
  • LeetCode:39. 组合总和
  • SOLID原则学习,开闭原则(Open Closed Principle, OCP)
  • Unreal Engine 5 C++ Advanced Action RPG 七章笔记
  • 自动连接校园网wifi脚本实践(自动网页认证)
  • HTTP/HTTPS ⑤-CA证书 || 中间人攻击 || SSL/TLS
  • traceroute原理探究
  • 50_Lua垃圾回收
  • Git-2-:Cherry-Pick 的使用场景及使用流程
  • 【C++】21.map和set的使用