基于改进YOLOv8n的甘蔗叶片病害检测

作者: 张立强 武玲梅 蒋林利 王晓亮 黄天开

基于改进YOLOv8n的甘蔗叶片病害检测0

关键词:甘蔗叶片病害;目标检测;YOLOv8;LSKA;EIoU

中图分类号:TP18 文献标识码:A

文章编号:1009-3044(2024)28-0012-05

0 引言

甘蔗是全球主要的糖料作物之一,具有较高的经济价值,其糖产量约占全球的80%[1]。在甘蔗的生长发育阶段,叶片容易受到病害侵染,严重影响产量和质量。因此,及时、准确地检测甘蔗叶片病害具有重要意义。

国内外在基于计算机的农作物叶片病害检测方面已进行了大量研究。传统检测方法基于机器学习,但存在需要烦琐的人工特征提取且易受到主观因素影响等问题。近年来,基于深度学习的目标检测技术能够自动识别叶片病害,并标记病害区域,减少了传统检测中因人工特征提取而导致的主观误差和成本,对于及时发现和诊断农作物病害具有重要意义。根据检测过程中是否生成候选区域,基于深度学习的目标检测算法分为单阶段目标检测算法和双阶段目标检测算法。双阶段目标检测算法先构建候选区域,再对每个候选区域进行更精确的边界框回归和对象类别预测,尽管精度较高,但检测速度较慢。单阶段目标检测算法通过一个阶段完成目标的类别预测和边界框回归,简化了检测流程,通常能提供更快的推理速度,同时获得较高的精度。

在农作物叶片病害检测领域,单阶段目标检测算法因其高效性和实时性而备受关注,其中YOLO算法被广泛研究和应用。苏俊楷等[2]以YOLOv5为基线,融合双向特征金字塔和CA注意力机制,在玉米叶片病害检测中实现了95.93%的mAP。周邵发等[3]在YO⁃LOv5s基础上,通过简化快速金字塔池化、BoNet注意力机制和SIoU损失函数进行改进,在苹果叶片病害检测中取得了86.5% 的mAP。公徐路等[4] 基于YO⁃LOv5s,利用ShuffleNetv2轻量化网络、CBAM注意力模块及SIoU损失函数,设计出针对小目标的苹果叶片病害检测方案,mAP 为90.6%。马超伟等[5] 基于YO⁃LOv8,通过深度可分离卷积、全局注意力机制和wise-IoU损失函数,设计出轻量化小麦病害检测模型,mAP 达到91.8%。

传统的甘蔗叶片病害检测方法主要依赖专家的人工现场识别与判断,存在工作量大、及时性差和主观性强等问题。在计算机辅助甘蔗叶片病害检测的研究中,相关文献相对较少。黄亦其等[6]基于高光谱成像识别甘蔗叶片早期轮斑病与锈病,虽然取得了较好的准确率,但识别种类较少且未对病害区域进行检测。

针对这些问题,本文设计了一种基于YOLOv8n的改进算法,引入LSKA(Large Separable Kernel Atten⁃tion) 注意力机制和EIoU(Efficient-IoU) 损失函数,以实现对多种甘蔗叶片病害的检测。该方法在自然环境下提高了检测精度,确保满足实时检测要求,为甘蔗叶片病害防治提供了参考,具有重要意义。

1 甘蔗叶片病害检测算法

YOLOv8是由Ultralytics公司在开源YOLOv5之后推出的下一个重大更新版本,具有更优越的性能。YOLOv8是一组模型,基于缩放系数包括N、S、M、L、X 五种不同的检测模型,以适应多样化的应用场景需求。由于YOLOv8n是YOLOv8中参数最小的模型,具备较小的模型参数量和较快的检测速度,因此结合甘蔗叶片病害数据集的特点,选择了YOLOv8n作为基线检测模型。

YOLOv8n由几个主要部分组成:用于输入图像并进行预处理的输入端、对特征进行提取的主干网络、将特征融合的颈部网络,以及用于识别和检测等任务的输出端。输入端主要通过Mosaic和Mixup等技术对640×640的图像进行数据增强,并进行自适应锚框计算。主干网络由多个conv和c2f模块构成,其最大的改进是借鉴了YOLOv7的ELAN设计思想,将YO⁃LOv5中的C3模块替换为C2f模块,引入更多的分支,从而具备更强的特征提取能力。颈部网络主要是在YOLOv5中PAN-FPN上采样阶段卷积被去除的基础上,也将C3模块替换为C2f模块。输出端与YOLOv5 的耦合头不同,YOLOv8n使用双检测头,同时,分类任务采用BCE 损失,回归任务采用DFL 损失和CIoU 损失。

为满足在自然环境中对甘蔗叶片病害进行高精度实时检测的需求,设计对YOLOv8n进行了改造,网络结构如图1所示。首先,在主干网络中对SPPF模块进行了改进,引入了LSKA注意力机制,以提升在自然环境中复杂背景下的特征提取能力。在输出端,对CIoU损失函数进行改进,引入EIoU损失函数,以加快收敛速度,并进一步提高检测的精度。

1.1 改进SPPF 特征提取模块

