摘要

本文面向植物病害实时检测需求,设计并实现了一套基于最新 YOLO 系列算法的 Web 检测平台。系统采用 PyTorch 完成模型训练与推理,支持 YOLOv5、YOLOv6、YOLOv7、YOLOv8、YOLOv9、YOLOv10、YOLO11、YOLOv12 共 8 种模型的对比实验,可综合分析 mAP、F1、PR 曲线、训练曲线、混淆矩阵等指标,用于评估不同模型在植物叶片病斑、虫害痕迹、健康叶片等目标上的检测效果。平台基于 Flask + Flask-SocketIO + HTML/CSS/JS 构建,支持图片、视频、浏览器摄像头三类输入。图片检测提供原图与带框结果双画面对比**,视频检测支持同步双帧显示、进度控制、暂停、继续与停止,摄像头检测可直接进行浏览器端实时推理演示。系统还集成 Conf/IoU 调节、类别筛选、CSV 导出、带框结果一键下载、SQLite 入库、检测记录管理等功能,便于结果保存、统计与追溯。此外,平台支持登录/注册,也提供跳过登录入口,兼顾正式使用与快速演示;支持模型选择与权重上传,上传自定义权重后可快速切换当前模型并同步更新类别信息。本文将植物病害检测算法、Web 实时交互、结果导出与数据持久化完整整合,适用于农业病害识别实验、课程设计、毕业设计与工程原型开发。文末提供完整工程与数据集下载链接。

➷点击跳转至文末所有涉及的完整代码文件下载页☇


1. 网页功能与效果

(1)登录注册功能提供登录、注册和跳过登录入口,既支持正式账户管理,也便于快速演示。登录后会话在当前访问周期内生效,可关联检测记录与个人配置;系统采用口令哈希和会话校验保障基本安全。
在这里插入图片描述
(2)功能概况界面集中展示图片检测、视频检测、摄像头检测、模型切换和结果导出等能力。用户进入页面后,可快速了解平台功能范围,并根据任务需求进入对应模块。
在这里插入图片描述

(3)视频检测功能支持上传本地视频并进行逐帧推理,页面同步展示原视频与带框检测结果。检测过程中可暂停、继续、停止和调整进度,并支持 Conf/IoU 调节、类别筛选、CSV 导出及带框视频下载。
在这里插入图片描述
(4)更换模型功能支持上传自定义权重并切换当前检测模型,类别信息与推理配置会同步更新。该功能便于在 YOLOv5 至 YOLOv12 等模型之间进行对比,评估不同算法在植物病害检测中的实际表现。
在这里插入图片描述
(5)概览界面用于展示系统状态、当前模型、检测数量、最近记录和导出入口。用户可快速定位历史检测结果,完成查看、下载与结果追溯。
在这里插入图片描述


2. 绪论

2.1 研究背景与意义

植物病害是影响作物产量、品质和农业生产稳定性的重要因素,传统依赖人工巡田和经验判断的方法存在效率低、主观性强、难以连续监测等问题。Mohanty 等基于 PlantVillage 数据集验证了深度学习在多作物叶片病害识别中的可行性,为后续农业视觉智能诊断提供了重要基础 1。Singh 等提出的 PlantDoc 数据集进一步将植物病害图像扩展到非受控自然场景,说明复杂背景、光照变化和叶片遮挡是实际落地中必须面对的问题 2

随着目标检测算法的发展,植物病害检测逐渐由“是否患病”的图像分类任务,转向“病害类别与病斑位置同时输出”的实时检测任务。YOLO 将目标检测建模为单阶段回归问题,使检测模型在速度和精度之间取得较好平衡,也为农业移动端、边缘端和网页端实时识别提供了算法基础 [3]。对于田间巡检、温室监测和教学演示等应用场景,检测平台不仅需要模型本身具备较高 mAP 和 F1 分数,还需要能够支持图片、视频和摄像头等多源输入,并将检测结果以直观、可追溯的方式展示给用户。

本文构建的植物病害实时检测平台采用 Flask 作为后端 Web 框架,利用其轻量、易扩展的特点完成页面路由、任务管理和数据交互 [4]。平台进一步引入 Flask-SocketIO 实现浏览器与后端之间的低延迟双向通信,使视频帧、摄像头画面、检测进度和任务状态能够实时同步到前端界面 [5]。因此,本项目的研究意义不仅体现在植物病害检测算法的精度提升上,也体现在将 YOLOv5 至 YOLOv12 等最新模型与 Web 可视化平台结合,形成一套可训练、可推理、可对比、可导出和可复现的完整工程方案。

2.2 国内外研究现状

目标检测方法大致经历了两阶段检测器、单阶段检测器、Anchor-free 检测器和 Transformer 检测器等阶段。Faster R-CNN 通过区域候选网络提升了两阶段检测框架的端到端训练能力,但其推理链路相对复杂,难以直接满足高帧率视频检测需求 [6]。SSD 将多尺度特征图与单阶段检测结合,在速度上较两阶段方法更具优势,但对小目标和密集目标的检测稳定性仍受特征表达能力限制 [7]。RetinaNet 提出的 Focal Loss 有效缓解了前景和背景样本不均衡问题,对病斑数量少、背景区域大的植物病害图像具有借鉴价值 [8]。

