英文论文(sci)解读复现:基于YOLOv5的自然场景下苹果叶片病害实时检测

news2024/11/17 20:36:18

对于目标检测算法改进,但是应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读发表高水平学术期刊中的SCI论文,并对相应的SCI期刊进行介绍
在这里插入图片描述

摘要

针对自然场景中复杂背景下多尺度、异型苹果叶片病害的准确定位与识别问题,提出了一种基于改进YOLOv5s模型的苹果叶片病害检测方法。首先,该模型利用双向特征金字塔网络(BiFPN)高效实现多尺度特征融合;然后,加入变压器和卷积块注意模块(CBAM)注意机制,减少无效背景信息的干扰,提高疾病特征的表达能力,提高模型的准确性和召回率。实验结果表明,所提出的 BTC-YOLOv5s模型(模型尺寸为15.8M)能够在自然场景中有效检测4种苹果叶片病害,平均精度(mAP)为84.3%。使用八核CPU,该模型平均每秒可以处理 8.7 张叶子图像。与SSD、Faster R-CNN、YOLOv4-tiny和YOLOx等经典检测模型相比,该模型的mAP值分别提高了12.74%、48.84%、24.44%和4.2%,具有更高的检测精度和更快的检测速度。此外,该模型在强光、昏暗灯光和模糊图像等强噪声条件下具有较强的鲁棒性,mAP值超过80%。综上所述,新型 BTC-YOLOv5s具有重量轻、精度高、效率高等特点,适合在移动设备上应用。该方法可为苹果叶片病害的早期干预和防治提供技术支持。

一、引言

苹果是世界四大流行水果之一,营养丰富,具有重要的药用价值。在中国,苹果产量不断扩大,已成为世界上最大的苹果生产国。然而,多种病害阻碍苹果的健康生长,严重影响苹果的品质和产量,造成重大的经济损失。据统计,苹果病害约有 200 种,其中大部分发生在苹果叶区。

因此,为确保苹果种植业的健康发展,需要采取准确高效的叶部病害识别与防治措施。在传统的病害识别技术中,果农和专家主要依靠经验进行目测,这种方法效率低且主观性强。随着计算机和信息技术的发展,图像识别技术已逐步应用于农业领域。许多研究人员应用机器视觉算法从病害图像中提取颜色、形状和纹理等特征,并将其输入特定的分类器来完成植物病害识别任务。Zhang 等人利用 HSI、YUV 和灰度模型对苹果病害图像进行处理;然后,作者利用遗传算法和基于相关性的特征选择提取特征,并最终利用 SVM 分类器对苹果白粉病、镶嵌病和锈病进行了鉴别,其识别准确率达到了 90%,这不仅使人力和时间成本大大增加,也使系统得以推广和普及。

近年来,深度学习卷积神经网络在农业智能检测中得到了广泛应用,与传统的机器视觉技术相比,其检测速度更快、精度更高[5]。目标检测模型有两种,第一种是以R-CNN[6]和Faster R-CNN[7]为代表的两阶段检测算法。Xie 等人[8]将改进的 Faster R-CNN 检测模型用于葡萄叶病的实时检测,在模型中引入了三个模块(Inception v1、Inception-ResNet-v2 和 SE),平均精度(mAP)达到了 81.1%。Deng 等[9]提出了一种利用无人机遥感和人工智能技术对松树枯萎病进行大规模检测和定位的方法,并进行了一系列优化,将检测精度提高到 89.1%。Zhang 等人[10]设计了一个多特征融合的 Faster R-CNN (MF3R-CNN)模型用于大豆叶病检测,平均准确率达到 83.34%。Wang 等人[11] 使用 RFCN ResNet101 模型检测马铃薯表面缺陷,准确率达到 95.6%。这种两阶段检测模型能够识别作物病害,但其网络模型庞大,检测速度较慢,难以应用于实际种植业。

另一种目标检测算法是以 SSD [12] 和 YOLO [13-16] 系列为代表的单阶段算法。与两阶段检测算法不同,它不需要生成候选帧。通过将边界问题转换为回归问题,利用从网络中提取的特征来预测病变的位置和类别。由于其准确率高、速度快、训练时间短、计算要求低,更适合农业应用。Wang 等人[17]使用 SSD-MobileNet V2 模型检测荔枝表面的划痕和裂纹,最终实现了 91.81% 的 mAP 和 102 帧/秒(FPS)的检测结果。Chang-Hwan 等人[18]在实验中提出了一种新的注意力增强型 YOLO 模型,用于识别和检测植物叶面病害。Li等人[19]改进了YOLOv5中的CSP、特征金字塔网络(FPN)和非最大抑制(NMS)模块,用于检测五种蔬菜病害,获得了93.1%的mAP,有效减少了复杂背景造成的漏检和误检。在复杂的果园环境中,Jiang 等人[20] 提出了一种改进的 YOLOX 模型来检测甜樱桃果实的成熟度。在改进模型的过程中,mAP 和召回率分别提高了 4.12% 和 4.6%,有效解决了果实重叠和枝叶遮挡造成的干扰。Li 等人[21]利用改进后的 YOLOv5n 模型检测自然环境中的黄瓜病害。使用单阶段目标检测算法进行智能作物病害检测的发展已日趋成熟,但针对苹果叶片病害检测的研究却较少。小数据集和简单的图像背景给大多数现有研究带来了问题。因此,为计算能力有限的移动设备开发一种识别准确率高、检测速度快的苹果叶病检测模型至关重要。

