yolov8之训练、验证、预测、导出

该文章已生成可运行项目,

y o l o v 8 之训练、验证、预测、导出 yolov8之训练、验证、预测、导出 yolov8之训练、验证、预测、导出

链接:https://pan.baidu.com/s/1_9hI8ZshNCJSMJVXNTVxbQ?pwd=1234
提取码:1234


一 YoloV8数据集制作

1.labelme的使用

2.数据集转为yolo格式


二 使用yolov8进行训练、验证、预测、导出

1.图像分类

from ultralytics import YOLO
# 0 参数配置
# 模型路径
model_path = r"./yolov8s-cls.pt"
# 数据集yaml文件路径
data_path = r"D:\YoloV8Manual\dataset\DogCat-cls"
# 训练轮数
epochs = 500
imgsz = 224
batch = 4
project = r"./AIModel"
name = "CatAndDog_Cls"
predict_ImgPath = r"dataset/DogCat-cls/test/cat"
save_predictImg_flag = True
exportType= "onnx"
exist_ok = True
# 1 加载模型
model = YOLO(model_path)
# 2 训练模型
model.train(data=data_path, epochs=epochs, imgsz=imgsz,batch=batch,workers=0,project=project,name=name,exist_ok=True)
# 3 验证模型
metrics = model.val(data=data_path)  # 在验证集上评估模型性能
# 4 模型预测
results = model.predict(source=predict_ImgPath,  imgsz=imgsz ,save=save_predictImg_flag,batch=batch)  # save plotted images
# 5 导出所需模式(以onnx为例)
model.export(format=exportType, imgsz=imgsz)

训练指标说明

在这里插入图片描述

在这里插入图片描述

验证指标说明

from ultralytics import YOLO
import os
# 0 参数配置
# 模型路径
model_path = r"D:\YoloV8Manual\AIModel\CatAndDog_Cls\weights\best.pt"
# 数据集yaml文件路径
data_path = r"D:\YoloV8Manual\dataset\DogCat-cls"
# 训练轮数
epochs = 1
imgsz = 224
batch = 4
project = r"./AIModel"
name = "CatAndDog_Cls"
predict_ImgPath = r"dataset/DogCat-cls/test/cat"
save_predictImg_flag = True
exportType= "onnx"
exist_ok = True
# 1 加载模型
model = YOLO(model_path)
# 2 训练模型
#model.train(data=data_path, epochs=epochs, imgsz=imgsz,batch=batch,workers=0,project=project,name=name,exist_ok=True)
# 3 验证模型
metrics = model.val(workers=0)  # 在验证集上评估模型性能
# 4 模型预测
#results = model.predict(source=predict_ImgPath,  imgsz=imgsz ,save=save_predictImg_flag,batch=batch)  # save plotted images
# 5 导出所需模式(以onnx为例)
#model.export(format=exportType, imgsz=imgsz)


在这里插入图片描述

模型预测结果

from ultralytics import YOLO
import os
# 0 参数配置
# 模型路径
model_path = r"D:\YoloV8Manual\AIModel\CatAndDog_Cls\weights\best.pt"
# 数据集yaml文件路径
data_path = r"D:\YoloV8Manual\dataset\DogCat-cls"
# 训练轮数
epochs = 1
imgsz = 224
batch = 4
project = r"./AIModel"
name = "CatAndDog_Cls"
predict_ImgPath = r"dataset/DogCat-cls/val/cat"
save_predictImg_flag = True
exportType= "onnx"
exist_ok = True
# 1 加载模型
model = YOLO(model_path)
# 2 训练模型
#model.train(data=data_path, epochs=epochs, imgsz=imgsz,batch=batch,workers=0,project=project,name=name,exist_ok=True)
# 3 验证模型
# metrics = model.val(workers=0)  # 在验证集上评估模型性能
# 4 模型预测
results = model.predict(source=predict_ImgPath,  imgsz=imgsz ,save=save_predictImg_flag,batch=batch)  # save plotted images
# 5 导出所需模式(以onnx为例)
#model.export(format=exportType, imgsz=imgsz)


在这里插入图片描述
在这里插入图片描述

模型导出

在这里插入图片描述

1.导出TensorRT

TensorRT环境配置