Transformer 检测器为目标检测带来了端到端集合预测思路。DETR 利用二分图匹配和 Transformer 编码解码结构减少了传统检测中的人工设计组件,但训练收敛和实时性仍是限制其农业实时检测应用的重要因素 [9]。RT-DETR 通过高效混合编码器和查询选择机制提升了 Transformer 检测器的实时性能,为非 YOLO 路线在实时检测中的应用提供了参考 [10]。总体来看,Transformer 检测器在全局建模方面具有优势,而 YOLO 系列在工程部署、轻量化推理和多端适配方面更适合本文的 Web 实时检测平台。

YOLO 系列近年来持续演进,形成了从 YOLOv5 到 YOLOv12 的多版本工程生态。YOLOv5 以 PyTorch 实现、训练流程简洁和部署工具完善等特点被广泛应用于工业与农业检测任务 [11]。YOLOv6 面向工业部署优化网络结构、量化策略和推理效率,其中 YOLOv6-N 在 COCO 上达到 35.9% AP 和 1234 FPS 的吞吐表现 [12]。YOLOv7 通过可训练的 bag-of-freebies 提升检测精度,在实时检测器中实现了较强的速度与精度平衡 [13]。YOLOv8 进一步强化了易用性、任务扩展能力和工程集成能力,因此常被用于病害检测、果蔬识别和作物计数等农业视觉任务 [14]。YOLOv9 通过可编程梯度信息和 GELAN 结构缓解深层网络中的信息损失问题,为轻量模型保持有效梯度监督提供了新思路 [15]。YOLOv10 采用一致双重分配策略,减少对 NMS 后处理的依赖,更有利于端到端低延迟部署 [16]。YOLO11 在 Ultralytics 生态中继续强化检测、分割、分类、姿态估计和旋转框等多任务支持,便于统一训练和推理接口 [17]。YOLOv12 则引入以注意力机制为核心的实时检测框架,在保持较低延迟的同时提升检测精度,适合作为本文最新 YOLO 对比中的重点模型 [18]。

方法 范式/家族 关键特点 优势 局限性 与植物病害检测的关系
Faster R-CNN [6] 两阶段检测 区域候选网络 定位精度较好 推理链路较复杂 适合作为高精度基线
SSD [7] 单阶段检测 多尺度特征图预测 速度较快 小目标表现受限 可用于轻量检测对照
RetinaNet [8] 单阶段检测 Focal Loss 缓解类别不均衡 结构仍需优化部署 适合病斑前景稀疏场景
DETR [9] Transformer 集合预测与二分匹配 端到端建模清晰 收敛和实时性压力较大 可作为全局建模参考
RT-DETR [10] 实时 Transformer 高效混合编码器 兼顾端到端与实时性 部署生态不如 YOLO 普及 适合与 YOLO 系列横向比较
YOLOv5–YOLOv12 [11]–[18] YOLO 单阶段检测 轻量化、实时性、多版本生态 易训练、易部署、适合 Web 集成 不同版本结构和依赖存在差异 本文平台的核心模型族

在植物病害检测领域,已有研究表明 YOLO 模型适合处理叶片病斑、虫害区域和健康叶片等目标。Abid 等使用 YOLOv8 完成孟加拉国作物叶片病害检测,实验中取得 98% mAP 和 97% F1 分数,说明 YOLOv8 在多类别叶片病害检测中具有较强表现 [19]。杨文姬等针对苹果和番茄叶片病害提出改进 YOLOv5 方法,通过锚框优化、复合主干网络和 Varifocal Loss 提升密集感染区域识别能力,最终 mAP 达到 95.7% [20]。薛霞等提出改进 YOLOv8 的实时细粒度植物病害检测框架,在番茄四类病害任务中达到 71.23 FPS、92.58% 精确率和 93.64% F1 分数,体现了中文农业场景中实时检测研究的工程价值 [21]。这些研究共同表明,植物病害检测的难点集中在类间纹理相似、病斑尺度变化、遮挡反光、背景复杂和实时部署等方面,因此本文采用多版本 YOLO 对比与 Web 实时平台结合的方式,进一步提升算法实验和系统应用之间的衔接程度。

2.3 要解决的问题及其方案

本文要解决的问题主要包括以下四点:(1)植物病害目标存在病斑细小、形态不规则、颜色相近和背景干扰强等特点,容易造成误检和漏检,因此需要提升检测模型的准确性与实时性;(2)不同作物、不同拍摄设备和不同光照条件下的图像差异较大,模型需要具备较好的环境适应性和泛化能力;(3)传统命令行推理方式不利于普通用户使用,平台需要提供直观、美观且功能完整的 Web 交互界面;(4)检测结果需要长期保存、快速查询和便捷导出,因此需要兼顾数据处理效率、存储安全性和结果可追溯性。

针对上述问题,本文采用以下解决方案:(1)以 YOLOv12 作为核心模型,同时集成 YOLOv5、YOLOv6、YOLOv7、YOLOv8、YOLOv9、YOLOv10 和 YOLO11 进行横向对比,并结合数据增强、迁移学习和统一评价指标分析不同模型的优劣;(2)基于 PyTorch 完成模型训练、验证和推理,利用 Conf、IoU、类别筛选和 NMS 等参数控制检测输出,以适应不同病害尺度和复杂背景;(3)采用 Flask、Flask-SocketIO、HTML、CSS 和 JavaScript 构建端到端 Web 平台,支持图片、视频和浏览器摄像头输入,并提供双画面对比、视频进度控制和模型热切换;(4)通过 SQLite 存储检测记录、账户信息和导出结果,结合 CSV 导出、带框结果下载和历史记录检索,提升平台的实验管理能力和工程可靠性。

