十大待遇最好央企,seo搜索引擎优化公司,wordpress短信插件,网站一年多少钱去年十一那会无意间刷到一个视频展示的就是德国机械收割机非常高效自动化地24小时不间断地在超广阔的土地上采摘各种作物#xff0c;专家设计出来了很多用于采摘不同农作物的大型机械#xff0c;看着非常震撼#xff0c;但是我们国内农业的发展还是相对比较滞后的#xff0…去年十一那会无意间刷到一个视频展示的就是德国机械收割机非常高效自动化地24小时不间断地在超广阔的土地上采摘各种作物专家设计出来了很多用于采摘不同农作物的大型机械看着非常震撼但是我们国内农业的发展还是相对比较滞后的小的时候拔草是一个人一列蹲在地里就在那埋头拔草不知道什么时候才能走到地的尽头小块的分散的土地太多基本上都是只能人工手工来取收割大点的连片的土地可以用收割机来收割不过收割机基本都是用来收割小麦的最近几年好像老家也能看到用于收割玉米的机器了不过相对还是比较少的玉米的收割我们基本上还是人工来收割的不仅累效率还低遇上对玉米叶片过敏的就更要命了。。。。闲话就扯到这里了。 
有时候经常在想我们的农业机械化自动化什么时候能再向前迈进一大步回顾德国的工业机械在视频展示的效果中其实很关键的主要是两部分一部分是机器视觉定位检测识别另一部分是机械臂传动轴两部分相互配合才能完成采摘工作前文实践如下 
《AI助力农作物自动采摘基于YOLOv7【tiny/l/x】不同系列参数模型开发构建作物生产场景下番茄采摘检测计数分析系统》 
《AI助力农作物自动采摘基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建作物生产场景下番茄采摘检测计数分析系统》 
《AI助力农作物自动采摘基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建作物生产场景下番茄采摘检测计数分析系统》 
《AI助力农作物自动采摘基于YOLOv3全系列【yolov3tiny/yolov3/yolov3spp】参数模型开发构建作物生产场景下番茄采摘检测计数分析系统》 《AI助力农作物自动采摘基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建作物番茄采摘场景下番茄成熟度检测识别分析系统》 
《AI助力农作物自动采摘基于YOLOv7【tiny/l/x】不同系列参数模型开发构建作物番茄采摘场景下番茄成熟度检测识别分析系统》 
《AI助力农作物自动采摘基于DETR(DEtection TRansformer)开发构建作物生产场景下番茄采摘检测计数分析系统》 
《AI助力农作物自动采摘基于DETR(DEtection TRansformer)开发构建番茄采摘场景下番茄成熟度检测识别计数分析系统》 
本文的主要想法是想要基于YOLOv5全系列的不同参数量级的模型来开发构建用于番茄采摘场景下的番茄作物成熟度检测识别系统首先看下实例效果 本文是选择的是YOLOv5算法模型来完成本文项目的开发构建。相较于前两代的算法模型YOLOv5可谓是集大成者达到了SOTA的水平下面简单对v3-v5系列模型的演变进行简单介绍总结方便对比分析学习: 【YOLOv3】 YOLOv3You Only Look Once version 3是一种基于深度学习的快速目标检测算法由Joseph Redmon等人于2018年提出。它的核心技术原理和亮点如下 技术原理 YOLOv3采用单个神经网络模型来完成目标检测任务。与传统的目标检测方法不同YOLOv3将目标检测问题转化为一个回归问题通过卷积神经网络输出图像中存在的目标的边界框坐标和类别概率。 YOLOv3使用Darknet-53作为骨干网络用来提取图像特征。检测头detection head负责将提取的特征映射到目标边界框和类别预测。 亮点 YOLOv3在保持较高的检测精度的同时能够实现非常快的检测速度。相较于一些基于候选区域的目标检测算法如Faster R-CNN、SSD等YOLOv3具有更高的实时性能。 YOLOv3对小目标和密集目标的检测效果较好同时在大目标的检测精度上也有不错的表现。 YOLOv3具有较好的通用性和适应性适用于各种目标检测任务包括车辆检测、行人检测等。 【YOLOv4】 YOLOv4是一种实时目标检测模型它在速度和准确度上都有显著的提高。相比于其前一代模型YOLOv3YOLOv4在保持较高的检测精度的同时还提高了检测速度。这主要得益于其采用的CSPDarknet53网络结构主要有三个方面的优点增强CNN的学习能力使得在轻量化的同时保持准确性降低计算瓶颈降低内存成本。YOLOv4的目标检测策略采用的是“分而治之”的策略将一张图片平均分成7×7个网格每个网格分别负责预测中心点落在该网格内的目标。这种方法不需要额外再设计一个区域提议网络RPN从而减少了训练的负担。然而尽管YOLOv4在许多方面都表现出色但它仍然存在一些不足。例如小目标检测效果较差。此外当需要在资源受限的设备上部署像YOLOv4这样的大模型时模型压缩是研究人员重新调整较大模型所需资源消耗的有用工具。 优点 速度YOLOv4 保持了 YOLO 算法一贯的实时性能够在检测速度和精度之间实现良好的平衡。 精度YOLOv4 采用了 CSPDarknet 和 PANet 两种先进的技术提高了检测精度特别是在检测小型物体方面有显著提升。 通用性YOLOv4 适用于多种任务如行人检测、车辆检测、人脸检测等具有较高的通用性。 模块化设计YOLOv4 中的组件可以方便地更换和扩展便于进一步优化和适应不同场景。 缺点 内存占用YOLOv4 模型参数较多因此需要较大的内存来存储和运行模型这对于部分硬件设备来说可能是一个限制因素。 训练成本YOLOv4 模型需要大量的训练数据和计算资源才能达到理想的性能这可能导致训练成本较高。 精确度与速度的权衡虽然 YOLOv4 在速度和精度之间取得了较好的平衡但在极端情况下例如检测高速移动的物体或复杂背景下的物体时性能可能会受到影响。 误检和漏检由于 YOLOv4 采用单一网络对整个图像进行预测可能会导致一些误检和漏检现象。 
【YOLOv5】 YOLOv5是一种快速、准确的目标检测模型由Glen Darby于2020年提出。相较于前两代模型YOLOv5集成了众多的tricks达到了性能的SOTA 技术原理 YOLOv5同样采用单个神经网络模型来完成目标检测任务但采用了新的神经网络架构融合了领先的轻量级模型设计理念。YOLOv5使用较小的骨干网络和新的检测头设计以实现更快的推断速度并在不降低精度的前提下提高目标检测的准确性。 亮点 YOLOv5在模型结构上进行了改进引入了更先进的轻量级网络架构因此在速度和精度上都有所提升。 YOLOv5支持更灵活的模型大小和预训练选项可以根据任务需求选择不同大小的模型同时提供丰富的数据增强扩展、模型集成等方法来提高检测精度。YOLOv5通过使用更简洁的代码实现提高了模型的易用性和可扩展性。 
训练数据配置文件如下 
# Dataset
path: ./dataset
train:- images/train
val:- images/test
test:- images/test# Classes
names:0: unripe1: sem-ripe2: fullyripe实验截止目前本文将YOLOv5系列五款不同参数量级的模型均进行了开发评测接下来看下模型详情 
# Ultralytics YOLO , AGPL-3.0 license
# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5# Parameters
nc: 3  # number of classes
scales: # model compound scaling constants, i.e. modelyolov5n.yaml will call yolov5.yaml with scale n# [depth, width, max_channels]n: [0.33, 0.25, 1024]s: [0.33, 0.50, 1024]m: [0.67, 0.75, 1024]l: [1.00, 1.00, 1024]x: [1.33, 1.25, 1024]# YOLOv5 v6.0 backbone
backbone:# [from, number, module, args][[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2[-1, 1, Conv, [128, 3, 2]],  # 1-P2/4[-1, 3, C3, [128]],[-1, 1, Conv, [256, 3, 2]],  # 3-P3/8[-1, 6, C3, [256]],[-1, 1, Conv, [512, 3, 2]],  # 5-P4/16[-1, 9, C3, [512]],[-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32[-1, 3, C3, [1024]],[-1, 1, SPPF, [1024, 5]],  # 9]# YOLOv5 v6.0 head
head:[[-1, 1, Conv, [512, 1, 1]],[-1, 1, nn.Upsample, [None, 2, nearest]],[[-1, 6], 1, Concat, [1]],  # cat backbone P4[-1, 3, C3, [512, False]],  # 13[-1, 1, Conv, [256, 1, 1]],[-1, 1, nn.Upsample, [None, 2, nearest]],[[-1, 4], 1, Concat, [1]],  # cat backbone P3[-1, 3, C3, [256, False]],  # 17 (P3/8-small)[-1, 1, Conv, [256, 3, 2]],[[-1, 14], 1, Concat, [1]],  # cat head P4[-1, 3, C3, [512, False]],  # 20 (P4/16-medium)[-1, 1, Conv, [512, 3, 2]],[[-1, 10], 1, Concat, [1]],  # cat head P5[-1, 3, C3, [1024, False]],  # 23 (P5/32-large)[[17, 20, 23], 1, Detect, [nc]],  # Detect(P3, P4, P5)] 
在实验训练开发阶段所有的模型均保持完全相同的参数设置等待训练完成后来整体进行评测对比分析。 
【F1值曲线】 F1值曲线是一种用于评估二分类模型在不同阈值下的性能的可视化工具。它通过绘制不同阈值下的精确率Precision、召回率Recall和F1分数的关系图来帮助我们理解模型的整体性能.F1分数是精确率和召回率的调和平均值它综合考虑了两者的性能指标。F1值曲线可以帮助我们确定在不同精确率和召回率之间找到一个平衡点以选择最佳的阈值。 【loss曲线】 【Precision曲线】 精确率曲线Precision-Recall Curve是一种用于评估二分类模型在不同阈值下的精确率性能的可视化工具。它通过绘制不同阈值下的精确率和召回率之间的关系图来帮助我们了解模型在不同阈值下的表现。精确率Precision是指被正确预测为正例的样本数占所有预测为正例的样本数的比例。召回率Recall是指被正确预测为正例的样本数占所有实际为正例的样本数的比例。 【Recall曲线】 召回率曲线Recall Curve是一种用于评估二分类模型在不同阈值下的召回率性能的可视化工具。它通过绘制不同阈值下的召回率和对应的精确率之间的关系图来帮助我们了解模型在不同阈值下的表现。召回率Recall是指被正确预测为正例的样本数占所有实际为正例的样本数的比例。召回率也被称为灵敏度Sensitivity或真正例率True Positive Rate。 从整体实验结果对比来看n系列的模型效果最差被其他几款模型拉开了明显的差距s系列的模型在60个epoch之前同样被拉开了明显的差距随后达到了与其他几款模型相近的水准m和l系列的模型性能相近x系列的模型最优略高于m和l系列的模型考虑到计算量的问题这里我们最终选择使用m系列的模型来作为最终的推理模型。 
接下来就以m系列的模型为基准详细看下结果详情 
【Batch实例】 【数据分布可视化】 【PR曲线】 【训练可视化】 【混淆矩阵】 感兴趣的话都可以自行动手尝试下 
如果自己不具备开发训练的资源条件或者是没有时间自己去训练的话这里我提供出来对应的训练结果可供自行按需索取。 
单个模型的训练结果默认YOLOv5s 
全系列五个模型的训练结果总集