如何使用Yolov8训练使用——苹果及叶片病害检测数据集 苹果叶片病害数据集 共2100张,yolo格式,已划分为训练集,验证集,测试集直接用于模型训练 7个类别
如何使用Yolov8训练使用——苹果及叶片病害检测数据集 苹果叶片病害数据集 共2100张,yolo格式,已划分为训练集,验证集,测试集直接用于模型训练7个类别
如何使用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()
总结
以上步骤涵盖了从数据集准备到模型训练、评估和可视化的完整流程
更多推荐
所有评论(0)