ARTICLE DETAIL

资讯详情

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

智慧果园桃子成熟度检测数据集:1245张图像,覆盖三种关键采摘期

智慧果园桃子成熟度检测数据集:1245张图像,覆盖三种关键采摘期

智慧果园桃子成熟度检测数据集:1245张图像,覆盖三种关键采摘期

精准农业与自动采摘系统的核心在于对农产品成熟度的准确判断。近期公开的一个桃子成熟度检测视觉数据集,为相关算法研发提供了标准化素材。

数据集核心概览

该数据集聚焦智慧果园场景下的桃子成熟度自动检测任务,旨在通过图像识别区分桃子所处的生长阶段。它包含1245张高分辨率JPEG图像,并同时提供了Pascal VOC(XML文件)和YOLO(TXT文件)两种主流标注格式,方便兼容不同目标检测框架。

关键统计信息一览

  • 总图片数:1245张
  • 标注文件数:1245个XML + 1245个TXT
  • 图片分辨率:1024×1365(高清竖版)
  • 标注类别数:3类(成熟、半熟、未熟)
  • 总标注框数:3493个
  • 标注工具:LabelImg,采用矩形框标注
  • 数据集划分:未预先划分训练/验证/测试集,需用户自行处理
  • 来源仓库:firc-dataset

三类成熟度详解与样本分布

数据集将桃子成熟度细分为3个关键阶段,这对于确定最佳采摘期至关重要。各类别的样本分布如下:

类别名称类别含义(采摘建议)标注框总数包含图片数
unripe未熟(不宜采摘,需继续生长)1618522
ripe成熟(最佳采摘期)1168496
semi-ripe半熟(可采摘,但风味未达顶峰)707403
总计34931245

数据特点:三个类别的样本数量相对均衡,其中“未熟”类数据略多。每张图片可能包含多个不同成熟度的桃子,这更贴近真实的果园场景,也对模型的细粒度识别能力提出了更高要求。

数据集使用与知识扩展

1. 成熟度检测的农业意义

桃子在成熟过程中,其颜色、硬度、糖度等指标会发生显著变化。计算机视觉模型通过学习这些视觉特征(如底色由绿转白或黄、着色面积增加等),可以实现:

  • 最佳采摘期预测:避免过早采摘导致风味不足,或过晚采摘造成储运损耗。
  • 自动化分拣:在产后处理环节,按成熟度自动分级,满足不同销售渠道需求(如即食与耐储运)。
  • 产量预估与果园管理:统计不同成熟度果实的比例,辅助制定采收计划。

2. 数据格式与预处理要点

  • 高分辨率处理:图像尺寸为1024×1365,在训练YOLO等模型时,可能需要根据设备显存调整输入尺寸(如640×640),同时注意保持宽高比,避免失真。
  • 类别顺序确认:使用YOLO格式时,务必以labels/classes.txt文件中的类别顺序为准,确保类别ID与名称对应正确。根据提供的信息,YOLO格式中类别顺序可能与列表[“ripe”,“semi-ripe”,“unripe”]不同。

3. 代码扩展:数据增强与不平衡处理策略

虽然本数据集类别分布相对均衡,但为提升模型泛化能力,可实施以下策略:

a. 针对性的数据增强
对于桃子检测,建议采用不改变颜色特征的增强方法,以保持成熟度的视觉真实性:

importalbumentationsasA# 定义适合成熟度检测的增强流水线transform=A.Compose([A.RandomRotate90(p=0.5),# 旋转A.Flip(p=0.5),# 翻转A.RandomBrightnessContrast(brightness_limit=0.1,contrast_limit=0.1,p=0.5),# 微调亮度对比度A.Blur(blur_limit=3,p=0.2),# 轻微模糊模拟运动A.RandomSizedBBoxSafeCrop(height=1024,width=1365,erosion_rate=0.1,p=0.3)# 随机裁剪并保持框安全],bbox_params=A.BboxParams(format='yolo',label_fields=['class_labels']))

b. 简单处理类别轻微不均衡
若需平衡,可使用sklearn.utils.class_weight计算类别权重,并在损失函数(如CrossEntropyLoss)中设置weight参数。

c. 数据集划分代码(8:1:1)

importosimportrandomimportshutilfromsklearn.model_selectionimporttrain_test_split# 1. 设置路径(请修改)image_dir='./peach_dataset/images'# 存放所有jpglabel_dir='./peach_dataset/labels'# 存放所有txtoutput_dir='./peach_split'# 2. 获取所有图片,并按8:1:1划分all_images=[fforfinos.listdir(image_dir)iff.endswith('.jpg')]train_imgs,temp_imgs=train_test_split(all_images,test_size=0.2,random_state=42)val_imgs,test_imgs=train_test_split(temp_imgs,test_size=0.5,random_state=42)# 3. 定义复制函数(略,可参考前一文章实现)# 分别将图像和对应同名txt文件复制到 output_dir/images/{train,val,test} 和 output_dir/labels/{train,val,test}print(f'训练集:{len(train_imgs)}, 验证集:{len(val_imgs)}, 测试集:{len(test_imgs)}')

4. 模型选择建议

对于此类目标检测任务,可优先考虑:

  • YOLOv8/v9/v10系列:在检测精度和速度上均衡,适合潜在边缘设备部署。
  • RT-DETR:百度提出的实时检测Transformer,在高分辨率输入下可能有优势。
  • 评估指标:重点关注mAP@0.5mAP@0.5:0.95,特别是对不同成熟度类别的AP(平均精度)分别分析,以发现模型在哪个阶段表现欠佳。

总结与标签

本数据集服务于智慧农业自动采摘中的关键环节——桃子成熟度检测。它提供了1245张高分辨率图像和均衡的三类别标注,格式规范,直接可用。此数据集特别适合用于训练和评估目标检测模型细粒度视觉识别任务上的性能,以及在自然果园环境下对不同成熟度目标进行精准定位与分类的能力。

文章标签

#智慧农业#桃子成熟度检测#目标检测#深度学习#数据集#YOLO#PascalVOC#精细农业#自动采摘#计算机视觉#模型训练

返回列表