苹果叶片病理分类数据集,数据集包括(a)健康叶片; (b) 苹果链格孢叶斑病; (c) 褐斑病; (d) 蛙叶斑病; (e) 灰斑; (f) 苹果花叶病; (g) 白粉病; (h) 叶片锈病; (i) 赤霉病,共有14500余张图像。

苹果叶片病理分类数据集
数据集描述
该数据集旨在用于苹果叶片病理分类的研究,包含多种常见苹果叶片疾病的图像。数据集包含多种苹果叶片疾病类别,旨在帮助训练和评估计算机视觉模型,以识别和分类苹果叶片的不同病理状态。这对于农业生产和植物健康管理具有重要意义。
数据规模
数据集共有14500余张图像,涵盖了苹果叶片的多种病理状态。
类别
数据集中的类别包括:
- 健康叶片 (a):正常无病害的苹果叶片。
- 苹果链格孢叶斑病 (b):由链格孢菌引起的叶斑病。
- 褐斑病 (c):一种常见的苹果叶片病害,表现为叶片上出现褐色斑点。
- 蛙叶斑病 (d):病害特征为叶片上出现类似青蛙皮肤的斑点。
- 灰斑 (e):叶片上出现灰色斑点的病害。
- 苹果花叶病 (f):由病毒引起的苹果叶片病害,表现为叶片颜色不均。
- 白粉病 (g):叶片表面覆盖一层白色粉末状物质的病害。
- 叶片锈病 (h):叶片上出现锈色斑点的病害。
- 赤霉病 (i):由真菌引起的病害,表现为叶片上出现红色或粉红色的霉斑。
图像格式
所有图像均为JPEG格式(.jpg),方便在各类计算机视觉任务中使用。
标签格式
数据集中的标签通常以文件名或文本文件的形式提供,指示每张图像所属的类别。例如,文件名可能包含类别信息,或者有一个额外的CSV或TXT文件列出每个图像的路径及其对应的类别。
数据集结构
典型的数据集目录结构如下:
深色版本
1apple_leaf_disease_dataset/
2├── healthy/
3│   ├── leaf_0001.jpg
4│   ├── leaf_0002.jpg
5│   └── ...
6├── Alternaria_alternata/
7│   ├── leaf_0101.jpg
8│   ├── leaf_0102.jpg
9│   └── ...
10├── Brown_spot/
11│   ├── leaf_0201.jpg
12│   ├── leaf_0202.jpg
13│   └── ...
14├── Frogeye_leaf_spot/
15│   ├── leaf_0301.jpg
16│   ├── leaf_0302.jpg
17│   └── ...
18├── Gray_leaf_spot/
19│   ├── leaf_0401.jpg
20│   ├── leaf_0402.jpg
21│   └── ...
22├── Apple_mosaic/
23│   ├── leaf_0501.jpg
24│   ├── leaf_0502.jpg
25│   └── ...
26├── Powdery_mildew/
27│   ├── leaf_0601.jpg
28│   ├── leaf_0602.jpg
29│   └── ...
30├── Rust/
31│   ├── leaf_0701.jpg
32│   ├── leaf_0702.jpg
33│   └── ...
34├── Apple_scab/
35│   ├── leaf_0801.jpg
36│   ├── leaf_0802.jpg
37│   └── ...
38└── Botrytis_cinerea/
39    ├── leaf_0901.jpg
40    ├── leaf_0902.jpg
41    └── ...应用场景
该数据集可以用于以下应用场景:
- 病害识别与分类:训练模型识别苹果叶片上的不同病害类型。
- 病害监测:实时监测果园中的病害发生情况,及时采取防治措施。
- 农业管理:辅助农业生产者更好地管理作物健康,提高产量和质量。
- 科研分析:用于研究苹果叶片病害的发生规律和发展趋势。
示例代码
以下是一个使用Python和相关库(如PyTorch、PIL等)来加载和展示数据集的简单示例代码:
1import os
2import torch
3from torch.utils.data import Dataset, DataLoader
4from PIL import Image
5import torchvision.transforms as transforms
6
7# 数据集路径
8dataset_path = 'path/to/apple_leaf_disease_dataset/'
9
10# 自定义数据集类
11class AppleLeafDiseaseDataset(Dataset):
12    def __init__(self, root_dir, transform=None):
13        self.root_dir = root_dir
14        self.transform = transform
15        self.classes = [d.name for d in os.scandir(root_dir) if d.is_dir()]
16        self.class_to_idx = {cls_name: i for i, cls_name in enumerate(self.classes)}
17        self.images = []
18        for class_dir in self.classes:
19            class_path = os.path.join(root_dir, class_dir)
20            for img_file in os.listdir(class_path):
21                img_path = os.path.join(class_path, img_file)
22                self.images.append((img_path, self.class_to_idx[class_dir]))
23
24    def __len__(self):
25        return len(self.images)
26
27    def __getitem__(self, idx):
28        img_path, label = self.images[idx]
29        image = Image.open(img_path).convert('RGB')
30        if self.transform:
31            image = self.transform(image)
32        return image, label
33
34# 主函数
35if __name__ == "__main__":
36    # 数据集路径
37    dataset_path = 'path/to/apple_leaf_disease_dataset/'
38    
39    # 数据转换
40    transform = transforms.Compose([
41        transforms.Resize((224, 224)),
42        transforms.ToTensor(),
43        transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
44    ])
45    
46    # 创建数据集实例
47    dataset = AppleLeafDiseaseDataset(root_dir=dataset_path, transform=transform)
48    
49    # 创建数据加载器
50    dataloader = DataLoader(dataset, batch_size=4, shuffle=True)
51    
52    # 展示一批次的数据
53    for images, labels in dataloader:
54        print("Batch of Images:", images.shape)
55        print("Labels:", labels)
56        break这段代码展示了如何加载苹果叶片病理分类数据集,并将其转换为适合训练深度学习模型的格式。您可以根据实际需求进一步扩展和修改这段代码,以适应您的具体应用场景。



