考虑到苹果园复杂的种植环境和各种形状的病斑,本研究提出了一种基于 YOLOv5s 的改进型目标检测算法。该算法旨在减少苹果叶病检测任务中多尺度病斑、密集病斑和不明显特征造成的误检。因此,可以提高模型的准确性和效率,为苹果叶病识别和果园智能管理提供必要的技术支持。

二、Materials and Methods(材料与方法)

2.1 材料

2.1.1 数据获取与标注

在本研究中,使用了三个数据集来训练和评估所提出的模型:植物病理学挑战2020 (FGVC7)[22]数据集,植物病理学挑战2021 (FGVC8)[23]数据集和PlantDoc[24]数据集。

FGVC7和FGVC8[22,23]由Kaggle主办的植物病理学细粒度视觉分类大赛中使用的苹果叶片疾病图像组成。照片由康奈尔农业科技公司使用佳能Rebel T5i数码单反相机和智能手机拍摄,每张照片的分辨率为4000 × 2672像素。苹果叶片病害有四种,即锈病、frogeye 叶斑病、白粉病和赤霉病。这些病害发生频繁,对苹果的品质和产量造成重大损失。数据集的样例图像如图1所示。
在这里插入图片描述
PlantDoc[24]是由Davinder Singh等人于2020年构建的用于植物病害视觉检测的非实验室图像数据集。收录自然场景植物病害图像2598幅,涉及植物13种,病害多达17种。PlantDoc中的大多数图像分辨率低,噪声大,样本数量不足,使得检测更加困难。在本研究中,使用苹果锈病和赤霉病图像来增强和验证所提出模型的泛化性。疾病图像的例子如下所示
在这里插入图片描述
从收集到的数据集中,我们选择了(1)光照强度随时间变化的图像,(2)不同拍摄角度的图像,(3)不同疾病强度的图像,(4)不同疾病阶段的图像,以确保数据集的丰富性和多样性。最后,共选取了2099张苹果叶片病图像。
使用LabelImg软件对图像进行分类标记,包括疾病类型、中心坐标、每个病斑的宽度和高度。我们总共注释了10727个病变实例,注释如表1所示。将标记的数据集按8:2的比例随机分为训练集和测试集。该数据集被称为ALDD(苹果叶病数据:apple leaf disease data),并用于训练和测试模型。

在这里插入图片描述

2.1.2 数据增强

实际苹果园环境复杂,干扰因素较多,目前选取的数据还远远不够。为了丰富图像数据集,我们选择了马赛克图像增强[16]和在线数据增强来扩展数据集。马赛克图像增强是从训练集中随机选择4张图像,经过旋转、缩放和色调调整,最终合并为一幅图像。这种方法不仅丰富了图像背景,增加了实例数量,而且间接提高了批处理的大小。这加快了模型的训练速度,有利于提高小目标的检测性能。在线增广是将数据增广运用到模型训练中,保证样本量的不变性和整体样本的多样性,通过不断扩大样本空间来提高模型的鲁棒性。主要包括色调的改变、饱和度、亮度的变换、平移、旋转、翻转等操作。数据集的总数是常数;但是,每个批次的数据输入量是变化的,更有利于模型的快速收敛。增强图像的示例如图3所示
在这里插入图片描述

2.2 方法

2.2.1 YOLOV5s模型

根据网络深度和特征图宽度的不同,YOLOv5可分为YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x[25]。随着深度和宽度的增加,网络的层数增加,结构也变得更加复杂。为了满足轻量化部署和实时检测的要求,减少模型占用的存储空间,提高识别速度,本研究选择YOLOv5s作为基线模型。

