助力花生作物智能化采摘,基于最新脉冲目标检测模型SpikeYOLO全系列【n/s/m/l/x】参数模型开发构建花生种植采摘场景下花生果实智能检测计数系统

秋天,是大地回馈辛勤耕耘者的季节,金黄的稻田、硕果累累的果园、还有那一片片郁郁葱葱的花生地,共同绘制出一幅幅丰收的画卷。对于农民而言,秋收不仅仅是收获的季节,更是他们与土地情感交织、汗水与希望交织的见证。花生,作为重要的经济作物之一,其采摘过程历来是农业生产中的重要环节。然而,传统的花生采摘方式大多依赖人工,劳动强度大、效率低,且伴随着不小的浪费问题。在往昔的秋日里,农民们需先小心翼翼地松土,再缓缓拔出花生植株,抖落泥土,一颗颗地将花生果实摘下,装入编织袋中。这种纯手工的方式,虽承载着世代传承的智慧与汗水,却也难以掩盖其低效与辛劳。随着科技的飞速发展,特别是人工智能、大模型、具身智能机器人等技术的不断突破,农业生产正迎来一场前所未有的变革。

近年来,越来越多的传统行业开始探索AI技术的应用,以期提升生产效率、优化作业模式。在农业领域,这一趋势尤为明显。以花生采摘为例,传统作业中常见的场景是:收割机作业后,仍有大量花生遗落在田间,需要人工弯腰捡拾,这不仅耗时费力,还容易遗漏,造成资源浪费。针对这一问题,AI智能化采摘机器人的出现,为花生采摘带来了新的解决方案。智能化采摘机器人,集成了环境感知、图像处理、机械臂操作等多项先进技术。它们能够通过环境交互式感知系统,精准定位并挖掘地里的花生。机器人头部的高清摄像头则扮演着“眼睛”的角色,负责捕捉花生植株的图像信息。这些图像数据随后被送入预先训练好的目标检测模型中,该模型能够高效、精确地识别并定位花生果实,甚至能进行计数,确保每一颗花生都不被遗漏。

为了实现这一目标,关键在于构建高效高精度的目标检测模型。这要求我们在软件开发阶段,广泛收集田间地头花生采摘的真实场景图像,并进行细致的人工标注。这些标注数据是模型训练的基石,它们帮助模型学习到花生果实在不同光照、角度、遮挡情况下的特征,从而提升模型的泛化能力和识别精度。通过深度学习算法的不断迭代优化,最终得到的模型能够在复杂多变的田间环境中,准确识别并定位花生果实,为机械臂的精准采摘提供可靠依据。本文正是基于这样的背景思考下,考虑基于轻量级的检测模型来实践开发花生果实检测计数系统,在前面的博文中我们已经进行了相关的开发实践,感兴趣的话可以自行移步阅读:

《助力花生作物智能化采摘,基于嵌入式端超轻量级模型LeYOLO全系列【n/s/m/l】参数模型开发构建花生种植采摘场景下花生果实智能检测计数系统》

《助力花生作物智能化采摘,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建花生种植采摘场景下花生果实智能检测计数系统》

《助力花生作物智能化采摘,基于YOLOv7全系列【tiny/l/x】参数模型开发构建花生种植采摘场景下花生果实智能检测计数系统》

《助力花生作物智能化采摘,基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建花生种植采摘场景下花生果实智能检测计数系统》

《助力花生作物智能化采摘,基于YOLOv10全系列【n/s/m/b/l/x】参数模型开发构建花生种植采摘场景下花生果实智能检测计数系统》

《助力花生作物智能化采摘,基于YOLOv11全系列【n/s/m/l/x】参数模型开发构建花生种植采摘场景下花生果实智能检测计数系统》

本文则是想要基于YOLO系列最新发表的高性能低功耗的脉冲目标检测模型SpikeYOLO全系列的参数模型来进行开发实践,首先看下实例效果:

接下来看下实例数据:

训练数据配置文件如下:

# Dataset
path: ./dataset
train:
  - /dataset/images/train
val:
  - /dataset/images/val
test:
  - /dataset/images/test
 
 
# Classes
names:
  0: peanut

SpikeYOLO的论文我趁着午休的时间简读了一下,感兴趣的话可以参考:

《脉冲目标检测网络模型SpikeYOLO——基于整值训练和脉冲驱动推理的高性能节能目标检测神经网络》

受脑启发的脉冲神经网络 (SNNs) 具有生物合理性和低功耗优势,优于人工神经网络 (ANNs)。由于性能较差,SNNs 的应用目前仅限于简单的分类任务。本研究专注于缩小目标检测任务中 ANNs 和 SNNs 之间的性能差距。首先,过复杂的模块设计导致 YOLO 系列转换为相应脉冲版本时出现脉冲降级。我们设计了 SpikeYOLO 架构,通过简化原始 YOLO 并整合元 SNN 模块来解决这个问题。其次,目标检测对脉冲神经元将膜电位转换为二进制脉冲过程中的量化误差更加敏感。为了应对这一挑战,我们设计了一种新型脉冲神经元,它在训练期间激活整数值,同时通过扩展虚拟时间步长在推断过程中保持脉冲驱动。整体网络结构设计详情如下图所示:

目前官方并没有发布可用的预训练模型权重,所以这里我们是需要从零开始训练的。

实验阶段我们保持了相同的参数设置,等待长时期的训练过程结束之后我们来对全系列五款不同参数量级的模型进行纵向的对比分析,如下:

【Precision曲线】
精确率曲线(Precision Curve)是一种用于评估二分类模型在不同阈值下的精确率性能的可视化工具。它通过绘制不同阈值下的精确率和召回率之间的关系图来帮助我们了解模型在不同阈值下的表现。
精确率(Precision)是指被正确预测为正例的样本数占所有预测为正例的样本数的比例。召回率(Recall)是指被正确预测为正例的样本数占所有实际为正例的样本数的比例。
绘制精确率曲线的步骤如下:
使用不同的阈值将预测概率转换为二进制类别标签。通常,当预测概率大于阈值时,样本被分类为正例,否则分类为负例。
对于每个阈值,计算相应的精确率和召回率。
将每个阈值下的精确率和召回率绘制在同一个图表上,形成精确率曲线。
根据精确率曲线的形状和变化趋势,可以选择适当的阈值以达到所需的性能要求。
通过观察精确率曲线,我们可以根据需求确定最佳的阈值,以平衡精确率和召回率。较高的精确率意味着较少的误报,而较高的召回率则表示较少的漏报。根据具体的业务需求和成本权衡,可以在曲线上选择合适的操作点或阈值。
精确率曲线通常与召回率曲线(Recall Curve)一起使用,以提供更全面的分类器性能分析,并帮助评估和比较不同模型的性能。

【Recall曲线】
召回率曲线(Recall Curve)是一种用于评估二分类模型在不同阈值下的召回率性能的可视化工具。它通过绘制不同阈值下的召回率和对应的精确率之间的关系图来帮助我们了解模型在不同阈值下的表现。
召回率(Recall)是指被正确预测为正例的样本数占所有实际为正例的样本数的比例。召回率也被称为灵敏度(Sensitivity)或真正例率(True Positive Rate)。
绘制召回率曲线的步骤如下:
使用不同的阈值将预测概率转换为二进制类别标签。通常,当预测概率大于阈值时,样本被分类为正例,否则分类为负例。
对于每个阈值,计算相应的召回率和对应的精确率。
将每个阈值下的召回率和精确率绘制在同一个图表上,形成召回率曲线。
根据召回率曲线的形状和变化趋势,可以选择适当的阈值以达到所需的性能要求。
通过观察召回率曲线,我们可以根据需求确定最佳的阈值,以平衡召回率和精确率。较高的召回率表示较少的漏报,而较高的精确率意味着较少的误报。根据具体的业务需求和成本权衡,可以在曲线上选择合适的操作点或阈值。
召回率曲线通常与精确率曲线(Precision Curve)一起使用,以提供更全面的分类器性能分析,并帮助评估和比较不同模型的性能。

【loss曲线】

在深度学习的训练过程中,loss函数用于衡量模型预测结果与实际标签之间的差异。loss曲线则是通过记录每个epoch(或者迭代步数)的loss值,并将其以图形化的方式展现出来,以便我们更好地理解和分析模型的训练过程。

