苹果叶片病理分类数据集,数据集包括(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
这段代码展示了如何加载苹果叶片病理分类数据集,并将其转换为适合训练深度学习模型的格式。您可以根据实际需求进一步扩展和修改这段代码,以适应您的具体应用场景。