from ultralytics import YOLO
import os
# 0 参数配置
# 模型路径
model_path = r"D:\YoloV8Manual\AIModel\CatAndDog_Cls\weights\best.pt"
# 数据集yaml文件路径
data_path = r"D:\YoloV8Manual\dataset\DogCat-cls"
# 训练轮数
epochs = 1
imgsz = 224
batch = 4
project = r"./AIModel"
name = "CatAndDog_Cls"
predict_ImgPath = r"dataset/DogCat-cls/val/cat"
save_predictImg_flag = True
exportType= "engine"
exist_ok = True
# 1 加载模型
model = YOLO(model_path)
# 2 训练模型
# model.train(data=data_path, epochs=epochs, imgsz=imgsz,batch=batch,workers=0,project=project,name=name,exist_ok=True)
# 3 验证模型
# metrics = model.val(workers=0)  # 在验证集上评估模型性能
# 4 模型预测
# results = model.predict(source=predict_ImgPath,  imgsz=imgsz ,save=save_predictImg_flag,batch=batch)  # save plotted images
# 5 导出所需模式(以onnx为例)
model.export(format=exportType)


在这里插入图片描述
在这里插入图片描述

2.导出OpenVino

OpenVino环境配置

from ultralytics import YOLO
import os
# 0 参数配置
# 模型路径
model_path = r"D:\YoloV8Manual\AIModel\CatAndDog_Cls\weights\best.pt"
# 数据集yaml文件路径
data_path = r"D:\YoloV8Manual\dataset\DogCat-cls"
# 训练轮数
epochs = 1
imgsz = 224
batch = 4
project = r"./AIModel"
name = "CatAndDog_Cls"
predict_ImgPath = r"dataset/DogCat-cls/val/cat"
save_predictImg_flag = True
exportType= "openvino"
exist_ok = True
# 1 加载模型
model = YOLO(model_path)
# 2 训练模型
# model.train(data=data_path, epochs=epochs, imgsz=imgsz,batch=batch,workers=0,project=project,name=name,exist_ok=True)
# 3 验证模型
# metrics = model.val(workers=0)  # 在验证集上评估模型性能
# 4 模型预测
# results = model.predict(source=predict_ImgPath,  imgsz=imgsz ,save=save_predictImg_flag,batch=batch)  # save plotted images
# 5 导出所需模式(以onnx为例)
model.export(format=exportType)

在这里插入图片描述

2.图像检测

from ultralytics import YOLO
# 0 参数配置
# 模型路径
model_path = r"./yolov8s.pt"
# 数据集yaml文件路径
data_yaml = r"D:\YoloV8Manual\data_yaml\det_data.yaml"
# 训练轮数
epochs = 500
imgsz = 224
batch = 4
project = r"./AIModel"
name = "CatAndDog_Det"
predict_ImgPath = r"dataset/DogCat-det/images/val"
save_predictImg_flag = True
exportType= "onnx"
exist_ok = True
# 1 加载模型
model = YOLO(model_path)
# 2 训练模型
model.train(data=data_yaml, epochs=epochs, imgsz=imgsz,batch=batch,workers=0,project=project,name=name,exist_ok=True)
# 3 验证模型
metrics = model.val(data=data_yaml)  # 在验证集上评估模型性能
# 4 模型预测
results = model.predict(source=predict_ImgPath,  imgsz=imgsz ,save=save_predictImg_flag,batch=batch)  # save plotted images
# 5 导出所需模式(以onnx为例)
model.export(format=exportType, imgsz=imgsz)

训练指标说明

在这里插入图片描述

在这里插入图片描述

验证指标说明

from ultralytics import YOLO
# 0 参数配置
# 模型路径
model_path = r"D:\YoloV8Manual\AIModel\CatAndDog_Det\weights\best.pt"
# 数据集yaml文件路径
data_yaml = r"D:\YoloV8Manual\data_yaml\det_data.yaml"
# 训练轮数
epochs = 500
imgsz = 224
batch = 4
project = r"./AIModel"
name = "CatAndDog_Det"
predict_ImgPath = r"dataset/DogCat-det/images/val"
save_predictImg_flag = True
exportType= "onnx"
exist_ok = True
# 1 加载模型
model = YOLO(model_path)
# 2 训练模型
# model.train(data=data_yaml, epochs=epochs, imgsz=imgsz,batch=batch,workers=0,project=project,name=name,exist_ok=True)
# 3 验证模型
metrics = model.val(data=data_yaml,workers=0)  # 在验证集上评估模型性能
# 4 模型预测
# results = model.predict(source=predict_ImgPath,  imgsz=imgsz ,save=save_predictImg_flag,batch=batch)  # save plotted images
# 5 导出所需模式(以onnx为例)
# model.export(format=exportType, imgsz=imgsz)

