站点图标 AI技术聚合

The improved YOLOv8 algorithm based on EMSPConvand SPE‑head modules:基于EMSPConv和SPE-head模块的改进YOLOv8算法

摘要:

针对大多数作物叶病检测算法模型复杂度高、泛化能力低、检测性能欠佳的挑战,本文提出了一种轻量级增强型YOLOv8算法。首先,通过结合 GhostNet 减少特征冗余的优点和 MobileNet 使用组卷积概念融合不同通道特征的能力,增强了主干网络。这提高了网络从大量相似的冗余特征图中提取关键特征的能力。其次,为了提高检测精度,同时减少模型参数和计算量,本文引入了 slim-Neck 模块。最后,针对检测头参数和计算量占模型一半以上的问题,论文利用共享参数的概念重构了检测头,并集成了增强多尺度信息识别的卷积块。多次实验结果经一致性平均后表明,与原始YOLOv8算法相比,改进算法实现了mAP50从86%提高到87.3%,mAP50:95从67%提高到68.6%。该模型的大小仅为 5.45 MB,计算参数 GFLOPs 从 8.1 减少到 5.5,甚至低于最轻量级的 YOLOv5。与其他大模型算法相比,该模型在检测精度上也表现出较强的竞争力。

关键词:叶病检测、YOLOv8、轻量级、分组卷积

1、引言

随着农业技术的不断进步和对提高作物产量的需求不断增长,作物叶部病害检测已成为农业和计算机视觉领域的重要研究领域[1]。然而,随着现代农业数字化转型,农作物叶部病害检测持续面临一系列挑战:

1)模型复杂性和计算资源问题:

作物叶病检测算法通常需要大量的计算和参数要求,导致成本高昂,不一定与实际农业应用中的效益相符。对计算资源的大量需求限制了此类算法的广泛采用。因此,需要探索更轻量级的模型和算法来降低成本并增强可部署性。

2)由于遮挡导致的特征限制:

叶病目标通常会受到植被和树叶的遮挡[2-4],从而导致大量的冗余特征。这严重限制了目标关键特征的可见性,影响了计算机视觉模型的特征提取能力。遮挡现象使叶片病害检测变得复杂,需要一种更具适应性和健壮性的算法来识别部分遮挡的叶病目标。

3)噪音干扰问题:

用于作物叶病检测的图像可能包含源自土壤、杂草、照明变化和多种叶病的各种噪声干扰。这使得计算机视觉模型难以准确分类和定位不同叶病的特征,常常导致误报。有效的噪声抑制和特征去噪技术对于提高作物叶病检测算法的准确性和鲁棒性至关重要。

因此,现代智慧农业的迫切发展需要更高效、轻量级、遮挡自适应、抗噪声的农作物叶病检测算法。这些算法可以为智慧农业提供实用的解决方案,确保农作物的质量和产量。

为了解决与作物叶病检测相关的挑战,一些研究人员探索了基于 YOLO 的病害检测模型的改进。例如,刘等人。 [5]利用YOLOv3检测番茄病虫害。他们的方法结合了多尺度特征检测、目标边界框维度分类和多尺度训练,获得了 92.39% 的准确率和高实时检测能力。李等人。 [6]介绍了一种基于YOLOv4的增强型微框架,用于实时葡萄病害诊断。他们的框架集成了子采样融合结构、Mish 激活函数、注意力机制和 SoftNMS 等技术,以提高实时葡萄病害诊断的准确性。

Mathew 和同事 [7] 提出了一种深度学习方法来识别甜椒植物中的细菌性斑点病。他们的方法包括在农场使用智能手机捕获这些植物的随机图像,然后将这些图像输入到 YOLOv5 模型中。该模型根据观察到的叶子症状预测疾病的存在。虽然这些方法通过特征融合或增强融合模块改进了作物叶病检测,但在提取与各种叶病相关的多尺度信息方面仍有改进的空间。此外,对计算要求的分析以及在实际应用中部署这些模型的好处是有限的。