在YOLOv8n的主干网络末端,采用了SPPF(Spa⁃tial Pyramid Pooling Fusion) 模块进行特征提取。SPPF 在SPP(Spatial Pyramid Pooling) 基础上引入了特征融合的思想。具体而言,它首先对输入特征图进行卷积操作,然后通过三个不同大小的最大池化层和多路径对特征进行不同程度的融合,最后通过卷积输出特征图。SPPF模块能够自适应不同尺寸的特征信息,从而提升检测性能。

然而,在甘蔗叶片自然环境下的多种病害检测中,存在背景复杂多变的问题,SPPF模块可能会提取较多的局部特征,导致全局信息丢失,进而造成漏检和精度不高等问题。为此,设计在SPPF模块中引入LSKA注意力机制[7],形成SPPF-LSKA模块。该模块结合了大卷积核强特征提取能力与注意力机制,通过增强局部或全局重要特征的权重,并降低背景等干扰信息的权重,提高了在复杂背景下的检测精度,同时保持了检测速度。

2.3 实验环境

本实验的操作系统为Ubuntu 20.04,CPU型号为Intel(R) Xeon(R) Platinum 8255C @ 2.5 GHz(12个虚拟CPU) ,GPU型号为RTX 2080 Ti,具有11GB的显存和40GB的内存。使用了PyTorch 1.11.0框架以及Python3.8。算法的训练持续进行300个Epoch,每个Epoch 中Batch-size设置为16。

2.4 消融实验结果与分析

为验证SPPF-LSKA 和EIoU 两个改进模块的有效性,设计了4组消融实验,包括1组不引入改进模块(即基线模型)的实验,2组分别引入一个改进模块的实验以及1组同时引入两个改进模块的实验。设计了5种病害和健康叶片的AP、[email protected]、FPS作为对比指标,具体数据如表1所示。

从表1可以看出,引入SPPF-LSKA 模块能够提高算法的精度和FPS,使基线算法的[email protected]从79.1%提高到81.3%,FPS 从263.2 fps 提高到277.8 fps。引入EIoU模块在保持FPS不变的情况下提高了算法的精度,使基线算法的[email protected] 从79.1%提高到80.6%。同时引入SPPFLSKA和EIoU两个改进模块时,算法的精度达到最佳,基线算法的[email protected] 从79.1% 提升到84.5%,提高了5.4%。其中,在AP中叶斑病检测精度的改进最大,从基线模型的78.6 提升到86.1,提高了7.5%。如果仅从最终精度结果来看,改进后的算法在检测甘蔗黄叶病的精度表现最佳,AP达到了92.2%。同时,FPS为250 fps,满足实时检测需求。这是因为使用SPPF-LSKA模块改进了原基线算法中的SPPF模块,通过改进特征提取和关注关键区域,在不降低检测速度的前提下提高了检测精度;使用EIoU 模块改进了原基线算法中的CIoU模块,通过优化边界框预测,在不改变FPS情况下提高了检测精度;同时引入SPPF-LSKA和EIoU模块能够显著提高算法的精度,但由于多模块的处理需要更多的计算资源,会降低检测速度。

为了更直观地比较YOLOv8n基线算法与改进后算法的检测效果,图3为8张赤腐病的检测结果对比图。从图3中可以看出:改进后的算法在对基线算法检测的相同病害目标区域进行检测时,大多数区域的置信度有所提高;在基线算法的检测效果图中,第一行从左到右的最后一个检测图存在漏检现象,而改进后的算法能够检测到这一区域。此外,在改进后算法的检测效果图中,第二行从左起第二个图的检测区域范围比YOLOv8n基线算法的检测范围更加精细和准确。这表明,改进后的算法相比基线算法提高了甘蔗病害检测的精度。

2.5 对比实验结果和分析

为进一步验证改进后算法的先进性,通过设计实验选择了5 种具有代表性的目标检测算法,包括Faster R-CNN、YOLOv5n、YOLOv6n、YOLOv7-Tiny 和YOLOv8n,在[email protected] 指标上与改进后算法进行对比。其中,Faster R-CNN作为双阶段目标检测算法的代表,具有较强的灵活性和扩展性;YOLOv5n、YO⁃LOv6n、YOLOv7-Tiny则是单阶段目标检测算法的代表,因其高效性和广泛的应用场景,常被用作改进算法的对比基准。

对比实验的数据如表2所示。结果显示,FasterR-CNN的精度较低,不适合作为甘蔗叶片病害检测模型。YOLOv5n、YOLOv6n、YOLOv7-Tiny 和YO⁃LOv8n的检测精度有待进一步提高。相比之下,改进后的算法在精度上显示出显著优势,证明其更适合用于甘蔗叶片病害的检测任务。

3结论

本文提出了一种基于改进YOLOv8n的甘蔗叶片病害检测算法,该算法能够在满足实时检测速度要求的同时,在自然环境下实现较高的检测精度。改进主要体现在以下两方面:首先,通过在主干网络的SPPF 模块中引入LSKA注意力机制,提高模型在复杂背景干扰下的检测精度;其次,通过在输出端引入比CIoU更优的EIoU损失函数,以提高收敛速度,并进一步提升检测精度。消融实验和对比实验已验证了该改进算法的有效性和先进性。

未来的研究工作将集中于继续优化这一检测算法,并扩展其应用场景。一方面,将进一步提升检测精度,另一方面,将对甘蔗病害区域进行统计计数,同时扩展甘蔗叶片病害研究的种类。

上一篇 点击页面呼出菜单 下一篇