在这里插入图片描述

模型预测结果

from ultralytics import YOLO
# 0 参数配置
# 模型路径
model_path = r"D:\YoloV8Manual\AIModel\CatAndDog_Det\weights\best.pt"
# 数据集yaml文件路径
data_yaml = r"D:\YoloV8Manual\data_yaml\det_data.yaml"
# 训练轮数
epochs = 500
imgsz = 224
batch = 4
project = r"./AIModel"
name = "CatAndDog_Det"
predict_ImgPath = r"dataset/DogCat-det/images/val"
save_predictImg_flag = True
exportType= "onnx"
exist_ok = True
# 1 加载模型
model = YOLO(model_path)
# 2 训练模型
# model.train(data=data_yaml, epochs=epochs, imgsz=imgsz,batch=batch,workers=0,project=project,name=name,exist_ok=True)
# 3 验证模型
# metrics = model.val(data=data_yaml,workers=0)  # 在验证集上评估模型性能
# 4 模型预测
results = model.predict(source=predict_ImgPath,  imgsz=imgsz ,save=save_predictImg_flag,batch=batch)  # save plotted images
# 5 导出所需模式(以onnx为例)
# model.export(format=exportType, imgsz=imgsz)

在这里插入图片描述
在这里插入图片描述

导出结果

1 导出TensorRT

from ultralytics import YOLO
# 0 参数配置
# 模型路径
model_path = r"D:\YoloV8Manual\AIModel\CatAndDog_Det\weights\best.pt"
# 数据集yaml文件路径
data_yaml = r"D:\YoloV8Manual\data_yaml\det_data.yaml"
# 训练轮数
epochs = 500
imgsz = 224
batch = 4
project = r"./AIModel"
name = "CatAndDog_Det"
predict_ImgPath = r"dataset/DogCat-det/images/val"
save_predictImg_flag = True
exportType= "engine"
exist_ok = True
# 1 加载模型
model = YOLO(model_path)
# 2 训练模型
# model.train(data=data_yaml, epochs=epochs, imgsz=imgsz,batch=batch,workers=0,project=project,name=name,exist_ok=True)
# 3 验证模型
# metrics = model.val(data=data_yaml,workers=0)  # 在验证集上评估模型性能
# 4 模型预测
# results = model.predict(source=predict_ImgPath,  imgsz=imgsz ,save=save_predictImg_flag,batch=batch)  # save plotted images
# 5 导出所需模式(以onnx为例)
model.export(format=exportType, imgsz=imgsz)


在这里插入图片描述

在这里插入图片描述

2 导出OpenVino

from ultralytics import YOLO
# 0 参数配置
# 模型路径
model_path = r"D:\YoloV8Manual\AIModel\CatAndDog_Det\weights\best.pt"
# 数据集yaml文件路径
data_yaml = r"D:\YoloV8Manual\data_yaml\det_data.yaml"
# 训练轮数
epochs = 500
imgsz = 224
batch = 4
project = r"./AIModel"
name = "CatAndDog_Det"
predict_ImgPath = r"dataset/DogCat-det/images/val"
save_predictImg_flag = True
exportType= "openvino"
exist_ok = True
# 1 加载模型
model = YOLO(model_path)
# 2 训练模型
# model.train(data=data_yaml, epochs=epochs, imgsz=imgsz,batch=batch,workers=0,project=project,name=name,exist_ok=True)
# 3 验证模型
# metrics = model.val(data=data_yaml,workers=0)  # 在验证集上评估模型性能
# 4 模型预测
# results = model.predict(source=predict_ImgPath,  imgsz=imgsz ,save=save_predictImg_flag,batch=batch)  # save plotted images
# 5 导出所需模式(以onnx为例)
model.export(format=exportType, imgsz=imgsz)

在这里插入图片描述
在这里插入图片描述

3.实例分割

