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

YOLOV8 目标检测:训练自定义数据集

1、下载

yolov8项目:ultralytics/ultralytics:新增 - PyTorch 中的 YOLOv8 🚀 > ONNX > OpenVINO > CoreML > TFLite --- ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > OpenVINO > CoreML > TFLite (github.com)

直接下载即可

官方教程:Predict - Ultralytics YOLO Docs

2、环境配置

建立虚拟环境:conda cerate -n yolov8 python=3.8(版本需要>=3.7)

激活虚拟环境:conda activate yolov8

进入yolov8项目,直接pip即可: pip install ultralytics

3、训练

数据集的摆放都可以,只要和 yaml 文件配置好就行,这里摆放成本人习惯的形式

需要编写yaml文件,如下:


path: yolov8/datasets
train: images/train
val: images/valnames:0: guava1: lime2: orange3: pomegranate4: apple5: banana

这里写法是mydata.yaml文件

path 是路径,绝对路径(相对路径)都可以,不过本人跑项目的时候填写绝对路径才行

train 脚本:

# encoding=gbkfrom ultralytics import YOLO#model = YOLO('../ultralytics/cfg/models/v8/yolov8n.yaml')    # 建立模型
model = YOLO('./yolov8n.pt')    # 预训练模型
model = YOLO('./yolov8n.yaml').load('./yolov8n.pt')    # 载入权重model.train(data='./mydata.yaml')

4、训练过程

如下:

训练结果如下:

数据集是水果检测:

5、推理

脚本如下:

from ultralytics import YOLOmodel = YOLO('runs/detect/train/weights/best.pt')
model.predict('datasets/images/val',save=True)

6、调参

调参的话,可以在train脚本添加,更简单的直接更改文件即可:

yolov8\ultralytics\cfg\default.yaml

测试项目:基于yolov8对6种水果数据集的目标检测实现【数据+代码+训练好的权重】资源-CSDN文库icon-default.png?t=N7T8https://download.csdn.net/download/qq_44886601/89456431

相关文章:

  • 短视频热恋进行时:成都柏煜文化传媒有限公司
  • React是什么?
  • 从治理到“智”理,打造新一代金融数据体系
  • 通义千问调用笔记
  • 使用kettle做的数据同步案例
  • C/C++ string模拟实现
  • MYSQL execute command denied to user ‘‘@‘%‘ for routine
  • 腾讯《地下城与勇士:起源》手游在部分安卓平台停止更新
  • 微信小程序-上拉加载和下拉刷新
  • C类IP介绍
  • 【Java数据结构】优先级队列详解(二)
  • centos环境上:k8s 简单安装教程
  • 《算法设计与分析》第五六章:回溯法与分支限界法
  • FreeRTOS学习笔记-基于stm32(11)任务通知及相关API函数简介
  • 12306 火车票价格解析 (PHP 解析)
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • [译]前端离线指南(上)
  • __proto__ 和 prototype的关系
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • Bootstrap JS插件Alert源码分析
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • gitlab-ci配置详解(一)
  • JAVA SE 6 GC调优笔记
  • JavaScript设计模式之工厂模式
  • Less 日常用法
  • Markdown 语法简单说明
  • nfs客户端进程变D,延伸linux的lock
  • PAT A1017 优先队列
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • Python十分钟制作属于你自己的个性logo
  • socket.io+express实现聊天室的思考(三)
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • storm drpc实例
  • 从伪并行的 Python 多线程说起
  • 好的网址,关于.net 4.0 ,vs 2010
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 码农张的Bug人生 - 初来乍到
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 说说动画卡顿的解决方案
  • 突破自己的技术思维
  • 06-01 点餐小程序前台界面搭建
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • mysql面试题分组并合并列
  • 进程与线程(三)——进程/线程间通信
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ‌移动管家手机智能控制汽车系统
  • # Redis 入门到精通(七)-- redis 删除策略
  • #QT(智能家居界面-界面切换)
  • #如何使用 Qt 5.6 在 Android 上启用 NFC
  • ${ }的特别功能
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (1) caustics\
  • (C11) 泛型表达式
  • (javascript)再说document.body.scrollTop的使用问题