YOLOv5s由输入、主干、颈部和预测四部分组成。
输入部分包括拼接数据增强、锚盒自适应计算和图像自适应缩放。主干模块进行特征提取,由焦点、CBS、C3和空间金字塔池(SPP)四部分组成。在YOLOv5s中,脊柱和颈部有两种C3[26]模块,如图4所示。前者利用了骨干层的残差单元,而后者没有。SPP使用不同大小的卷积核对特征图进行最大池化,以融合多个感知场并生成语义信息。颈部层使用(FPN)[28]和路径聚合网络(PANet)[29]的组合来融合图像特征。预测包括三个检测层,分别对应20 × 20、40 × 40和80 × 80个特征图,用于检测大、中、小目标。最后,利用CIOU (complete intersection over union)[30]损失函数计算预测盒与真实盒之间的距离,并应用NMS去除冗余盒,保留置信度最高的检测盒。YOLOv5s网络模型如图所示
YOLOv5s网络模型

2.2.2 Bidirectional Feature Pyramid Network(双向特征金字塔网络)

YOLOv5s结合FPN和PANet进行多尺度特征融合,FPN以自上而下的方式增强语义信息,PANet从自下而上增强位置信息。这种组合增强了颈层的特征融合能力。然而,当融合不同分辨率的输入特征时,特征被简单地汇总,它们对融合输出特征的贡献通常是不公平的。

为了解决这一问题,Tan等[31]开发了基于高效双向跨尺度连接和加权多尺度特征融合的BiFPN。该算法引入可学习权值来学习不同输入特征的重要性,并迭代地应用自顶向下和自底向上的多尺度特征融合。BiFPN的结构如图5所示

在这里插入图片描述
由于不进行特征融合,该算法移除只有一条输入边的节点。由于对融合不同特征的网络目标贡献很小,因此将其去除,简化了双向网络。此外,在同一层的输入和输出节点之间额外增加一条边,通过迭代叠加获得更高层次的融合特征。该算法引入了一种简单高效的加权特征融合机制,通过添加可学习的权重,对不同分辨率的特征图赋予不同的重要程度。公式如(1)、(2)所示:

在这里插入图片描述
其中Pi in为第i层的输入特征,Pi td为第i层自顶向下路径的中间特征,Pi out为第i层自底向上路径的输出特征,w为可学习权值,# = 0.0001为避免数值不稳定的小值,Resize为下采样或上采样操作,Conv为卷积操作。

带BiFPN的颈部层增加了多尺度特征的融合,为网络提供强大的语义信息。它有助于检测不同大小的苹果叶片病害,减轻了网络对重叠和模糊目标的不准确识别。

2.2.3 Transformer Encoder Block(变压器编码器块)

苹果叶片上病变密度高。为了避免马赛克数据增强后病变数量和背景信息增加,导致无法准确定位病变所在区域的问题,在骨干层的末端增加了变压器[32]注意机制。变压器模块用于捕获全局上下文信息,并在特征通道和疾病目标之间建立远程依赖关系。变压器编码器模块采用自关注机制探索特征表示能力,在高密度场景下表现优异[33]。基于人类视觉原理设计了自注意机制,并根据视觉对象的重要性分配资源。自注意机制具有全局感觉场,对远程上下文信息进行建模,捕获丰富的全局语义信息,并对不同的语义信息赋予不同的权重,使网络更加关注关键信息[34]。计算式为(3),包含query、key、value三个基本元素,分别用Q、K、V表示。
在这里插入图片描述
其中dk为输入特征映射通道序列的个数,采用归一化数据避免梯度递增。

每个变压器编码器由多头注意和前馈神经网络组成。多头注意机制结构如图6所示。

它与自关注机制的不同之处在于,自关注机制只使用一组Q、K和V值,而它使用多组Q、K和V值来计算和拼接多个矩阵。不同的线性变换具有不同的向量空间,这可以帮助当前代码专注于当前像素并获取有关上下文的语义信息[35]。多头注意机制在不增加计算复杂度的前提下,通过捕获远距离依赖信息,增强了疾病特征的提取能力,提高了模型的检测性能。
在这里插入图片描述

2.2.4 Convolutional Block Attention Module(卷积块注意力模块)

确定疾病种类更多地依赖于特征图中的局部信息,而病灶的定位更多地依赖于位置信息。该模型在改进的yolov5中使用CBAM[36]注意机制对空间和通道中的特征进行加权,增强模型对局部和空间信息的注意。

如图7所示,CBAM包含两个子模块:通道注意模块(CAM)和空间注意模块(SAM),分别用于空间和通道注意。输入特征映射F∈RC×H×W首先经过CAM的一维卷积运算Mc∈RC×1×1,将卷积结果与输入特征相乘。然后将CAM的输出结果作为输入,对SAM进行二维卷积运算Ms∈R1×H×W,然后将结果与CAM的输出相乘得到最终结果。计算公式如(4)、(5)所示。
在这里插入图片描述
式中,F为输入特征映射,Mc为CAM的一维卷积运算,Ms为SAM的二维卷积运算,⨂为元素乘法
在这里插入图片描述
CBAM中的CAM关注不同通道的权重,并将相应的权重乘以通道,以增加对重要通道的关注。