from ultralytics import YOLO
# 0 参数配置
# 模型路径
model_path = r"./yolov8s-seg.pt"
# 数据集yaml文件路径
data_yaml = r"D:\YoloV8Manual\data_yaml\seg_data.yaml"
# 训练轮数
epochs = 500
imgsz = 224
batch = 4
project = r"./AIModel"
name = "CatAndDog_Seg"
predict_ImgPath = r"dataset/DogCat-seg/images/val"
save_predictImg_flag = True
exportType= "onnx"
exist_ok = True
# 1 加载模型
model = YOLO(model_path)
# 2 训练模型
model.train(data=data_yaml, epochs=epochs, imgsz=imgsz,batch=batch,workers=0,project=project,name=name,exist_ok=True)
# 3 验证模型
metrics = model.val(data=data_yaml)  # 在验证集上评估模型性能
# 4 模型预测
results = model.predict(source=predict_ImgPath,  imgsz=imgsz ,save=save_predictImg_flag,batch=batch)  # save plotted images
# 5 导出所需模式(以onnx为例)
model.export(format=exportType, imgsz=imgsz)

训练指标说明

在这里插入图片描述

验证指标说明

from ultralytics import YOLO
# 0 参数配置
# 模型路径
model_path = r"./yolov8s-seg.pt"
# 数据集yaml文件路径
data_yaml = r"D:\YoloV8Manual\data_yaml\seg_data.yaml"
# 训练轮数
epochs = 500
imgsz = 224
batch = 4
project = r"./AIModel"
name = "CatAndDog_Seg"
predict_ImgPath = r"dataset/DogCat-seg/images/val"
save_predictImg_flag = True
exportType= "onnx"
exist_ok = True
# 1 加载模型
model = YOLO(model_path)
# 2 训练模型
# model.train(data=data_yaml, epochs=epochs, imgsz=imgsz,batch=batch,workers=0,project=project,name=name,exist_ok=True)
# 3 验证模型
metrics = model.val(data=data_yaml)  # 在验证集上评估模型性能
# 4 模型预测
# results = model.predict(source=predict_ImgPath,  imgsz=imgsz ,save=save_predictImg_flag,batch=batch)  # save plotted images
# 5 导出所需模式(以onnx为例)
# model.export(format=exportType, imgsz=imgsz)


在这里插入图片描述

模型预测结果

from ultralytics import YOLO
# 0 参数配置
# 模型路径
model_path = r"./yolov8s-seg.pt"
# 数据集yaml文件路径
data_yaml = r"D:\YoloV8Manual\data_yaml\seg_data.yaml"
# 训练轮数
epochs = 500
imgsz = 224
batch = 4
project = r"./AIModel"
name = "CatAndDog_Seg"
predict_ImgPath = r"dataset/DogCat-seg/images/val"
save_predictImg_flag = True
exportType= "onnx"
exist_ok = True
# 1 加载模型
model = YOLO(model_path)
# 2 训练模型
# model.train(data=data_yaml, epochs=epochs, imgsz=imgsz,batch=batch,workers=0,project=project,name=name,exist_ok=True)
# 3 验证模型
# metrics = model.val(data=data_yaml,workers=0)  # 在验证集上评估模型性能
# 4 模型预测
results = model.predict(source=predict_ImgPath,  imgsz=imgsz ,save=save_predictImg_flag,batch=batch)  # save plotted images
# 5 导出所需模式(以onnx为例)
# model.export(format=exportType, imgsz=imgsz)


在这里插入图片描述
在这里插入图片描述

导出结果

1.导出TensorRT引擎

from ultralytics import YOLO
# 0 参数配置
# 模型路径
model_path = r"./yolov8s-seg.pt"
# 数据集yaml文件路径
data_yaml = r"D:\YoloV8Manual\data_yaml\seg_data.yaml"
# 训练轮数
epochs = 500
imgsz = 224
batch = 4
project = r"./AIModel"
name = "CatAndDog_Seg"
predict_ImgPath = r"dataset/DogCat-seg/images/val"
save_predictImg_flag = True
exportType= "engine"
exist_ok = True
# 1 加载模型
model = YOLO(model_path)
# 2 训练模型
# model.train(data=data_yaml, epochs=epochs, imgsz=imgsz,batch=batch,workers=0,project=project,name=name,exist_ok=True)
# 3 验证模型
# metrics = model.val(data=data_yaml,workers=0)  # 在验证集上评估模型性能
# 4 模型预测
# results = model.predict(source=predict_ImgPath,  imgsz=imgsz ,save=save_predictImg_flag,batch=batch)  # save plotted images
# 5 导出所需模式(以onnx为例)
model.export(format=exportType, imgsz=imgsz)


