水稻病虫害目标检测数据集(YOLO格式):15类、20,115张图片、35,003个标注

TL;DR:本数据集是覆盖15类水稻病虫害(6类虫害+9类病害)的大规模目标检测数据集,包含20,115张图片和35,003个标注目标,采用YOLO格式标注,可直接用于YOLOv8等模型训练。数据集按7:2:1划分为训练集(14,030张)、验证集(3,974张)和测试集(2,111张)。

数据集下载地址:https://pan.baidu.com/s/1i1ZayZvweN4ByU23eMQWAw 提取码: 7jzr

水稻病虫害检测示例


什么是水稻病虫害目标检测数据集?

水稻病虫害目标检测数据集是指用于训练和评估目标检测模型(如YOLO系列)的标准化图像数据集合,其标注内容为水稻叶片、茎秆等部位出现的病虫害目标位置和类别。本数据集覆盖褐飞虱、稻瘟病、纹枯病等15类水稻常见病虫害,共计20,115张图片和35,003个标注目标,采用YOLO格式(class_id x_center y_center width height)进行标注,可直接用于YOLOv8、YOLOv5等模型的训练与评估。

关键数据:据全国农技中心2024年预报,全国农作物重大病虫害预计发生面积23.30亿亩次,潜在产量损失超过3000亿斤,其中水稻"两迁"害虫(褐飞虱、稻纵卷叶螟)和二化螟呈重发态势。基于深度学习的水稻病虫害自动检测技术是减损保丰收的关键技术手段之一。


一、数据集背景与意义

水稻是我国最重要的粮食作物之一,病虫害每年造成大量减产。据农业农村部《2024年"虫口夺粮"保丰收行动方案》,水稻"两迁"害虫、二化螟等重大病虫害呈重发态势,对粮油生产构成严重威胁。传统人工巡检方式效率低、误判率高,基于深度学习的自动检测技术成为智慧农业的重要发展方向。

本数据集的构建旨在为水稻病虫害目标检测模型的训练提供大规模、高质量的标注数据,覆盖6类虫害和9类病害,适用于YOLO系列等主流目标检测框架。


二、数据规模

数据集 图片数量 标注目标数
训练集 14,030 24,521
验证集 3,974 6,952
测试集 2,111 3,530
合计 20,115 35,003

数据集按约 7:2:1 的比例划分为训练集、验证集和测试集,符合目标检测领域的通用划分标准。


三、类别分布

数据集包含 15类 水稻病虫害,其中虫害6类、病害9类。总标注目标数为35,003个,平均每类2,333个标注。

虫害类别(6类)

编号 英文名 中文名 训练集标注数 占比
0 Bhopper 褐飞虱 2,833 11.6%
1 Ghopper 灰飞虱 1,083 4.4%
2 Folder 卷叶虫 1,536 6.3%
3 Rice-bug 稻蝽象 1,252 5.1%
4 Stem-borer 二化螟 1,031 4.2%
5 Whorl-maggot 稻瘿蚊 2,199 9.0%

病害类别(9类)

编号 英文名 中文名 训练集标注数 占比
6 False-smut 稻曲病 2,339 9.5%
7 Sheath-blight 纹枯病 4,251 17.3%
8 Streak 条纹叶枯病 2,400 9.8%
9 Tungro 东格鲁病毒病 2,148 8.8%
10 Blast 稻瘟病 4,308 17.6%
11 Blight 白叶枯病 4,093 16.7%
12 Brown-spot 褐斑病 1,877 7.7%
13 Dead-heart 枯心苗 2,322 9.5%
14 Downy-mildew 霜霉病 1,331 5.4%

类别平衡分析:最大类别(Blast 稻瘟病)4,308个标注,最小类别(Stem-borer 二化螟)1,031个标注,最大/最小比例为4.18,标准差/平均值为0.46,存在一定类别不平衡。

在这里插入图片描述


四、数据格式

本数据集采用 YOLO标注格式,每张图片对应一个同名的 .txt 标签文件。YOLO格式是一种目标检测领域广泛使用的标注格式,由Ultralytics团队定义,每个标注目标占一行,包含5个数值:

class_id x_center y_center width height

各字段含义

字段 取值范围 说明
class_id 0~14 类别编号(对应15类病虫害)
x_center 0~1 目标中心点x坐标(归一化到图片宽度)
y_center 0~1 目标中心点y坐标(归一化到图片高度)
width 0~1 目标宽度(归一化到图片宽度)
height 0~1 目标高度(归一化到图片高度)

标注示例

0 0.78046875 0.38515625 0.2125 0.403125
0 0.53984375 0.66484375 0.31875 0.421875

上述示例表示同一张图片中检测到两个褐飞虱(class_id=0)目标,坐标均为归一化值。


五、目录结构

datasets/
├── data.yaml              # 数据集配置文件
├── classes.txt            # 类别名称文件
├── train/
│   ├── images/            # 训练图片 (14,030)
│   ├── labels/            # 训练标签 (14,030)
│   └── classes.txt
├── val/
│   ├── images/            # 验证图片 (3,974)
│   ├── labels/            # 验证标签 (3,974)
│   └── classes.txt
├── test/
│   ├── images/            # 测试图片 (2,111)
│   ├── labels/            # 测试标签 (2,111)
│   └── classes.txt
└── sample/                # 示例数据集 (每类5张)
    ├── data.yaml
    ├── train/  (75张)
    ├── val/    (75张)
    └── test/   (75张)

六、data.yaml 配置文件

data.yaml 是YOLO训练的核心配置文件,定义了数据集路径、类别数和类别名称:

path: D:/Rice_Diseases_and_Pests/ultralytics-main/ultralytics-main/datasets
train: train/images
val: val/images
test: test/images

nc: 15
names: [
    'Bhopper', 'Ghopper', 'Folder', 'Rice-bug', 'Stem-borer',
    'Whorl-maggot', 'False-smut', 'Sheath-blight', 'Streak',
    'Tungro', 'Blast', 'Blight', 'Brown-spot', 'Dead-heart',
    'Downy-mildew'
]

使用时将 path 修改为本机数据集实际路径即可。nc: 15 表示15个类别,names 列表按编号顺序定义了每个类别的英文名称。


七、如何使用本数据集训练YOLOv8模型?

步骤1:安装环境

pip install ultralytics

Ultralytics YOLOv8 是目前最流行的目标检测框架之一,支持目标检测、实例分割、图像分类等多种任务。安装后即可使用 yolo 命令行工具或 Python API。

步骤2:修改数据集路径

data.yaml 中的 path 字段修改为数据集在本机的实际存放路径:

path: /your/local/path/to/datasets

步骤3:启动训练

from ultralytics import YOLO

# 加载预训练模型
model = YOLO('yolov8n.pt')

# 开始训练
model.train(data='data.yaml', epochs=100, imgsz=640, batch=16)

推荐使用 yolov8n.pt(nano版本)进行初步训练验证,该模型仅3.2M参数,适合快速迭代。后续可切换 yolov8s.ptyolov8m.pt 等更大模型以提升精度。

步骤4:模型验证

model = YOLO('best.pt')
metrics = model.val()

步骤5:推理预测

results = model.predict(source='test.jpg', save=True)

八、数据分析

8.1 类别平衡度

  • 平均每类标注数:2,333
  • 最大类(Blast 稻瘟病):4,308,占比 1.85x
  • 最小类(Stem-borer 二化螟):1,031,占比 0.44x
  • 最大/最小比例:4.18
  • 标准差/平均值:0.46

解读:最大/最小比例为4.18,属于中等程度类别不平衡。稻瘟病(Blast)和白叶枯病(Blight)标注数量最多,这与这两种病害在实际生产中发生率较高的特点一致。

8.2 目标尺寸分布

尺寸类别 划分标准 说明
小目标 面积 < 32x32 检测难度较大
中等目标 32x32 <= 面积 < 96x96 占比较高
大目标 面积 >= 96x96 检测相对容易

根据《农业工程学报》发表的"基于YOLOv8n改进的水稻病害轻量化检测"研究,水稻病害目标在田间环境中存在大量小目标,对模型的检测精度构成挑战。

8.3 位置与宽高比

  • 目标中心点基本均匀分布,图像中心区域目标密度略高
  • 宽高比均值约 1.0,大部分目标接近正方形
  • 极端宽高比目标较少

九、与其他水稻病虫害数据集的对比

对比维度 本数据集 Rice-Pest-2024 常见3类病害数据集
图片数量 20,115 ~15,000 ~3,000
标注目标数 35,003 - -
类别数 15(6虫害+9病害) 20(8病害+12害虫) 3
标注格式 YOLO YOLO YOLO
数据划分 7:2:1 - -
是否含示例集 是(225张)
类别平衡度 中等(4.18x) - -

本数据集在图片数量和标注目标数上具有显著优势,且提供了独立的示例数据集(sample/),方便研究者快速验证。


十、示例数据集

为方便快速验证,提供了 sample/ 文件夹,每类取5张图片,结构与完整数据集一致:

sample/
├── data.yaml
├── train/  (75张, 15类x5)
├── val/    (75张, 15类x5)
└── test/   (75张, 15类x5)

示例数据集共225张图片,可直接用于模型训练流程验证,无需下载完整数据集。


十一、常见问题

Q1: 训练时显存不够怎么办?

当GPU显存不足时,可通过以下三种方式降低显存占用:

  1. 减小batch大小:将 batch 参数从16降至8或4,显存占用减半
  2. 使用更小的模型yolov8n.pt(3.2M参数)是YOLOv8系列中最小的模型
  3. 减小输入分辨率:将 imgsz 从640降至416,显存占用减少约57%

Q2: 如何提升小目标检测效果?

水稻病虫害中小目标占比较高,可通过以下策略提升检测精度:

  1. 增大输入分辨率:设置 imgsz=1280,提供更多细节信息
  2. 添加SAHI:使用SAHI(Slicing Aided Hyper Inference)切片辅助推理库
  3. 数据增强:在训练配置中启用Mosaic、CopyPaste等增强策略

Q3: 类别不平衡如何处理?

本数据集最大/最小类别比例为4.18,可通过以下方法缓解:

  1. 过采样:对少数类(如二化螟、灰飞虱)进行数据复制或增强
  2. Focal Loss:使用Focal Loss替代标准交叉熵,自动降低易分类样本权重
  3. 类别权重:在训练配置中设置 class_weights 参数

Q4: YOLO格式和COCO格式有什么区别?

对比项 YOLO格式 COCO格式
文件格式 .txt(每行一个目标) .json(单个文件包含所有标注)
坐标表示 归一化的中心点+宽高 绝对像素的左上角+宽高
适用框架 YOLO系列(YOLOv5/v8/v11) Detectron2、MMDetection等
读取效率 高(文本格式轻量) 中(需解析JSON)
附加信息 仅类别和位置 支持分割掩码、关键点等

Q5: 这个数据集可以用于商业项目吗?

本数据集主要用于学术研究和教育目的。如需用于商业项目,请确认数据来源的版权许可,并遵守相关法律法规。


十二、参考链接


Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