对大小为H × W × C的特征映射F进行平均和最大池化,分别得到两个1 × 1 × C的通道映射,然后进行两层共享多层感知(MLP)操作。将两个输出逐元素相加,然后应用sigmoid激活函数输出最终结果。计算过程如式(6)所示。

Mc(F) = s(MLP(AvgPool(F)) + MLP(MaxPool(F)))(6)由式(7)可知,SAM更关注病灶的位置信息。对CAM输出进行平均并最大限度地池化以获得两个H ’ × W ’ × 1通道映射。将两个特征图连接起来,然后进行7 × 7的卷积运算和Sigmoid激活函数,得到最终结果。

2.2.5 BTC-YOLOv5s检测模型

基于YOLOv5s模型原有的优势,本研究提出了一种改进的BTC-YOLOv5s算法用于苹果叶片病害检测。在保证程序速度的同时,它提高了在复杂环境中识别苹果叶片病害的准确性。该算法主要从三部分进行改进:BiFPN、变压器和CBAM注意机制。首先,在YOLOv5s骨干层SPP前加入CBAM模块,突出疾病检测任务中的有用信息,抑制无用信息,从而提高模型的检测精度。其次,用带变压器的C3TR模块代替C3模块,提高了提取苹果叶片病害特征的能力。第三,我们将concat层替换为BiFPN层,并将第6层的路径添加到第20层。将同一层骨干网生成的特征与FPN和PANet生成的特征双向连接,提供更强的信息表示能力。图8显示了本研究的BTCYOLOv5s模型的总体框架。
在这里插入图片描述

2.3 实验环境及参数设置

模型在PyTorch 1.10.0深度学习框架下运行的Linux系统上进行训练和测试,使用以下设备规格:Intel® Xeon® E5-2686 v4 @ 2.30 GHz处理器,64gb内存,NVIDIA GeForce RTX3090显卡,24gb显存。该软件在cuda 11.3、cudnn 8.2.1和python 3.8上运行。

在训练过程中,将初始学习率设置为0.01,采用余弦退火策略降低学习率。采用随机梯度下降法(SGD)对神经网络参数进行优化,动量值为0.937,权重衰减指数得分为0.0005。训练历元为150,图像批大小设置为32,输入图像分辨率均匀调整为640 × 640。表2显示了调优的训练参数。

在这里插入图片描述

2.4 模型评估指标

评价指标分为两个方面:性能评价和复杂性评价。模型性能评估指标包括精度、召回率、mAP和F1分数。模型复杂度评价指标包括模型大小、浮点运算(FLOPs)和FPS,用于评价模型的计算效率和图像处理速度。

精度是正确预测的阳性样本与被预测为阳性样本总数的比率,用于衡量模型的分类能力,而召回率是正确预测的阳性样本与阳性样本总数的比率。AP是精度和召回率的积分,mAP是AP的平均值,它反映了模型在目标检测和分类方面的整体性能。F1分数是查准率和查全率的调和平均值,它同时使用查准率和查全率来评价模型的性能。计算公式如式(8)-(12)所示。
在这里插入图片描述

式中TP为检测正确的阳性样本数,FP为检测错误的阳性样本数,FN为检测错误的阴性样本数

模型大小是指存储模型所需的内存量。FLOPs用于度量模型的复杂性,即模型执行乘法和加法操作的总数。FLOPs值越低,模型推理所需的计算量越少,模型计算速度越快。

FLOPs的公式如式(13)和式(14)所示。FPS表示模型每秒处理的图片数量,可以评估处理速度,对实时疾病检测至关重要。考虑到该模型可以在移动设备上实现,且计算成本较低,因此选择不带显卡的八核CPU进行测试。

在这里插入图片描述
式中,Cin为输入通道,Cout为输出通道,K为卷积核大小,Wout和Hout分别为输出特征图的宽度和高度。

三、结果

3.1 性能评估

利用构建的ALDD测试集对BTC-YOLOv5s模型进行了验证。此外,使用相同的优化参数与YOLOv5s基线模型进行比较。如表3所示,改进后的模型对蛙眼叶斑病的AP得分与原模型相近,而对其他三种病害的检测性能显著提高。值得注意的是,病变形状不规则的赤霉病是最容易发现的问题,改进模型的AP增加了3.3%,这是最大的改善。这些结果表明,所提出的模型有效地检测了所有四种疾病,并提高了准确性。

