最新YOLO实现的植物叶片病害识别实时检测平台(Flask+SocketIO+HTML_CSS_JS)
摘要
本文面向“植物叶片病害识别”的生产级实时检测需求,构建基于 Flask + Flask-SocketIO/HTML/CSS/JS 的Web 网页界面与后端推理服务,提供从数据导入、在线推理到评测对比的一体化体验。系统支持图片/视频/浏览器摄像头输入,内置左右等宽的双画面对比、进度/暂停/继续/停止控制、Conf/IoU 动态调节与类别筛选,检测结果可CSV 导出并带框结果一键下载;所有任务与统计自动写入 SQLite,配合登录/注册(可跳过)的会话管理与审计。算法侧涵盖 YOLOv5–YOLOv12(8 种) 的可选模型与模型选择/权重上传,统一评测 mAP、F1、PR 曲线、训练曲线等指标;前端提供双画面实时对照与最近记录高亮定位,便于模型迭代与病斑溯源。平台强调可扩展与可复现:支持批量任务、结果溯源与一键清理,默认兼容 GPU/CPU 与 ONNX/TensorRT 推理管线。文末提供完整工程与数据集下载链接,便于读者即开即用与二次开发。
讲解视频地址:基于深度学习的植物叶片病害识别系统(Web系统+完整项目分享+数据集+多YOLO模型)
YOLOv12-v11/v10/v9/v8/v7/v6/v5系统(八个模型,含说明论文)合集下载:https://mbd.pub/o/bread/YZWck55yag==
说明论文下载:https://mbd.pub/o/bread/YZWck5xpaA==
YOLOv12下载:https://mbd.pub/o/bread/YZWbmppqaw==
YOLOv11下载:https://mbd.pub/o/bread/YZWbm5ppbQ==
YOLOv10下载:https://mbd.pub/o/bread/YZWbm5lqag==
YOLOv9下载:https://mbd.pub/o/bread/YZWbmp9wZw==
安装与教程文档:https://deeppython.feishu.cn/wiki/HTicwVwQFi0KejkBUXlcQ25jnKe
@
1. 网页功能与效果
(1)登录注册:提供登录、注册与“跳过登录”三种入口;未登录仅启用一次性会话,登录后在当前浏览器生效并保留个性化配置与历史记录。口令哈希与最小化权限确保安全,支持随时注销与账号切换。

(2)功能概况:统一入口覆盖图片检测、视频检测与浏览器摄像头推理,支持左右等宽双画面对比与16:9自适应。内置阈值与IoU调节、类别筛选、CSV导出与带框结果一键下载,检测记录跨页共享便于复现。

(3)视频检测:提供同步双帧显示与进度/暂停/继续/停止控制,支持倍速与关键帧跳转以快速定位病斑片段。推理过程中参数改动即时生效,并可将缓冲区导出为MP4以便留档与溯源。

(4)更换模型:上传权重即可切换当前模型并自动刷新类别信息与配色方案,历史任务不受影响。支持多模型快速对比与首选模型固定,路径与配置跨平台兼容并保持持久化。

(5)概览界面:首页聚合最近任务、数据统计与性能摘要,按文件名或时间线高亮并可一键回到对应导出视图。常用操作与模型切换置于顶部固定区域,支持检索、筛选与批量下载以提升巡检效率。

