ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

智慧农业水稻病害检测数据集发布:948张图片,覆盖10种常见病虫害

智慧农业水稻病害检测数据集发布:948张图片,覆盖10种常见病虫害

智慧农业水稻病害检测数据集发布:948张图片,覆盖10种常见病虫害

精准农业的基石在于高质量数据。近日,一个专注于水稻稻瘟病、霜霉病、枯心病等病害检测的视觉数据集正式公开,为相关研究与模型训练提供了重要素材。

数据集核心概览

该数据集以智慧农业为背景,专门用于水稻主要病虫害的目标检测任务。它包含948张JPEG图像,并同时提供了Pascal VOC(XML文件)和YOLO(TXT文件)两种主流标注格式,方便不同框架直接使用。

关键统计信息一览

  • 总图片数:948张(约310张原图 + 638张增强图)
  • 标注文件数:948个XML + 948个TXT
  • 图片分辨率:统一为500x500像素
  • 标注工具:LabelImg,采用矩形框标注
  • 数据集划分:未预先划分训练/验证/测试集,需用户自行处理
  • 来源仓库:firc-dataset

10类病虫害详解与样本分布

数据集涵盖了水稻生长过程中10种常见状态,包括9种病害/虫害和1类健康样本。但需特别注意,各类别的样本数量极不均衡

类别名称(英文)类别名称(中文)标注框总数包含图片数
dead_heart枯心2007921
bacterial_leaf_streak细菌性叶条斑病93
hispa水稻铁甲虫93
bacterial_panicle_blight细菌性穗枯病63
brown_spot褐斑病63
bacterial_leaf_blight细菌性叶枯病33
blast稻瘟病33
downy_mildew霜霉病33
normal正常(健康)33
tungro东格鲁病毒病33
总计2052948

数据特点提示“枯心”类数据占绝对主导(921张图,2007个框),而其他9类各自仅有3张图片和极少标注框。此外,数据集说明中提到,约638张图片是由原图通过1:2比例增强生成的,这可能进一步影响数据分布。

数据集使用与知识扩展

1. 格式兼容性说明

同时提供VOC和YOLO格式是此数据集的一大优点。

  • VOC格式(XML):记录了每个目标框的左上角与右下角坐标(xmin, ymin, xmax, ymax),适合传统目标检测框架。
  • YOLO格式(TXT):记录了归一化的中心点坐标和宽高(class_id, x_center, y_center, width, height),是YOLO系列模型的直接输入格式。使用前务必以labels/classes.txt文件中的类别顺序为准

2. 数据不均衡问题的应对策略

鉴于“枯心”与其他类别数据量悬殊,直接训练会导致模型严重偏向多数类。建议采用以下策略:

  • 欠采样:从“枯心”类中随机抽取与少数类相近数量的样本参与训练。
  • 过采样:对9种少数类应用数据增强(如随机旋转、裁剪、颜色抖动、马赛克增强等),人工扩增其样本量。
  • 损失函数加权:在计算损失时,为少数类分配更高的权重,惩罚对其的误判。
  • 使用Focal Loss:该损失函数可降低易分类样本的权重,让模型更关注难分类的少数类样本。

3. 代码扩展:数据划分与YOLO格式读取示例

由于数据集未提供划分,以下Python代码可帮你按比例随机划分为训练集和验证集,并演示读取YOLO标签:

importosimportrandomimportshutilfrompathlibimportPath# 1. 数据集路径(请修改为你的实际路径)dataset_dir=Path('./rice_disease_dataset')image_dir=dataset_dir/'images'# 存放所有jpglabel_dir=dataset_dir/'labels'# 存放所有txtoutput_dir=Path('./rice_split')train_img_dir=output_dir/'images/train'val_img_dir=output_dir/'images/val'train_lbl_dir=output_dir/'labels/train'val_lbl_dir=output_dir/'labels/val'forpin[train_img_dir,val_img_dir,train_lbl_dir,val_lbl_dir]:p.mkdir(parents=True,exist_ok=True)# 2. 获取所有图片文件名并随机划分(比例 8:2)all_images=list(image_dir.glob('*.jpg'))random.seed(42)# 固定随机种子确保可重复random.shuffle(all_images)split_idx=int(len(all_images)*0.8)train_images=all_images[:split_idx]val_images=all_images[split_idx:]# 3. 复制文件defcopy_files(image_list,img_dst,lbl_dst):forimg_pathinimage_list:shutil.copy2(img_path,img_dst/img_path.name)lbl_path=label_dir/img_path.stem+'.txt'iflbl_path.exists():shutil.copy2(lbl_path,lbl_dst/lbl_path.name)copy_files(train_images,train_img_dir,train_lbl_dir)copy_files(val_images,val_img_dir,val_lbl_dir)print(f'训练集:{len(train_images)}张, 验证集:{len(val_images)}张')
# 4. 读取YOLO格式标签示例defread_yolo_label(txt_path,img_width=500,img_height=500):"""将归一化的YOLO坐标转换为像素坐标(左上角和右下角)"""boxes=[]withopen(txt_path,'r')asf:forlineinf.readlines():parts=line.strip().split()iflen(parts)!=5:continueclass_id,x_c,y_c,w,h=map(float,parts)# 转换为像素坐标x_min=(x_c-w/2)*img_width y_min=(y_c-h/2)*img_height x_max=(x_c+w/2)*img_width y_max=(y_c+h/2)*img_height boxes.append({'class_id':int(class_id),'bbox_pixel':[x_min,y_min,x_max,y_max]})returnboxes# 示例使用sample_label=label_dir/'some_image.txt'ifsample_label.exists():boxes=read_yolo_label(sample_label)print(f'读取到{len(boxes)}个目标框')forbinboxes[:3]:# 打印前3个print(b)

总结与标签

本数据集聚焦智慧农业水稻病虫害视觉检测,提供了统一尺寸的多格式标注数据。其最显著特点是**“枯心”类数据高度丰富,而其他9类样本极为稀缺**。它非常适合用于目标检测算法的研究,尤其适合测试模型在极端类别不均衡情况下的鲁棒性,以及小样本学习、数据增强等技术的有效性。

文章标签

#智慧农业#水稻病虫害#目标检测#深度学习#数据集#YOLO#PascalVOC#稻瘟病#霜霉病#枯心病#数据不均衡#农业AI

返回列表