在这里插入图片描述
图9显示了基线模型YOLOv5s和经过150次epoch训练的改进模型BTC-YOLOv5s的准确率、召回率、mAP@0.5和mAP@0.5:0.95的评估结果。

从图9中可以看出,经过50个epoch后,准确率和召回率曲线在一个较窄的范围内波动,但BTC-YOLOv5s曲线始终高于基线模型曲线。从mAP@0.5曲线可以看出,改进模型的mAP@0.5曲线在60 epoch左右与基线模型相交。

虽然基线模型的mAP@0.5在早期快速增加,但BTC-YOLOv5s模型在后期稳步改善,效果较好。mAP@0.5:0.95曲线也表现出类似的行为。

由于苹果叶片病害较小且分布密集,为了进一步验证BTC-YOLOv5s模型的准确性,将测试集根据病害密度分为两组,即病害稀疏分布和密集分布。我们比较了基线模型和改进模型的检测结果。BTCYOLOv5s模型对稀疏和致密病变图像的mAP@0.5分别为87.3%和81.4%,比基线模型分别提高了1.7%和0.7%。

在这里插入图片描述
如图10所示,黄色圆圈表示未检测,红色圆圈表示错误检测。可以看出,无论病变是稀疏还是致密,基线模型YOLOv5s都遗漏了小病变或模糊病变(图10a、b中第一行图像)。然而,改进后的模型解决了这个问题,在叶子上检测出了不在聚焦范围内的小病变或疾病(图10a,b中的第二行图像)。此外,BTC-YOLOv5s模型具有更高的置信水平。基线模型还错误地检测了未患病的部分,如苹果、背景和其他不相关的物体(图10(a3,b1)),并且存在错误的检测,将赤霉病错误地检测为锈病(图10(b5))。改进后的模型可以更专注于疾病,在更深层次上提取不同疾病之间的差距特征,避免了上述误差。蛙眼叶斑病、赤霉病和锈病的危害小而密集,分布在叶片的不同部位,而白粉病的危害多见于全叶。这使得模型检测盒的尺度由大变小,所提出的模型能够很好地适应不同疾病的尺度变化。

因此,BTC-YOLOv5s模型不仅能够适应不同病害分布的检测,而且能够适应不同规模、不同特征的苹果叶片病害的变化,呈现出优异的检测效果。
在这里插入图片描述

3.2 消融实验结果分析

本研究通过消融实验验证了不同优化模块的有效性。我们将BiFPN模块(BF)、变压器模块(TR)和CBAM注意力模块依次添加到基线模型YOLOv5s中,构建了多个改进模型,并在相同的测试数据上比较了结果。实验结果如表4所示。

在表4中,基线模型YOLOv5s的精度为78.4%,mAP@0.5为82.7%。通过增加三个优化模块,即BiFPN模块、变压器模块和CBAM注意力模块,与基线模型相比,精度和mAP@0.5都得到了提高。其中,精度分别提高了3.3%、3.3%和1.1%,mAP@0.5分别提高了0.5%、1%和0.2%。三个优化模块的最终组合取得了最好的效果,精度达到了最大值,mAP@0.5和mAP@0.5:0.95,分别比基线模型提高了5.7%、1.6%和0.1%。通过跨通道信息与空间信息的融合,CBAM注意机制能够突出重要特征,同时抑制无关特征。

此外,变压器模块使用自注意机制与疾病特征建立远程特征通道。BiFPN模块跨尺度融合了上述特征,提高了对重叠和模糊目标的识别。由于三个模块的结合,BTC-YOLOv5s型号达到了最佳性能。
在这里插入图片描述

3.3 注意力机制分析

为了评估CBAM注意机制模块的有效性,我们保留了BTC-YOLOv5s模型的其他结构作为实验参数设置,仅将CBAM模块替换为SE[37]、CA[38]、ECA[39]等其他主流注意机制模块进行比较。

从表5可以看出,注意机制可以显著提高模型的准确性。SE、CA、ECA、CBAM模型的mAP@0.5分别达到83.4%、83.6%、83.6%、84.3%,比YOLOv5s + BF + TR模型分别高出0.4%、0.6%、0.6%、1.3%。各注意机制对mAP@0.5都有不同程度的提高,其中CBAM模型表现最好,达到84.3%,分别比SE、CA和ECA模型提高0.9%、0.7%和0.7%,mAP@0.5: 0.95也是四种注意机制中最高的。SE和ECA注意机制仅考虑特征映射中的通道信息,而CA注意机制使用位置信息对通道关系进行编码。相比之下,CBAM注意机制将空间注意与通道注意相结合,强调特征图中有关疾病特征的信息,更有利于疾病识别和定位。