2.4 博文贡献与组织结构

本文的主要贡献可以概括为四个方面:(1)围绕植物病害实时检测任务梳理了目标检测、YOLO 系列模型和农业病害检测相关研究,为后续模型选择提供依据;(2)构建了支持 YOLOv5 至 YOLOv12 的多模型训练与推理流程,可从 mAP、F1、PR 曲线、训练曲线和混淆矩阵等维度进行效果对比;(3)设计并实现了基于 Flask、SocketIO、HTML、CSS 和 JavaScript 的 Web 实时检测平台,支持登录注册、功能概况、视频检测、更换模型和概览界面等核心功能;(4)整合了检测记录入库、CSV 导出、带框结果下载和权重上传切换等工程能力,使系统具备较好的复现性、扩展性和实际应用参考价值。

后续章节安排如下:第 3 章将介绍植物病害数据集的来源、标注格式、类别划分、数据增强和训练集、验证集、测试集划分方式;第 4 章将围绕 YOLOv12 及 YOLO 系列检测模型说明网络结构、特征融合、损失函数和训练策略;第 5 章将给出不同 YOLO 模型的实验结果,对 mAP、F1、PR 曲线、训练曲线和推理速度进行对比分析;第 6 章将介绍 Web 平台的系统设计与实现,包括前后端交互、实时通信、模型切换、数据库存储和结果导出;第 7 章将总结本文工作,并从轻量化部署、持续学习、数据治理和多端应用等方面展望未来优化方向。


3. 数据集处理

本项目所使用的植物病害检测数据集共包含 1770 张高质量图像,其中训练集 1110 张、验证集 330 张、测试集 330 张,整体划分比例约为 6.3:1.9:1.9。数据集中同时包含健康叶片与多类病害叶片目标,覆盖苹果、甜椒、蓝莓、樱桃、玉米、桃、马铃薯、覆盆子、大豆、南瓜、草莓、番茄和葡萄等作物类别,类别总数为 29 类,包括苹果黑星病叶、苹果锈病叶、玉米灰斑病叶、玉米叶枯病、马铃薯早疫病叶、马铃薯晚疫病叶、南瓜白粉病叶、番茄早疫病叶、番茄斑点病叶、番茄细菌性斑点叶、番茄晚疫病叶、番茄花叶病害叶、番茄黄化病害叶、番茄霉病叶、番茄双斑蜘蛛螨叶、葡萄叶黑腐病等。数据标注采用目标检测常用的边界框形式,每个目标由类别编号和矩形框位置表示,能够同时描述病害类别与病斑所在区域,为后续 YOLO 系列模型训练提供了统一的数据输入格式。

Chinese_name = {
    "Apple Scab Leaf": "苹果黑星病叶",
    "Apple leaf": "苹果叶",
    "Apple rust leaf": "苹果锈病叶",
    "Bell_pepper leaf spot": "甜椒叶斑",
    "Bell_pepper leaf": "甜椒叶",
    "Blueberry leaf": "蓝莓叶",
    "Cherry leaf": "樱桃叶",
    "Corn Gray leaf spot": "玉米灰斑病叶",
    "Corn leaf blight": "玉米叶枯病",
    "Corn rust leaf": "玉米锈病叶",
    "Peach leaf": "桃叶",
    "Potato leaf early blight": "马铃薯早疫病叶",
    "Potato leaf late blight": "马铃薯晚疫病叶",
    "Potato leaf": "马铃薯叶",
    "Raspberry leaf": "覆盆子叶",
    "Soyabean leaf": "大豆叶",
    "Squash Powdery mildew leaf": "南瓜白粉病叶",
    "Strawberry leaf": "草莓叶",
    "Tomato Early blight leaf": "番茄早疫病叶",
    "Tomato Septoria leaf spot": "番茄斑点病叶",
    "Tomato leaf bacterial spot": "番茄细菌性斑点叶",
    "Tomato leaf late blight": "番茄晚疫病叶",
    "Tomato leaf mosaic virus": "番茄花叶病害叶",
    "Tomato leaf yellow virus": "番茄黄化病害叶",
    "Tomato leaf": "番茄叶",
    "Tomato mold leaf": "番茄霉病叶",
    "Tomato two spotted spider mites leaf": "番茄双斑蜘蛛螨叶",
    "grape leaf black rot": "葡萄叶黑腐病",
    "grape leaf": "葡萄叶"
}

        
在这里插入图片描述
从数据样例和标注可视化结果可以看出,该数据集具有较明显的真实场景特征:部分图像为单叶片居中拍摄,目标轮廓清晰;部分图像来自复杂背景或自然环境,存在叶片重叠、枝干遮挡、光照不均、病斑尺度差异大等问题。类别分布图显示,不同病害类别的实例数量并不完全均衡,部分类别目标较多,而少数类别样本相对有限,容易在训练过程中形成长尾分布影响。边界框分布图进一步表明,目标中心多数集中在图像中部,但宽高比例变化较大,既包含整片叶子的较大目标,也包含病斑、虫害痕迹等局部小目标,这对模型的多尺度特征提取能力和小目标检测能力提出了较高要求。
在这里插入图片描述

