基于YOLOv8的植物病虫害检测算法设计与实现_第1页
基于YOLOv8的植物病虫害检测算法设计与实现_第2页
基于YOLOv8的植物病虫害检测算法设计与实现_第3页
基于YOLOv8的植物病虫害检测算法设计与实现_第4页
基于YOLOv8的植物病虫害检测算法设计与实现_第5页
已阅读5页,还剩39页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章前言1.1研究背景及意义植物病虫害是威胁全球粮食安全以及农业可持续发展的关键因素之一。根据联合国粮农组织(FAO)公布的数据,在全球范围内,每年因为病虫害造成的农作物产量损失高达20%至40%,对农业生产造成了难以忽视的影响。而且病虫害的传播具有隐蔽性和突发性的特点,若未能及时发现,并采取措施干预,极易造成减产和绝收。因此,提升植物病虫害的识别准确率和效率,已成为农业研究以及智慧农业发展的重要研究方向。在传统的病虫害识别方法中,农业工作者主要依靠肉眼观察植物叶片、果实、茎秆等受害部位,根据症状进行判断,但是这些方法极其依靠从业者的经验。而且面对大规模病虫害时,识别效率低的问题突出,难以大规模开展工作。近年来,随着计算机视觉以及人工智能技术的发展,基于图像的自动化目标检测技术出现,成为农业智能化研究的热点。借助无人机或智能摄像头,农作物图像可以被实时采集,再由深度学习检测模型进行快速的病虫害的检测与分类,显著提高了检测的效率和准确率。目前,许多智能检测系统已经在智慧农业领域得到了初步运用。例如,在露天作物种植场地,配备识别系统的无人机可以快速扫描大面积农田,及时发现潜在病害源;在温室环境中,部署智能传感器与智能识别系统的农业机器人,可以动态追踪农作物健康状态,帮助农户及时采取预防并控制措施。此外,病虫害识别系统还可与精准喷洒农药系统相结合,可以实现农药的靶向施用,从而大幅度地减少农药浪费和环境污染。随着研究的不断深入,病虫害识别技术正从传统的人工观察向智能化、自动化方向迈进。目前的研究重点主要有三个方面:一是提升识别准确率;二是增强模型的泛化能力;三是优化部署策略。当前仍然存在一些难点亟待解决,例如,在复杂环境中如何保持高识别率,如何降低光照对识别结果的影响,以及如何开发适用于嵌入式设备部署的轻量化模型。YOLO(YouOnlyLookOnce)是一种广泛应用于目标检测的深度学习算法,它采用端到端、一阶段的检测框架,具备较高的精度和推理速度。与传统的目标检测方法,如基于滑动窗口的R-CNN系列算法相比较,YOLO采用的端到端的检测框架,通过单次前向传播,完成对目标的分类与定位,正因如此,YOLO在实际应用中具有显著优势。YOLO算法自提出以来,版本持续更新,目前已迭代至YOLOv11版本,在检测性能和泛化能力方面进行了优化。随着智慧农业的发展,YOLO在植物病虫害识别中的应用逐渐增多,并取得了较好的效果。因此本次毕业设计选择以YOLOv8为方法,对植物病虫害进行检测,有利于提高植物病虫害检测精度,从而为提高农业生产服务。1.2国内外研究现状目前,植物病虫害识别技术主要可以分为以下三类:传统检测方法、基于传统机器学习的方法和基于深度学习的方法。1.2.1传统植物病虫害检测方法研究传统病虫害检测方法存在明显局限,主要包括人工识别和实验室仪器分析两类。人工识别需依赖经验丰富的农业专家实地观察病斑形态、颜色变化、虫害特征等进行判断。该方法受限于个体经验,难以应对新型或复杂病害,识别准确性波动较大。大规模数据下,人工方式耗时费力,效率低,容易出错,不适合快速响应和推广。实验室分析方法依靠显微镜、光谱仪等设备检测病原或生理指标,精度更高,但仪器昂贵,部署复杂,不适合田间环境中的实时应用。1.2.2基于机器学习算法的研究现状随着计算机技术的发展,研究者开始使用计算机视觉技术来分析植物病虫害图像,机器学习方法也逐渐引入,常见的机器学习方法如支持向量机(SVM)、K近邻(KNN)、随机森林(RF)等。这些方法依赖于人工设计的特征提取方式,如颜色特征、形态特征和纹理特征等。在数据量较小的情况下,通常能够表现出较好的性能,不需要大量的数据支撑,对计算资源的需求也相对较低,可以在较为简单的硬件条件下实现。虽然传统机器学习方法已在植物病虫害领域取得不错进展,但是由于手工特征的表达能力有限,在复杂环境下识别精度仍然较低,当面对大规模高维数据时,传统机器学习方法的训练和预测效率可能会受到限制,不能很好的应用到实际场景中。1.2.3基于深度学习算法的研究现状基于深度学习的检测技术的快速发展为植物病虫害识别带来了突破性的进展。根据检测阶段的数量不同,目标检测模型主要有两类,一类是以R-CNN、FastR-CNN和FasterR-CNN为代表的two-stage检测算法,该类型算法首先需要生成候选区域,再对候选区域进行识别。另一类是以SSD和YOLO系列为代表的one-stage目标检测算法,不需要生成候选帧,通过将边界问题转换为回归问题,利用从网络中提取特征来预测病变位置和类别,具有准确率高、速度快、训练时间短、计算量小等特点。在国外,Mohantyetal.(2016)基于AlexNet和GoogleNet网络架构,使用公开的植物病害图像数据集PlantVillage,成功实现了多种作物病害的分类识别,验证了深度学习方法在植物病害识别中的可行性。Argüesoetal.(2020)则进一步基于元学习的迁移学习技术,提高了小样本数据集上的检测精度。此外,一些研究者探索了多模态数据融合方法,如结合RGB图像与近红外图像,以提升模型的识别能力和鲁棒性(Emmi,L.etal.2021)。在国内,相关研究同样取得了积极进展。部分学者基于ResNet、DenseNet等深度网络,开发了适用于本地作物(如水稻、小麦、苹果等)病虫害检测的模型;也有研究者引入了注意力机制、轻量化网络设计等优化策略(徐诚极等,2019;鞠默然等,2020),以降低模型的计算复杂度,便于模型在边缘设备上的部署。如马超伟等(2024)提出了一种基于改进YOLOv8的轻量化检测方法。该方法以PP-LCNet替代YOLOv8原有骨干网络,并引入DepthwiseSeparableConvolution结构以降低参数量。杨国锋等(2022)提出了利用无人机遥感监测作物病虫害。同时,针对不同作物病害特点,自建病害图像数据集、提高数据多样性和数据标注质量,也成为国内研究的重要方向。如李小芹(2024)在基于改进YOLOv8的樱桃病菌孢子检测系统研究中拍摄病菌的显微镜像,并根据不同病菌的复杂情况分类,自建数据集进行创新性实验。在这些方法中,YOLO系列的目标检测算法,在保持高精度的同时,实现实时检测,成为农业领域目标识别的研究热点。从应用效益维度分析,基于深度学习的检测系统展现出显著优势:部署于移动终端的轻量化模型使田间实时诊断成为可能,通过自动化的识别植物病虫害系统,快速有针对性地找到解决方案并采取有效措施,做到精准施药,减少农药使用范围,降低环境污染,从源头上减少病虫害对植被地危害。综上所述,基于深度学习模型的植物病虫害检测在提高农业生产效率、保障粮食安全、减少环境污染等方面具有重要意义,是农业现代化发展的重要支撑。1.3研究内容与研究路线1.3.1主要研究内容本研究的主要目标是设计并实现一个基于YOLOv8的植物病虫害检测算法,旨在通过YOLOv8模型的目标检测能力,自动化识别和分类植物病虫害。本研究将植物病虫害分为两大类:叶片病害和害虫虫害,并分别进行研究。具体的研究内容如下:相关理论和技术基础简单介绍研究中使用的相关理论与技术,包括数据集的分析和增强技术、目标检测算法的核心CNN的原理、深度学习的目标检测算法的更新迭代历程及各个版本的优势和缺点等方面。基于YOLOv8的植物病虫害检测算法设计介绍YOLov8网络结构和原理,根据植物叶片病害和害虫虫害数据集的不同特点选择合适的数据增强方法,建立检测的算法模型。针对叶片病害的细节特征,将引入注意力机制,以增强模型对病斑细节的识别能力;而对于害虫虫害,考虑到害虫与植物背景的复杂性,模型将进行特定的参数调整,以提升对小物体的检测能力。对模型进行多次调整优化和训练,获得最佳精度。实验设计与分析验证YOLOv8模型在植物病虫害检测中的优势,通过对比实验分析YOLOv8与其他主流目标检测模型在叶片病害和害虫虫害检测中的表现,并尝试引入多个注意力机制模块增强对小目标的识别能力。对比指标包括检测精度、速度、模型大小等,以评估其在实际应用中的效果。设计植物病虫害检测系统基于上述模型设计一个简洁易操作的可视化系统,可通过界面对病害叶片或害虫图像进行导入来检测并显示各目标数量,并在系统接入了AI助手,实现智能诊疗。1.3.2研究方案本研究采用理论联系与实践相结合的研究方法,研究路线分为以下几个主要阶段: 第一,通过对植物病虫害检测领域的研究进行详细阅读,分析当前传统检测方法与基于深度学习的目标检测技术的优缺点,为后续的研究提供理论基础和参考。第二,选择合适的公开数据集,并针对其中数量少的类别进行数据爬取来适当扩充数据集,以针对性解决样本数量差异大的问题。同时应用数据增强技术提高数据集的多样性和训练效果。第三,在YOLOv8的基础上,本研究将设计针对叶片病害和害虫虫害的检测算法。先实现基础版YOLOv8,评估精度,分析问题。再利用YOLOv8的优化模块,如引入注意力机制、调整训练参数等,提升模型的识别能力。并通过与其他目标检测模型的对比实验,评估在不同模型的性能表现。分析常见的评估指标,如精度、召回率、F1分数等,全面分析YOLOv8在不同检测任务中的优势和不足。最后,在训练好的模型的基础上,实现一个基于YOLOv8的智能植物病虫害检测系统,助力智慧农业。技术路线见图1-1所示。图1-1研究路线图第2章相关理论和技术基础简介2.1数据增强技术在科研领域,获取的图像通常需采用通用图像处理算法进行预处理。数据增强是一项计算机视觉与目标检测中的关键技术,它在医学影像分析、安防监控、无人机图像分析以及智能导航等多个领域都发挥着重要作用。图像增强是数据增强中的一种具体技术,主要是通过算法和技术手段来提升图像的视觉质量和突出特定特征。它可以通过突出图像中的细节,或者调整图像的亮度、对比度、色彩平衡等参数,来提高图像的可读性和信息提取效率,让图像更适合人眼观察,或者满足后续图像分析与处理的需求。在实际应用中,不少研究者都采用了这种方法,例如刘丽(2024)对苹果病害数据进行7倍增强,这样做能够减少模型对特定特征的依赖,从而有效防止模型出现过拟合的情况,杨堃(2024)为了便于检测实验样本中的小目标,采用Mosaic9数据增强方法。常见数据增强技术包含:几何变换:镜像翻转、多角度旋转、区域裁剪、像素位移复合生成:随机拼接(Mosaic)、图像混合(Mixup)色彩空间调整:色相偏移、饱和度调节、明度修正、通道分离重组。通过系统性的数据增强,模型可学习多维视角与形变特征,显著提升泛化能力与鲁棒性。该技术还能有效扩充数据样本量,降低原始数据采集成本。2.2目标检测概述目标检测是目前的核心技术,它属于计算机视觉领域,主要解决物体定位问题,还要识别图像中的物体,和普通图像分类不同,目标检测需要判断物体种类,还要用矩形框标出位置,比如一张农田照片,图像分类只能告诉结果,会说“图里有病虫害”,目标检测更精确,它能找到病虫害叶片,标注“这片叶子感染锈病”,还能指出“那片区域有蚜虫”。早期目标检测依赖人工设计特征,比如使用颜色特征,或纹理特征,或形状模板,再配合滑动窗口,遍历整张图像,这类方法速度慢,容易受环境干扰,换个角度可能失效,光照变化也会影响,2012年后深度学习成为主流,目标检测进入两阶段时代(邵延华等,2022),典型算法是R-CNN系列,它将目标检测分为多个阶段,首先生成候选框,候选框可能包含目标,然后回归精确坐标,再进行目标分类。由于two-stage算法中各个阶段所使用的模块需要分别训练,尤其是在候选框生成阶段,需要进行大量的区域搜索与筛选,这种方法虽然精度高,但是步骤繁琐,计算代价较高,导致整体检测速度较慢,难以实时处理。随着技术发展,单阶段检测算法兴起。YOLO系列是典型代表,它将目标检测转化为回归问题,它采用端到端的设计思路,将候选框预测与目标分类融合为一个统一的过程,直接在图像网格中预测物体位置和类别,省去候选区域提取步骤,检测速度和实时性能大幅提升,但是可能会损失精度。YOLOv1到YOLOv8,算法不断优化,改进了网络结构,调整了损失函数,完善了多尺度预测机制,平衡了速度和精度,YOLOv8有改进,引入了自适应锚框计算,使用了高效特征融合模块,更适应复杂农业场景,能应对病虫害目标多样性。目标检测有很多核心技术,包括锚框设计,还有非极大值抑制(NMS),以及损失函数优化。锚框是预设参考框,它帮助模型定位目标,非极大值抑制过滤冗余框,确保每个物体只留一个预测框,损失函数指导模型训练,调整参数,让预测框接近真实值,植物病虫害图像有目标小、分布密集等特点,算法需融合多尺度特征,增强对小目标的敏感度。YOLOv8损失函数的详解见章节3.3。农业场景中,目标检测技术很有用,它能精准识别病虫害,例如,模型可以分析叶片图像,它能标记多个病斑区域,还能区分不同病害类型,这种强大的检测能力,对于农业生产有重要价值,它一方面能实现早期预警,另一方面还能帮助精准施药,而且田间环境很复杂,算法要克服光照变化,还要处理枝叶遮挡问题,这样才能保证检测结果的稳定可靠。2.3卷积神经网络图2-1RNN架构示意图(引用自CSDN)卷积神经网络(CNN)作为一种强大的深度学习模型,以其出色的图像处理能力而闻名,其灵感来源于生物学家提出的视觉皮层感受野机制。本研究中使用的YOLO是一种卷积神经网络。相较于传统神经网络,卷积神经网络能够更好的提取特征,同时还能减少模型参数。卷积神经网络通常由输入层、卷积层、激活函数、池化层、全连接层和输出层构成,如图2-1所示。2.3.1卷积层卷积神经网络(CNN)的核心结构是卷积层,该层负责通过卷积运算精确地提取输入数据的显著特征。卷积操作就是使用一个滑动窗口以一定步长在图像上滑动,并对窗口内的特征进行加权求和操作,从而得到一个新的输出,如图2-2所示。这一步骤的目的是为了生成特征图,从而提取局部特征,揭示输入数据的内在模式或结构。图2-2卷积操作过程图神经网络中使用了卷积层的优点主要有两个方面。一是减少网络参数,卷积核在对一个输入的不同区域进行卷积运算的时候,卷积核内参数是固定的。因此可以看作是共享了权重和偏置,从而减少了网络的参数量。二是更强的抽象能力。相较于人工设计的卷积滤波器,基于深度学习的卷积滤波器可以在训练中自己学习权重,能够提取到更抽象的特征。YOLO中常用的卷积核有1×1和3×3两种,1×1卷积核主要用于通道变换,减少模型参数和计算量,如C2f、C3、CSP模块,3×3卷积核是最常用的基础卷积,用于提取空间特征,有较好的感受野和卷积效果,如Conv、SPPF、GSConv等模块。2.3.2激活函数因为卷积层、池化层和全连接层都进行线性运算,这样无论网络设计得有多深,都与单层线性组合没有区别,因此需要加入激活函数,使网络具备学习复杂映射关系的能力。目前常见的激活函数有Sigmoid、ReLU、Mish等。SiLU是YOLOv5与YOLOv8中的主要激活函数,其表达式如式2-1所示:(2-1)SiLU的有点在于它相比ReLU更平滑,能保留负值,梯度更连续,有助于模型收敛。YOLOv5和YOLOv8中的大多数卷积层(Conv、C2f等)默认使用SiLU。2.3.3池化层池化层又名下采样层,通常被插入在连续的卷积层之间,起着关键的作用。其主要功能是降维来减少整体的计算复杂度,同时这一过程也有助于防止模型在训练过程中出现过拟合现象。因为卷积输出的特征图中相邻像素是几乎一样的,只有在目标的边缘部分像素变化明显,如果可以去除这些冗余部分,就可以明显的减少网络参数量。池化层的作用就是降低输出特征图的维度从而达到减少网络参数,同时还能够保留特征图中最重要的信息。常见的池化操作包括最大池化和平均池化,它们分别选取局部区域的最大值或平均值作为该区域的代表,进而生成新的、尺寸更小的特征图。以最大池化为例,池化层会使用一个滑动窗口以一定步长在特征图上滑动,并对每个窗口中的像素求最大值作为输出。与卷积不同的是,池化层不包含任何参数,因此不会影响模型大小。2.3.4全连接层在卷积神经网络的终端,全连接层担任着至关重要的角色,它负责将之前所有层提取的特征信息整合并转化为一维的特征向量。这一步骤之后,通常通过分类器对特征向量进行处理,以实现分类任务或进行其他预测工作。这种结构确保了CNN能够有效地将输入数据映射到其对应的输出类别或预测值上。如图2-3,在图像分类任务中,全连接层的最后一层节点数量通常等于分类的类别数。图2-3全连接层示意图(引用自CSDN)2.4YOLO网络概述YOLO主打速度快、部署简单。它的核心原理是把整张图输入网络提取特征后划分成网格,每个网格负责预测自己区域内有没有目标。如果有,直接算出目标的坐标框和类别。这种“看一遍就全搞定”的方式,省掉传统方法里反复找候选区域的步骤,检测速度比两阶段算法快几倍甚至几十倍。YOLO天生适合需要实时处理的场景,包括目标检测、姿态估计、目标追踪等任务。比如监控视频里追踪行人、自动驾驶中识别车辆,或者农业无人机边飞边扫描病虫害,它能在毫秒级时间内处理一帧图像,连拍设备也能流畅运行。对硬件要求低,手机、树莓派这类小型设备都能部署,在田间地头用起来方便。算法原理上,YOLO把目标检测拆解成两个任务:找位置和认类别。输入一张图,先通过卷积神经网络提取特征,然后在特征图上画网格。每个网格预测几个边界框(比如YOLOv3每个格点预测3个anchor框),框的位置用中心点坐标、宽度高度表示,同时给出框内物体的类别概率。最后用非极大值抑制(NMS)去掉重复的框,剩下最准的结果。YOLO在植物病虫害场景中优势明显,病斑和害虫体积通常很小,一片叶子上可能有几十个目标,YOLO有多尺度预测机制,兼顾大小目标,浅层网络抓取小病斑细节,深层网络识别整片叶子病变区域,模型能自适应不同的光照条件,阴天叶片图像能稳定检测,强光下图像也能稳定检测,实际应用中农户用手机拍照,算法立刻框出疑似病斑,标出病害类型,直接指导打药或剪枝。YOLO有局限性,它需要平衡精度和速度,新版模型通常更大,检测速度会略微下降,但YOLOv8做了改进,它采用轻量化设计,还优化了参数,精度依然保持,甚至在低算力设备上,也能达到每秒上百帧,这对田间监测很重要,能实时发现病虫害。2.5评价指标在目标检测算法中,通常使用以下指标:(1)交并集(IoU)。预测边界框和实际边界框之间的交集面积和并集面积之比,是衡量预测框和标签框重合程度的指标,其值越接近1代表预测结果越好,损失函数IOU_Loss的值就是1与IoU的差。(2)混淆矩阵。对于N个类别,混淆矩阵是一个N×N的矩阵,对角线上的数字代表被正确分类的样本数量,非对角线上的数字代表被误分类的数量,即混淆的情况。如表2-1所示。表2-1神经网络混淆矩阵预测类别1预测类别2预测类别N真实类别1TPFPFP真实类别2FNTPFP真实类别NFNFNTP目标检测任务中,每一个预测的目标框在被归类后,都可以落入混淆矩阵中一个位置。例如,如果模型将“苹果叶病”识别为“葡萄白粉病”,则在(真实=苹果叶病,预测=葡萄白粉病)的位置上加1,如果正确识别,就在对应对角线位置加1。精确率(Precision)。用于衡量被模型识别为正样本的预测中有多少是正确的,公式见式(2-2),TP为正确检测到的目标数,FP为错误检测出的非目标数量,高精确率表示误报较少。(2-2)召回率(Recall)。召回率用于衡量所有真实目标中被正确检测出来的比例。FN表示漏检的目标数,公式见式(2-3),高召回率说明模型漏检较少。(2-3)平均精确度(AP)。AP是Precision和Recall的综合度量,常通过Precision-Recall曲线下的面积计算得到,反映了模型对某一类别的检测性能。不同的IOU(交并比)阈值下可计算不同的AP,例如AP@0.5、AP@0.75。均值精确度(MAP)。MAP是对所有类别AP的平均值,是评价多类别目标检测模型整体性能的核心指标,例如MAP@0.5、MAP@0.75。F1分数是精确率和召回率的调和平均值,它综合了两者之间的折衷关系,用于衡量模型的整体性能。F1分数越高,表示模型的精确率和召回率都比较高,即模型的分类性能比较好。F1分数的计算式如式(2-4)。(2-4)推理时间与检测速度。通过衡量模型每张图像的推理时间(InferenceTime)和帧率(FPS)来评价模型的速度性能。检测速度快是YOLO系列模型的重要优势。模型大小和参数量。在模型实际部署场景中,模型的体积和参数量,会影响模型在边缘设备或嵌入式设备上的运行效率第3章基于YOLOv8的植物病虫害检测算法设计3.1YOLOv8网络结构YOLOv8作为YOLO系列的第八代模型,由Ultralytics于2023年发布。YOLOv8在继承YOLO系列端到端检测优势的基础上,进一步优化了模型结构与推理流程,采用了新的特征提取模块和更高效的解码方式,提升了检测精度与速度。图3-1为YOLOv8模型网络结构体,模型总体上由三个部分构成,分别是Backbone(骨干网络)、Neck(颈部结构)和Head(输出检测头)。图中左上角的红绿蓝三色方块,代表输入图像,输入图像经过Backbone提取特征,再经过Neck进行多尺度特征融合,最后Head完成目标的分类与定位。图3-1YOLOv8网络结构示意图(引用自参考文献,马超伟等,2024.)3.1.1Backbone在YOLOv8中图像的默认输入大小为固定的640×640×3即640×640的RGB彩色图像。左侧第一列为YOLOv8的Backbone部分,主要由CBS模块、C2f模块以及下采样操作构成,它的主要作用是逐层提取图像空间和语义特征。。CBS模块包括Conv、BatchNorm和SiLU激活函数,是YOLOv8中的基础计算单元,也是YOLOv8与YOLOv5的主要不同之处之一,它采用了更加轻量化的卷积模块,和新的激活函数。SiLU激活函数具有较好的平滑性和非线性表达能力,能更好地拟合复杂模式,与YOLOv5所用的LeakyReLU或ReLU相比,SiLU在训练深度网络中的表现也更加稳定。C2f模块是YOLOv8中的新模块,替代了YOLOv5中的C3模块,增加信息流通路,提高了梯度流动性和特征表达能力。下采样操作通常通过设置步长(stride=2)的卷积实现,用于将输入特征图的空间尺寸逐步减半,来提取更高级的语义信息,并降低计算负担。SPPF位于骨干网络的末尾,它改编自YOLOv5的SPP结构,主要由多个池化操作组成,能够在不增加计算量的前提下,扩展感受野、融合多尺度信息。3.1.2Neck如图3-1,模型中间的两列是YOLOv8的Neck部分,主要作用是对不同尺度的特征图进行融合,以便更好地检测不同尺寸的目标。YOLOv8中沿用了PAN结构,PAN的核心思想是通过自底向上和自顶向下的双向路径,将浅层特征的细节信息,与深层特征语义信息高效融合,提升模型对不同尺度目标的检测能力。它将特征从Backbone提取后进行路径聚合,通过Concat(特征拼接)、Upsample(上采样)、C2f等模块实现多尺度特征的融合,增强网络对小目标和大目标的检测能力。Concat的作用是将来自不同尺度的特征图,在通道维度进行拼接,从而融合高低层的信息;Upsample通过最近邻插值等方法将小尺度的深层语义特征图,还原到较大的空间尺寸,使其能够与浅层特征结合。C2f则是进一步提高多尺度检测性能。3.1.3HeadHead部分为YOLO输出层,共有三个尺度的输出检测头(Detect),每个检测头输出包含物体的类别概率、边界框的中心坐标和宽高的回归偏移量,实现了对图像中所有目标的同时检测与分类。Anchor-free在YOLOv8中,在检测头摒弃了传统的Anchor-based方法。Anchor-based方法是对训练集中所有真实标注框的宽高进行聚类,提取数据集中最常见的目标尺寸作为锚框模板,这使得其在特定数据集上表现较好,但面对极端尺度的数据,就网络就不易学习到,而且需要大量预设的锚框,匹配预测时计算量大。图3-2Anchor-based与Anchor-free算法原理对比图(引用自CSDN)因此转而使用Anchor-free方法,如图3-2所示,Anchor-free放弃了锚框的使用,而是在训练时直接学习框的形状,根据学习到的目标中心点到边框距离,进行边界框直接回归,本质上是将目标检测转换成了密集回归问题和二分类问题,使得网络对于目标形状有更好的表达能力,检测更加灵活。Anchor-based模型中,每个位置预设多个尺寸和长宽比的锚框,它需要一种确定性规则来决定哪些锚框与标签相匹配,因此就提出了静态标签分配策略,静态标签分配策略也慢慢改进为动态标签分配策略。动态标签分配策略静态的标签分配策略,通过固定规则,如IoU阈值,确定分配真实标签和预测框之间的匹配关系,当预测框与真实框的IoU大于某个阈值时,才认为它们是匹配的,并且会为该预测框分配一个标签。静态标签分配策略几乎都是与Anchor-based方法绑定使用的。然而,这种静态的标签分配方式在某些情况下会导致模型学习不充分,无法有效区分不同的目标。为了解决这些问题,动态标签分配策略应运而生,它根据不同的训练情况,以及数据特征灵活调整标签分配方式,通过计算每个候选预测框与真实框之间的匹配成本,如IoU、类别损失、定位损失等数据,构建成本矩阵,并采用如SimOTA等优化算法,从中选取匹配质量最高的若干候选框作为正样本。这种方法能充分利用好优质样本,减少误差提升精度,适用于anchor-free结构。3.2模型版本的差异与选择依据YOLOv8模型有五个版本,根据模型大小和计算的复杂程度划分,分别是YOLOv8n、YOLOv8s、YOLOv8m、YOLOv8l还有YOLOv8x,其中,“n”表示nano(极小)、“s”表示small(小型)、“m”表示medium(中型)、“l”表示large(大型)、“x”表示x-large(超大型)。版本间有主要区别,区别在于模型深度,还有宽度不同,参数数量也不同,计算量也不同。简单来说,模型越大,参数越多,学习能力越强,检测精度可能更高,但更占用显存,推理速度更慢,相反,模型越小,运行更快,占用资源更少,但检测精度会稍低一些。表3-1展示了各个模型版本的主要参数差异:表3-1YOLOv8各版本差异对比表模型版本参数量(M)FLOPs推理速度检测精度YOLOv8n较少较低非常快较低YOLOv8s适中适中较快中等YOLOv8m中等偏高中等偏高一般较高YOLOv8l较多偏高较慢高YOLOv8x非常多很高慢非常高在本文研究中,考虑到植物病虫害检测需求,需要兼顾检测速度和精度,同时要考虑到后续的算法部署,最终选择了YOLOv8s训练,该版本推理速度快,也有较好的检测效果,适合部署在生产现场,适用于嵌入式设备,适合边缘计算终端,资源有限环境也适用。总之,模型的选择需要在速度、精度和资源消耗之间做出平衡,YOLOv8s作为一种轻量化模型,能较好地满足植物病虫害检测任务的实际需求。3.3损失函数设计在YOLOv8中,损失函数主要由三部分组成,分别是分类损失(cls_loss)、定位损失(box_loss)和分布式回归损失(dfl_loss)。分类损失是用来判断模型有没有把物体的类别分对。框的位置损失是用来看预测的框和真实框位置差得多不多。dfl损失则是让框的回归更加精细,预测得更准确。与之前版本不同,YOLOv8取消了单独的“置信度损失”,也就是不再专门判断“有没有物体”,而是把这个信息合并到分类里面了,这样整体模型结构更简单,速度和效果也有所提升。定位损失是用于计算预测框和真实框之间的偏差,如IoU_Loss、GIoU_Loss或DIoU_Loss等损失函数,这类损失函数不仅考虑预测框和真实框之间的重叠程度,还尝试从几何结构出发进一步优化模型的回归效果。在YOLOv8中使用的是CIoU,它不只是计算两个框重叠多少,还考虑了中心点距离和长宽比例差异,能让预测框更快更准地贴合目标。是比GIoU、DIoU更先进的版本。CIoU损失函数的定义见公式(3-1)。IoU为预测框何真实框的交并比,为预测框中心点