因此,为了全面解决作物叶病检测面临的挑战,本文重点加强多尺度遮挡叶病特征、减少无关噪声干扰、提高检测头的定位能力、提高检测精度。在YOLOv8模型的基础上,本文提出了一种轻量级、改进的基于YOLOv8的农作物叶病检测算法。本文的主要贡献如下:

(1)EMSPConv模块:受群卷积概念的启发,本文将GhostNet在处理冗余特征方面的优势与MobileNet融合不同通道特征信息的能力结合起来。设计了一种新颖的卷积模块,名为 EMSPConv(高效多尺度卷积)。 EMSPConv模块继承了GhostNet处理冗余特征的能力,并且可以融合从不同通道提取的特征。与标准卷积相比,该模块参数更少,计算负担更低,并且保留了丰富的特征信息。在本文中,EMSPConv 取代了主干网络中的一些标准卷积。

(2)Slim-Neck 模块:为了加速推理预测,本文在颈部网络的 Slim-Neck 模块中引入了 GSConv 和 VoVGSCSP 模块。 GSConv 的计算复杂度约为标准卷积的一半,同时保持相似的学习能力。 VoV-GSCSP模块降低了计算要求并简化了Neck网络的结构,同时保证了足够的精度。

(3)重新设计的检测头:为了解决原始YOLOv8模型检测头消耗大量计算资源的问题,本文采用共享参数的概念,并引入轻量级高效的EMSPConv卷积。 YOLOv8的检测头进行了重构,参数数量大幅减少。利用多个EMSPConv卷积块,检测头提取多尺度信息特征的能力进一步增强。在消融实验中,新型检测头不仅重量轻,而且表现出更高的检测精度。新的检测头被命名为SPEHead。

2 增强型的YOLOv8算法

2.1 YOLOv8算法分析

     首先,本篇文章使用增强型的YOLOv8算法作为检测植物病害。本文认为,作物病害检测领域算法的选择必须满足三个标准:模型轻量化、推理速度和检测精度。模型的轻量化至关重要,因为农作物病害检测通常在能源供应和设备实施空间有限的户外田地进行。农作物种植领域的设施设备与固有收入之间的成本关系是一个值得关注的问题。因此,应用于叶病检测领域的算法需要具有更小的计算量和更低的实现成本。推理速度在疾病检测中至关重要,遵循与动物疾病类似的原则,疾病检测得越早越好。早期发现可以及时的干预,最小化的损失和最大化收益。检测精度在检测领域中占有至关重要的地位。在叶病检测中,由于存在细微病变或模式,算法必须同时满足检测正常目标和小目标的要求。在当前的算法领域,存在许多优秀的算法。例如,[8]中的视觉提示调整(VPT)算法在模型容量和训练数据规模方面表现出色,通常优于完全微调,同时降低了每个任务的存储成本。然而,在某些情况下,VPT 的性能略低于完全微调。针对这一问题,[9]中的E2VPT算法在自注意力层和输入层引入了一组可学习的键值提示和视觉提示,增强了模型微调的有效性。该算法还包含提示剪枝机制,系统地剪枝低重要性提示,显着减轻模型负担。文献[10]将VPT应用于视频字幕生成领域,提出了视频语言提示调整(VL-Prompt)方法。实验结果表明 VL-Prompt 的性能优于几种最先进的基线方法。尽管VPT具有模型轻量化、性能优越等特点,但其泛化能力有限,尤其是在叶病检测的多样化推理方面。综合考虑上述三个基本标准,以及模型的泛化性能,本文最终选择YOLOv8算法。

      YOLOv8 是一种先进的目标检测模型,建立在其前身 YOLO 版本的成功基础上,提供全面的改进和创新,以增强性能和灵活性。该模型引入了新颖的主干网络、Anchor-Free 检测头和损失函数,能够跨各种硬件平台高效运行(如图 1 所示)。