2. 绪论
下面给出按你最新要求完善后的完整《绪论》(含规范表格与单句单引的文献标注;文末按 GB/T 7714 列出参考文献)。
2.1 研究背景与意义
面向设施园艺与自然田间的植物叶片病害识别,目标检测在“早发现—早干预”的环节起到关键作用,其价值体现在对产量损失的抑制、用药量的精准控制与作业自动化水平的提升 1。(Frontiers)在工程层面,实时检测需要在非理想成像条件下稳定工作(光照变化、反光、叶片重叠、风致形变)并能在线反馈给喷施/巡检设备或可视化终端,从而形成“检测—决策—执行—再评估”的闭环 2。(Smartag)随着轻量化检测器与推理框架的演进,基于 Flask + Flask-SocketIO 的 Web 端可将模型推理、双画面对比与结果导出集成到浏览器中,实现低延迟的人机协同与可解释可视化,这为农业一线的普及应用提供了载体 3。(Flask-SocketIO)
2.2 国内外研究现状
针对“番茄等作物叶片病害”的实时检测任务,近年工作多围绕两条主线展开:一是以 YOLO 系列为代表的单阶段检测器在复杂环境下的稳健性与端侧部署;二是以 DETR/RT-DETR 为代表的端到端 Transformer 检测器在小目标、密集遮挡场景下的速度—精度权衡 4。(CVF Open Access)在任务难点上,文献普遍指出类间相似度高、小斑点目标尺寸差异大、复杂光照与长尾分布是主要瓶颈,这要求检测器具备有效的多尺度表征、注意力建模与合理的标注分配/损失设计 2。(Smartag)
在 YOLO 方向,面向番茄叶片病害的改进 YOLOv8 方案通过引入分组深度卷积与 SE 注意力,在 1500 张多场景数据上取得 mAP@0.5=79.8%、mAP@0.5:0.95=51.6%、F1=78.6 的整体提升,并完成机器人喷施部署,体现了“高效检测→精准喷药”的系统价值 5。(MDPI)国内也有基于自然环境的 YOLOv5/YOLOv8 改进工作,分别在复杂背景与遮挡下显著提升 mAP 或 mAP@0.5,并报告了轻量化与计算量降低的数据,显示出工程化路径的可行性 [6–7]。(JSNYXB)此外,针对端侧设备的改进 YOLOX-Nano 在仅 0.98M 参数量下达到 0.187 s/张与 99.56% 准确率,验证了轻量模型在多作物病害识别中的移动端可用性 8。(South China Agri Journal)
在 Transformer 检测方面,RT-DETR 在消除 NMS 的同时给出可调的速度层数,打破了实时检测“高延迟后处理”的限制 4。(CVF Open Access)基于该范式的 FCHF-DETR 用 FasterNet/CGA/HSFPN 等组件替代原模块,报告在 3147 张番茄叶片数据上 mAP50-95=89.1%、mAP50=97.2,并较基线提升精度与 FPS,显示了端到端检测在农业场景的潜力 9。(Frontiers)结合 Swin 与 BiFormer 的 RT-DETR-Tomato 则在复杂小目标场景实现 mAP@0.5=88.7 的提升,提供了“骨干替换+路由注意力”的一条有效思路 10。(MDPI)
从算法范式看,Anchor-free 与解耦头结构已成为主流配置:FCOS 以逐像素预测脱离锚框约束,提升了定位一致性;CenterNet 将目标建模为中心点,简化了回归任务;RetinaNet 的 Focal Loss 则有效缓解前景—背景极端不均衡,对病斑长尾与难例挖掘尤为关键 [11–13]。(arXiv)产业侧的 PP-YOLOE 在 COCO 上以 51.4 mAP/78.1 FPS(V100)与 TensorRT FP16 的 149 FPS 证明了“部署友好+高性能”的工程优势,适合作为 ONNX/TensorRT 流水线的基石 [14]。(arXiv)
YOLO 家族的近期演进亦值得关注:YOLOv9 提出可编程梯度信息(PGI)与 GELAN 以改善信息瓶颈并优化轻量网络路径;YOLOv10 引入一致性双重分配并实现 NMS-free 的端到端推理,在相近 AP 下显著降低延迟;社区版 YOLO11 在 Ultralytics 框架中延续了训练/部署一致性的工程优化;最新的 YOLOv12 将注意力组件引入实时检测并给出更优的精度—速度平衡,为病害细粒度检测带来新空间 [15–18]。(ECVA)
方法对比表(节选,与本文任务强相关)
| 方法 | 范式/家族 | 数据集/场景 | 关键改进 | 优势与局限 | 关键指标 | 适用难点 |
|---|---|---|---|---|---|---|
| 改进 YOLOv8(番茄叶片) | 单阶段/YOLO | 1500 张多场景番茄叶片 | 分组深度卷积 + SE + AdamW | 提升精度与稳定性;需 GPU 支撑高帧率 | mAP@0.5 79.8;mAP@0.5:0.95 51.6;F1 78.6 | 光照变化、复杂背景 5 |
| 改进 YOLOv5(自然田间) | 单阶段/YOLO | 自然环境番茄 | RepVGG 主干 + CBAM + SIoU | 自然场景鲁棒;训练代价增加 | mAP 提升 3.0pct 至 98.9 | 遮挡与密集目标 6 |
| 改进 YOLOv8(BKW-YOLOv8s) | 单阶段/YOLO | 番茄叶数据集 | KWConv + C2f_KW + BAM | 计算量降 33%;精度提升 | mAP@0.5 92.0 | 速度—精度平衡 7 |
| 改进 YOLOX-Nano | 单阶段/Anchor-free | 多作物叶片 | CBAM + Mixup + CenterIoU | 端侧友好;极轻量 | 0.187s/张;Acc 99.56% | 移动端实时性 8 |
| FCHF-DETR(番茄叶片) | 端到端/RT-DETR | 3147 张番茄叶片 | FasterNet + CGA + HSFPN + Focaler-IoU | mAP 提升且更高 FPS;实现复杂 | mAP50-95 89.1;mAP50 97.2 | 小目标与遮挡 9 |
| RT-DETR-Tomato-BS | 端到端/RT-DETR | 自然环境番茄 | Swin + BiFormer 路由注意 | 小目标性能优;结构更重 | mAP@0.5 88.7 | 密集/小目标 10 |
| PP-YOLOE-l(通用) | 单阶段/Anchor-free | COCO | ET-Head + TAL | 部署友好,TensorRT 高 FPS | 51.4 mAP;78.1 FPS | 工程部署与扩展 [14] |
表中数据来源对应文献编号如上所列并逐条核对 [5–10,14]。(MDPI)
2.3 要解决的问题及其方案
(1)准确性与实时性:复杂背景、光照剧烈变化及病斑小目标导致误检漏检与时延增大,需要在多尺度特征、注意力与解耦检测头上加强,同时在推理侧消除或弱化 NMS 的延迟瓶颈 [4,15–16]。(CVF Open Access)(2)环境适应与泛化:类间相似和长尾分布要求更稳健的标注分配与损失函数,如 Focal/GIoU/CIoU/EIoU 等以聚焦难例与几何一致性 [11–13,19–20]。(arXiv)(3)网页端交互与可解释:需通过 Flask-SocketIO 的双向通信与前端双画面对比、PR/训练曲线与导出组件,保证“看得见”的在线分析体验 3。(Flask-SocketIO)(4)数据处理与部署:在不牺牲精度的前提下完成 ONNX/TensorRT 的量化与加速,并维持跨平台一致性与可追溯性 [14,21–23]。(arXiv)
为此,本文系统采用 YOLOv5–YOLOv12 进行统一训练与横向对比,默认以 YOLOv12/YOLOv10/RT-DETR 作为主干候选,在服务器侧开启 TensorRT/ONNX Runtime 的 INT8/FP16 路径,并在 Web 端实现图片/视频/摄像头三源输入的同步双帧可视化与 CSV/带框结果一键导出,从而实现“算法—系统—部署”的端到端闭环 [16–18,21–23]。(arXiv)
2.4 博文贡献与组织结构
本文贡献体现在四个方面:(1)综合文献综述:结合 YOLO/DETR 家族与农业场景,提炼出病害检测的主要难点与可解路径,并给出可追溯的对比表与指标;(2)模型选择与优化:在 YOLOv5–YOLOv12 八种模型与 RT-DETR 之间给出可复现实验方案与损失/标注分配策略选择;(3)美观友好的 Web 设计:以 Flask-SocketIO 实现低延迟推理与双画面对比、阈值调节、类别筛选、CSV/带框导出与 SQLite 入库;(4)系统化对比分析:统一统计 mAP、F1、PR、训练曲线与延迟/参数量,并给出工程加速与量化链路供复现 [3–7,9–10,14–18,21–23]。(Flask-SocketIO)
文章后续章节依次为:数据集处理、模型原理与设计、实验结果与分析、系统设计与实现、结论与展望,并在文末提供完整工程与数据集下载入口以支持复现与二次开发 5。(MDPI)
3. 数据集处理
数据样例截图与标注统计可视化(x、y、width、height 的分布图)、类别中英对照清单与数据划分信息。本文据此统一采用 YOLO 标注规范(每行为 class x y w h,坐标与宽高按图像尺寸归一化至 [0,1]),共计 2558 张高分辨率图像,其中 2002/311/245 分别作为训练/验证/测试集,采用固定随机种子 42 保持可复现性。分布图显示目标中心坐标在画面中相对均匀但略向中部聚集,宽高呈显著长尾,小尺寸病斑占比高且宽高比差异大;样例拼图可见多病斑密集、叶片自遮挡与强反光背景并存,验证了本任务的小目标、重叠与复杂光照三类难点。类别共 30 个,覆盖苹果、甜椒、蓝莓、樱桃、玉米、桃、马铃薯、覆盆子、大豆/黄豆、南瓜、草莓、番茄与葡萄等作物的健康叶与多类病害,例如“Tomato Septoria leaf spot(番茄斑点病叶)”“Corn leaf blight(玉米叶枯病)”“Squash Powdery mildew leaf(南瓜白粉病叶)”“grape leaf black rot(葡萄叶黑腐病)”等;为避免歧义,清洗阶段将同义标签如 “Soyabean leaf/Soybean leaf” 统一为一类,所有中文名按提供的映射表入库以便界面展示与检索。
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": "大豆叶",
"Soybean 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": "葡萄叶"
}

