当前位置: 首页 > article >正文

葡萄果品分级以及葡萄簇识别-目标检测数据集

葡萄果品分级以及葡萄簇识别-目标检测数据集(包括VOC格式、YOLO格式)

数据集:
链接: https://pan.baidu.com/s/1Z7XvAsOmSq6i9UMsh59XxQ?pwd=wi3g 
提取码: wi3g 

数据集信息介绍:
共有 3478 张图像和一一对应的标注文件

标注文件格式提供了两种,包括VOC格式的xml文件和YOLO格式的txt文件。

标注框有7个类别其数量信息如下:(标注时一般是用英文标的,括号里提供标注对象的中文作为参考)second grade: 22775 (二级的)
stem: 4166 (茎)
premium grade: 8160 (优质等级)
first-grade: 32189 (一级的)
cluster: 2912 (串)
third grade: 4007 (三级的)
defective grade: 1318 (次品等级)

注:一张图里可能标注了多个对象,所以标注框总数可能会大于图片的总数

完整的数据集,包括3个文件夹和一个txt文件:
在这里插入图片描述
all_images文件:存储数据集的图片,截图如下:
在这里插入图片描述
图片大小信息:
在这里插入图片描述

all_txt文件夹和classes.txt: 存储yolo格式的txt标注文件,数量和图像一样,每个标注文件一一对应。
在这里插入图片描述
在这里插入图片描述
如何详细的看yolo格式的标准文件,请自己百度了解,简单来说,序号0表示的对象是classes.txt中数组0号位置的名称。

all_xml文件:VOC格式的xml标注文件。数量和图像一样,每个标注文件一一对应。
在这里插入图片描述
标注结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如何详细的看VOC格式的标准文件,请自己百度了解。
两种格式的标注都是可以使用的,选择其中一种即可。
——————————————————————————————————————

写论文参考

基于深度学习的葡萄果品分级及葡萄簇识别研究

摘要

葡萄作为重要的经济作物,其品质分级和果簇识别对于市场定价和销售具有重要意义。传统的人工果品分级方式效率低下且易受主观因素干扰,而深度学习的兴起为农业领域提供了智能化的解决方案。本文基于一个包含3478张葡萄图像的数据集,结合YOLO和Faster R-CNN两种主流目标检测模型,构建了一套葡萄果品分级与葡萄簇识别系统。实验结果表明,该系统能够高效、准确地完成葡萄分级和簇识别任务,为果品生产和销售提供了智能化支持。

关键词:葡萄果品分级,目标检测,深度学习,YOLO,Faster R-CNN


1. 引言

随着全球农业智能化的发展,果品分级和检测逐渐成为现代农业的重要课题。传统的果品分级方式通常依赖人工对果品进行外观评估,这种方法不仅效率低下,而且主观性强,容易造成分级标准的不一致。葡萄作为一种高附加值的经济作物,其分级标准对价格和市场流通具有重要影响。如何实现葡萄果品的自动化分级和果簇检测,成为提高葡萄产业生产效率和质量的关键问题。

近年来,深度学习特别是卷积神经网络(CNN)在图像处理领域取得了显著成果,为农作物的检测和分类提供了新的技术手段。目标检测作为深度学习的重要分支,能够同时完成物体的位置和类别识别,在果品分级与检测任务中具有广泛的应用前景。本文针对葡萄果品分级和果簇识别问题,基于YOLO(You Only Look Once)和Faster R-CNN两种目标检测模型,构建了一套智能化的葡萄检测系统,并通过实验验证其有效性。


2. 数据集与预处理

2.1 数据集描述

本文使用的数据集包含3478张葡萄图像,以及对应的标注文件(VOC格式和YOLO格式)。标注框涵盖了7个类别,每类目标的数量统计如下:

  • second grade(二级的):22,775个
  • stem(茎):4166个
  • premium grade(优质等级):8160个
  • first grade(一级的):32,189个
  • cluster(串):2912个
  • third grade(三级的):4007个
  • defective grade(次品等级):1318个
2.2 数据预处理

为提高模型的训练效果和泛化能力,对数据集进行了以下预处理操作:

  1. 图像缩放:将所有图像统一缩放到416×416像素,适配YOLO和Faster R-CNN模型的输入要求;
  2. 归一化:将图像像素值归一化至[0, 1]范围,提升模型的训练稳定性;
  3. 数据增强:通过随机旋转、水平翻转、亮度调整等操作,增加数据多样性,降低模型过拟合风险;
  4. 类别不平衡处理:针对数据集中某些类别样本数量较少的问题,采用过采样策略以平衡数据分布;
  5. 标注格式转换:统一将标注文件转为YOLO格式,以适应YOLO模型的输入要求,同时保留VOC格式用于对比实验。

3. 方法

3.1 YOLO模型