在数据预处理阶段,所有图像按照 YOLO 训练流程进行尺寸归一化和标注一致性检查,重点清理空标注、越界框、类别编号不匹配和重复标注等问题,保证训练、验证和测试过程的稳定性。为了提升模型对田间复杂环境的适应能力,训练阶段可结合随机缩放、平移、翻转、颜色扰动、亮度变化、Mosaic 等增强策略,使模型能够更好地应对叶片反光、阴影遮挡、拍摄距离变化和病斑尺度差异等情况。验证集用于调节模型训练过程中的超参数和观察泛化趋势,测试集则独立用于最终性能评估,从而保证 YOLOv5 至 YOLOv12 等不同模型在同一数据划分下进行公平对比。


4. 模型原理与设计

本文默认以 YOLOv12 作为植物病害实时检测平台的核心模型,同时保留 YOLOv5 至 YOLOv12 的统一训练与推理接口,便于在同一数据集和同一 Web 平台中进行横向对比。YOLOv12 仍属于单阶段目标检测范式,输入叶片图像经过尺寸归一化后,先由骨干网络提取不同层级的纹理、边缘和语义特征,再通过颈部网络完成多尺度特征融合,最后由检测头输出目标类别、置信度和边界框位置。对于植物病害场景而言,病斑常表现为颜色相近、尺度差异大、边缘不规则和局部遮挡等特点,因此模型不仅需要捕获叶片整体形态,也需要保留小病斑、霉斑、虫害痕迹等细粒度局部信息。YOLOv12 的核心特点是引入以注意力机制为中心的实时检测结构,在保持 YOLO 系列实时性的同时增强上下文建模能力,适合用于本平台中的图片、视频和浏览器摄像头实时推理任务。(Ultralytics Docs)

在结构设计上,YOLOv12 的关键改进主要体现在 Area Attention 与 R-ELAN 两个部分。标准自注意力可表示为 A t t e n t i o n ( Q , K , V ) = S o f t m a x ( Q K T d ) V \mathrm{Attention}(Q,K,V)=\mathrm{Softmax}\left(\frac{QK^{T}}{\sqrt{d}}\right)V Attention(Q,K,V)=Softmax(d QKT)V 其中, Q Q Q K K K V V V 分别表示查询、键和值矩阵, d d d 为特征维度;该机制能够建立长距离依赖,但在高分辨率特征图上计算复杂度较高。Area Attention 将特征图划分为若干区域后在区域内计算注意力,可抽象为 A 2 ( X ) = C o n c a t ( A t t n ( X 1 ) , A t t n ( X 2 ) , … , A t t n ( X m ) ) W o \mathrm{A2}(X)=\mathrm{Concat}\left(\mathrm{Attn}(X_1),\mathrm{Attn}(X_2),\ldots,\mathrm{Attn}(X_m)\right)W_o A2(X)=Concat(Attn(X1),Attn(X2),,Attn(Xm))Wo 其中, X X X 为输入特征, X i X_i Xi 表示第 i i i 个区域特征, m m m 为区域数量, W o W_o Wo 为输出映射矩阵;这种方式在保留较大感受野的同时降低注意力计算开销。R-ELAN 则可抽象表示为 Y = X + γ ⋅ F ( X ) Y=X+\gamma \cdot F(X) Y=X+γF(X) 其中, X X X 为输入特征, F ( ⋅ ) F(\cdot) F() 表示聚合后的卷积或注意力变换, γ \gamma γ 为残差缩放系数;该结构有助于稳定深层网络训练,并缓解注意力模块引入后的优化难度。网络整体结构与关键模块示意图如下图所示:
在这里插入图片描述

在任务建模与损失函数方面,植物病害检测需要同时完成类别判断与边界框回归,因此总损失通常由定位损失、分类损失和边界框分布损失共同构成,可写为 L = λ b o x L ∗ b o x + λ ∗ c l s L ∗ c l s + λ ∗ d f l L ∗ d f l \mathcal{L}=\lambda_{box}\mathcal{L}*{box}+\lambda*{cls}\mathcal{L}*{cls}+\lambda*{dfl}\mathcal{L}*{dfl} L=λboxLbox+λclsLcls+λdflLdfl 其中, λ ∗ b o x \lambda*{box} λbox λ c l s \lambda_{cls} λcls λ d f l \lambda_{dfl} λdfl 分别表示不同损失项的权重。边界框质量常用 IoU 及其改进形式度量,基础 IoU 定义为 I o U = ∣ B ∩ B g t ∣ ∣ B ∪ B g t ∣ IoU=\frac{|B\cap B^{gt}|}{|B\cup B^{gt}|} IoU=BBgtBBgt 其中, B B B 为预测框, B g t B^{gt} Bgt 为真实框。若采用 CIoU 形式,则定位损失可写为 L C I o U = 1 − I o U + ρ 2 ( b , b g t ) c 2 + α v \mathcal{L}_{CIoU}=1-IoU+\frac{\rho^2(b,b^{gt})}{c^2}+\alpha v LCIoU=1IoU+c2ρ2(b,bgt)+αv 其中, b b b b g t b^{gt} bgt 为预测框和真实框中心点, ρ \rho ρ 表示欧氏距离, c c c 为最小外接框对角线长度, v v v 用于衡量宽高比一致性, α \alpha α 为平衡系数。对于本数据集中的番茄斑点、葡萄黑腐病、玉米锈病等小面积病害目标,定位损失能够约束病斑框的位置与尺度,分类损失则帮助模型区分健康叶片和外观相似的病害叶片。