在这里插入图片描述
此外,注意力模块没有增加模型大小或FLOPs,表明它是一个轻量级模块。带有CBAM模块的BTC-YOLOv5s模型在保持相同模型尺寸和计算成本的情况下提高了识别精度。

3.4 与最先进模型的比较

选择目前主流的两阶段检测模型Faster R-CNN和一阶段检测模型SSD、YOLOv4微小和YOLOx-s进行比较实验。ALDD数据集用于训练和测试,所有模型的实验参数相同。实验结果如表6所示

在这里插入图片描述

在所有模型中,Faster R-CNN的mAP@0.5和F1得分均低于50%,模型尺寸大,计算量大,导致FPS仅为0.16,不适合实时检测苹果叶片病害。单级检测模型SSD的mAP@0.5值为71.56%,模型大小为92.1 MB,在模型精度和复杂度上都不符合检测要求。在YOLO模型系列中,YOLOv4-tiny的准确率mAP@0.5仅为59.86%,准确率太低。YOLOx-s达到80.1% mAP@0.5,但FLOPs为26.64 G,每秒只有4.08张图片。两者都不利于移动部署。所提出的BTC-YOLOv5s模型在所有模型中mAP@0.5和F1得分最高,分别比SSD、Faster R-CNN、YOLOv4-tiny、yoloox -s和YOLOv5s分别高出12.74%、48.84%、24.44%、4.2%和1.6%。模型尺寸和FLOPs与基线模型相近,FPS达到8.7帧/秒,满足真实场景下苹果叶片病害的实时检测。

如图11所示,BTC-YOLOv5s模型在检测精度方面优于其他五种模型。此外,BTC-YOLOv5s模型的模型尺寸、计算量和检测速度与其他轻量级模型相当。综上所述,BTC-YOLOv5s模型整体性能优异,能够在真实场景中准确高效地完成苹果叶片病检测任务。
在这里插入图片描述

3.5 鲁棒性测试

在实际生产中,苹果叶片病害的检测可能会受到各种客观环境因素的干扰,如过度曝光、光线昏暗、图像分辨率低等。本研究通过增强亮度、降低亮度、加入高斯噪声等方法对测试集图像进行模拟,共得到1191张图像(每例397张)。我们评估了优化后的BTC-YOLOv5s模型在各种干扰环境下的鲁棒性,以确定其检测有效性。此外,我们通过添加50张包含多种疾病的图像来测试模型检测并发疾病的能力。实验结果如图12所示。

在这里插入图片描述
从检测结果来看,该模型在强光、弱光和模糊三种噪声条件下均能准确检测出蛙眼叶斑病、锈病和白粉病图像,且缺失检测较少。结痂病也被正确识别,但一定程度的漏检发生在昏暗的光线和模糊的条件下。这主要是因为赤霉病变呈现黑色,图像的整体背景与昏暗光线下的病变颜色相似。如图12第五行所示,该模型还展示了对并发图像的检测能力,尽管在模糊条件下出现了一些缺失检测。实验结果结果达到80%以上的mAP。总体而言,BTC-YOLOv5s模型在图像模糊和光线不足等极端条件下仍然表现出较强的鲁棒性。

四、讨论

4.1 多尺度检测

由于苹果叶片病的大小不同,多尺度检测是一项具有挑战性的任务。在本研究中,蛙眼叶斑病、痂病和锈病通常是小而密集的,而白粉病是一个完整的病变分布在叶片上。

需要检测的斑点的大小相对于整个图像的比例可以在图像之间甚至在同一图像内变化很大。为了解决这一问题,本研究基于多尺度特征融合的思想,将BiFPN引入到YOLOv5s中,以提高模型的能力。BiFPN将整个特征金字塔框架进行多次堆叠,为网络提供了强大的特征表示能力。它还进行加权特征融合,使网络能够学习不同输入特征的重要性。在农业检测领域,多尺度检测一直是一个热门的研究课题。例如Li等[21]通过添加一组匹配小实例的锚点实现了黄瓜多尺度病害检测。Cui等[40]采用挤压激励特征金字塔网络融合多尺度信息,仅保留26 × 26检测头进行松果检测。然而,目前的研究仍然面临着对非常大或非常小的目标的检测精度显着下降的挑战。未来的研究将集中于探索如何将模型应用于不同尺度的疾病斑点。

4.2 注意力机制