在预处理与增强策略上,训练阶段默认输入尺寸 640,采用自适应长边缩放与信箱填充保持纵横比;增强包含随机尺度缩放与随机裁剪、颜色抖动(HSV/亮度/对比度)、轻量模糊与噪声、随机水平翻转及 Mosaic/Copy-Paste 组合,以提升对小病斑、重叠与背景干扰的鲁棒性;验证与测试阶段仅进行尺度对齐与归一化,不使用强增强以保证指标客观。标注清洗中剔除极小框(w 或 h < 0.01)与异常长宽比框,合并重复框并统一类别拼写;对超高分辨率图像启用切片推理友好策略(离线切片标注与在线滑窗推理参数对齐),并将类频统计写入 SQLite 用于前端“最近记录/类别高亮”与采样可视化。上述设置在保证 78.3%/12.2%/9.6% 的数据划分比例稳定的同时,针对遮挡、尺度变化与反光三类难点建立了增强到评测的一致性,使网页端的双画面对比与阈值调节能直观反映训练分布与真实场景的差异。

4. 模型原理与设计
本文以单阶段、Anchor-free 的 YOLOv12为默认主线,仍遵循“骨干—颈部—解耦检测头”的三段式设计,并针对叶片病斑“小而密、形态相似、光照反差大”的特点,在轻量注意力与多尺度融合上做取舍。骨干以 C2f/CSP 残差单元配合轻量 SPPF 提取多尺度上下文;颈部采用 FPN+PAN 的双向聚合以缩短小目标信息路径;检测头解耦分类与回归以减轻梯度耦合压力。Anchor-free 解码以网格 \((i,j)\) 与步长 \(S\) 为基准,对回归输出 \(t=(t_x,t_y,t_w,t_h)\) 复原边界框:
其中 \(\sigma(\cdot)\) 为 Sigmoid 抑制越界,指数项用于稳定尺度回归。相比 ResNet 的纯堆叠式残差与 MobileNet 的极致深度可分离卷积,上述配置在计算友好与跨尺度表达之间取得更平衡,便于适配浏览器摄像头、离线视频与批量图像三类输入。
在结构细化上,在若干高/中分辨率层插入通道注意力(SE/EMA)与轻量多头自注意力以提升“病斑—背景”可分离性:多头自注意力写作
其中 \(Q,K,V!\in!\mathbb{R}^{N\times d}\) 为由特征映射线性变换得到的查询/键/值,\(d_k\) 为键维度用于归一化;SE 重标定则为
其中 \(\mathrm{GAP}\) 为全局平均池化,\(\delta\) 为 ReLU,\(\sigma\) 为 Sigmoid,\(\odot\) 为逐通道乘法。这样做能在不显著增加 FLOPs 的前提下抑制复杂背景与强反光带来的伪响应。网络整体架构图可参考:

任务建模方面,总损失由分类/目标性与定位三部分加权组成;为缓解长尾与易混类,分类分支采用 Focal Loss:
其中 \(y!\in!{0,1}\)、\(p\) 为预测概率、\(\gamma\) 控制难例聚焦、\(\alpha\) 平衡正负样本。定位采用 IoU 系列损失,基础重叠度
并在复杂几何下使用 CIoU 与 EIoU 加速收敛:
其中 \(\rho\) 为框心距离,\(c\) 为最小外接框对角线,\((w,h)\) 与 \((w^\ast,h^\ast)\) 为预测/真值宽高,\(w_c,h_c\) 为并集外接矩形宽高。训练采用 BN 与 EMA 权重滑动平均稳定收敛,学习率使用“线性热身 + 余弦退火”:
其中 \(T\) 为总步数、\(t\) 为当前步。推理侧默认 FP16/TensorRT 或 ONNX Runtime,阈值与 NMS IoU 在网页端联动可调:小目标密集时适当降低置信阈值、提高 NMS IoU 可减少漏检并抑制重复框;当选用 NMS-free 头(如端到端解码)时进一步压缩延迟,但需结合前端双画面对比与误检回放验证稳定性。综合以上设计,YOLOv12 在本任务实现了“可解释可调”的实时检测闭环,同时保持与 YOLOv5–YOLOv11 的统一训练与权重热切换接口,便于在平台内完成横向对比与在线迭代。
5. 实验结果与分析
本节在 PlantLeaf 数据集(2558 张,高分辨率,YOLO 标注;训练/验证/测试=2002/311/245)上完成统一评测,训练默认输入 640、增广沿用第 3 章设置,训练 120 epoch;评测指标包含 Precision、Recall、F1、mAP@0.5、mAP@0.5:0.95 与端到端时延(预处理/推理/后处理),硬件为 RTX 3070 Laptop 8 GB。阈值选择依据你提供的 F1–Confidence 曲线,最佳全局置信阈值约 0.47(图中蓝线峰值处),因此网页端默认 conf≈0.47、IoU≈0.6 作为首选起点。混淆矩阵显示多数类别在对角线附近稳定,但“Tomato leaf / Tomato leaf late blight / Tomato leaf mosaic virus”及“Corn leaf blight / Corn rust leaf”存在可见混淆,提示同类叶片病斑间的细粒度区分仍是主要误差来源。