训练阶段围绕“准确检测、稳定收敛、实时推理”三个目标展开。数据增强采用翻转、缩放、颜色扰动、Mosaic 等策略,使模型更好适应田间图像中的光照变化、叶片遮挡、背景干扰和目标尺度变化;网络内部的卷积、归一化和激活结构能够提升特征分布稳定性,权重衰减、EMA 和学习率调度则用于降低过拟合风险。余弦退火学习率可表示为 η t = η m i n + 1 2 ( η m a x − η m i n ) ( 1 + cos ⁡ π t T ) \eta_t=\eta_{min}+\frac{1}{2}(\eta_{max}-\eta_{min})\left(1+\cos\frac{\pi t}{T}\right) ηt=ηmin+21(ηmaxηmin)(1+cosTπt) 其中, η t \eta_t ηt 为第 t t t 轮学习率, η m a x \eta_{max} ηmax η m i n \eta_{min} ηmin 分别为最大学习率和最小学习率, T T T 为总训练轮数。推理阶段通过 Conf 阈值过滤低置信度预测,并结合 IoU 阈值控制重复框抑制,平台前端开放 Conf、IoU 和类别筛选参数,使用户能够根据病斑密集程度、误检容忍度和实时性要求灵活调整检测结果。


5. 实验结果与分析

本章基于 PlantsDisease 数据集对 YOLOv5–YOLOv12 系列模型进行了系统对比实验,重点分析不同模型在植物病害检测任务中的精度表现、收敛特性以及阈值敏感性。实验对象分为两组:一组为更偏轻量部署的 n_type 模型,包括 yolov5nu、yolov6n、yolov7-tiny、yolov8n、yolov9t、yolov10n、yolo11n 和 yolo12n;另一组为精度更高的 s_type 模型,包括 yolov5su、yolov6s、yolov7、yolov8s、yolov9s、yolov10s、yolo11s 和 yolo12s。评价指标主要采用 F1、mAP50、Precision、Recall、PR 曲线以及训练过程中的损失与精度变化情况。由于本文最终目标是构建一个面向 Web 端的植物病害实时检测平台,因此实验分析不仅关注模型最终指标,还重点考察其是否适合在图片、视频与浏览器摄像头场景中稳定运行。
在这里插入图片描述

从 n_type 模型对比结果来看,轻量级模型之间已经形成较明显的性能分层。YOLOv5nu 和 YOLOv6n 的 F1 与 mAP50 均处于较接近水平,整体可以作为轻量级基线模型;YOLOv7-tiny 的 F1 和 mAP50 相对偏低,说明在植物病害这种细粒度、多类别、背景干扰较多的场景中,过度压缩模型结构会影响病斑纹理与局部病害区域的表征能力。相比之下,YOLOv8n、YOLOv9t、YOLOv10n、YOLOv11n 和 YOLOv12n 整体表现更优,其中 YOLOv12n 的 mAP50 达到 0.650 左右,为该组最高;YOLOv11n 的 F1 值约为 0.667,综合平衡能力较强。这说明新版本 YOLO 在轻量化条件下对植物叶片病斑、小尺度目标和相似类别之间的区分能力更强。对于需要兼顾检测速度与精度的实时 Web 平台而言,YOLOv12n 更适合作为默认轻量模型,而 YOLOv11n 则适合作为偏重稳定性的替代选择。
在这里插入图片描述

从 s_type 模型的对比结果可以进一步看到,随着模型容量增加,整体检测精度较 n_type 有明显提升。YOLOv5su 和 YOLOv6s 仍可作为小型模型中的基线方案,但指标明显落后于后续版本。YOLOv7 的 F1 达到约 0.690,在所有 s_type 模型中表现较突出,说明其在 Precision 与 Recall 的综合平衡方面具有较好优势。YOLOv9s、YOLOv10s、YOLOv11s 与 YOLOv12s 则在 mAP50 上持续提升,其中 YOLOv12s 的 mAP50 达到 0.686,YOLOv11s 紧随其后,为 0.685,二者构成该组中精度最优的第一梯队。相较于 n_type,小型模型能够更充分地学习叶片形态、病斑分布和复杂背景下的上下文信息,因此更适合用于精度优先的植物病害识别任务。如果系统部署在具备 GPU 的服务器端,YOLOv12s 无疑是更值得优先考虑的模型。

模型类型 模型 F1 mAP50 综合表现
n_type YOLOv5nu 约 0.623 0.617 基线稳定,精度一般
n_type YOLOv6n 约 0.625 0.617 与 YOLOv5nu 接近
n_type YOLOv7-tiny 约 0.596 约 0.584 轻量化明显,但复杂病斑检测偏弱
n_type YOLOv8n 约 0.642 0.631 相比早期模型稳定提升
n_type YOLOv9t 约 0.641 0.642 mAP50 表现较好
n_type YOLOv10n 约 0.656 0.647 精度与稳定性较均衡
n_type YOLO11n 约 0.668 0.647 F1 表现较优
n_type YOLO12n 约 0.658 0.651 n_type 中 mAP50 最优
s_type YOLOv5su 约 0.660 0.638 小型基线模型
s_type YOLOv6s 约 0.655 0.638 整体表现平稳
s_type YOLOv7 约 0.690 约 0.678 F1 表现突出
s_type YOLOv8s 约 0.671 0.652 稳定性较好
s_type YOLOv9s 约 0.667 0.677 mAP50 明显提升
s_type YOLOv10s 约 0.670 0.674 综合表现均衡
s_type YOLO11s 约 0.666 0.685 高精度候选模型
s_type YOLO12s 约 0.666 0.686 s_type 中 mAP50 最优