YOLOv8提供不同分辨率的目标检测网络,支持实例分割模型,并提供多种尺度模型以满足不同的场景需求。主干网络和Neck部分经过了仔细的微调,采用C2f结构来增强梯度传播,从而使性能得到显着提升。Head部分采用解耦头部结构,分离分类和检测任务。同时将 Anchor-Free 方法和 Distribution Focal Loss 结合到损失函数中。同时结合 Anchor-Free 方法和分布焦点损失作为损失函数 这些改进和创新使 YOLOv8 成为最先进的 (SOTA) mod 这些改进和创新使 YOLOv8 成为最先进的 (SOTA) 模型)物体检测领域的模型,性能取得实质性突破。YOLOv8 是“You Only Look Once”的缩写,毫无疑问在推理速度方面表现出色。 YOLOv8算法结合了YOLO系列前辈的优点,同时保证了模型的轻量化。虽然不如YOLOv5轻量级,但YOLOv8在整体性能上优于YOLOv5。这就是本文选择 v8 而不是 v5 的原因。虽然在实验部分与YOLOv5模型进行了对比实验,结果表明本文修改后的YOLOv8在保持准确性的同时实现了优越的轻量级指标。影响本文选择YOLOv8算法的另一个因素是其在叶病检测领域未来发展的巨大潜力。考虑到精度要求以及叶病领域小目标检测的需求,YOLOv8的Neck网络可以扩展以包含专门为小目标检测设计的层。此外,还可以对检测头进行改进,例如添加用于小目标检测的组件或增强检测头的泛化能力。该方法旨在提出一种完全符合叶病领域要求的算法——一种轻量级、高精度、高效且通用的算法。当然,这是今后工作的目标。

      然而,YOLOv8的缺点也相当明显。如图1所示,YOLOv8网络架构广泛采用了大量的卷积块和C2f块,不可避免地导致模型计算量和参数数量的增加。虽然YOLOv8相对轻量级,但与YOLOv5相比仍有不足。检测头由于消耗大量计算资源而带来挑战,其计算量和参数数约占整个模型的50%。 YOLOv8在检测小物体方面表现出精度限制,在backbone的特征提取能力和Neck网络的特征融合能力方面还有进一步优化的空间。因此,本文对YOLOv8网络结构提出了一系列改进。

2.2 EMSPConv模块

     EMSPConv(Efficient Multi-Scale Conv)是本文介绍的一种新颖的卷积模块。与常规卷积相比,EMSPConv不仅减少了参数数量和计算量,还提高了检测精度,实现轻量级、高效的目标检测。首先,EMSPConv是一个精简的卷积模块,融合了多尺度信息。其主要设计灵感来自于群卷积[11, 12]的概念、

     GhostNet [13]中提出的对冗余特征的独特见解以及MobileNet中使用的通道特征融合。GhostNet 强调了每个残差块生成的中间特征图中存在高度相似的特征,这表明存在冗余特征。为了在最小化开销的情况下增强特征提取能力,从这些冗余特征中提取关键特征信息至关重要。由于特征信息是从不同大小的通道中提取的,并且每个通道内的信息是独立的,因此我们利用受 MobileNet 的逐点卷积启发的通道特征融合技术。如图 2 中的 EMSPConv 结构图所示,该过程从应用于特征图的普通卷积运算开始。然后将这些图分为 k 组,并对每组执行线性运算 Φ 以生成完整的特征图(通常,Φ 涉及 1 × 1、3 × 3、5 × 5 或 7 × 7 卷积核)。随后,使用逐点卷积执行逐通道特征融合,从而产生输出。

       复杂性分析 FLOP(浮点运算):该指标用于衡量算法或模型的复杂性(其中 K 表示卷积核大小)。计算公式如下:

假设有一个恒等变换和 s-1 个 EMSPConv 特征图(每个特征图有 s-1 个冗余),则 FLOP 减少 s 倍:

     在这个方程中,分子代表标准卷积的复杂度,分母代表EMSPConv模块的复杂度。分母的左侧是标准卷积(第一步)生成的 FLOP,而右侧表示线性运算(第二步)生成的 FLOP。具体来说,这里’s’表示每个通道生成的总映射(超参数’s’和’k’可以调整;’s’用于控制传统卷积方法中的特征图数量,’d’ ‘表示线性变换卷积核的大小)。这包括一个内在特征图和 s-1 EMSPConv 特征图。 “c”表示输入特征图的总数,通常很大,而“s”通常比“c”小得多。 ‘n/s’表示标准卷积后输出的内在特征图的数量,‘d×d’表示线性运算的平均内核大小,其大小通常与‘k×k’相似。