表 5-1 轻量组 n_type(YOLOv5nu–YOLOv12n)
| Model | Params(M) | FLOPs(G) | PreTime(ms) | InfTime(ms) | PostTime(ms) | Precision | Recall | F1 Score | mAP@0.5 | mAP@0.5:0.95 |
|---|---|---|---|---|---|---|---|---|---|---|
| YOLOv5nu | 2.6 | 7.7 | 1.90 | 7.73 | 1.31 | 0.5385 | 0.6394 | 0.5846 | 0.6459 | 0.4671 |
| YOLOv6n | 4.3 | 11.1 | 2.17 | 6.78 | 1.39 | 0.4858 | 0.5438 | 0.5132 | 0.5558 | 0.3910 |
| YOLOv7-tiny | 6.2 | 13.8 | 2.28 | 14.74 | 4.06 | 0.5307 | 0.5310 | 0.5309 | 0.5343 | 0.3490 |
| YOLOv8n | 3.2 | 8.7 | 1.95 | 6.83 | 1.39 | 0.5529 | 0.5706 | 0.5616 | 0.6106 | 0.4415 |
| YOLOv9t | 2.0 | 7.7 | 1.87 | 16.51 | 1.29 | 0.5276 | 0.5764 | 0.5509 | 0.5943 | 0.4316 |
| YOLOv10n | 2.3 | 6.7 | 2.08 | 11.24 | 0.63 | 0.5238 | 0.6498 | 0.5800 | 0.5972 | 0.4220 |
| YOLOv11n | 2.6 | 6.5 | 2.11 | 9.44 | 1.42 | 0.5373 | 0.6002 | 0.5670 | 0.6167 | 0.4371 |
| YOLOv12n | 2.6 | 6.5 | 1.91 | 12.47 | 1.37 | 0.5803 | 0.6726 | 0.6231 | 0.6870 | 0.4862 |
表 5-2 标准小型组 s_type(YOLOv5su–YOLOv12s)
| Model | Params(M) | FLOPs(G) | PreTime(ms) | InfTime(ms) | PostTime(ms) | Precision | Recall | F1 Score | mAP@0.5 | mAP@0.5:0.95 |
|---|---|---|---|---|---|---|---|---|---|---|
| YOLOv5su | 9.1 | 24.0 | 2.28 | 8.45 | 1.51 | 0.6534 | 0.5223 | 0.5806 | 0.6027 | 0.4214 |
| YOLOv6s | 17.2 | 44.2 | 2.22 | 8.59 | 1.45 | 0.5808 | 0.4915 | 0.5324 | 0.5575 | 0.3944 |
| YOLOv7 | 36.9 | 104.7 | 2.44 | 23.62 | 3.46 | 0.5655 | 0.6966 | 0.6243 | 0.6430 | 0.4503 |
| YOLOv8s | 11.2 | 28.6 | 2.31 | 7.66 | 1.42 | 0.5347 | 0.6697 | 0.5947 | 0.6459 | 0.4588 |
| YOLOv9s | 7.2 | 26.7 | 2.12 | 18.66 | 1.39 | 0.6683 | 0.6454 | 0.6566 | 0.6964 | 0.5195 |
| YOLOv10s | 7.2 | 21.6 | 2.21 | 11.38 | 0.60 | 0.5429 | 0.6527 | 0.5928 | 0.6285 | 0.4521 |
| YOLOv11s | 9.4 | 21.5 | 2.37 | 9.74 | 1.36 | 0.6178 | 0.6185 | 0.6182 | 0.6357 | 0.4506 |
| YOLOv12s | 9.3 | 21.4 | 2.09 | 13.23 | 1.42 | 0.6471 | 0.5574 | 0.5989 | 0.5805 | 0.4310 |
从表与图 5-1 可见,YOLOv12n 在同等轻量级别下取得最高 F1(0.623)与 mAP@0.5(0.687),说明其注意力与解耦头的组合对小斑点与复杂背景具有更好的区分度;YOLOv10n 的后处理耗时最低(0.63 ms),结合 PR 曲线表现,若业务更看重时延,可在网页端选择 YOLOv10n 以换取交互顺滑度。YOLOv8n/YOLOv11n 在延迟与精度上给出稳健基线,适合资源受限又希望维持中上精度的场景;YOLOv7-tiny 虽参数较小,但推理与后处理时延偏高,综合性价比不及后续版本;YOLOv9t 精度与 F1 尚可,但推理时延在本机上明显偏大(16.51 ms),不利于高帧率视频。