图 5-1 植物病害检测(n 型)F1 与 mAP@0.5 双条形图
图注:蓝柱 F1,橙柱 mAP@0.5。
在这里插入图片描述
图 5-2 植物病害检测(s 型)F1 与 mAP@0.5 双条形图
图注:蓝柱 F1,橙柱 mAP@0.5。
在这里插入图片描述

综合两组柱状图可以发现,n_type 更适合低算力实时推理,而 s_type 更适合高精度识别任务。从工程应用角度看,平台可默认配置 YOLOv12n 作为网页实时检测模型,用于浏览器摄像头与视频流推理;在用户上传较高分辨率图片或需要导出更高精度结果时,可切换为 YOLOv12s 或 YOLOv11s,以在检测质量和推理时间之间取得更灵活的平衡。
【插入图5-3:F1-Confidence Curve】

F1-Confidence 曲线反映了模型在不同置信度阈值下的综合检测性能变化。从图中可以看到,全类别平均 F1 在置信度约为 0.419 时达到 0.63 的最优值,这意味着当置信度阈值设置在 0.4 左右时,Precision 与 Recall 达到了较为理想的平衡。若阈值设置过低,模型会保留更多低置信度预测框,虽然 Recall 会提高,但误检也会明显增多;若阈值设置过高,许多小病斑、弱纹理病害和边缘模糊目标会被直接过滤,导致 Recall 快速下降,F1 反而下降。对于植物病害检测平台而言,这一结论具有很强的工程指导意义,即前端默认 Conf 参数宜设置在 0.35–0.50 之间,并允许用户根据病害密集程度和误检容忍度动态调节。若系统更偏重病害预警,则可以适当降低阈值以减少漏检;若更偏重结果统计与报表导出,则可以适当提高阈值以保证输出结果的可靠性。

【插入图5-4:训练过程损失与评价指标曲线】

从训练过程曲线可以看出,模型整体具有较好的收敛趋势。train/box_loss、train/cls_loss 与 train/dfl_loss 均随着训练轮次增加而持续下降,说明模型在边界框定位、类别分类以及分布式回归方面都实现了稳定学习;同时,metrics/precision(B)、metrics/recall(B)、metrics/mAP50(B) 与 metrics/mAP50-95(B) 在前期快速上升,并在中后期逐渐趋于平稳,表明模型训练已进入收敛阶段。尤其是 mAP50 最终稳定在约 0.67–0.68 区间,mAP50-95 稳定在约 0.54 左右,说明模型不仅能较好完成目标检出,也具备一定高 IoU 阈值下的精细定位能力。值得注意的是,验证集上的 val/cls_loss 与 val/dfl_loss 在后期出现轻微波动甚至小幅回升,这通常意味着部分类别之间仍存在混淆,尤其是番茄早疫病、番茄晚疫病、番茄斑点病、葡萄叶黑腐病等纹理相近病害类别更容易受到影响。不过从整体趋势看,模型并未出现严重过拟合,验证集 box_loss 依旧维持下降趋势,说明当前数据增强与训练策略是有效的。
在这里插入图片描述

PR 曲线能够更直观地刻画不同模型在 Precision 与 Recall 之间的整体权衡关系。从 s_type 模型的平均 PR 曲线来看,YOLOv12s 的曲线整体处于最优位置,其 mAP50 为 0.686,YOLOv11s 的 mAP50 为 0.685,二者几乎构成并列第一梯队;YOLOv9s 和 YOLOv10s 也维持了较高水平,说明这些模型在尽可能提高召回率的同时,仍能较好控制误检。PR 曲线随 Recall 的增加逐步下降,这种现象在植物病害检测任务中是合理的,因为随着更多疑似病害区域被纳入检测,模型会不可避免地引入一些低置信度框,导致 Precision 下降。结合柱状图与 PR 曲线可以进一步确认:YOLOv12s 不仅最终指标最高,而且在不同召回区间内也表现出更好的稳定性,因此它更适合作为精度优先场景下的推荐模型。与此同时,PR 曲线也说明即便是最佳模型,在高召回区域仍然会受到小目标病斑、密集病害和类别相似性问题的影响,这也是后续可以继续优化的重点方向。

综合以上实验结果可以得出以下结论。首先,YOLOv5–YOLOv12 系列模型均能够完成植物病害检测任务,但随着版本演进,模型在精度、稳定性和特征表达能力方面呈现持续提升趋势。其次,在轻量化模型中,YOLOv12n 的 mAP50 最优,更适合作为 Web 实时检测与浏览器摄像头推理的默认模型;在小型模型中,YOLOv12s 和 YOLOv11s 的综合表现最好,更适合对检测质量要求较高的农业诊断、图片分析和检测报告生成场景。再次,F1-Confidence 曲线表明系统默认置信度参数应控制在 0.4 左右,以更好平衡精确率和召回率;训练曲线说明当前模型已经具备较好的收敛性,但相似病害类别之间仍存在一定混淆;PR 曲线则进一步揭示了高召回阶段误检增加的问题。最后,从任务本身来看,当前数据集仍具有多类别、长尾分布、小目标比例较高以及自然场景干扰明显等特点,这些因素共同决定了植物病害检测仍具有较强挑战性。后续可从增加少数类样本、优化类别重采样、引入更强的数据增强、采用蒸馏与量化等方向继续改进,以进一步提升平台在实际农业场景中的鲁棒性与可部署性。


