廉颇老矣尚能饭否,实践甘肃数据挖掘挑战赛作物与杂草的智能识别,基于YOLOv3全系列【tiny/l/spp】参数模型开发构建田间低头作物杂草智能化检测识别模型

一、背景
田间杂草的有效管理是现代农业生产中面临的重要挑战之一。杂草不仅竞争作物的养分、
水分和阳光,还可能成为害虫和病原体的寄主,从而降低农作物的产量和品质。因此,开发
高效、精确的杂草检测和管理系统对于提高农业生产效率、降低化学除草剂的使用以及保护
环境具有重要意义。
随着计算机视觉和深度学习技术的迅速发展,基于图像识别的田间杂草检测技术已成为
研究的热点。本赛题期待参赛者能够通过图像处理技术和深度学习算法,设计出有效的模型
识别出作物与杂草样本的位置及类别,实现作物与杂草样本智能识别分类。

二、要解决的问题
本系统面临的核心挑战是如何实现对田间杂草的高准确度识别与实时处理。由于杂草种
类繁多,且在不同生长阶段杂草的颜色、形状和大小可能会有显著变化,系统需要能够准确
地识别出这些细微的特征差异。此外,田间环境的动态性,如杂草快速生长、部分遮挡和多
样的生长姿态,都对识别系统提出了更高的要求。因此,开发一个能够快速响应并准确识别
杂草种类的深度学习模型是本项目的首要任务。

一般比赛之类的项目大家可能都是更加倾向于使用更加新颖更加强悍的网络模型,毕竟这能够带来真切的效果提升,但是是否意味着比较古老的模型就没有用武之地了呢?是否就意味着古老的模型在实际效果表现上就一定不如更新的模型了呢?

本文就是从这个角度出发,探索使用YOLOv3模型来进行杂草检测模型的开发实践。

在前文我们已经进行了相关的开发实践,如果感兴趣的话可以自行移步阅读即可:

《实践甘肃数据挖掘挑战赛作物与杂草的智能识别,基于YOLOv7全系列【tiny/l/x】参数模型开发构建田间低头作物杂草智能化检测识别模型》

《作物与杂草的智能识别,基于YOLOv8全系列参数模型【n/s/m/lx/】开发构建田间低头作物杂草智能化检测识别模型》

首先看下实例效果:

接下来看下数据,实例数据如下:

本文是选择的比较经典的也是比较古老的YOLOv3来进行模型的开发,YOLOv3(You Only Look Once v3)是一种目标检测算法模型,它是YOLO系列算法的第三个版本。该算法通过将目标检测任务转化为单个神经网络的回归问题,实现了实时目标检测的能力。

YOLOv3的主要优点如下:

实时性能:YOLOv3采用了一种单阶段的检测方法,将目标检测任务转化为一个端到端的回归问题,因此具有较快的检测速度。相比于传统的两阶段方法(如Faster R-CNN),YOLOv3能够在保持较高准确率的情况下实现实时检测。

多尺度特征融合:YOLOv3引入了多尺度特征融合的机制,通过在不同层级的特征图上进行检测,能够有效地检测不同尺度的目标。这使得YOLOv3在处理尺度变化较大的场景时表现出较好的性能。

全局上下文信息:YOLOv3在网络结构中引入了全局上下文信息,通过使用较大感受野的卷积核,能够更好地理解整张图像的语义信息,提高了模型对目标的识别能力。

简洁的网络结构:YOLOv3的网络结构相对简洁,只有75个卷积层和5个池化层,使得模型较易于训练和部署,并且具有较小的模型体积。

YOLOv3也存在一些缺点:

较低的小目标检测能力:由于YOLOv3采用了较大的感受野和下采样操作,对于小目标的检测能力相对较弱。当场景中存在大量小目标时,YOLOv3可能会出现漏检或误检的情况。

较高的定位误差:由于YOLOv3将目标检测任务转化为回归问题,较粗糙的特征图和较大的感受野可能导致较高的定位误差。这意味着YOLOv3在需要较高精度的目标定位时可能会受到一定的限制。

YOLOv3是YOLO系列里程碑性质的模型,随着不断地演变和发展,目前虽然已经在性能上难以与YOLOv5之类的模型对比但是不可否认其做出的突出贡献。

我们开发构建了yolov3全系列的参数模型,包含:yolov3-tiny、yolov3和yolov3-spp,实验阶段保持完全相同的参数设置,等待训练完成我们来整体对比可视化。

【F1值曲线】
F1值曲线是一种用于评估二分类模型在不同阈值下的性能的可视化工具。它通过绘制不同阈值下的精确率(Precision)、召回率(Recall)和F1分数的关系图来帮助我们理解模型的整体性能.F1分数是精确率和召回率的调和平均值,它综合考虑了两者的性能指标。F1值曲线可以帮助我们确定在不同精确率和召回率之间找到一个平衡点,以选择最佳的阈值。

【loss曲线】

【Recall曲线】
召回率曲线(Recall Curve)是一种用于评估二分类模型在不同阈值下的召回率性能的可视化工具。它通过绘制不同阈值下的召回率和对应的精确率之间的关系图来帮助我们了解模型在不同阈值下的表现。召回率(Recall)是指被正确预测为正例的样本数占所有实际为正例的样本数的比例。召回率也被称为灵敏度(Sensitivity)或真正例率(True Positive Rate)。

【Precision曲线】
精确率曲线(Precision-Recall Curve)是一种用于评估二分类模型在不同阈值下的精确率性能的可视化工具。它通过绘制不同阈值下的精确率和召回率之间的关系图来帮助我们了解模型在不同阈值下的表现。精确率(Precision)是指被正确预测为正例的样本数占所有预测为正例的样本数的比例。召回率(Recall)是指被正确预测为正例的样本数占所有实际为正例的样本数的比例。

【mAP0.5】
mAP0.5(mean Average Precision at 0.5 IoU)
mAP0.5表示在IoU(交并比)阈值为0.5的情况下计算的平均精度(Average Precision,AP)。
IoU阈值决定了何时认为检测框与真实框匹配。较高的IoU阈值意味着更严格的匹配标准。
mAP0.5主要关注低阈值下的性能,即当IoU接近0.5时,模型在识别重叠框时的准确性。

【mAP0.5:0.95】
mAP0.5:0.95(mean Average Precision over IoU thresholds from 0.5 to 0.95):
mAP0.5:0.95表示在多个IoU阈值(从0.5到0.95)下计算的平均精度。
它涵盖了从低到高的IoU阈值,更全面地评估了模型在不同IoU阈值下的性能。
mAP0.5:0.95可以帮助我们了解模型在不同重叠程度下的检测能力。

从实验结果综合对比来看不难看出:tiny系列的模型效果最差,被其他系列的模型拉开了明显的差距,yolov3狠人yolov3-spp两款模型达到了相近的性能,且参数量相近。我们考虑最终选择使用yolov3-spp系列的模型来作为最终的推理模型。

离线推理实例如下所示:

训练可视化如下所示:

Batch实例如下:

【PR曲线】如下

【数据分布可视化】

感兴趣的话也都可以自行动手尝试下!

YOLOv3整体模型与前文中我们已经实践开发的YOLOv7和YOLOv8模型上并没有拉开非常明显的差距,可见廉颇未老,YOLOv3依旧处于当打之年!