如何使用Yolov8训练使用——苹果及叶片病害检测数据集 苹果叶片病害数据集 共2100张,yolo格式,已划分为训练集,验证集,测试集直接用于模型训练
(7:2:1)
7个类别在这里插入图片描述

label| pic_ num| box _num
alternaria:(304,310)
anthr acnose :(320,320)
marssonina :(317,31 7)
scab:(310,310)
sootyb I otch:(323,323)
va | sacanker :(304,333)
whiterot:(317,31 7)
total:(2195,2230)
在这里插入图片描述

苹果及叶片病害检测数据集
数据集概述
该数据集包含2100张苹果及叶片病害图像,已按7:2:1的比例划分为训练集、验证集和测试集。每个图像包含一个或多个标注框,标注框采用YOLO格式。数据集中共有7个类别,每个类别的图像数量和标注框数量如下:

Alternaria (304张图像,310个标注框)
Anthraco nse (320张图像,320个标注框)
Marssonina (317张图像,317个标注框)
Scab (310张图像,310个标注框)
Sooty Blotch (323张图像,323个标注框)
Valsa Canker (304张图像,333个标注框)
White Rot (317张图像,317个标注框)
总计:2195张图像,2230个标注框。
在这里插入图片描述

数据集结构
假设数据集的目录结构如下:

深色版本
apple_leaf_disease_dataset/
├── images/
│ ├── train/
│ │ ├── 000001.jpg
│ │ ├── 000002.jpg
│ │ └── …
│ ├── val/
│ │ ├── 000001.jpg
│ │ ├── 000002.jpg
│ │ └── …
│ ├── test/
│ │ ├── 000001.jpg
│ │ ├── 000002.jpg
│ │ └── …
├── labels/
│ ├── train/
│ │ ├── 000001.txt
│ │ ├── 000002.txt
│ │ └── …
│ ├── val/
│ │ ├── 000001.txt
│ │ ├── 000002.txt
│ │ └── …
│ ├── test/
│ │ ├── 000001.txt
│ │ ├── 000002.txt
│ │ └── …
使用YOLOv8进行训练
安装依赖
首先,确保你已经安装了YOLOv8所需的依赖。你可以通过以下命令安装:

bash
深色版本
pip install ultralytics
配置数据集
创建一个配置文件 apple_leaf_disease.yaml,内容如下:

yaml
深色版本
path: apple_leaf_disease_dataset # 数据集路径
train: images/train # 训练集图像路径
val: images/val # 验证集图像路径
test: images/test # 测试集图像路径

nc: 7 # 类别数
names: [‘alternaria’, ‘anthracnose’, ‘marssonina’, ‘scab’, ‘sooty_blotch’, ‘valsacanker’, ‘whiterot’] # 类别名称
训练模型
使用以下命令训练YOLOv8模型:

bash
深色版本
yolo train data=apple_leaf_disease.yaml model=yolov8n.pt epochs=100 imgsz=640
代码示例
你也可以通过Python代码来训练模型:

python
深色版本
from ultralytics import YOLO

加载预训练模型

model = YOLO(‘yolov8n.pt’)

训练模型

results = model.train(
data=‘apple_leaf_disease.yaml’, # 数据集配置文件
epochs=100, # 训练轮数
imgsz=640, # 图像尺寸
batch=16, # 批量大小
name=‘apple_leaf_disease’ # 实验名称
)

评估模型

results = model.val()
模型评估
训练完成后,可以使用以下命令评估模型在测试集上的性能:

bash
深色版本
yolo val data=apple_leaf_disease.yaml model=runs/detect/apple_leaf_disease/weights/best.pt imgsz=640
或者通过Python代码进行评估:

python
深色版本

评估模型

results = model.val(data=‘apple_leaf_disease.yaml’, imgsz=640)
可视化结果
你可以使用以下代码来可视化模型的预测结果:

python
深色版本
import cv2
import torch
from ultralytics import YOLO

加载训练好的模型

model = YOLO(‘runs/detect/apple_leaf_disease/weights/best.pt’)

读取测试图像

image_path = ‘apple_leaf_disease_dataset/images/test/000001.jpg’
image = cv2.imread(image_path)

进行预测

results = model(image)

可视化预测结果

for result in results:
boxes = result.boxes.xyxy # 获取边界框
confidences = result.boxes.conf # 获取置信度
class_ids = result.boxes.cls # 获取类别ID

for box, confidence, class_id in zip(boxes, confidences, class_ids):
    x1, y1, x2, y2 = map(int, box)
    label = f'{model.names[int(class_id)]} {confidence:.2f}'
    color = (0, 255, 0)  # 绿色
    cv2.rectangle(image, (x1, y1), (x2, y2), color, 2)
    cv2.putText(image, label, (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, color, 2)

显示图像

cv2.imshow(‘Prediction’, image)
cv2.waitKey(0)
cv2.destroyAllWindows()
总结
以上步骤涵盖了从数据集准备到模型训练、评估和可视化的完整流程

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