6. 系统设计与实现

6.1 系统设计思路

本系统面向植物病害实时检测任务,整体采用分层架构进行设计,主要包括表现与交互层、业务控制与会话层、推理与任务调度层、数据持久化层。表现与交互层由 Web 网页界面承担,负责图片、视频、浏览器摄像头输入以及检测结果的双画面对比展示;业务控制与会话层负责登录状态、检测参数、模型选择和任务状态管理;推理与任务调度层负责完成图像预处理、YOLO 模型推理、后处理和结果统计;数据持久化层则用于保存账户信息、检测记录、导出结果和模型配置。

在检测流程上,用户通过网页端上传图片、视频或开启摄像头后,系统首先对输入数据进行格式校验与尺寸预处理,然后调用当前选定的 YOLO 模型完成目标检测,并经过置信度筛选、IoU 过滤、类别映射和结果统计后返回前端。对于图片检测,系统直接生成原图与检测图的双画面对比;对于视频检测,系统通过 SocketIO 持续推送原始帧与检测帧,保证前端同步显示;对于摄像头检测,系统接收浏览器端视频流并进行实时推理,使用户能够在网页中直接观察植物病害识别效果。

为了保证平台的实时性与一致性,系统在前后端之间建立了任务状态同步机制,视频检测过程中的开始、暂停、继续、停止和进度更新均由后端统一管理,并实时反馈到前端界面。Conf、IoU 和类别筛选等参数在检测前后保持一致,避免同一任务中出现前端显示与后端推理配置不一致的问题。同时,系统支持模型权重上传与热切换,用户更换模型后,类别信息、推理配置和页面展示会同步刷新,从而满足 YOLOv5 至 YOLOv12 等多模型对比实验需求。

图6-1 系统流程图
在这里插入图片描述

图注:图6-1展示了系统从初始化到多源输入检测的完整流程。图片、视频和摄像头数据经过统一预处理、YOLO 推理和后处理后,在前端形成双画面对比,并将检测记录与导出结果同步保存。

图6-2 系统设计框图
在这里插入图片描述

图注:图6-2体现了平台的分层边界与数据流向。浏览器端负责交互展示,业务层负责会话与任务协调,推理层完成 YOLO 检测与帧同步,数据层负责结果、账户和导出信息的持久化管理。

6.2 登录与账户管理

图6-3 登录与账户管理流程图
在这里插入图片描述

登录与账户管理模块用于建立用户身份、检测记录和个性化配置之间的关联关系。用户打开平台后,可根据自身需求选择登录、注册或跳过登录;新用户完成注册后,账户信息会经过安全处理并写入数据库,已有用户登录时系统会校验账号信息并创建会话状态。登录成功后,平台会自动载入用户配置、历史检测记录和最近导出结果,并进入主界面继续完成图片检测、视频检测、摄像头检测和模型切换等操作。对于正式使用场景,账户机制可以保证不同用户之间的检测记录相互独立;对于演示场景,跳过登录能够减少操作步骤,使用户快速体验平台功能。用户进入系统后,还可以进行资料修改、密码更新、注销或切换账号等操作,从而使账户管理与主检测流程形成完整衔接。


7. 结论与未来工作

本文围绕植物病害实时检测需求,设计并实现了一套基于最新 YOLO 系列模型的 Web 检测平台。系统以 PyTorch 为模型训练与推理基础,结合 Flask、Flask-SocketIO、HTML、CSS 和 JavaScript 完成前后端交互,支持图片、视频和浏览器摄像头三类输入方式,并提供双画面对比、检测进度控制、模型切换、CSV 导出、带框结果下载和 SQLite 入库等功能。实验结果表明,YOLOv5–YOLOv12 系列模型均能够完成植物病害检测任务,其中 YOLOv12n 更适合作为轻量实时检测模型,适用于网页演示、摄像头推理和低算力部署;YOLOv12s 与 YOLO11s 在 mAP50 等指标上表现更优,更适合精度优先的病害识别和结果分析场景。整体来看,本文平台将目标检测算法、Web 实时通信、检测结果可视化和数据持久化进行了完整整合,能够为植物病害识别、农业智能巡检和相关课程设计提供较好的工程参考。

从应用价值来看,该系统不仅能够识别多种作物叶片的健康与病害状态,还能够通过检测框直观展示病害区域位置,使用户更容易理解模型判断结果。相比传统离线脚本推理方式,Web 平台降低了算法使用门槛,用户无需直接操作命令行即可完成模型加载、图片上传、视频检测和结果导出。对于农业生产场景,该系统可辅助种植人员快速发现疑似病害区域;对于科研和教学场景,平台可用于展示不同 YOLO 模型在同一数据集上的检测差异;对于后续工程开发,系统中的模型热切换、数据库存储和检测记录管理也为持续迭代提供了基础。

