玉米虫害分类数据集,包括13个类别共14015张图像:蛴螬(grub)、蝼蛄(mole cricket)、金针虫(wireworm)、白边蛾(white margined moth)、小地老虎(black cutworm)、大地老虎(large cutworm)、黄地老虎(yellow cutworm)、红蜘蛛(red spider)、玉米螟(corn borer)、夜蛾(army worm)、蚜虫(aphids)、白星花金龟(Potosiabre vitarsis)、桃蛀螟(peach borer),训练集、验证集、测试集分别有8404、1399、4212张
玉米虫害分类数据集(Maize Pest Classification Dataset, MPCD)
摘要
MPCD 是一个专注于玉米作物中常见害虫识别的数据集,它包含14015张高分辨率的图像,涵盖了13种不同的害虫类别。该数据集旨在帮助农业研究人员和农民快速准确地识别田间存在的主要害虫,以便及时采取防治措施,减少损失并提高农业生产效率。数据集已经划分为训练集、验证集和测试集,方便用户直接进行模型训练和评估。
数据集特点
- 大规模图像库:数据集拥有14015张高质量的昆虫病虫害图像,为模型训练提供了充足的数据量。
- 多样化的害虫种类:数据集包括了13种常见的玉米害虫,覆盖了大部分对玉米生产构成威胁的主要害虫。
- 精准的标注信息:每张图像都经过专业人员的精细标注,确保了目标区域的准确性。
- 易于使用:数据集已经按照标准格式整理,并且划分了训练集、验证集和测试集,可以直接用于深度学习模型的训练和评估。
- 广泛的应用性:适用于农业科研、智能农业、自动化害虫监测等多个领域。
数据集构成
-
总图像数量:14015张
-
类别数:13类
-
类别名称:
- 蛴螬 (grub)
- 蝼蛄 (mole cricket)
- 金针虫 (wireworm)
- 白边蛾 (white margined moth)
- 小地老虎 (black cutworm)
- 大地老虎 (large cutworm)
- 黄地老虎 (yellow cutworm)
- 红蜘蛛 (red spider)
- 玉米螟 (corn borer)
- 夜蛾 (army worm)
- 蚜虫 (aphids)
- 白星花金龟 (Potosia brevitarsis)
- 桃蛀螟 (peach borer)
-
数据集划分:
- 训练集: 8404张
- 验证集: 1399张
- 测试集: 4212张
示例代码
以下是一个简单的Python脚本示例,用于加载数据集中的一对图像-标签对,并可视化其中的标注信息:
import os
import cv2
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
# 数据集目录路径
data_dir = 'path/to/mpcd_dataset'
train_image_dir = os.path.join(data_dir, 'images/train')
train_label_dir = os.path.join(data_dir, 'labels/train')
# 选取一张训练图像及其对应标签
image_files = os.listdir(train_image_dir)
image_file = image_files[0] # 假设取第一张图
label_file = os.path.splitext(image_file)[0] + '.txt' # 假设是TXT格式的标签
image_path = os.path.join(train_image_dir, image_file)
label_path = os.path.join(train_label_dir, label_file)
# 加载图像
image = cv2.imread(image_path, cv2.IMREAD_COLOR)
height, width, _ = image.shape
# 解析YOLO格式标签
def parse_yolo_label(label_path, image_width, image_height):
bboxes = []
with open(label_path, 'r') as f:
lines = f.readlines()
for line in lines:
class_id, x_center, y_center, box_width, box_height = map(float, line.strip().split())
x_min = int((x_center - box_width / 2) * image_width)
y_min = int((y_center - box_height / 2) * image_height)
box_width = int(box_width * image_width)
box_height = int(box_height * image_height)
bboxes.append((class_id, x_min, y_min, box_width, box_height))
return bboxes
# 解析标签
bboxes = parse_yolo_label(label_path, width, height)
# 可视化标注
fig, ax = plt.subplots(figsize=(10, 10))
ax.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
colors = ['#FFA500', '#00FFFF', '#00BFFF', '#EE82EE', '#00FA9A', '#ADD8E6', '#9ACD32', '#FFDAB9', '#00FA9A', '#DC143C', '#00FF7F', '#87CEFA', '#FF6347'] # 这里展示十三个颜色作为示例
names = ['Grub', 'Mole Cricket', 'Wireworm', 'White Margined Moth', 'Black Cutworm', 'Large Cutworm', 'Yellow Cutworm', 'Red Spider', 'Corn Borer', 'Army Worm', 'Aphids', 'Potosia brevitarsis', 'Peach Borer'] # 这里仅展示十三个类别作为示例
for bbox, color_name in zip(bboxes, colors):
class_id, x, y, w, h = bbox
rect = Rectangle((x, y), w, h, linewidth=2, edgecolor=color_name, facecolor='none')
ax.add_patch(rect)
ax.text(x, y - 10, names[int(class_id)], color=color_name, fontsize=8)
plt.title('Maize Pest Classification Dataset')
plt.axis('off')
plt.show()
数据集使用指南
-
数据准备:
- 确认数据集路径是否正确,并且图像和标签文件均存在指定的目录下。
- 检查数据集是否有损坏或缺失的文件,确保所有图像和对应的标注文件都是完整的。
-
数据集划分:
- 数据集已经被划分为训练集、验证集和测试集,分别有8404张、1399张和4212张图像。
-
配置文件:
- 根据所使用的深度学习框架(如YOLOv5, YOLOv7, Detectron2等),创建合适的配置文件,设置好训练参数,包括学习率、批次大小、迭代次数等。
-
模型训练:
- 使用提供的数据集开始训练模型,注意根据实际情况调整模型参数。
-
模型评估:
- 训练完成后,在验证集上评估模型的表现,观察其在不同类别上的准确性和召回率。
- 在最终测试集上进行评估以获取模型的真实性能。
-
应用实践:
- 将训练好的模型部署到实际的农田监控系统中,实现实时的害虫识别和预警功能,提升农业生产的智能化水平。