YOLOV8模型测试、训练及导出onnx模型

news/2024/7/10 23:28:57 标签: YOLO

一、环境配置

1、下载源码

git clone https://github.com/ultralytics/ultralytics.git

2、安装python包

pip install -r requirements.txt

3、安装ultralytics

# 在ultralytics-main的文件目录里面,运行以下命令
pip install -e .

4、测试ultralytics是否安装成功,运行以下的pytho

import ultralytics
ultralytics.checks()

反馈以下结果,则说明ultralytics安装成功

Ultralytics YOLOv8.0.175 🚀 Python-3.8.18 torch-2.0.1+cu117 CUDA:0 (NVIDIA GeForce RTX 2080 SUPER, 7974MiB)
Setup complete ✅ (16 CPUs, 31.3 GB RAM, 257.3/884.8 GB disk)

二、模型测试

YOLOv8 可以直接在命令行界面 (CLI) 中使用“yolo”命令来执行各种任务和模式,并接受其他参数,即“imgsz=640”。

运行yolov8的目标检测模型

yolo task = predict model = yolov8n.pt source = '/**/1.jpg'

运行yolov8-seg的目标检测与分割模型

yolo task = segment mode = predict model = yolov8n-seg.pt source = '/**/1.jpg'

运行yolov8-cls的分类模型

yolo task = classify mode = predict model = yolov8n-cls.pt source = '/**/1.jpg'

运行yolov8-pose的目标检测与姿态模型

yolo task = pose mode = predict model = yolov8n-pose.pt source = '/**/1.jpg'

三、模型训练

训练yolov8的目标检测模型

yolo detect  train data=./ultralytics/cfg/datasets/coco128.yaml  model = yolov8n.yaml imgsz = 416

备注:

  • 修改图片尺寸可以在命名行中指定imgsz,或者在default.yaml中指定
  • model可以是预训练模型,也可以yaml文件,其中yolo后面加的n或者s等等来决定采用哪种模型尺寸

训练yolov8的目标检测与姿态模型

yolo pose  train data=./ultralytics-main/ultralytics/cfg/datasets/coco128.yaml  model = yolov8n-pose.yaml

报了以下错误

  File "/home/**/yolov8-python/ultralytics-main/ultralytics/data/dataset.py", line 122, in get_labels
    len_cls, len_boxes, len_segments = (sum(x) for x in zip(*lengths))
ValueError: not enough values to unpack (expected 3, got 0)

这个错误,可能是官方提供的最新代码(时间截至到2023年9月12号)有问题,可以尝试使用旧一点的版本。

导出onnx模型

yolo export model=/**/weights/best.pt format=onnx opset=12

备注:
在需要训练自己的数据集、更改训练的配置参数或者模型网络结构
修改地方的主要是数据集yaml文件(例如coco128.yaml,或者创建一个自己数据集的yaml文件)、配置参数default.yaml(里面包括很多参数,包括图片尺寸、是否使用预训练权重等等)及模型网络结构yaml文件(例如yolov8.yaml)


http://www.niftyadmin.cn/n/5023487.html

相关文章

MyBatisPlus(二)基础Mapperr接口:增删改查

MyBatisPlus:基础Mapper接口:增删改查 插入一条数据 代码 Testpublic void insert() {User user new User();user.setId(6L);user.setName("张三");user.setAge(25);user.setEmail("zhangsanexample.com");userMapper.insert(use…

vue3将页面导出成PDF文件(完美解决图片、表格内容分割问题)

vue3将页面导出成PDF文件(完美解决图片、表格内容分割问题) 1、安装依赖2、在utils中创建htmlToPDF.js文件3、在vue中引入并使用 1、安装依赖 npm install --save html2canvas // 页面转图片 npm install jspdf --save // 图片转pdf2、在utils中创建h…

3大生产基地7万口窖池同时开窖,2023洋河·双沟开窖节吸引百万人集体关注

“一声鼓响,风调雨顺!二声鼓响,美酒天成!三声鼓响,万窖齐开!吉时已到,开窖门!”一段洪亮又悠扬的话语,预示着洋河、双沟、泗阳三大生产基地7万口窖池同时开窖&#xff0c…

数据结构题型5-前插结点操作

#include <iostream> //引入头文件 using namespace std;typedef int Elemtype;#define Maxsize 100 #define ERROR 0 #define OK 1typedef struct LNode {Elemtype data;//数据域struct LNode* next;//指针域 }LNode, * LinkList;bool InitList(LinkList& L) …

離線數倉:用戶拉鏈錶推導過程

1.維度表 維度表有兩類&#xff1a; 1.全量快照表 离线数仓的计算周期通常为每天一次&#xff0c;可以每天保存一份全量的维度数据 优点是&#xff1a;简单有效&#xff0c;开发和维护成本都比较低&#xff0c;方便理解和使用 缺点是&#xff1a;浪费存储空间&#xff0c;尤其是…

LC1798. 你能构造出连续值的最大数目(JAVA)

LC1798. 你能构造出连续值的最大数目 题目描述贪心算法代码演示 题目描述 难度 - 中等 Leetcode - 1798. 你能构造出连续值的最大数目 给你一个长度为 n 的整数数组 coins &#xff0c;它代表你拥有的 n 个硬币。第 i 个硬币的值为 coins[i] 。如果你从这些硬币中选出一部分硬币…

vvic API接口接入说明:解锁新一代数据可视化的无限可能

随着大数据时代的来临&#xff0c;数据可视化已成为我们理解、分析和呈现复杂数据的重要手段。在这个领域中&#xff0c;vvic以其独特的优势&#xff0c;引领着数据可视化的发展潮流。其强大的API接口&#xff0c;更是为开发者提供了无限可能&#xff0c;让数据可视化变得更为简…

你准备好了吗,9月19日Java21要来了

前言 9月份的TIOBE编程语言榜单已公布&#xff0c;Python依然是第一&#xff0c;Java第四。 而这个月还有一个重要的事情&#xff0c;就是9月19日Java21将会全面发布&#xff0c;一段时间没关注的我一口老血喷在屏幕上。 我记得我写Java17新特性好像还没多久&#xff0c;Java你…