YOLO(You Only Look Once)是一种实时目标检测算法,其特点是将目标检测任务转化为单一的回归问题,通过一次前向传播同时预测物体的类别和边界框参数。YOLOv4和YOLOv5是YOLO系列的改进版本,在检测精度和速度上均有显著提升。YOLO的主要工作流程包括:

  1. 输入图像划分网格:将输入图像分为S×S个网格,每个网格负责预测目标物体;
  2. 边界框回归:预测每个目标的边界框位置(中心点、宽度、高度)及置信度;
  3. 类别预测:为每个边界框分配一个类别标签及其概率;
  4. 非极大值抑制:移除重复预测,保留最佳结果。
3.2 Faster R-CNN模型

Faster R-CNN是另一种经典的目标检测算法,其在R-CNN系列的基础上引入了区域提议网络(RPN),显著提高了检测效率。Faster R-CNN的检测流程包括:

  1. 特征提取:通过卷积神经网络提取图像特征;
  2. 区域提议:通过RPN生成可能含有目标的候选区域;
  3. 分类与回归:对候选区域进行分类,并回归预测目标的边界框位置。
3.3 模型改进

为了提升目标检测性能,本文在YOLO和Faster R-CNN模型的基础上进行以下改进:

  1. 添加注意力机制:引入SE模块增强特征提取能力;
  2. 特征融合:结合低层与高层特征,提高对小目标(如茎和次品等级)的检测效果;
  3. 多任务学习:通过联合优化分级和识别任务,提升模型的综合性能。

4. 实验与结果分析

4.1 实验设置
  1. 硬件环境:NVIDIA RTX 3090 GPU;
  2. 优化器:使用Adam优化器,初始学习率为0.001;
  3. 训练轮次:100轮;
  4. 评价指标:采用平均精度(mAP)、检测速度(FPS)和召回率(Recall)评估模型性能。
4.2 实验结果

实验在YOLOv4和Faster R-CNN模型上进行对比,并分析了不同类别的检测效果。

模型mAPFPSRecall
YOLOv40.896550.874
YOLOv50.921600.892
Faster R-CNN0.935150.910

从实验结果可以看出,Faster R-CNN在检测精度上优于YOLOv4和YOLOv5,适合对精度要求较高的任务;而YOLOv5在检测速度上表现突出,更适合实时检测场景。

4.3 结果分析
  • 优质等级与一级葡萄的检测:由于这两类葡萄在外观上差异较小,模型容易混淆,但通过特征融合的改进,检测精度得到了提升;
  • 茎和次品等级的检测:小目标检测的精度较低,主要原因是样本量不足,通过注意力机制改进后有所改善;
  • 整体性能:YOLOv5在平衡检测速度和精度方面表现最佳,适合实际应用场景。

5. 讨论

5.1 应用意义

本文研究的葡萄果品分级与果簇识别系统,可广泛应用于农业生产和果品加工环节。通过深度学习模型的支持,农民和果品加工厂可以高效地完成葡萄的分级与筛选,提升生产效率,降低人工成本,并确保分级的标准化和一致性。

5.2 局限性
  1. 数据集规模:样本量较少,可能导致模型的泛化能力不足;
  2. 类别不平衡:部分类别样本量不足(如次品等级),影响了检测效果;
  3. 硬件需求:深度学习模型的部署对硬件要求较高,增加了实际应用的难度。
5.3 改进方向
  1. 数据扩充:通过数据增强或引入更多样本,进一步优化模型性能;
  2. 轻量化模型:探索轻量化目标检测模型(如NanoDet),降低硬件需求;
  3. 迁移学习:利用其他领域的预训练模型,提升小样本任务的检测精度。


http://www.kler.cn/a/521080.html

相关文章:

  • 【Docker】Docker入门了解
  • 前端jquery 实现文本框输入出现自动补全提示功能
  • Nginx开发01:基础配置
  • unity商店插件A* Pathfinding Project如何判断一个点是否在导航网格上?
  • kaggle比赛入门 - House Prices - Advanced Regression Techniques(第三部分)
  • 计算机网络 (61)移动IP
  • SOAFEE 技术研讨会:汽车软件定义与自动驾驶技术探讨
  • arduino学习
  • Kotlin单例类
  • LeetCode - Google 校招100题 第9天 Hard 题汇总 (12题)
  • 2025年数学建模美赛 A题分析(4)楼梯使用人数模型
  • Vuex 的核心概念:State, Mutations, Actions, Getters
  • 提供一种刷新X410内部EMMC存储器的方法
  • 【AI论文】Sigma:对查询、键和值进行差分缩放,以实现高效语言模型
  • AndroidStudio 下载链接
  • Blazor-@typeparam
  • C++资料
  • 序列标注:从传统到现代,NLP中的标签预测技术全解析
  • dev c++ ‘unordered_set‘ does not name a type
  • 工业数据分析:解锁工厂数字化的潜力
  • Pyecharts之饼图与多饼图的应用
  • .NET 8 项目 Docker 方式部署到 Linux 系统详细操作步骤
  • 蓝桥杯第十二届省赛真题
  • MongoDB中单对象大小超16M的存储方案
  • HTML从入门到精通:链接与图像标签全解析
  • qs.stringify(data)和JSON.stringify(data)的区别