注意机制对模型提取的图像特征赋予权重,使网络能够关注具有重要信息的目标区域,同时抑制其他不相关信息,减少不相关背景对检测结果的干扰。注意机制的引入可以有效地增强检测模型的特征学习能力,许多研究者将其纳入到提高模型性能的研究中。如Liu等[41]在YOLOX中加入SE关注模块,增强棉铃特征细节的提取。Bao等[42]在检测模型Neck中加入了二维混合注意(dual-dimensional mixed attention, DDMA),该模型将坐标注意与通道注意和空间注意并行化,以减少由于叶片分布密集而导致的漏检测和误检测。本研究利用CBAM注意机制增强BTC-YOLOv5s模型的特征提取能力。CBAM由SAM和CAM两个模块组成,单独使用这两个子模块的准确率分别为83.2%和83.1%,低于使用CBAM的模型的性能。由于SAM和CAM仅是单独的空间和通道注意模块,而CBAM将两者结合起来,因此它同时考虑了特征通道和空间维度的有用信息,使模型更有利于病灶的定位和识别。

4.3 展望

虽然所提出的模型能够准确地识别苹果叶片病害,但仍有一些问题值得关注和进一步研究。首先,本研究使用的数据集仅包含四种疾病类型的图像,而苹果疾病总共约有200种。因此,未来的研究将包括更多物种和不同疾病阶段的图像。其次,在密集疾病情况下,模型的精度不佳,与稀疏情况下的性能相比,模型的精度明显下降。检测结果表明,结痂的错误率最高,主要是由于其病变形状不规则,边界不明显,干扰了模型的检测。在未来,结痂病将作为一个单独的研究课题来考虑,以提高模型的检测精度。

五、结论

针对苹果叶片病斑形状不同、多尺度、分布密集等问题,提出了一种基于YOLOv5s的改进检测模型BTC-YOLOv5s。为了提高原始YOLOv5s模型的整体检测性能,本研究引入了BiFPN模块,增加了多尺度特征的融合,提供了更多的语义信息。此外,还增加了变压器和CBAM注意力模块,以提高提取疾病特征的能力。结果表明,BTCYOLOv5s模型在ALDD测试集上的准确率为mAP@0.5,达到84.3%,模型尺寸为15.8 M,在八核CPU设备上的检测速度为8.7 FPS。此外,它在极端条件下仍然保持良好的性能和鲁棒性。改进后的模型检测精度高,检测速度快,计算量低,适合部署在移动设备上进行苹果病害的实时监测和智能控制。

注:论文原文出自Real-Time Detection of Apple Leaf Diseases in Natural Scenes
Based on YOLOv5本文仅用于学术分享,如有侵权,请私信联系作删文处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/816646.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FitBot-一款先进的以健康为中心的聊天机器人

在健康意识高涨,追求均衡生活方式成为普遍追求的时代,营养问题无疑是核心支柱。然而,饮食计划的复杂性和大量的营养数据往往成为我们实现这种平衡的障碍。例如糖尿病患者,他们需要持续和准确的营养指导来有效管理血糖水平。如果能…

Mendix是如何支持多语言的?

前言 国际化的支持能力,至关重要。这类功能的缺失,将会在市场竞争、用户体验、合作关系以法律法规方面遇到重大挑战,这些都是可能对其成功产生致命影响的问题。 比如在某些国家和地区,政府可能会对不支持本地语言和货币的软件系…

深度学习,神经网络介绍

目录 1.神经网络的整体构架 2.神经网络架构细节 3.正则化与激活函数 4.神经网络过拟合解决方法 1.神经网络的整体构架 ConvNetJS demo: Classify toy 2D data 我们可以看看这个神经网络的网站,可以用来学习。 神经网络的整体构架如下1: 感知器&…

el-table使用xlsx实现导入文件编辑功能

需求:列表根据xlsx文件导入后,和列表进行对比,之后实现编辑功能 1.下载xlsx 我下的是之前的版本,新版不知道兼不兼容,这个包900多k npm install xlsx0.14.5 2.在需要使用表格导入的页面引入 import XLSX from &quo…

从0到1开发go-tcp框架【2-实现Message模块、解决TCP粘包问题、实现多路由机制】