【F1值曲线】
F1值曲线是一种用于评估二分类模型在不同阈值下的性能的可视化工具。它通过绘制不同阈值下的精确率(Precision)、召回率(Recall)和F1分数的关系图来帮助我们理解模型的整体性能。
F1分数是精确率和召回率的调和平均值,它综合考虑了两者的性能指标。F1值曲线可以帮助我们确定在不同精确率和召回率之间找到一个平衡点,以选择最佳的阈值。
绘制F1值曲线的步骤如下:
使用不同的阈值将预测概率转换为二进制类别标签。通常,当预测概率大于阈值时,样本被分类为正例,否则分类为负例。
对于每个阈值,计算相应的精确率、召回率和F1分数。
将每个阈值下的精确率、召回率和F1分数绘制在同一个图表上,形成F1值曲线。
根据F1值曲线的形状和变化趋势,可以选择适当的阈值以达到所需的性能要求。
F1值曲线通常与接收者操作特征曲线(ROC曲线)一起使用,以帮助评估和比较不同模型的性能。它们提供了更全面的分类器性能分析,可以根据具体应用场景来选择合适的模型和阈值设置。

【mAP0.5】
mAP0.5,也被称为mAP@0.5或AP50,指的是当Intersection over Union(IoU)阈值为0.5时的平均精度(mean Average Precision)。IoU是一个用于衡量预测边界框与真实边界框之间重叠程度的指标,其值范围在0到1之间。当IoU值为0.5时,意味着预测框与真实框至少有50%的重叠部分。
在计算mAP0.5时,首先会为每个类别计算所有图片的AP(Average Precision),然后将所有类别的AP值求平均,得到mAP0.5。AP是Precision-Recall Curve曲线下面的面积,这个面积越大,说明AP的值越大,类别的检测精度就越高。
mAP0.5主要关注模型在IoU阈值为0.5时的性能,当mAP0.5的值很高时,说明算法能够准确检测到物体的位置,并且将其与真实标注框的IoU值超过了阈值0.5。

【mAP0.5:0.95】
mAP0.5:0.95,也被称为mAP@[0.5:0.95]或AP@[0.5:0.95],表示在IoU阈值从0.5到0.95变化时,取各个阈值对应的mAP的平均值。具体来说,它会在IoU阈值从0.5开始,以0.05为步长,逐步增加到0.95,并在每个阈值下计算mAP,然后将这些mAP值求平均。
这个指标考虑了多个IoU阈值下的平均精度,从而更全面、更准确地评估模型性能。当mAP0.5:0.95的值很高时,说明算法在不同阈值下的检测结果均非常准确,覆盖面广,可以适应不同的场景和应用需求。
对于一些需求比较高的场合,比如安全监控等领域,需要保证高的准确率和召回率,这时mAP0.5:0.95可能更适合作为模型的评价标准。
综上所述,mAP0.5和mAP0.5:0.95都是用于评估目标检测模型性能的重要指标,但它们的关注点有所不同。mAP0.5主要关注模型在IoU阈值为0.5时的性能,而mAP0.5:0.95则考虑了多个IoU阈值下的平均精度,从而更全面、更准确地评估模型性能。

综合五款不同参数量级模型的开发实验对比结果来看:n系列的模型效果最次,其余四款模型性能相近,综合对比考虑最终选择使用s系列的模型来作为线上推理模型。

接下来看下s系列模型的详细情况。

【离线推理实例】

【Batch实例】

【混淆矩阵】

【F1值曲线】

【Precision曲线】

【PR曲线】

【Recall曲线】

【训练可视化】

AI智能化采摘机器人的应用必将极大地提高花生采摘的效率,减轻了农民的劳动强度,还有效减少了作物浪费,促进了农业资源的合理利用。农业生产智能化、精准化是当前传统农业发展和变革的潜力赛道。展望未来,随着AI技术的持续进步和应用的不断深化,我们有理由相信,农业生产将变得更加高效、智能、环保。智能化采摘机器人,作为科技与农业融合的典范,将引领农业生产方式的新一轮变革,让每一份辛勤耕耘都能收获更加丰硕的成果,让农业成为更加有尊严、有希望的行业。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Together_CZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值