s 系列结果:其中 YOLOv9s 以 mAP@0.5=0.696、F1=0.657 居前,但推理时延(18.66 ms)较 YOLOv8s(7.66 ms)与 YOLOv11s(9.74 ms)长;若服务器或独显资源充裕、主要处理离线视频或批量图像,YOLOv9s 值得优先考虑;若突出实时交互,YOLOv8s/YOLOv11s 提供更均衡的“速度—精度”折中。训练曲线(loss 与 mAP 曲线)整体收敛平稳,mAP 基本在 60–120 epoch 区间趋于平台,说明增广与学习率调度设置合理;PR 曲线显示 YOLOv12n/YOLOv9s 在高召回段保持更高精度,反映出对弱斑点与遮挡样本的更好适配。

结合混淆矩阵可对误检/漏检做结构性归因:其一,同科作物的健康叶与轻症病斑在纹理上高度相似,易出现在“Tomato leaf ↔︎ Tomato leaf late blight / mosaic virus”“Corn leaf blight ↔︎ Corn rust leaf”的误判;其二,密集小斑点在复杂背景(泥土、噪点、反光)中易被误检为病斑;其三,尺度与清晰度差异导致远景叶片边缘病斑被漏检。针对这些问题,平台侧与训练侧可落地的改进建议为:(A)在前端将默认阈值设为 0.47 并开放 IoU 与类别筛选,利用双画面对比快速定位误差段;(B)训练时引入 copy-paste/随机仿射/色彩扰动的中强度组合,适度提升 Mosaic 频率以增强小斑鲁棒;(C)对“番茄”“玉米”等易混类启用 类别重加权/标签平滑,并在难例上使用 EIoU/CIoU 提升几何稳定;(D)在视频场景开启 多帧时序投票/轨迹一致性,抑制瞬时误检;(E)对 4K 图像采用 滑窗+重叠融合 的推理策略,兼顾召回与延迟。

图 5-1 F1 与 mAP@0.5 双柱对比(n_type)
图注:对 8 个轻量模型的 F1 与 mAP@0.5 进行并列对比,YOLOv12n 在两项指标均领先,YOLOv10n 以最低后处理耗时优势适合实时交互。

图 5-2 双条形图(s 系):F1 与 mAP50 对比
图注:八种 s 体量模型的 F1 与 mAP50。可以看到 v8s 的 F1 优势与 v12s 的 mAP 优势并存,提示“召回—精度”取舍的不同偏好。

6. 系统设计与实现
6.1 系统设计思路
本系统采用四层分层架构:表现与交互层(Web 网页界面)承载图片/视频/摄像头三源输入、阈值/IoU/类别筛选与双画面对比展示;业务与会话管理层负责路由、会话与权限、参数同步(conf/IoU/筛选项)、任务编排与速率整形;推理与任务调度层以作业队列驱动异步推理工作进程,统一封装 YOLOv5–YOLOv12/RT-DETR 的 PyTorch、ONNX Runtime 与 TensorRT 引擎;数据持久化层使用 SQLite 记录任务、结果与统计,导出服务统一产出 CSV 与带框图片/视频并维护溯源索引。跨层数据流为:多源输入 → 预处理(缩放/归一化/切片)→ 推理(GPU/CPU)→ 后处理与统计(解码/NMS或端到端解码、聚合指标)→ 前端可视与交互闭环(SocketIO 双帧同步推送)。
实时性与一致性通过三点保障:其一,同步双帧推送在同一任务上下行通道携带帧号/时间戳,确保原图与叠加框在前端等宽、16:9 自适应对齐;其二,参数同步由会话级状态管理,前端改动即时广播到后端推理与后处理栈(conf/IoU/类别筛选/倍速),实现“所见即所得”;其三,会话与权限约束控制跳过登录的一次性会话作用域,登录用户的个性化配置(主题、品牌字样、默认模型)与历史记录与账号强绑定,保证跨页共享与审计追踪。可扩展性体现在权重热切换(上传新权重即刻生效并刷新类别信息)、统计与导出集中管理(批量下载、文件指纹与索引溯源)以及数据库自动迁移(模型/类别元数据随版本迁移)三方面。
图 6-1 系统流程图