未来工作可从模型侧、系统侧和数据侧继续优化。模型侧可进一步研究更轻量化的网络结构,结合知识蒸馏、剪枝、量化和 TensorRT 加速等方法降低推理延迟,使模型更适合边缘设备、移动端和低功耗农业终端部署;同时可引入多模态信息,将 RGB 图像与近红外、温湿度、作物生长阶段等信息结合,提高复杂环境下的病害判断能力。系统侧可进一步推进 Docker 化部署、分布式任务队列、WebRTC 实时推流、角色权限管理、操作审计、国际化界面和多租户管理,使平台具备更强的工程稳定性和多场景适配能力。数据侧可建立主动学习与持续标注机制,将用户在实际使用中发现的误检、漏检样本回流到训练集,并结合数据治理、类别均衡、漂移监测和版本管理不断提升模型泛化能力。通过上述优化,平台有望从实验型植物病害检测系统进一步发展为面向实际农业生产的智能视觉诊断工具。


参考文献

1 MOHANTY S P, HUGHES D P, SALATHÉ M. Using deep learning for image-based plant disease detection[J]. Frontiers in Plant Science, 2016, 7: 1419.

2 SINGH D, JAIN N, JAIN P, et al. PlantDoc: A dataset for visual plant disease detection[C]//Proceedings of the 7th ACM IKDD CoDS and 25th COMAD. New York: ACM, 2020: 249-253.

[3] REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: Unified, real-time object detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 779-788.

[4] PALLETS PROJECTS. Flask documentation: Welcome to Flask[EB/OL]. 2026.

[5] GRINBERG M. Flask-SocketIO documentation[EB/OL]. 2026.

[6] REN S, HE K, GIRSHICK R, et al. Faster R-CNN: Towards real-time object detection with region proposal networks[C]//Advances in Neural Information Processing Systems. 2015: 91-99.

[7] LIU W, ANGUELOV D, ERHAN D, et al. SSD: Single shot multibox detector[C]//European Conference on Computer Vision. Cham: Springer, 2016: 21-37.

[8] LIN T Y, GOYAL P, GIRSHICK R, et al. Focal loss for dense object detection[C]//Proceedings of the IEEE International Conference on Computer Vision. 2017: 2980-2988.

[9] CARION N, MASSA F, SYNNAEVE G, et al. End-to-end object detection with transformers[C]//European Conference on Computer Vision. Cham: Springer, 2020: 213-229.

[10] ZHAO Y, LV W, XU S, et al. DETRs beat YOLOs on real-time object detection[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2024.

[11] ULTRALYTICS. YOLOv5: PyTorch, ONNX, CoreML and TFLite object detection models[EB/OL]. 2020.

[12] LI C, LI L, JIANG H, et al. YOLOv6: A single-stage object detection framework for industrial applications[EB/OL]. arXiv:2209.02976, 2022.

[13] WANG C Y, BOCHKOVSKIY A, LIAO H Y M. YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2023: 7464-7475.

[14] JOCHER G, CHAURASIA A, QIU J. Ultralytics YOLOv8[CP/OL]. 2023.

[15] WANG C Y, YEH I H, LIAO H Y M. YOLOv9: Learning what you want to learn using programmable gradient information[EB/OL]. arXiv:2402.13616, 2024.

[16] WANG A, CHEN H, LIU L, et al. YOLOv10: Real-time end-to-end object detection[EB/OL]. arXiv:2405.14458, 2024.

[17] JOCHER G, QIU J, CHAURASIA A. Ultralytics YOLO11[EB/OL]. 2024.

[18] TIAN Y, YE Q, DOERMANN D. YOLOv12: Attention-centric real-time object detectors[EB/OL]. arXiv:2502.12524, 2025.

[19] ABID M S Z, et al. Bangladeshi crops leaf disease detection using YOLOv8[J]. Heliyon, 2024.

[20] 杨文姬, 胡文超, 赵应丁, 等. 基于改进Yolov5植物病害检测算法研究[J]. 中国农机化学报, 2023.

[21] 薛霞, 刘鹏, 周文. 基于改进YOLOv8算法的实时细粒度植物病害检测[J]. 中国农机化学报, 2024, 45(5): 188-194.


代码下载链接

        如果您希望获取博客中提及的完整资源包,包含测试图片、视频、Python文件(*.py)、网页配置文件、训练数据集、代码及界面设计等,可访问博主在面包多平台的上传内容。相关的博客和视频资料提供了所有必要文件的下载链接,以便一键运行。完整资源的预览如下图所示:

在这里插入图片描述

在这里插入图片描述

        资源包中涵盖了你需要的训练测试数据集、训练测试代码、UI界面代码等完整资源➷➷➷

详细介绍文档博客最新YOLO实现的机械器件实时检测平台(Flask+SocketIO+HTML/CSS/JS)

完整安装运行教程:

        这个项目的运行需要用到Anaconda和Pycharm两个软件,下载到资源代码后,您可以按照以下链接提供的详细安装教程操作即可运行成功,如仍有运行问题可私信博主解决:

  1. Pycharm和Anaconda的安装教程https://deepcode.blog.csdn.net/article/details/136639378

        软件安装好后需要为本项目新建Python环境、安装依赖库,并在Pycharm中设置环境,这几步采用下面的教程可选在线安装(pip install直接在线下载包):

  1. Python环境配置教程https://deepcode.blog.csdn.net/article/details/136639396
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