从0到1开发go-tcp框架【2-实现Message模块、解决TCP粘包问题、实现多路由机制】 1 实现\封装Message模块 zinx/ziface/imessage.go package zifacetype IMessage interface {GetMsdId() uint32GetMsgLen() uint32GetMsgData() []byteSetMsgId(uint32)SetData([]byte)SetData…

MySQL数据库 【索引事务】

目录 一、概念 二、索引的优缺点 1、索引的优点 2、索引的缺陷 三、索引的使用 1、查看索引 2、创建索引 3、删除索引 四、索引底层的数据结构 1、B树 2、B树 五、索引事务 1、概念和回滚 2、事务的使用 3、事务的基本特性 4、并发会遇到的问题 &#xff08…

Python程序设计基础:字典与集合(二)

文章目录 一、字典的整体操作1、字典的遍历2、字典的排序3、字典的合并 二、创建与访问集合1、集合的创建2、集合的访问 三、集合的基本操作1、集合的增、删、查2、集合的数学运算 一、字典的整体操作 字典的整体操作是指以字典为操作对象,对字典进行遍历、排序以及…

hdu foreverlasting and fried-chicken

题意: 在一个有n个点和m条边的图中找到形状是上图的子图,输出个数 思路: 仔细观察上图,设第二行的那个点为x,最后一行的点为y,那么可以知道,如果x和y都和相同的所有点中取四个点分别和xy相连…

DUBBO服务多网卡,服务调用失败

如果服务器是多网卡的,比如安装了docker,有一个docker虚拟网卡,一个实体网卡eth0,当我们运行springboot应用后,dubbo注入到zk的地址是 docker虚拟网卡的地址172网段,而不是实际内网地址192网段,…

OpenLayers实战,OpenLayers使用wind-layer插件实现风场动态效果

专栏目录: OpenLayers入门教程汇总目录 前言 本章讲解如何使用OpenLayers的气象风场插件wind-layer实现气象风场动态效果,该插件除了可用于OpenLayers之外,还可用于mapgl、leaflet和cesuim等二维/三维地图引擎,还是很强大的,废话少谈,让我们立刻开始实现吧。 二、依赖和…

如何将论文中的字快速复制出来?图片如何提取文字?

在日常的办公中,我们经常会遇到需要将纸质文件里的文字提取出来,再转换为电子档的情况,如果我们采用手动输入的话,不仅速度太慢,而且还可能因此耽误到后边的工作,是不是已经有小伙伴遇到这种现象&#xff0…

element中tabs组件,click事件点击拿到当前item的所有数据

话不多说,直接上代码: 添加一个:value,然后在用JSON.stringify(item)转一下就可以了,这样就会存在$attrs.value这个里面了。 接着在点击事件里面获取使用el.$attrs.value,注意这里在拿到这个值时,再用JSON…

锌离子荧光探针TSQ,109628-27-5,具有很好的选择性荧光探针

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ PART1----外观以及性质: 锌离子荧光探针TSQ(CAS号:109628-27-5),锌离子荧光探针TSQ是用于检测锌离子的荧光探针。 TSQ与Zn离子结合后,吸收波长和发射波…

如何创建一个SpringBoot项目

欢迎来到南方有乔木的博客!!! 博主主页:点击点击!戳一戳!! 博主名:南方有乔木 博主简介: 一名在校大学生,正在努力学习Java语言编程。穷且意坚,不坠青云之…

sort排序报错:java.lang.UnsupportedOperationException: null

文章目录 问题原因解决方式 问题 Groovy 调用 .sort{} 排序报错:java.lang.UnsupportedOperationException: null solutionScenario2SolutionProcessList.sort { it.idx } 原因 调用的sort的对象是Collections的内部类对象UnmodifiableRandomAcessList 解决方式 调用 coll…

数据结构:单链表的实现(C语言)

个人主页 : 水月梦镜花 个人专栏 : 《C语言》 《数据结构》 文章目录 前言一、单链表实现思路和图解1.节点的定义(SListNode)2.申请一个节点(BuySListNode)3.单链表打印(SListPrint)4.单链表尾插(SListPushBack)5.单链表的头插(SListPushFront)6.单链表的…

【ChatGPT辅助学Rust | 基础系列 | Hello, Rust】编写并运行第一个Rust程序

文章目录 前言一,创建项目二,两种编译方式1. 使用rustc编译器编译2. 使用Cargo编译 总结 前言 在开始学习任何一门新的编程语言时,都会从编写一个简单的 “Hello, World!” 程序开始。在这一章节中,将会介绍如何在Rust中编写并运…

音频编辑必备技能:怎么将音频转换mp3

丽萨:嘿,听说你最近在研究音频格式转换的方法,有眉目了吗? 凯瑞:没错,我下载了很多高清音乐,发现有些格式的音频文件在我的播放器上打不开,所以想一个转换工具。但是网上软件太多&a…

使用腾讯云 Cloud studio 实现调度百度AI实现文字识别

文章目录 前言导入模块设置百度AI的APP_ID、API_KEY和SECRET_KEY定义路径和文件列表打开文本文件准备写入数据逐个处理图片文件关闭文本文件重复处理其他图片文件完整代码解释说明 运行效果 前言 今天我们也来高大上一下,玩一把人工智能。那就是免费调用百度AI实现图…

站外引流效果差?一文带你搞懂解海外主流社交媒体算法!

在流量成本越来越高的当下,无论是平台卖家还是独立站卖家都在努力拓展流量渠道。站外引流是推动业务增长的关键策略,很多卖家会把重点放在内容营销上,但其实除了做好内容之前,了解社交媒体的算法才能让营销效果最大化。 01.Faceb…