b

与真实框中心点之间的欧氏距离的平方。C为预测框和真实框的最小外包矩形的对角线长度。为权重系数,用于平衡宽高比的影响,见公式(3-2)。为衡量宽高比一致性的参数。W和h是预测框的宽度和高度,和是真实框的宽度和高度,见公式(3-3)。 (3-1)(3-2)(3-3)分类损失用于计算每个预测框的类别与真实类别之间的差异,通常使用交叉熵损失。在YOLOv8中使用的是对数二元交叉熵损失(BCE),见公式(3-4),其中y取值0或1,1代表属于该类别,0表示不属于,p为模型预测的概率。但是在YOLOv8中,与传统的BCE损失函数不同的是,它引入了标签平滑策略,将y值的范围扩展为[0,1],提高了模型的泛化能力。它的原理是惩罚分类错误的结果,正确的越准分数越高,错的越离谱惩罚越重,BCE本质上是计算这个类别概率的预测和真实情况有多接近。BCE比普通的交叉熵更适合植物病害这类“多个类别独立判断”的情况,它能对每个类别都单独评估,更灵活,结果更精细。(3-4)分布式回归损失,这是YOLOv8特有的,引入的是一种叫做“分布式回归”的机制,专门用来更精细地预测边界框的位置。YOLOv8中使用DistributionFocalLoss,它比传统的框回归方式更精细,不是直接预测一个具体数值,而是预测一个值的概率分布,从中取出最可能的位置,能提高对小目标的检测能力。3.4基于YOLOv8的植物病虫害检测算法过程图3-3算法流程图算法流程图如图3-3所示,首先收集数据,本文研究考虑到植物病害和虫害的不同特点,故对数据集分开收集,分别进行训练。在构建模型方面,搭建好训练环境,确定训练使用的框架版本。然后设置训练参数分,同时设置预处理图像的基本参数,并对载入的数据集图片进行马赛克数据增强处理,以完成迭代训练前的基本准备。并设置迭代训练的次数和早停机制。采用循环结构进行迭代训练,每一次训练包含向前计算、反向传输、更新权重信息等一系列操作;同时,每完成一个epoch的训练,在验证集上测试本次的训练效果,并且保存所有类别的精度均值map、最优权重信息等。若满足早停条件(连续n个Epoch验证指标未提升),则停止训练,进行模型测试;若不满足,则继续训练。模型测试是在测试集上对训练好的模型进行性能评估,并可视化测试结果。完成整个迭代训练后,以输出的最优模型权重文件作为最终权重。模型导出将PyTorch格式的最优权重转换为其他格式(如ONNX、TensorRT),以适应不同部署环境。第4章算法实现与分析4.1实验环境本文选用AutoDL云服务器平台对模型进行训练,所租用云服务器的相关配置名称及配置量如表4-1所示:表4-1实验环境配置表配置名称配置量CPU14vCPUIntel(R)Xeon(R)Platinum8362@2.80GHzGPUNVIDIARTX3090(24GB)×1CUDA版本CUDA11.8内存45GB操作系统Ubuntu20.04LTS(64位)编程语言Python3.8镜像PyTorch2.0.04.2数据集4.2.1数据集介绍植物病虫害检测数据集,是本文研究的工作基础,通常包括植物叶片、茎秆、害虫的图像。与PASCALVOC和COCO这种大型的计算机视觉任务的数据集不同,目前植物病虫害领域还没有如此庞大成体系的数据集,目前数据集主要来源于科研所和自行采集。目前植物病虫害检测的论文中常用的数据集有Plant-Village、AIChallenge2018、PlantDoc、IP102等,这些数据集提供高质量的图像,但是部分并没有包含详细的标注信息。本研究综合考虑了数据的标注质量以及类别范围,以及训练效果,决定分为病害和虫害数据集进行实验。对于病害数据集,选择PlantDoc数据集作为主要训练数据来源,因为PlantDoc则更贴近真实环境,图像包含自然背景和复杂光照,能更好地模拟实际农田场景,而且有全面的标注信息。并且对于PlantDoc数据集中数据量过少的类别,则从PlantVillage数据集中筛选出与PlantDoc中相同类别图像数据,进行标注,来对个别类别进行数量扩充与融合。最终整合后的数据集,包含了24个类别,涵盖了叶斑病、白粉病、锈病等多种常见植物问题,共9352张图片。部分样本如图4-1所示。对于虫害数据集,则选择IP102数据集,共18975张图片,部分样本如图4-2所示。图4-1病害数据集部分样本图4-2虫害数据集部分样本4.2.2数据集格式本研究采用YOLO系列通用的数据标注格式,即YOLO格式。其标注文件为.txt文本文件,与图像文件同名,内容格式:<class_id><x_center><y_center><width><height>。坐标信息均为归一化后的相对坐标,其中class_id为整数类别索引,x_center、y_center为目标框中心坐标,width、height为目标框宽高。4.2.3数据增强观察合并后的数据集各类别数量,依然存在不平衡的问题,因此提出了一种基于定向数据增强的小样本优化方法。该方法通过Albumentations框架,通过水平翻转、垂直翻转、随机旋转、亮度对比度调整、裁剪、仿射变换等方式,对原图像进行多种组合的增强,变换后的效果如图4-3所示。这些几何变换会导致目标在图像中的位置发生改变,目标框的位置也会随之改变,为了保证模型训练时仍能正确学习目标的位置,标签内容也需要按照相同的变换规则进行调整。增强前后的类别数量对比图如图4-4所示。将增强后的数据集按照7:2:1的比例,分为训练集、验证集和测试集。图4-3原图5倍变换效果图图4-4几何增强前后的类别数量对比图Mosaic是一种图像增强技术,最早在YOLOv4算法里亮相。它的原理就像拼拼图,把好几张图片拼合成一张全新的训练图像。这样一来,计算机模型在训练时,就能接触到更复杂的画面,不管是很小的物体、重叠的目标,还是靠近图片边缘的内容,都能看得一清二楚。新图像里丰富的细节,能让计算机更好地“学习”图像特征。如图4-5所示,Mosaic4是从训练图片库里随机挑出四张,拼成一个2x2的网格图,相当于创造了一个全新的训练素材。这个方法确实能让训练数据更丰富多样,但因为只用了四张图,生成的场景相对简单。而Mosaic9它一口气拼接九张图片,组成3x3的大图像。这样操作后,数据的复杂度和多样性大大提升,计算机在训练时,能更好地分辨复杂场景里的目标和背景,训练出来的模型适应性更强,遇到不同情况都能稳定发挥。但是因为它图像拼接量大,所以训练速度相比会更慢。在YOLOv8版本中,Mosaic作为默认启用的数据增强方式,在训练框架中保留了Mosaic4和Mosaic9,默认开启Mosaic4,并采用动态开启与关闭策略,即在训练前期,增强强度较大,Mosaic能有效提升模型对复杂目标的识别能力,而在训练后期,为避免过拟合噪声样本,Mosaic将被自动关闭,以保证模型能够更贴近真实分布。图4-5Mosaic4与Mosaic9效果图(左图为Mosaic4增强,右图为Mosaic9增强)4.2.4数据集分析图4-6展示了病害训练集中目标框标签在位置与尺寸维度上的统计关系。从x和y的联合分布图可以看出,目标大多集中在图像的中心区域。看width和height的分布可以发现,目标框大多比较窄小,特别是宽度偏小的特别多,而高度相对略微分散一些,整体来看,目标尺寸偏小,而且目标形状更加多样。对角线上的直方图显示的是各变量单独的分布情况,可以看出宽度高度大多较小,框中心点大多在画面中部。总体来看,数据集中有大量的小目标,发布集中但是形状差异较大。图4-7展示了植物病害数据集中,所有目标框在位置和尺寸上的统计分布情况。图中每一列、每一行对应一个变量,包括中心点的位置、以及框的宽度和高度。从图中可以看出,大多数目标的中心点(x,y)都集中在图像的中间区域。在框的尺寸方面,width和height的分布表现出明显的正相关关系,也就是说目标越宽的同时也越高,大多数目标形状接近正方形。宽度和高度的数值都集中在一个较小的范围内,说明目标尺寸适中,很小或很大的目标都比较少见。图中的对角线部分是每个变量的直方图,分别展示了中心位置和尺寸在整个数据集中的边际分布情况,可以看出不管是位置还是大小,分布都比较集中,没有特别偏离。图4-6病害标签参数联合分布可视化图图4-7虫害标签参数联合分布可视化图4.3模型训练和参数设置训练的参数包括以下几个部分:Epoch指一个完整的训练循环涉及在整个数据集完整的执行一次。选择合适的epoch数量是平衡模型性能和计算成本的关键,本设计将其设置为200。batch_size指每一epoch中同时处理的样本数量,增大batch_size能提升训练效率,GPU处理大量数据更有效,内存利用率提高,梯度计算更快,参数更新加速,大batch_size还能降低方差,这是梯度计算的方差,本文选择batch_size为16。imgsz指输入到神经网络中的图像尺寸。输入图像的大小会对模型的训练速度和检测精度造成影响。要是把imgsz设得小一些,能加快模型的训练速度,这是因为处理小图像所需的计算量更少,而且还能减少内存消耗,让网络可以处理更多的图像数据。不过,较小的imgsz也会使检测精度降低,原因在于处理小图像时,网络可能会丢失一些重要特征,要是把imgsz设得大一些,虽然能够提高检测精度,毕竟处理大图像可以保留更多的细节和特征,但这会导致训练速度变慢,内存消耗也会增加。所以,在综合考量训练速度、检测精度以及内存消耗等多方面因素后,本次实验把imgsz设为640。workers:通常是指在数据加载过程中,用于并行加载数据的线程数量。在深度学习中,数据集通常非常庞大,加载数据需要大量的时间和计算资源。为了提高数据加载的速度和效率,我们可以采用多线程并行加载数据的方式,通常情况下,增加workers的数量能够加快数据加载的速度,但是也需要注意,如果设置的线程数过多,会消耗过多的计算机资源,进而影响整个系统的性能。因此,在综合考虑计算机资源、数据集大小还有计算性能等因素的情况之后,本次实验将workers为8。lr是学习率,在优化算法中,用于控制模型参数的更新幅度。如果学习率的设得太高,参数更新时就容易出现过度变动,如果学习率设得太小,虽说能让模型慢慢逼近最优点,但训练过程会变得很缓慢,甚至可能被困在局部最小值里。在YOLOv8中,有两个和学习率相关的重要参数,分别是最初学习率lr0和最终学习率比例lrf,借助这两个参数,模型的学习率会在训练过程中逐渐降低,便于实现更精细的调整和优化。例如当把lr0设为0.01,lrf设为0.01时,初始学习率就是0.01,经过一段时间的训练后,学习率会慢慢降低到原来的1%,也就是0.0001。这种学习率衰减机制能让模型在不同的训练阶段采用合适的学习速度,有助于提升训练效果和模型性能。patience是用于早停机制的参数,主要用于控制在验证集效果长时间没有提升的情况下,是否提前终止训练,避免浪费时间。在本次实验中,设置的等待次数为30,也就是说,如果连续30轮训练后,模型指标都没有变得更好,就停止训练。这种方法既节省了计算资源,又能有效避免模型过拟合。具体参数设置见表4-2。表4-2模型参数参数名参数设置迭代次数(epochs)200输入图片大小(imgsz)640批次大小(batch_size)16初始学习率(lr0)0.01Workers8patience304.4植物病害实验结果及分析4.4.1对比试验为了验证YOLOv8模型的有效性,本实验选择YOLOv3s、YOLOv5s、Yolov8s和YOLOv8s+Mosaic9模型在相同配置的实验环境下,利用相同数据集进行对比试验。需要需要说明的是,Mosaic4数据增强在YOLOv5s和YOLOv8s版本中默认开启,YOLOv8s+Mosaic9则是将Mosaic4算法修改为Mosaic9进行实验。并选择上文2.4节中提到的评价指标进行实验结果的分析。如表4-3所示,从表中可以看出,YOLOv8s+Mosaic9在精度和召回率之间取得了较好的平衡,其F1分数最高,为0.666,这表明了它在正确识别和漏检率方面表现最优。相比之下,YOLOv3s尽管召回率为0.68,但精度较低,导致其F1分数仅为0.595,说明该模型存在较高的误检率。YOLOv5s和YOLOv8s相比YOLOv3s在精度方面均有明显提升,分别为0.62和0.67。而YOLOv8s+Mosaic9在mAP50和mAP50-95指标上也取得了最佳表现,进一步说明其整体检测能力更强。可见,引入Mosaic9数据增强策略对模型性能提升具有明显作用。而且在参数量方面,YOLOv8s参数量小于YOLOv5s和YOLOv3s,YOLOv8系列的整体性能更优,说明其网络结构设计更为高效。相比基础模型YOLOv8s,引入Mosaic9数据增强后的模型在召回率上提高了10%,mAP50提高了3%,F1分数也从0.644提升至0.666,验证了Mosaic9策略对小目标或复杂背景下目标检测的有效性。YOLOv8s+Mosaic9相比与YOLOv5模型在召回率上提升了8%,在mAP50上提升了6%,在mAP50-95上提升了8%,说明模型有较高的定位精度和泛化能力。表4-3不同模型检测能力对比(病害数据集)ModelprecisionrecallmAP50mAP50-95F1ScoreYOLOv3s0.530.680.640.470.595YOLOv5s0.620.640.650.460.629YOLOv8s0.670.620.680.480.644YOLOv8s+Mosaic90.620.720.710.540.6664.4.2定量指标分析(1)PR曲线图4-8YOLOv8s+Mosaic9模型PR曲线PR_curve(Precision-Recallcurve,精确率和召回率的关系图)又称为P-R曲线,它反映了在不同阈值下,模型的精确率和召回率之间的关系。阈值的变化会影响到模型检测到的目标数量和模型对这些目标的正确率,PR_curve能够帮助我们在平衡精确率和召回率之间进行取舍,从而找到最佳的模型性能表现。如图4-8所示,图中横轴召回率,表示模型检测出所有真实目标中,正确识别出来的比例,纵轴精确率,表示模型识别出的目标中有多少是正确的。图中的蓝色粗线表示模型对所有类别的平均表现,曲线下的面积越大,说明模型在不同阈值下的整体表现越稳定优秀。灰色线条表示每条线代表一个具体类别的P-R曲线,线条越“方”、面积越大,说明该类别检测性能越好。最终在mAP@0.5指标上达到了0.716,表明模型对目标的定位与分类精确率较高,具有较好的泛化能力。(2)损失函数分析图4-9训练集和验证集的损失变化曲线图图4-9展示了训练集和验证集的损失变化曲线,box_loss用于衡量预测框位置与真实框的偏差,训练集和验证集的box_loss都在持续下降,最终趋于平稳,说明模型在定位目标方面逐步优化,定位精度不断提升,而且训练集与验证集偏差不大,无过拟合现象。cls_loss用于衡量类别预测是否准确,训练集和验证集的下降曲线平滑,其值从大于2下降到0.75以下,说明模型对目标种类的区分能力在增强,分类性能显著改善。dfl_loss用于提升边界框回归的精度,是YOLOv8的关键改进,从1.6降至约0.9~1.1,平稳下降,说明DFL有效帮助模型更加准确地预测边界框细节。4.4.3数据检测表现YOLOv8+Mosaic9模型在数据上的检测表现见图4-10。图4-10中,图片来源于测试集,每排图片左图标注的是真实框和真实类别,右图则展示了模型在相同图像上的预测结果,包括预测的目标位置与分类标签。由图中可见模型可以准确检测到尺度不同、形状各异的各类病虫害区域。通过对比两图,可以直观评估模型在目标检测任务中的准确性与鲁棒性,为后续的性能分析和模型优化提供参考。图4-10数据验证效果图(病害)4.5虫害实验结果及分析4.5.1对比试验本实验选择YOLOv3s、YOLOv5s、Yolov8s和YOLOv8s+Mosaic9模型在相同配置的实验环境下,利用虫害数据集进行对比试验,验证YOLOv8模型的有效性。下面对表4-3进行分析:在精度方面,YOLOv3s精度最低,说明存在一定的误报。YOLOv5s有所提升,YOLOv8s和YOLOv8s+Mosaic9达到0.62,说明随着模型的演进,对目标的识别准确性持续改善,这都说明了YOLOv8系列在减少误检方面表现更优。在召回率方面,YOLOv8s的召回率最高,说明能检测出更多的目标,Mosaic9虽然保持高精度,但召回率反而略有下降。在mAP上,YOLOv8s的mAP50值最高,说明对目标检测的整体能力最强,这说明Mosaic9数据增强可能对某些类别有帮助,但并不一定适用于所有场景。YOLOv8s结合Mosaic9数据增强后,尽管在精度上保持优势,但召回率有所下降,说明该增强策略在本数据集上存在一定的过拟合风险。而且其F1略低于YOLOv8s,说明Mosaic9在本任务中的增强效果有限,甚至可能略有削弱召回率。因此,YOLOv8s模型在植物虫害任务中表现最优。表4-3不同模型检测能力对比(虫害数据集)ModelprecisionrecallmAP50mAP50-95F1ScoreYOLOv3s0.550.630.6470.410.59YOLOv5s0.590.620.650.400.60YOLOv8s0.620.660.680.440.64YOLOv8s+Mosaic90.620.610.650.410.62与YOLOv5s相比,YOLOv8s在虫害数据集上的检测性能有明显提升,其精准率从0.59提升至0.62,召回率从0.62提升至0.66,F1分数由0.605提升至0.640,mAP@0.5从0.65增加至0.68,说明YOLOv8s在模型结构和特征提取方面对小图像大目标的适应性更强。然而,在YOLOv8s基础上引入Mosaic9数据增强策略后,虽然精准率保持不变,但召回率下降至0.61,F1分数下降至0.615,mAP@0.5也回落到与YOLOv5s相当的水平。这表明Mosaic9策略在本虫害数据集中并未带来预期提升,可能因为病害数据集与虫害数据集在相同模型上的性能表现有一定差异,可能与数据集的图片尺寸、真实框大小有关。虫害数据集中图像尺寸普遍较小(大部分图像尺寸都小于500×500),这限制了模型输入的信息量,尤其是浅层特征。虽然虫害数据集的目标框相对较大,约占图像大小的2/3,但由于原始图像分辨率小,模型提取的空间信息有限,所以可能影响了精度。而叶片病害数据集中图像更大、纹理细节丰富,有利于模型学习更多区分特征,故整体性能更优。而且虫害数据集中,每一个类别的害虫图像包含了幼虫、成虫、雄性、雌性等差异大的形态,可能影响了模型的学习效果。4.5.2定量指标分析对模型训练得到的result.csv文件进行可视化分析,如图4-11所示。从图中可以看出,随着训练轮数(Epoch)的增加,各个模型的性能都有所提升。其中绿色线代表的YOLOv8s模型在四个指标中表现都是最好的。无论是准确率、召回率,还是mAP@50和mAP@50-95,YOLOv8s的数值始终高于其他模型,说明它在识别目标时更准确、漏检更少、综合性能更强。而红色线代表的YOLOv8s+Mosaic9虽然训练的轮数最多,但它的整体表现反而比YOLOv8s略差,尤其是在精确率和mAP@50-95上都不如YOLOv8s。这说明虽然加了Mosaic9数据增强方法训练得更久,但在这个任务上并没有带来预期的效果,甚至可能引入了不稳定因素。YOLOv5s和YOLOv3s的表现相比之下要弱一些,但它们也都随着训练时间的增长逐渐趋于稳定,只是在最终的精度和召回上不如YOLOv8s。综上来看,YOLOv8s是检测植物虫害效果最优的模型。图4-11可视化图4.5.3数据检测定性分析YOLOv8s模型在虫害数据上的检测表现见图4-12,预测效果达到较好的精确率。本次实验训练中得出的最优权重文件在图片测试中表现优异,在每个类别多形态的情况下依然保证了较高的置信度。图4-12数据验证效果图(虫害)第5章基于YOLOv8的植物病虫害检测平台搭建5.1模型部署环境及系统架构5.1.1系统架构设计在植物病虫害检测中,检测模型要有效,更重要的是应用模型,要应用到实际任务中,当前重点是为用户提供一个检测系统,检测系统要交互性好,操作要便捷,运行要高效,适应能力要强,这样才能提升应用价值。本章设计了植物病虫害检测图形界面,该界面有以下功能:(1)用户登录。运行程序,首先弹出系统登录界面,用户可输入用户名,用户可输入密码,初次登录需注册,注册成功后,可进入主界面。(2)检测界面。选择图片或视频进行检测,显示检测后的结果图和检测类别,还有置信度等信息。(3)数据统计。系统可自动计算检测出的目标类别,还能统计数量,在结果图下方用表格显示。(4)AI助手辅助诊疗。在系统中接入DeepSeek的AI接口,用户可以根据检测结果与AI助手聊天,得到针对性的防治方案。5.1.2部署环境本章开发的检测系统,基于PyQt5框架进行开发,具体配置如下表所示:表5-1开发环境配置表参数名称配置处理器AMD操作系统Windows11编程语言Python3.8镜像PyTorch2.0.0开发工具Pycharm2023.2.1PyQt6Pyside65.1.3PyQt和PySide介绍本系统图形界面的开发综合使用了PyQt5和PySide6两个工具,它们都是Qt框架的Python接口,功能相近,都可以用来编写窗口程序。Qt是一个跨平台的界面开发库,由C++编写,PyQt和PySide是它的Python版本,用Python更方便做界面设计,可以设计按钮,可以设计文字输入框,可以设计图像展示区域,这些都是常见控件。本研究使用QtDesigner,它用于设计可视化界面,设计好的文件为.ui文件,然后用PySide6的uic工具,将.ui文件转换为.py文件,便于添加程序逻辑,便于整合功能,PyQt5负责构建整体界面,它处理事件响应,两者配合使用,可以提升开发效率。5.2平台工作界面设计5.2.1功能设计本系统的界面设计下图所示,主要分为首页、检测程序、个人中心、退出系统等四个主要模块。图5-1主界面如图5-1、5-2所示。在个人中心部分可以进行用户信息修改,并连接了MySQL数据库进行用户信息管理。在检测程序模块,用户选择图片或视频,然后点击“开始检测”按钮,就会显示检测结果,还可以将本系统部署于带摄像头的移动设备上,进行实时检测。如图5-3所示,将鼠标移动到用户名上,就会显示AI助手的接口,点击即可与AI助手聊天进行智能诊疗。AI助手的实现,利用PySide6提供的多线程机制,系统将用户输入作为提示信息发送至DeepSeek的对话模型"deepseek-chat",并以流式方式获取模型生成的回复内容。在传输过程中,服务器返回的数据被逐行解析,提取出模型实时生成的文本片段,并通过信号机制将这些内容展示在图形用户界面中。该方法为植物病虫害检测系统提供了人机交互支持。图5-2检测界面图5-3AI助手5.2.2功能测试效果展示系统部署完成,集成两大核心功能,一是植物病虫害目标检测,二是智能诊疗助手。用户在系统上传图片后,点击开始检测按钮,系统会自动调用训练好的模型,进行病虫害检测,并输出检测结果,包括具体病虫害类别,置信度

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论