2.3 颈部细化

     YOLOv8中的Neck网络位于backbone和head之间,可以更好地利用backbone提取的特征,起到特征融合的作用。在[14]中,引入了TFPN结构来解决传统FPN的弱点。该结构包含三个高效模块:具有更丰富的自上而下特征的自适应提取模块,用于校准上采样特征的特征校准模块,以及将通信通道从特征金字塔返回到自下而上骨干网络的特征反馈模块。TFPN结构增强了检测任务中学习多尺度特征的能力。在YOLOv8中,改用PAN双金字塔结构。传统的FPN将强语义特征从顶部(小尺寸、更多卷积、丰富语义信息)转移到底部(大尺寸、更少卷积、更少语义信息),增强整个金字塔,但它只增强了语义信息,并没有传达定位信息。 PAN 通过在传统 FPN 后面引入自下而上(更少的卷积、大尺寸)金字塔来解决这一限制,形成双金字塔结构。 PAN 采用​​路径聚合方法,聚合浅层和深层特征图,并沿特定路径传递特征信息,以增强较低层的强定位特征的表示。相比于TFPN,本文YOLO中的特征融合金字塔表现出了更强的多尺度特征表达能力。这要归功于算法中的PAN和EMSPConv模块,它们共同提取多尺度特征信息。

      [15]中的DenserNet网络结构相对轻量级。它是一种新颖的基于 CNN 的架构,可以聚合来自多种语义的更密集的特征,以实现强大的图像表示。但DenserNet网络结构对检测精度有一定影响。 [16]中的SG-Net网络也是一个非常强大的网络结构,将原始的自注意力网络SAN表示与语法引导的SAN表示相结合。具有高精度、高效、轻便等诸多优点。但SG-Net在推理时有一定的内存要求,不利于叶病检测领域的后续发展。为了在YOLOv8模型目标检测的轻量性和准确性之间取得更好的平衡,本文引入了Slim-Neck模块。该模块在保证轻量化的同时也提高了检测精度(实验细节可参见3.4节)。 Slim-Neck 的 GSConv 和 VoVGSCSP 组件嵌入到原始算法的 Neck 网络中。

     如图 3 所示,GSConv 的工作流程首先使用常规卷积对输入进行二次采样,然后采用 DWConv(深度卷积)[17]。然后将这两个卷积运算的结果连接起来,一个来自 SC(标准卷积),另一个来自 DSC(深度可分离卷积)

最后使用统一混合策略执行洗牌操作,以确保 SC 和 DSC 的输出信息均匀组合。这种shuffle操作有效地实现了不同通道上SC输出的信息的均匀交换,实现了局部特征信息的均匀分布和混合,使SC的信息完全融入到DSC的输出中。

        为了加速算法的推理预测,输入图像在主干网络中经历类似的转换过程,其中空间信息逐渐迁移到通道。随着通道数量的增加,特征图的空间维度逐渐减小,可能导致语义信息的丢失。 SC、DSC和GSConv的时间复杂度如下:

其中W和H分别表示输出特征图的宽度和高度。 K1×K2是卷积核的大小,C1表示每个卷积核的通道数,C2是输出特征图中的通道数。

     GSConv 展示了轻量级模型更显着的优势。通过将 DSC 层与 shuffle 相结合,增强了模型的非线性表示能力。但是,如果 GSConv 在整个模型中广泛使用,则可能会导致模型非常深,从而限制数据流并增加推理时间。因此,GSConv 专门应用于颈部,接收到的特征图具有最大通道数和最小空间维度。在这种情况下,特征图包含的冗余信息较少,并且不需要额外的压缩,从而使注意力模块能够更有效地工作。

    此外,为了增强卷积神经网络(CNN)的学习能力,降低计算复杂度,简化网络结构,并确保模型保持足够的精度,本文在Neck网络部分引入了VoVGSCSP模块[18]。 VoVGSCSP 模块结合了 DensNet、VoVNet、CSPNet 等的理论概念,如图 4 所示。如图 4 所示,VoVGSCSP 模块采用轻量级卷积方法 GSConv 来替代标准卷积(SC),并在 GSConv 之上进一步引入 GSbottleneck ,增强模型的学习能力,降低计算复杂度,简化网络结构,同时保持足够的精度。