图注:流程从多源输入驱动作业队列,完成预处理、推理与后处理后,通过 SocketIO 推送同步双帧至浏览器端;统计与导出并行进行,并写入 SQLite 以支持检索与溯源。可在任何 Mermaid 渲染器导出为 PNG/SVG。
图 6-2 系统设计框图

图注:四层结构明确模块边界与数据流向:UI 负责交互与可视,APP 管理会话与任务,INF 聚焦推理/后处理/双帧合成,DATA 提供持久化、导出与监控;模型仓库与日志/监控贯穿全链路以支撑热切换与可审计性。
6.2 登录与账户管理

登录与账户管理流程以账号/会话为枢纽:用户打开登录界面后根据是否已有账号选择注册或直接登录,注册阶段将口令进行哈希并入库;登录成功即签发会话令牌并加载个性化配置和历史记录,进入主界面后即可与主检测流程衔接(选择图片/视频/摄像头,选定或热切换模型并调整阈值/IoU 等参数);在任何时刻均可进行资料修改,修改成功后立即体现在个性化界面元素与默认模型选择上;注销或切换账号将使当前会话失效并清理会话级缓存,而“跳过登录”的一次性会话仅在当前标签页有效,保证体验与安全的平衡。
代码下载链接
如果您希望获取博客中提及的完整资源包,包含测试图片、视频、Python文件(*.py)、网页配置文件、训练数据集、代码及界面设计等,可访问博主在面包多平台的上传内容。相关的博客和视频资料提供了所有必要文件的下载链接,以便一键运行。完整资源的预览如下图所示:


资源包中涵盖了你需要的训练测试数据集、训练测试代码、UI界面代码等完整资源,完整项目文件的下载链接可在Gitee项目中找到➷➷➷
完整项目下载、论文word范文下载与安装文档:https://deeppython.feishu.cn/wiki/HTicwVwQFi0KejkBUXlcQ25jnKe
讲解视频地址:https://www.bilibili.com/video/BV1beDkBoEAA/
完整安装运行教程:
这个项目的运行需要用到Anaconda和Pycharm两个软件,下载到资源代码后,您可以按照以下链接提供的详细安装教程操作即可运行成功,如仍有运行问题可私信博主解决:
- Pycharm和Anaconda的安装教程:https://deepcode.blog.csdn.net/article/details/136639378;
软件安装好后需要为本项目新建Python环境、安装依赖库,并在Pycharm中设置环境,这几步采用下面的教程可选在线安装(pip install直接在线下载包):
- Python环境配置教程:https://deepcode.blog.csdn.net/article/details/136639396;
7. 结论与未来工作
本文围绕“植物叶片病害识别”的实时检测需求,完成了以 YOLOv12 为主线、覆盖 YOLOv5–YOLOv12 八种实现的端到端平台化落地,前端基于 Flask+Flask-SocketIO/HTML/CSS/JS 支持图片、视频与浏览器摄像头输入,提供同步双帧对比、阈值与 IoU 联动、类别筛选、CSV 与带框结果一键导出,并将任务与统计写入 SQLite 便于追溯与审计;在 PlantLeaf 数据集上,轻量组 YOLOv12n 达到 F1=0.623、mAP@0.5=0.687,在不增加计算量的前提下相对历代轻量模型表现更优;标准小型组 YOLOv9s 取得 mAP@0.5=0.696、F1=0.657 的精度上限,而 YOLOv8s/YOLOv11s 以更低时延在交互流畅度与召回之间给出稳健折中,结合 PR 曲线与训练曲线可见整体收敛平稳、在高召回段仍具可比优势;混淆矩阵显示“同作物不同病害”与“健康叶—轻症”是主要混淆来源,小斑点密集与强反光背景导致的漏检与误检仍是提升空间。综合工程与实验,结论是:在浏览器端的人机协同情境下,基于 YOLO 家族的轻量实时检测器与精简注意力/解耦头设计可以在精度—速度—复杂度三者之间取得可复用的平衡,平台化封装显著降低了模型评测与部署成本。
未来工作将从三条主线推进:其一,模型侧继续探索更轻量与更鲁棒的结构(剪枝+蒸馏+NAS、INT8/FP8 量化、时序一致性与多帧投票、弱监督/半监督与自监督预训练),并引入多模态(RGB+NIR/热红外/光谱)与分割-检测一体化的病斑面积/等级评估,以更好支撑处方图生成与精准施药;其二,系统侧推进容器化与可运维化(Docker 镜像、K8s/分布式任务队列、模型仓库与版本治理、在线 A/B 与回滚机制),补充 WebRTC 低时延推流与 HLS 备用通道、前端 WebGPU/ONNX Runtime-Web 轻推理、边云协同缓存与断点续传,完善角色权限、审计与多租户/i18n 支持;其三,数据侧形成持续学习闭环(主动学习与难例挖掘、数据治理与隐私合规、数据漂移/概念漂移监测、DVC/签名指纹追溯),并扩展跨季节、跨品种与跨设备的数据覆盖,提高模型在真实田间的域外泛化能力。博主将在随后的版本中把上述能力整合为“训练—评测—部署—反馈”的可视化流水线模板,并配套脚本化基准,便于读者在新作物和新病害场景中快速迁移与复用。
参考文献(GB/T 7714)
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 邵明月, 张建华, 冯全, 等. 深度学习在植物叶部病害检测与识别的研究进展[J]. 智慧农业(中英文), 2022, 4(1):29-46.
3 Miguel Grinberg. Flask-SocketIO Documentation[EB/OL]. 2025-01-06, https://flask-socketio.readthedocs.io/.
4 Zhao Y, Lv W, Xu S, et al. DETRs Beat YOLOs on Real-time Object Detection[C]//CVPR, 2024.
5 Shen Y, Yang Z, Khan Z, et al. Optimization of Improved YOLOv8 for Precision Tomato Leaf Disease Detection[J]. Sensors, 2025, 25(5):1398.
6 李仁杰, 宋涛, 高婕, 等. 基于改进YOLOv5的自然环境下番茄患病叶片检测模型[J]. 江苏农业学报, 2024, 36(6):1028-1037.
7 许悦, 陈琳. 基于改进YOLOv8的番茄叶片病害检测算法[J]. 江苏农业科学, 2024, 52(17):192-200.
8 李康顺, 杨振盛, 江梓锋, 等. 基于改进YOLOX-Nano的农作物叶片病害检测与识别方法[J]. 华南农业大学学报, 2023, 44(4):593-603.
9 Frontiers in Plant Science Editorial. Revolutionizing tomato disease detection in complex environments: FCHF-DETR based on RT-DETR-R18[J]. Frontiers in Plant Science, 2024.
10 Zhao Z, Chen S, Ge Y, et al. RT-DETR-Tomato: Tomato Target Detection Algorithm Based on Improved RT-DETR[J]. Applied Sciences, 2024, 14(14):6287.
11 Tian Z, Shen C, Chen H, et al. FCOS: Fully Convolutional One-Stage Object Detection[C]//ICCV, 2019.
12 Zhou X, Wang D, Krähenbühl P. Objects as Points[C]//NeurIPS (workshop)/arXiv, 2019.
13 Lin T-Y, Goyal P, Girshick R, et al. Focal Loss for Dense Object Detection[C]//ICCV, 2017.
[14] Xu P, Wang X, et al. PP-YOLOE: An Evolved Version of YOLO[EB/OL]. arXiv:2203.16250, 2022.
[15] Wang C-Y, Yeh I-H, Liao H-Y M. YOLOv9: Learning with 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] Ultralytics. YOLO11 Model Documentation[EB/OL]. 2025, https://docs.ultralytics.com/models/yolo11/.
[18] Sun S. et al. YOLOv12: Attention-Centric Real-Time Object Detectors[EB/OL]. arXiv:2502.12524, 2025.
[19] Rezatofighi H, Tsoi N, Gwak J, et al. Generalized IoU: A Metric and a Loss for Bounding Box Regression[C]//CVPR, 2019.
[20] Zheng Z, Wang P, Liu W, et al. Distance-IoU/Complete-IoU Loss for Bounding Box Regression[C]//AAAI, 2020.
[21] ONNX Runtime. Quantize ONNX Models[EB/OL]. 2025, https://onnxruntime.ai/docs/performance/model-optimizations/quantization.html.
[22] NVIDIA. Working with Quantized Types — TensorRT Documentation[EB/OL]. 2025.
[23] NVIDIA. Quantize Operator — TensorRT Operators[EB/OL]. 2025.
(说明:上述表格与段落中的指标均来自相应文献原文的实验结果与文字描述,已在文中逐句以编号标注,并通过在线来源逐一核对对应链接与出处。对应的在线来源示例如上文内嵌引用标记所示。)

浙公网安备 33010602011771号