掌桥专利:专业的专利平台
掌桥专利
首页

一种基于改进YOLOX-Nano算法的轻量化苹果叶片病害检测方法

文献发布时间:2024-04-18 20:02:18


一种基于改进YOLOX-Nano算法的轻量化苹果叶片病害检测方法

技术领域

本发明属于计算机视觉中目标检测领域,主要涉及一种基于改进YOLOX-Nano算法的轻量化苹果叶片病害检测方法,可以应用于实时苹果叶片病害检测场景中。

背景技术

对于苹果叶片病害检测和防治问题,传统的病害检测方法大多是人工检测,其效率低下,用工成本也较高,已经逐渐不满足苹果种植业的发展现状。随着目标检测技术的迅猛发展,出现了以YOLO系列算法为代表的一阶段目标检测算法,以及R-CNN系列算法为代表的二阶段的等两大主要类型的算法。这些算法在植物病害检测领域取得了显著的进展,极大地提高了模型检测性能。但是,这些模型普遍也存在一些问题,包括但不限于检测速度低、模型复杂、实施成本高等方面,从而导致目前大多数的植物叶片病害检测难以付诸现实。因此,针对这一现状,研发一种可以进行实时检测、模型复杂性低的目标检测算法不仅可以实际应用于现实果园中提升果园产出效率,更能促进农业现代化和智慧化发展。

发明内容

鉴于上述原因,本发明的目的在于提供一种基于改进YOLOX-Nano算法的轻量化苹果叶片病害检测方法,来克服上述缺点以及不足,从而有效提升苹果叶部病害检测的精度以及速度。

本发明的目的通过以下技术方案予以实现:

一种基于改进YOLOX-Nano算法的轻量化苹果叶片病害检测方法,其特征在于主要包括以下步骤:

步骤一、首先从Kaggle官网赛事中下载了FGVC8苹果叶片病害公共数据集,并对该数据集进行预处理;

步骤二、对于单阶段目标检测模型YOLOX-Nano算法主干网络的尾部的Dark5结构,引入SPPCSPC(跨阶段空间金字塔池化)来更换原来Dark5结构中的CSP(跨阶段局部网络)和SPP(空间金字塔池化)以降低模型计算复杂度,提升模型的推理速度;

步骤三、对于单阶段目标检测模型YOLOX-Nano,在主干网络Dark3、Dark4、Dark5三个分支尾部添加ECA模块(高效通道注意力),来保证在降低模型复杂度的情况下提升主干网络的特征提取能力,从而有效提升模型的检测性能。

步骤四、根据数据集以及模型实际训练情况来优化损失函数,从而使模型达到更高的精度;

步骤五、模型训练;

步骤六、使用训练好的YOLOX-Nano模型来检测具有病害的苹果叶片,从而确定病害种类以及位置信息;

以上所述的步骤一中,首先,从Kaggle官网中下载农作物病害分类竞赛FGVC8苹果叶片病害数据集,为了使数据集样本更加充分,又从百度飞浆下载了苹果叶部病理数据集,并对两个数据集进行整理标注。标注完成之后对数据集进行数据增强,使数据集标签数量扩充到原来的6倍,以8:2的比例划分出训练集和测试集;

以上所述的步骤二中,YOLOX-Nano模型主要由四个部分组成,其网络结构和YOLOX系列相同,具体包括Input模块(输入端)、主干网络模块(Backbone)、Neck模块(颈部特征融合网络)、Head(检测头)。该网络结构主要由CBL结构包括BaseConv和DWConv基础卷积、CSP结构包括CSP1_X和CSP2_X、SPP结构等组成。具体确定YOLOX系列网络中某个模型只需根据项目中的代码对网络深度和宽度进行调节即可;

以上所述的步骤二中,为了充分提取和利用传入图像的特征,并且不会增加参数量。本发明引入SPPCSPC模块(跨阶段空间金字塔池化),该模块借鉴CSP结构来有效地提高模型推理速度降低模型计算量;

