芒果虫害分类数据集,包括10个类别共9738张图像:茶黄蓟马荔枝叶瘿蚊白翅蜡蝉等
芒果虫害分类数据集
包括10个类别共9738张图像:茶黄蓟马Scirtothrips dorsalis Hood、荔枝叶瘿蚊Dasineura sp、白翅蜡蝉Lawana imitata Melichar、褐缘蛾蜡蝉Salurnis marginella Guerr、芒果切叶象甲Deporaus marginatus Pascoe、横线尾夜蛾Chlumetia transversa、叶蝉Mango flat beak、脊胸天牛Rhytidodera bowrinii white、芒果果肉象甲Sternochetus frigidus、叶蝉科Cicadellidae
芒果虫害分类数据集介绍
数据集名称
芒果虫害分类数据集 (Mango Pest Classification Dataset)
数据集概述
该数据集是一个专门用于训练和评估芒果虫害识别模型的数据集。数据集包含10个类别,共9738张图像,涵盖了多种常见的芒果害虫。这些图像适用于基于深度学习的分类任务,可以帮助农业专家、农民和研究人员快速准确地识别不同种类的芒果害虫,从而采取相应的防治措施。
数据集特点
- 高质量图像:数据集中的图像具有高分辨率,能够提供丰富的细节信息。
- 多类别:数据集涵盖了10种常见的芒果害虫类型,有助于训练模型识别多种害虫。
- 大规模数据量:数据集包含9738张图像,适合进行深度学习模型的训练。
- 平衡性:每个类别的样本数量相对均衡,有助于提高模型的泛化能力。
- 实际应用场景:适用于需要精确分类芒果害虫的场景,如农田管理、害虫监测等。
数据集结构
mango_pest_dataset/
├── train/ # 训练集
│ ├── Scirtothrips_dorsalis_Hood/ # 茶黄蓟马
│ │ ├── 00001.jpg # 示例图像
│ │ ├── 00002.jpg
│ │ └── ...
│ ├── Dasineura_sp/ # 荔枝叶瘿蚊
│ │ ├── 00001.jpg # 示例图像
│ │ ├── 00002.jpg
│ │ └── ...
│ ├── Lawana_imitata_Melichar/ # 白翅蜡蝉
│ │ ├── 00001.jpg # 示例图像
│ │ ├── 00002.jpg
│ │ └── ...
│ ├── Salurnis_marginella_Guerr/ # 褐缘蛾蜡蝉
│ │ ├── 00001.jpg # 示例图像
│ │ ├── 00002.jpg
│ │ └── ...
│ ├── Deporaus_marginatus_Pascoe/ # 芒果切叶象甲
│ │ ├── 00001.jpg # 示例图像
│ │ ├── 00002.jpg
│ │ └── ...
│ ├── Chlumetia_transversa/ # 横线尾夜蛾
│ │ ├── 00001.jpg # 示例图像
│ │ ├── 00002.jpg
│ │ └── ...
│ ├── Mango_flat_beak/ # 叶蝉
│ │ ├── 00001.jpg # 示例图像
│ │ ├── 00002.jpg
│ │ └── ...
│ ├── Rhytidodera_bowrinii_white/ # 脊胸天牛
│ │ ├── 00001.jpg # 示例图像
│ │ ├── 00002.jpg
│ │ └── ...
│ ├── Sternochetus_frigidus/ # 芒果果肉象甲
│ │ ├── 00001.jpg # 示例图像
│ │ ├── 00002.jpg
│ │ └── ...
│ ├── Cicadellidae/ # 叶蝉科
│ │ ├── 00001.jpg # 示例图像
│ │ ├── 00002.jpg
│ │ └── ...
├── val/ # 验证集
│ ├── Scirtothrips_dorsalis_Hood/ # 茶黄蓟马
│ │ ├── 00001.jpg # 示例图像
│ │ ├── 00002.jpg
│ │ └── ...
│ ├── Dasineura_sp/ # 荔枝叶瘿蚊
│ │ ├── 00001.jpg # 示例图像
│ │ ├── 00002.jpg
│ │ └── ...
│ ├── ... # 其他类别的验证图像
├── data.yaml # 类别描述文件
├── README.md # 数据集说明
数据集内容
-
train/
- 功能:训练集。
- 内容:
Scirtothrips_dorsalis_Hood/
:存放茶黄蓟马的训练图像。00001.jpg
:示例图像。00002.jpg
:另一张图像。- ...
Dasineura_sp/
:存放荔枝叶瘿蚊的训练图像。00001.jpg
:示例图像。00002.jpg
:另一张图像。- ...
Lawana_imitata_Melichar/
:存放白翅蜡蝉的训练图像。00001.jpg
:示例图像。00002.jpg
:另一张图像。- ...
Salurnis_marginella_Guerr/
:存放褐缘蛾蜡蝉的训练图像。00001.jpg
:示例图像。00002.jpg
:另一张图像。- ...
Deporaus_marginatus_Pascoe/
:存放芒果切叶象甲的训练图像。00001.jpg
:示例图像。00002.jpg
:另一张图像。- ...
Chlumetia_transversa/
:存放横线尾夜蛾的训练图像。00001.jpg
:示例图像。00002.jpg
:另一张图像。- ...
Mango_flat_beak/
:存放叶蝉的训练图像。00001.jpg
:示例图像。00002.jpg
:另一张图像。- ...
Rhytidodera_bowrinii_white/
:存放脊胸天牛的训练图像。00001.jpg
:示例图像。00002.jpg
:另一张图像。- ...
Sternochetus_frigidus/
:存放芒果果肉象甲的训练图像。00001.jpg
:示例图像。00002.jpg
:另一张图像。- ...
Cicadellidae/
:存放叶蝉科的训练图像。00001.jpg
:示例图像。00002.jpg
:另一张图像。- ...
-
val/
- 功能:验证集。
- 内容:
Scirtothrips_dorsalis_Hood/
:存放茶黄蓟马的验证图像。00001.jpg
:示例图像。00002.jpg
:另一张图像。- ...
Dasineura_sp/
:存放荔枝叶瘿蚊的验证图像。00001.jpg
:示例图像。00002.jpg
:另一张图像。- ...
...
:其他类别的验证图像。
-
data.yaml
- 功能:定义数据集的类别和其他相关信息。
- 内容: yaml
深色版本
train: train val: val nc: 10 names: ['Scirtothrips_dorsalis_Hood', 'Dasineura_sp', 'Lawana_imitata_Melichar', 'Salurnis_marginella_Guerr', 'Deporaus_marginatus_Pascoe', 'Chlumetia_transversa', 'Mango_flat_beak', 'Rhytidodera_bowrinii_white', 'Sternochetus_frigidus', 'Cicadellidae']
-
README.md
- 功能:数据集的详细说明文档。
- 内容:
- 数据集的来源和用途。
- 数据集的结构和内容。
- 如何使用数据集进行模型训练和评估。
- 其他注意事项和建议。
使用说明
-
环境准备
- 安装依赖库: bash
深色版本
pip install -r requirements.txt
- 确保安装了常用的深度学习库,例如
torch
,torchvision
,numpy
等。
- 安装依赖库: bash
-
数据集路径设置
- 将数据集解压到项目目录下,确保路径正确。
-
训练模型
以下是一个使用PyTorch和
torchvision
库进行芒果虫害分类的示例代码。我们将使用预训练的ResNet50模型,并对其进行微调以适应我们的数据集。import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms, models from torch.utils.data import DataLoader# 数据预处理 transform = transforms.Compose([transforms.Resize((224, 224)),transforms.RandomHorizontalFlip(),transforms.RandomRotation(10),transforms.ToTensor(),transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ])# 加载数据集 train_dataset = datasets.ImageFolder(root='mango_pest_dataset/train', transform=transform) val_dataset = datasets.ImageFolder(root='mango_pest_dataset/val', transform=transform)train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True, num_workers=4) val_loader = DataLoader(val_dataset, batch_size=32, shuffle=False, num_workers=4)# 定义模型 model = models.resnet50(pretrained=True) num_features = model.fc.in_features model.fc = nn.Linear(num_features, 10) # 10个类别# 设置设备 device = torch.device("cuda" if torch.cuda.is_available() else "cpu") model.to(device)# 定义损失函数和优化器 criterion = nn.CrossEntropyLoss() optimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9)# 训练模型 num_epochs = 50 for epoch in range(num_epochs):model.train()running_loss = 0.0for inputs, labels in train_loader:inputs, labels = inputs.to(device), labels.to(device)optimizer.zero_grad()outputs = model(inputs)loss = criterion(outputs, labels)loss.backward()optimizer.step()running_loss += loss.item()print(f'Epoch {epoch+1}/{num_epochs}, Loss: {running_loss/len(train_loader)}')# 验证模型model.eval()correct = 0total = 0with torch.no_grad():for inputs, labels in val_loader:inputs, labels = inputs.to(device), labels.to(device)outputs = model(inputs)_, predicted = torch.max(outputs.data, 1)total += labels.size(0)correct += (predicted == labels).sum().item()print(f'Validation Accuracy: {100 * correct / total:.2f}%')# 保存模型 torch.save(model.state_dict(), 'mango_pest_model.pth')
注意事项
- 数据格式:确保输入的数据格式正确,特别是图像文件的格式。
- 超参数调整:根据实际情况调整学习率、批大小等超参数,以获得最佳训练效果。
- 硬件要求:建议使用GPU进行训练和推理,以加快处理速度。如果没有足够的计算资源,可以考虑使用云服务提供商的GPU实例。
- 数据增强:可以通过数据增强技术(如随机翻转、旋转等)来增加模型的鲁棒性。
- 模型选择:除了ResNet50,还可以尝试其他预训练模型,如VGG16、InceptionV3、EfficientNet等,以找到最适合当前任务的模型。
- 类别平衡:虽然数据集中各类别的样本数量相对均衡,但在实际应用中可能需要进一步检查并处理类别不平衡问题,例如通过过采样或欠采样方法。
通过上述步骤,你可以成功地使用这个高质量的芒果虫害分类数据集进行模型训练和评估。该数据集不仅适用于学术研究,还可以应用于实际的农业生产中,帮助提升芒果虫害识别的准确性和效率。希望这个数据集能帮助你更好地理解和应用最新的深度学习技术。