2.4 SPE-head重建

       与以前的YOLO算法相比,原始的YOLOv8算法在头部部分引入了重大变化。它已从最初的耦合头部演化为解耦头部,并从YOLOv5的S锚基方法过渡到锚杆自由方法[19]。它的结构如图5所示,头部由两个分支组成:一个分离的分类分支和一个回归分支。值得注意的是,回归分支采用了《分布焦损》中提出的积分形式表示法。

 

     你可以观察到,在YOLOv8的头部,每个分支都由两个3×3的卷积层组成。此外,在YOLOv8的整个网络结构中,从输入到颈部总共有3个检测层。这意味着在整个网络结构中,仅头部部分就包含12层3×3卷积。这是为什么YOLOv8算法的头部部分占到参数和计算量的近一半的原因之一。考虑到本文主要研究面向乡村振兴的农作物病害检测算法,并且这些检测任务通常在室外环境中进行,较低的计算复杂度和较轻的模型有利于实际部署。在此背景下,本文采用了共享参数[20,21]的思想,重新设计了原头部部分的卷积部分,如图6所示,推迟了头部部分的分支,在头部部分的输入之后增加了共享参数模块。然后,继续进行解耦的分类和回归分支。在共享参数模块中,本文不再使用原来的头部3×3卷积,而是加入了EMSPConv。

3 实验结果与分析

3.1 实验环境

本文的实验使用PyTorch框架进行,并采用GPU加速。实验设置和基本训练参数如表 1 所示。

3.2 实验数据

    本文实验使用的数据集是端到端计算机视觉平台Roboflow提供的叶病数据集。该数据集质量很高,总共包含 5,494 张图像,涵盖 12 个不同类别:豆类角斑病、豆锈病、草莓角斑病、草莓炭疽病、草莓花斑病、草莓灰霉病、草莓叶斑病、草莓白粉病果实、草莓白粉病叶、番茄枯萎病、番茄叶霉和番茄叶螨。为了训练叶病检测模型,本实验将数据集以 5:3:2 的比例随机分为训练集、验证集和测试集。

3.3 评估指标

    本文实验中的主要评估指标包括模型准确率(Precision)、召回率(Recall)、平均精度(mAP)[22],以及以 GFLOPs(每秒千兆浮点运算次数)表示的模型复杂度分析[23] 。假设预测结果中真阳性的数量为TP(True Positives),误报率为FP,预测结果中漏掉的真阳性数为FN(False Negatives),精度(P),召回率(R),平均精度(mAP)可以使用以下公式计算:

GFLOPs(每秒千兆浮点运算)是计算机性能测量单位,表示每秒可以执行十亿次浮点运算的数量。 GFLOP 通常用于评估模型的计算效率。一般来说,较低的 GFLOP 值更有利,因为较低的 GFLOP 意味着模型可以在相同的时间内完成更多的计算任务 [24]。

3.4 消融实验

     本文算法将Slim-Neck引入到原始YOLOv8n模型的Neck网络中,并用本文提出的重构检测头替换原来的检测头。我们进行消融实验来评估各个模块对算法的影响,如表2所示。这里,A代表原始YOLOv8n模型算法,B代表在A中添加Slim-Neck,C代表包含EMSPConv模块A的主干网络中,D代表在A之上使用重构的SPE-head,E(本文提出的改进的YOLOv8算法)代表Slim-Neck、EMSPConv和添加的SPE-head的组合到 A。

从表 2 可以看出,原始 YOLOv8 模型在提高叶病数据集的检测精度和模型复杂性方面具有巨大潜力。在此基础上,上述模块的逐步引入进一步增强了检测性能,同时也实现了显着的模型轻量化优化。通过反复实验并对结果进行平均,融合了Slim-Neck、EMSPConv和新型检测头的算法E的性能有了显着的提升。具体来说,mAP50 增加了 1.3%,mAP50:95 增加了 1.6%,GFLOPs 下降至 5.5。这种轻量级改进的YOLOv8算法既实现了模型轻量化,又实现了检测精度的显着提升。