以上所述的步骤三中,在主干网络Dark3、Dark4、Dark5模块分支尾部引入高效通道注意力模块(ECA)来降低模型复杂度的同时增强模型特征提取能力从而有效提升模型检测性能;

以上所述的步骤四中,该模型的总损失由预测分类损失,定位损失,置信度损失组成。具体改进措施为使用变焦损失(Varifocal loss)更换模型置信度损失的二元交叉熵损失(BCEWithLogits Loss),提升了模型对密集小目标的检测性能。提升了模型对密集小目标的检测性能;

以上所述的步骤五中,对优化的单阶段目标检测模型进行训练包括:

步骤S5.1 YOLOX-Nano模型选择;

步骤S5.2 YOLOX-Nano模型超参数初始化;

以上所述的步骤S5.1中,具体选择YOLOX-Nano模型大小的方法为修改配置文件将网络深度设置为0.33,宽度设置为0.25;

以上所述的步骤S5.2中YOLOX-Nano模型超参数初始化具体包括以下几部分,分别如下:选择SILU函数作为模型激活函数;衰减系数权重为0.0005;训练迭代次数Epoch设置为300轮;关闭Mixup增强,将马赛克Mosaic增强范围设置为(0.5,1.5),并且在最后100轮训练时关闭Mosaic增强;

以上所述的步骤六中,在完成对模型的训练之后,使用训练好的模型来对具有病害的苹果叶片进行检测,从而确定病害种类以及位置信息。

本发明的优点如下:

1.减少了模型的计算量提升模型检测速度的同时提升了模型的检测精度:本发明通过引入SPPCSPC结构来更换YOLOX-Nano主干网络尾部Dark5模块中原来的SPP以及CSP结构,从而帮助模型分离出更显著的上下文特征,获得细节信息以及定位信息更为丰富的特征。并且通过借鉴CSP的双分支结构,减少了模型的计算量从而提升了模型的检测速度。通过引入ECA注意力模块,来减少计算复杂度,提升模型训练效率,降低模型训练所需的时间。并且帮助主干网络在特征提取时重点关注传入的苹果叶片中特征图中更深层的语义信息,从而更好地提升模型检测精度。

2.提升了模型对苹果叶片中密集小目标病害的检测性能,本发明用Varifocalloss更换损失中的置信度损失的二元交叉熵损失,来减少负样本损失的贡献占比,突出正样本损失的贡献度,从而提升了模型对密集小目标的病害检测精度。

3.本发明同其他常用的目标检测算法在苹果叶片病害数据集上做对比,具有更小模型复杂度,更快的检测速度,较高的检测精度,可以在现实果园实时进行病害检测。

附图说明

图1为本发明的流程示意图;

图2为本发明YOLOX-Nano结构图;

图3为本发明原始Dark5模块以及引入SPPCSPC后的Dark5模块结构图;

图4为ECA注意力模块原理图;

具体实施方式

为了使本发明的技术方案和模型优点更加清楚明白,以下就结合附图和实施例对本发明做进一步详细描述,该实施例仅用于解释本发明,并不对本发明的保护范围构成限定。

如图1所示,本说明书实施例提供一种基于改进YOLOX-Nano算法的轻量化苹果叶片病害检测方法,包括以下步骤:

步骤一、获取苹果叶片病害公共数据集,对公共数据集进行数据增强以及标注等操作;

如首先,本发明从kaggle竞赛官网下载了FGVC8苹果叶片病害公共数据集,其中包括苹果锈病、灰斑病、白粉病和黑星病图像。鉴于该数据集未涵盖苹果叶片另一种常见的苹果叶片花叶病,本发明进一步整合了百度飞浆的苹果叶部病理图像数据集。最终,本发明共收集了2381张图像,涵盖灰斑病556张、花叶病375张、白粉病480张、白粉病初期182张、锈病445张和黑星病343张。尽管白粉病初期、花叶病和黑星病这三类叶片病害的图像数量仍然不足,为此,本发明通过网络爬取额外的黑星病、花叶病以及白粉病初期的图像,将花叶病扩充至494张、白粉病初期扩充至390张、黑星病扩充至420张,使总数扩充至2785张。由于数据集数量仍未满足要求,本发明采用了对比度调整、上下反转、左右翻转、色度调节等数据增强方式,将每类病害图片数量扩充至原来的6倍,最终将总数扩充至16710张。最后,本发明按照8:2的比例划分出训练集和测试集;