在这里插入图片描述
在这里插入图片描述

2.导出openvino

from ultralytics import YOLO
# 0 参数配置
# 模型路径
model_path = r"./yolov8s-seg.pt"
# 数据集yaml文件路径
data_yaml = r"D:\YoloV8Manual\data_yaml\seg_data.yaml"
# 训练轮数
epochs = 500
imgsz = 224
batch = 4
project = r"./AIModel"
name = "CatAndDog_Seg"
predict_ImgPath = r"dataset/DogCat-seg/images/val"
save_predictImg_flag = True
exportType= "openvino"
exist_ok = True
# 1 加载模型
model = YOLO(model_path)
# 2 训练模型
# model.train(data=data_yaml, epochs=epochs, imgsz=imgsz,batch=batch,workers=0,project=project,name=name,exist_ok=True)
# 3 验证模型
# metrics = model.val(data=data_yaml,workers=0)  # 在验证集上评估模型性能
# 4 模型预测
# results = model.predict(source=predict_ImgPath,  imgsz=imgsz ,save=save_predictImg_flag,batch=batch)  # save plotted images
# 5 导出所需模式(以onnx为例)
model.export(format=exportType, imgsz=imgsz)

在这里插入图片描述
在这里插入图片描述


补充:

如何解决安装Anaconda后,使用pip install 包名 安装的包未出现在Anaconda目录的sit-site-packages,而出现在C盘python的sitepackag里问题

本文章已经生成可运行项目
### 使用YOLOv8进行模型训练验证的操作指南 #### 1. 数据准备 为了使用 YOLOv8 进行训练,首先需要准备好标注好的数据集。通常情况下,数据集应遵循 COCO 或 VOC 的格式。如果数据未按照这些标准格式化,则可以通过工具将其转换为目标格式。 ```bash # 假设您已有一个名为 custom_dataset.yaml 的配置文件 # 配置文件定义了训练验证图像路径以及类别名称。 ``` #### 2. 安装 Ultralytics 库 Ultralytics 是官方支持 YOLOv8 的库,安装此库可以方便地调用其 API 来完成训练验证工作。 ```bash pip install ultralytics ``` #### 3. 加载预训练模型 加载预训练YOLOv8 模型非常简便,可以直接通过 `ultralytics` 提供的功能实现。 ```python from ultralytics import YOLO model = YOLO('yolov8n-seg.pt') # 加载预训练的小规模分割模型[^1] ``` #### 4. 开始训练过程 一旦模型被成功加载,就可以利用该模型基于自定义的数据集启动训练流程。 ```python results = model.train( data='custom_dataset.yaml', # 自定义数据集的 YAML 文件路径 epochs=100, # 总共运行的 epoch 数量 imgsz=640 # 输入图片尺寸 (高度/宽度) ) ``` 上述代码片段展示了如何设置基本参数来执行训练任务。这里指定了使用的数据源 (`data`)、迭代次数 (`epochs`) 和输入图像大小 (`imgsz`) 。 #### 5. 执行验证评估 当训练完成后或者在特定间隔期间,可对当前模型性能进行测试评价。 ```python metrics = model.val() # 对验证集上的表现进行评测 print(metrics.box.map) # 输出边界框平均精度均值(MAP) print(metrics.seg.map) # 如果涉及语义分割则打印相应MAP指标 ``` 这段脚本用于衡量经过一轮或多轮学习后的成果质量,特别是针对目标检测中的定位准确性及分类能力等方面进行了量化分析 。 #### 6. 推理预测 最后,在实际应用环境中部署之前还需要确认新样本上预测效果是否理想。 ```python successes = model.predict(source="test_images", save=True, show=False) for success in successes: print(success.xyxy) # 显示每个对象的位置坐标[x_min,y_min,x_max,y_max] ``` 以上部分演示了怎样从本地目录读取待测图片并生成可视化结果的同时保存下来以便后续审查 。 --- ###
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值