3.5 对比实验

    为了比较改进前后检测网络的检测性能,在叶子上对 YOLOv3tiny、YOLOv5n、YOLOv5s、YOLOv8n、YOLOv8s 和我们的增强型 YOLOv8n(以下简称“我们的”)等 6 个模型进行了训练和验证疾病数据集。通过迭代实验获得的结果和平均结果如表3和表4所示。

   表3中的实验结果表明,在两个IOU阈值下,本文改进的YOLOv8模型与YOLOv3、YOLOv5n和原始的YOLOv8模型相比,在各种指标上都有改进。当IOU阈值设置为0.5时,与YOLOv3、YOLOv5n和YOLOv8模型相比,该方法的MAP分别提高了3.6%、2.9%和1.3%。在[0.5:0.95]的IOU阈值范围内,我们的方法比其他三个模型的性能分别高出11.6%、4.6%和1.6%。在模型计算复杂度方面,与YOLOv3、YOLOv5n和YOLOv8相比,我们的算法分别减少了13.4%、1.6%和2.6%的计算量。如表4所示,与更快的R-CNN、SSD、YOLOv5s和YOLOv8s等更大的模型相比,我们改进的YOLOv8算法在检测精度方面保持了显著的竞争力。此外,改进后的算法在计算复杂度和参数个数方面都有显著的降低,分别只有YOLOv5和YOLOv8的1/4和1/5,突出了其轻量级的特点。

    综上所述,通过全面的实验验证,本文的方法与原始算法相比取得了显着的性能提升,并且与其他最先进的检测模型相比表现出了强大的竞争力。

3.6 预测结果验证

     利用该算法训练的部分模型进行预测,预测结果如图7所示。结果表明,本文算法在保持轻量级的同时,在检测方面表现良好。它具有很强的泛化能力,有效解决了模型误报和漏报的问题。

4 结论

     实验结果证明了本文提出的改进的YOLOv8模型在叶病检测方面的稳健性能。该模型可以有效地检测各种类型的叶病,同时保持轻量级的性质,并提供精确的定位信息。本文通过优化YOLO算法,不仅实现了模型轻量化,还成功完成了高效、准确的叶病检测任务。这项工作为作物病害监测领域的研究和应用提供了宝贵的见解[25]。

    本文提出了一种轻量级改进的YOLOv8算法模型,该模型相对于原始YOLOv8进行了各种优化和增强。首先,通过结合GhostNet在处理冗余特征方面的优势和MobileNet使用组卷积融合不同通道特征信息的能力,改进了骨干网络,增强了网络从大量相似的冗余特征图中提取关键特征的能力。其次,为了提高算法的检测精度,同时降低模型参数和计算复杂度,引入了Slim-Neck模块。这不仅提高了检测精度,还减少了模型参数的数量,同时加快了特征融合过程。最后,针对检测头参数和计算复杂度占模型一半以上的问题,利用共享参数的概念对检测头进行了重构。此外,还结合了增强多尺度信息识别的卷积块,以提高检测精度。经过反复实验并对结果进行平均,改进算法在叶病数据集上的 mAP50 和 mAP50:95 分别达到 87.3% 和 68.6%,比原始网络提高了 1.3% 和 1.6%。计算复杂度的 GFLOPs 指标降低至 5.5,比原始模型低 2.6 GFLOPs,比当前最轻的 YOLOv5n 模型低 1.6 GFLOPs。训练后的模型大小仅为 5.45 MB。改进算法的总体结果是一个轻量级的模型,提高了检测精度,展示了其在最近的目标检测网络中强大的竞争力。

   在未来的工作中,我们将继续优化网络架构,在保持模型轻量级的同时,进一步提高检测精度。我们的目标是引入可解释的机制和属性,规范网络的表示以增强其可解释性[26],并提高模型的检测泛化能力。

版权声明:本文为博主作者:Z1986185459原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/Z1986185459/article/details/137223153

退出移动版