步骤二、对于单阶段目标检测模型YOLOX-Nano的主干网络,本发明引入SPPCSPC模块来更换原模型Dark5结构中的SPP以及CSP模块从而帮助模型分离出更显著的上下文特征,获得细节信息以及定位信息更为丰富的特征。

YOLOX-Nano模型主要由四个部分组成,其网络结构和YOLOX系列相同,具体包括Input模块(输入端)、主干网络模块(Backbone)、Neck模块(颈部特征融合网络)、Head(检测头),如图2(a)所示。该网络结构主要由CBL结构包括BaseConv和DWConv基础卷积、CSP结构包括CSP1_X和CSP2_X、SPP结构等组成,如图2(b)所示;在YOLOX-Nano的输入端,该模型通过Mosaic对数据集进行增强,来防止出现严重过拟合。YOLOX-Nano的主干网络为CSPDarkent53,主要有5个部分,分别是Focus、Dark2、Dark3、Dark4、Dark5,如图2(a)所示。颈部网络使用路径增强网络(Path Aggregation Network,PAN)结构+特征金字塔网络(Feature Pyramid Network,FPN)结构。检测层通过解耦头将回归和分类分为两部分实现,在预测时整合,同时提升了算法的收敛速度以及精度。相对其他YOLO系列算法YOLOX-Nano算法具有极低的模型复杂度,更快的检测速度,较高的检测精度,更适用于实时的苹果叶片病害检测。

YOLOX-Nano主干网络尾部Dark5模块如图3(a)所示,其中SPP模块主要作用为:在特征图进入SPP结构后,分别由四个大小为1×1,5×5,9×9和13×13的池化核进行最大池化操作,再转化为所需要的维度的特征向量,可以帮助模型区分大小目标,有效地增大感受野并且避免了图像因为裁剪、缩放所带来的一些问题。其后是一个CSP2_1结构,该结构可以在降低计算量的同时提升整个模型的特征提取能力。本发明引入SPPCSPC结构来更换Dark5中原有的SPP和CSP结构,改进后的Dark5模块如图3(b)所示,其具体内容为:将主干网络Dark4的输出经过第一个卷积核为3X3,步长为2的CBL卷积将图片长宽和通道数减半之后,将输入信息直接分为两个分支,第一个分支将输入信息通过第一个卷积核大小为1的BaseConv将输入信息通道数再次减半,再通过卷积核为3×3的CBL和卷积核为1×1的BaseConv进行卷积处理后,分别再经过池化核大小分别为13×13、9×9、5×5、1×1,步长均为1的池化处理,最后将经过4个池化操作的特征图进行合并后,再分别进行卷积核为1×1的BaseConv和卷积核为3×3的CBL结构去卷积处理,最终得到的输出和第二个分支经过卷积核为1×1的卷积后将通道数减半后的输出合并后再进行一次卷积核为1×1的BaseConv处理具体改进内容:借鉴CSP结构,将主干网络Dark4的输出经过第一个卷积核为3X3,步长为2的CBL卷积之后直接分为两个分支,从而加快了模型的检测速度。通过在SPP结构之前增加两次卷积操作,从而使Dark5模块第一个分支可以提取更多语义信息,分离出更显著的上下文特征,更有益于区分大小目标。从而提升了模型的检测能力和速度。

步骤三、对于单阶段目标检测模型YOLOX-Nano在苹果叶片病害检测上的应用,本发明在主干网络Dark3、Dark4、Dark5三个分支尾部添加ECA注意力模块,来保证在降低模型复杂度的情况下提升主干网络的特征提取能力,从而有效提升模型的检测性能。

ECA注意力为在SENet注意力模块的基础上,去掉了SENet中的全连接层并采用了一种轻量级的全局平均池化方式,减少了计算的复杂度。该模块使用自适应一维卷积学习相邻通道之间的依赖关系来增加通道间的信息交互,通过该方法可以帮助模型在仅仅增加少量的参数却给模型带来明显的性能提升。其具体流程如下:在输入特征经过全局平均化之后直接对每个通道以及其相邻通道进行卷积操作,以获得跨通道之间的交互信息,从而有利于模型对关键特征的提取,最终达到降低模型计算复杂度的同时提升模型训练效率以及提升模型的检测性能。ECA注意力模块原理如图4所示,其中,H、W、C分别为输入特征图的高、宽、通道数,GAP表示全局平均池化操作,σ表示激活函数,

步骤四、根据实际数据集优化改进的单阶段目标检测模型的损失函数,得到优化的单阶段目标检测模型。具体来说,YOLOX-Nano模型的总损失由预测分类损失,定位损失,置信度损失组成,其中的分类置信度损失为BCEWithLogits Loss。由于在实际例子苹果叶片病害数据集中,黑星病、灰斑病和锈病等病害的特征通常表现为密集小病斑,这就容易导致目标类别和背景类别之间产生了极为严重的不平衡问题,为解决这个问题,本发明引入Varifocal loss来更换原有的分类置信度损失。Varifocal loss为Focal loss的改进版本,由于Focal loss的策略是平等对待正负样本,不能突出两者之间的对立关系,而在实际检测中,正样本的贡献更为重要。因此,本文引入了Focal loss的改进版本Varifocal loss来处理IACS(IoU-aware classification score)回归过程中正负样本类别不平衡的问题。该算法通过区别对待正负样本,从而提升正样本损失贡献权重。Varifocal loss的公式如下:

其中,VFL表示Varifocal loss。p表示IACS的预测值,表示目标得分。q表示分类条件,如果类别是ground truth类那么q就设置为预选框和真实锚框之间的IOU的值,否则q就设置为0,对于背景类的所有目标q值均设为0。p

步骤五、模型训练:

模型参数初始化具体包括以下部分:选择SILU函数作为模型激活函数;衰减系数权重为0.0005;训练迭代次数Epoch设置为300轮;关闭Mixup增强,将马赛克Mosaic增强范围设置为(0.5,1.5),并且在最后100轮训练时关闭Mosaic增强;Batch-size设置为8。

本模型采用目标检测算法中常用的性能评价指标平均精度均值(Mean AveragePrecision,mAP)和每秒传输帧数(frames per second,FPS)来进行评估。

本发明实验环境为:系统:Ubuntu18.0464bit;处理器Intel(R)Xeon(R)Gold6240R CPU@2.4GHz;内存:16GB;显卡:NVIDIA Tesla A10040G;深度学习框架为Pytorch版本为1.8.0;编译语言为Python版本为3.8.13;cuda版本为11.1;Cudnn版本为8.0.5;

步骤六、在完成对YOLOX-Nano模型的训练之后,使用训练好的模型来对具有病害的苹果叶片进行检测,从而确定病害种类以及位置信息;

利用本发明设计的改进YOLOX-Nano模型,只需要用户给定苹果叶片图像,或者连接摄像头之后,系统便可以根据训练好的模型检测出苹果叶片上的病害信息。

以上步骤为本发明的基本原理以及主要特征及其优点。本发明不受上述实施例所限制上述实施例和说明书中描述的只是对本发明原理的进一步解释,在不脱离本发明精神和范围的前提下,本发明还可以进行改进以及产生变化,这些变化以及改进都应当落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

相关技术
  • 一种基于改进YOLOv4的苹果叶片病害检测方法
  • 基于改进Yolov5s模型的苹果叶片病害检测方法
技术分类

06120116583307