最新YOLO实现的番茄病害实时检测平台(Flask+SocketIO+HTML_CSS_JS)

摘要

本文面向温室与露地场景的番茄病害实时检测,构建了一个端到端的平台级解决方案:后端基于 Flask + Flask-SocketIO,前端采用 HTML/CSS/JS 实现消息推送与可视交互;系统支持图片/视频/浏览器摄像头三类输入,提供左右等宽双画面对比进度控制(暂停/继续/停止)阈值与类别筛选,并内置CSV 导出带框结果一键下载(图像/视频)SQLite 入库与检索登录/注册(可跳过)模型选择/权重上传等功能。算法侧覆盖 YOLOv5–YOLOv12(8 种),在统一数据集与评测协议下对比 mAP(50–95)F1PR 曲线训练曲线,并结合延迟与显存占用完成轻量化与部署评估;网页端集成双帧同步渲染进度条回放,实现端侧体验与研究对比的统一。系统面向真实生产流程,提供结果溯源批量导出,支持多会话最近记录高亮,便于质检追踪与模型快速迭代。文末提供完整工程与数据集下载链接

讲解视频地址基于深度学习的番茄成熟度识别系统(Web系统+完整项目分享+数据集+多YOLO模型)
YOLOv12-v11/v10/v9/v8/v7/v6/v5系统(八个模型,含说明论文)合集下载:https://mbd.pub/o/bread/YZWck59qbA==
说明论文下载:https://mbd.pub/o/bread/YZWck5xrZw==
YOLOv12下载:https://mbd.pub/o/bread/YZWbmpptZA==
YOLOv11下载:https://mbd.pub/o/bread/YZWbm5prag==
YOLOv10下载:https://mbd.pub/o/bread/YZWbm5lsaQ==
YOLOv9下载:https://mbd.pub/o/bread/YZWbmp9ybQ==
安装与教程文档:https://deeppython.feishu.cn/wiki/E2A1w09kbiWQoPkpw5Sc5Ymrnhg

@

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


1. 网页功能与效果

(1)登录注册:提供注册、登录与一次性跳过三种入口,跳过仅在当前会话生效以便快速体验;成功登录后自动载入个人配置与历史记录,口令采用哈希与过期策略保障安全。主导航与面包屑在任何页面均可返回个人中心与检测页,最近记录支持搜索与CSV行高亮定位。
在这里插入图片描述

(2)功能概况:系统以“概览 → 图片/视频/摄像头检测 → 模型选择 → 导出视图”的动线组织功能,关键状态与性能指标在顶部状态栏即时展示。所有检测过程可配置阈值、类别筛选与结果入库,导出区统一管理CSV与带框图片/视频的一键下载。
在这里插入图片描述

(3)视频检测:采用左右等宽的同步双帧呈现原视频与检测结果,16:9 自适应并保持缩放与拖拽联动;提供进度拖动、暂停、继续与停止等控制,便于逐帧复盘。后台缓冲可选择导出为MP4,支持按时间段与文件名检索历史检测记录。
在这里插入图片描述

(4)更换模型:支持上传权重即刻切换当前YOLO模型,类别列表与配色方案随之自动刷新,避免手工错配;同时保留最近使用模型以便快速回滚。路径规范跨平台兼容,数据库在版本升级时自动迁移,确保长期可用与统计口径一致。
在这里插入图片描述

(5)概览界面:首页以卡片化仪表盘展示近7日任务量、平均置信度、错误告警与导出次数,并提供一键跳转至对应详情页。近期检测条目支持关键词搜索与高亮定位,结合迷你PR曲线和推理耗时分布,帮助博主快速评估当前模型与数据质量。
在这里插入图片描述


2. 绪论

2.1 研究背景与意义

在温室与露地田间的番茄病害监测中,目标检测需要同时满足高准确率、低时延与强可解释可视化,以支撑病斑定位、类型判读与溯源留痕等环节,从而把“感知—诊断—处置”的流程压缩到分钟级甚至秒级 1。相较于受控环境的分类任务,田间检测常面临光照剧变、遮挡、尺度差异与类间相似等挑战,导致分布漂移显著,因而必须在工程侧配合实时渲染、双画面对比与记录导出以形成可追溯数据资产 2。PlantVillage 等经典数据集推动了番茄病害视觉研究的早期发展,但其背景单一,难以直接迁移到真实生产环境,近年的实景数据集正弥补这一缺口并强调跨域泛化评测 3。面向部署,ONNX Runtime 与 TensorRT 的量化与算子融合提供了端到端软实时保障,使多路视频与浏览器互动成为可能 5
(Springer Link) (Frontiers) (TensorFlow) (ScienceDirect) (ONNX Runtime) (NVIDIA Docs)


2.2 国内外研究现状

围绕“在野”条件下的番茄病害检测,近年研究从受控数据—>田间数据—>系统落地逐步推进,结论显示分类网络在受控条件的高分值难以直接迁移到复杂背景,而需要检测范式、数据增强与跨域验证共同作用以缓解分布偏移 1。新近公开的温室实拍番茄病害数据集强调多尺度与多视角标注,为评估小目标与弱纹理病斑提供了基准补充 4。国内文献亦报告在有限类别的叶部病害上可达较高分类精度,但在真实田间仍需检测框架承载定位与多类并发判断以支撑生产决策 21
(Springer Link) (ScienceDirect) (Niam)

在算法范式上,RetinaNet 通过 Focal Loss 缓解正负样本极不均衡问题并稳定单阶段检测的召回 7;FCOS 采用逐像素 Anchor-free建模,降低先验依赖与调参成本 8;CenterNet 将目标视为中心点并回归尺寸与偏移,在高帧率场景具备实现优势 9;SSD 的多尺度特征图输出提供了实时检测与尺度适配的早期工程范式 10;两阶段代表 Faster R-CNN 仍是精度基线,但因候选区域与后处理带来额外时延 11;EfficientDet 的 BiFPN + 复合缩放为“精度—效率”权衡给出可复用架构策略 12
(CVF Open Access) (CVF Open Access) (arXiv) (UNC Computer Science) (arXiv) (arXiv)

YOLO 家族在实时检测中持续演进:YOLOv7 通过可训练“免费项”等设计在 30FPS 以上区间刷新实时段精度 14;YOLOv8 统一检测/分割/分类接口并优化了解耦头与训练流程,提升工程集成友好性 15;YOLOv9 提出 PGI/GELAN 以增强梯度与特征表达 16;YOLOv10 引入一致双分配NMS-free 训练,降低后处理时延并强化端到端部署潜力 17;YOLO11 作为最新稳定分支改进了速度—精度—易用性平衡,便于生产落地 18;YOLO12 将注意力机制前置为核心构件,在保持实时性的同时提升精度,但官方亦提示其为社区模型、训练稳定性与 CPU 吞吐需权衡 19
(arXiv) (Ultralytics Docs) (arXiv) (NeurIPS Proceedings) (Ultralytics Docs) (Ultralytics Docs)

Transformer 检测方面,RT-DETR 通过混合编码器 + 不确定性最小化查询选择在 COCO 上取得 R50 53.1% AP 与 T4 108 FPS 的组合,展示了端到端免 NMS的实时可行性 20。工程侧的 Anchor-free 工业化分支 PP-YOLOE 报告在 TensorRT FP16 下可达百帧级吞吐并保持 50%+ mAP 水平,部署友好度高 13。国内研究在农作物微小病虫害检测上引入轻量骨干与注意力模块,兼顾小目标召回与边缘设备适配,为温室与田间的混合部署提供了思路 22
(CVF Open Access) (ar5iv) (Niam)

表 1 典型检测方法与番茄病害实时检测相关特性对比(节选)

方法 范式/家族 数据集 关键改进 优势与局限 代表指标(mAP/速度/延迟等) 适配难点 来源
RT-DETR-R50 Transformer/E2E COCO 混合编码器、查询选择 免 NMS、端到端、可调解码层数 53.1% AP,T4 108 FPS 训练复杂度、依赖高效实现 20 (CVF Open Access)
YOLOv7 单阶段/YOLO COCO 可训练“免费项”、重参数化 实时段 SOTA、生态成熟 56.8% AP(≥30FPS段声明) 后处理/NMS带来尾时延 14 (arXiv)
PP-YOLOE-L 单阶段/YOLO系 COCO Anchor-free、TAL、ET-Head 工业部署友好、吞吐高 51.4 mAP@V100 78.1 FPS;FP16 可达百帧级 小目标极端场景需策略 13 (arXiv)
CenterNet Anchor-free COCO 中心点建模 结构简洁、142 FPS 28.1% AP@142 FPS 小目标回归稳定性 9 (arXiv)
YOLOv12-N 单阶段/YOLO COCO 注意力中心化 精度提升、速度可比 40.6% mAP;T4 推理 1.64 ms(示例) 训练稳定性/CPU吞吐 19 (arXiv)

注:表中数值均来自对应论文或官方文档公开报告,用于支撑“精度—速度—工程可用性”的定性比较;不同硬件与实现细节会影响绝对值。


2.3 要解决的问题及其方案

(1)准确性与实时性:田间光照变化、遮挡与病斑细粒度纹理导致检测难度与时延波动并存,需要在≥30 FPS 的前提下稳定 mAP 与 F1;方案采用 YOLOv12 为核心并与 YOLOv5–YOLOv11、RT-DETR、PP-YOLOE 统一评测,引入解耦头、Mosaic/Copy-Paste 等增强与自动混合精度,结合 NMS-free 训练以降低后处理瓶颈 17。(NeurIPS Proceedings)
(2)泛化与环境适应:跨温室/露地与跨季节分布漂移显著;方案以迁移学习与多域混合训练、难例采样和标签审计为主,并通过浏览器端双画面对比+误检回放闭环到数据改进,必要时引入 attention-centric 结构提升上下文建模 19。(arXiv)
(3)网页端交互与可追溯:需支持图片/视频/摄像头三源输入、同步双帧与进度控制、阈值与类别筛选、结果入库与一键导出;方案基于 Flask-SocketIO 的双向通道与会话管理,保证参数广播与渲染一致性。
(4)部署与能效:多路并发与导出任务要求低时延与稳定吞吐;方案采用 PyTorch→ONNX→TensorRT 链路、FP16/INT8 量化、流水线解码与异步 I/O,并对 CPU 侧使用 ORT 的动态/静态量化以控制资源占用 5。(ONNX Runtime) (NVIDIA Docs)


2.4 博文贡献与组织结构

(1)综合文献综述:从番茄病害实景检测的任务挑战出发,系统梳理 Anchor-based/Anchor-free、两阶段/单阶段与 Transformer 检测器在精度—速度—部署层面的权衡,并以 COCO/田间数据与真实工程约束为背景建立对比框架 1。(Springer Link)
(2)模型选择与优化:以 YOLOv12 为主线,对比 YOLOv5–YOLOv11、RT-DETR、PP-YOLOE,并结合 NMS-free、注意力、解耦头与蒸馏/量化等策略给出面向“软实时”的实现要点 17。(NeurIPS Proceedings) (arXiv)
(3)美观友好的网页设计:基于 Flask + SocketIO + HTML/CSS/JS 实现三源输入、左右等宽双画面对比、进度/暂停/继续/停止、阈值/类别筛选、CSV/带框结果下载与 SQLite 入库,支持登录/注册(可跳过)、模型切换与权重上传。
(4)算法效果对比分析:统一评测 mAP(50–95)、F1、PR 曲线与延迟/显存,输出可视化与误检案例并给出改进建议。
(5)完整资源开放:文末提供可复现实验工程与数据集下载链接,便于二次开发与扩展。


3. 数据集处理

本研究采用自建番茄病害检测数据集,共计 6371 张高质量图像,按训练/验证/测试三部分划分:训练集 5520 张、验证集 566 张、测试集 285 张,约占比分别为 86.6% / 8.9% / 4.5%,固定随机种子(seed=42)以保证可复现实验。标注遵循 YOLO 规范(每行为 class x y w h 且坐标归一化至 [0,1]),类别统一为“绿色/红色/损坏”,与原始标注中的英文别名保持一一映射(例如 Chinese_name = {"Green":"绿色","Red":"红色","damaged":"损坏"},同时将可见于早期样例中的 “Fresh Tomato/Rotten Tomato”等同归并至上述定义),并在清洗阶段去除了边界框越界、重叠度异常与空标注样本。图像来源覆盖手机与相机在不同光照、背景与遮挡条件下的近景采集,样例可视化(直方图、位置热力图与马赛克拼贴)显示每张图往往包含多实例且存在手持遮挡、强反光与尺度差异,这与温室及分拣环境的真实场景一致。为避免信息泄漏,划分采用分层抽样与相似场景约束,确保同一拍摄序列不跨集合出现,测试集严格留作最终评估。

Chinese_name = {"Green": "绿色", "Red": "红色", "damaged": "损坏"}

        
在这里插入图片描述

从统计特征看,类别分布呈轻度长尾:红色成熟番茄样本最多,绿色与损坏相对稀少;框中心在图像四象限与中部均有高密区,表明取景多样且目标密集分布明显;宽高分布呈正相关并偏向中小尺度,宽度直方图在 0.1–0.5 区间峰值明显,高度分布略窄,提示模型需具备对小目标与细长框的鲁棒性。结合标注框覆盖图与散点矩阵可见部分样本存在强高光与遮挡,使得成熟度边界模糊、类间相似度高,这是后续损失设计与增强策略需要直接面对的难点。
在这里插入图片描述

针对上述特征,数据预处理阶段采用 640×640 统一缩放与色彩空间标准化,启用 Mosaic/Random Perspective/HSV 抖动、MixUp 与 Copy-Paste 等复合增强以提高对密集与遮挡场景的泛化能力;对长尾类别引入类别重采样与概率 MixUp 以缓解“损坏”样本稀缺带来的训练偏置,并在训练前对曝光严重或模糊样本进行人工复核与剔除;推理侧与评测侧保持与训练端一致的归一化与填充策略。所有样本与标注在入库前完成别名统一与质量校验,数据版本与划分清单同步记录到 SQLite 以支持溯源与跨实验对比。


4. 模型原理与设计

本系统以 YOLOv12 为主线实现番茄病害检测的实时检测与分级,其设计延续单阶段密集预测范式:输入图像经骨干网络抽取多尺度语义特征,颈部进行自顶向下/自底向上双向融合,解耦检测头并行完成类别概率与边框回归,推理端依据置信度与 IoU 阈值完成筛选与去重。与传统卷积主导的版本不同,YOLOv12在骨干中引入以区域自注意力(Area Attention)为核心的注意力化设计,并配合 R-ELAN 聚合单元改善深层优化稳定性,从而在保持实时性的同时提升复杂背景下的辨识力(官方文档给出“注意力居中”的设计要点及速度-精度权衡说明)。(Ultralytics Docs)

在结构层面,骨干部分由卷积与轻量注意力模块交替堆叠:给定特征图\(X\in\mathbb{R}^{H\times W\times C}\),标准缩放点积注意力写作

\[Q=XW_Q,\;K=XW_K,\;V=XW_V,\quad \mathrm{Attn}(X)=\mathrm{softmax}\!\left(\frac{QK^{\top}}{\sqrt{d}}\right)V, \]

其中\(d\)为键/查询维度;YOLOv12的区域注意力将\(X\)划分为\(l\)个规则区域,仅在局部区域内计算\(QK^{\top}\)以降低\(O((HW)^2)\)的复杂度并扩大有效感受野,这对存在遮挡与强反光的温室画面尤为有益。颈部采用金字塔多尺度融合(FPN/PAN 思路),以可学习权重实现跨层聚合:设\(\{F_i\}\)为不同尺度特征,融合输出

\[\tilde w_i=\max(0,w_i),\quad \hat w_i=\frac{\tilde w_i}{\sum_j \tilde w_j+\varepsilon},\quad F_{\text{out}}=\sum_i \hat w_i\cdot \mathcal{T}_i(F_i), \]

其中\(\mathcal{T}_i\)表示必要的上/下采样操作、\(\varepsilon\)防止除零;该配方在小目标密集与尺度跨度大的番茄簇场景里能稳定提升召回。网络整体架构图如下图所示:
在这里插入图片描述

在任务建模与损失函数方面,检测头采用解耦结构:分类支路使用 Focal Loss 抑制易样本主导,

\[\mathcal{L}_{\text{cls}}=-\alpha(1-p_t)^{\gamma}\log p_t, \]

其中\(p_t\)为正样本预测概率、\(\alpha,\gamma\)为重加权与难例调制系数;回归支路采用 CIoU/EIoU 以协调重叠、中心与尺度三要素,

\[\mathrm{CIoU}=\mathrm{IoU}-\frac{\rho^2(\mathbf{b},\mathbf{b}^\ast)}{c^2}-\alpha v, \quad v=\frac{4}{\pi^2}\left(\arctan\frac{w^\ast}{h^\ast}-\arctan\frac{w}{h}\right)^2, \]

其中\(\mathbf{b},\mathbf{b}^\ast\)为预测与真值框中心,\(c\)为最小包围框对角线,\(w,h\)为宽高;该设计能在“红/绿相近色阶”“高光反射导致边界模糊”等情况下稳定边框回归。为了进一步缓解类间相似与长尾分布,训练中配合标签平滑\(y'=(1-\epsilon)y+\epsilon/K\)类别重权,并对损坏番茄等稀缺类别启用重采样以提升召回。

在训练与正则化策略上,采用 Cosine 学习率退火与 EMA 权重滑动平均来改善收敛与泛化,学习率在第\(t\)步记为

\[\eta_t=\eta_{\min}+\tfrac{1}{2}(\eta_{\max}-\eta_{\min})\left(1+\cos\tfrac{\pi t}{T}\right), \]

配合 Mosaic/HSV 抖动/MixUp/Copy-Paste 等增强覆盖强光、遮挡与尺度变化;推理端依据场景统计设定\(\text{conf}\in[0.25,0.5]\)\(\text{IoU}\in[0.5,0.7]\)的阈值范围,必要时启用 NMS/软-NMS 或与 YOLOv10 一致的一致性分配与近端 NMS-free 训练思路以降低延迟,用于视频连续帧时再结合时序稳定(如置信度温和平滑)抑制跳变。为满足浏览器/边缘端实时要求,工程上提供 ONNX/TensorRT/WebGPU 导出与推理路径,并对注意力模块进行算子融合与半精度/量化以获得更低时延;上述注意力-中心的架构与工程化加速的结合,是本系统在“多源输入—实时检测—在线可视—可溯源导出”闭环中取得稳定 30FPS 以上表现的关键。


5. 实验结果与分析

本节在 RTX 3070 Laptop(8 GB) 上统一评测 YOLOv5–YOLOv12 八个“n”与八个“s”规模模型,输入分辨率保持一致(默认 640),指标包括 Precision、Recall、F1、mAP50、mAP50–95 与端到端延迟(预处理/推理/后处理分段统计)。
在这里插入图片描述

综合结果显示:在 n 系列中,YOLOv6n取得最高 F1(≈0.596),而 YOLOv12n在 mAP50 上略占优势(≈0.390),体现出“结构轻量+训练策略优化”对小模型召回的帮助;在 s 系列中,YOLOv12s的 mAP50 最高(≈0.395),F1 亦为该组最优(≈0.447),说明注意力中心化设计在本任务的复杂背景与反光条件下更稳健。两组间的整体 mAP50 接近,但 n 组的最佳 F1 略高,意味着在相同硬件预算下,n 组更易获得高召回的实时方案,而 s 组更有利于稳态精度的提升,如下图双条形图所示。

从速度维度看,n 组的典型推理时延在 6–17 ms 之间,其中 YOLOv6n(6.78 ms)YOLOv8n(6.83 ms)最接近实时上限,YOLOv9t受结构开销影响推理更慢(16.51 ms);
在这里插入图片描述

s 组YOLOv8s(7.66 ms)推理最快,而 YOLOv7因 FLOPs 较大导致时延显著升高(23.62 ms)。结合预处理与后处理,YOLOv10s依靠较短的后处理(0.60 ms)获得良好的端到端延迟平衡,适合在 Web 端与边缘端部署。若对吞吐极敏感,建议优先 v6n/v8s;若以 mAP 为先,优先 v12s/v10s。
在这里插入图片描述

误差分布方面,PR 曲线F1-Confidence 曲线表明全类最优阈值约在 0.08–0.10 区间,过高的置信度会迅速牺牲召回。训练曲线显示 box/cls/dfl loss 稳定下降,mAP50 逐步提升并在后期趋稳,但验证端 cls loss 末期略有回弹,提示在“损坏/绿色”样本较少时有轻度过拟合风险。
在这里插入图片描述

结合第 3 章的数据统计与可视化,可将改进点锁定为:增强高光与手持遮挡场景的增广占比;对“损坏”类启用重采样与类别重权;在推理端采用类别化阈值与轻量时序平滑(视频)以抑制抖动;在训练端替换为 CIoU/EIoU 与标签平滑并引入弱监督补标以缓解边界模糊样本。
在这里插入图片描述

图 5-1 n 组模型双条形图(F1 与 mAP@0.5)。
在这里插入图片描述

图 5-2 s 组模型双条形图(F1 与 mAP@0.5)。
在这里插入图片描述

表 5-1 模型综合对比(同一硬件与输入设置)

Model Params(M) FLOPs(G) Pre(ms) Inf(ms) Post(ms) F1 mAP50 mAP50–95
YOLOv5nu 2.6 7.7 1.90 7.73 1.31 0.568 0.377 0.364
YOLOv6n 4.3 11.1 2.17 6.78 1.39 0.596 0.378 0.361
YOLOv7-tiny 6.2 13.8 2.28 14.74 4.06 0.586 0.365 0.344
YOLOv8n 3.2 8.7 1.95 6.83 1.39 0.425 0.382 0.368
YOLOv9t 2.0 7.7 1.87 16.51 1.29 0.593 0.384 0.370
YOLOv10n 2.3 6.7 2.08 11.24 0.63 0.424 0.389 0.375
YOLOv11n 2.6 6.5 2.11 9.44 1.42 0.443 0.388 0.373
YOLOv12n 2.6 6.5 1.91 12.47 1.37 0.433 0.390 0.375
YOLOv5su 9.1 24.0 2.28 8.45 1.51 0.441 0.374 0.360
YOLOv6s 17.2 44.2 2.22 8.59 1.45 0.443 0.377 0.364
YOLOv7 36.9 104.7 2.44 23.62 3.46 0.415 0.392 0.379
YOLOv8s 11.2 28.6 2.31 7.66 1.42 0.431 0.379 0.366
YOLOv9s 7.2 26.7 2.12 18.66 1.39 0.443 0.373 0.361
YOLOv10s 7.2 21.6 2.21 11.38 0.60 0.434 0.390 0.378
YOLOv11s 9.4 21.5 2.37 9.74 1.36 0.433 0.389 0.375
YOLOv12s 9.3 21.4 2.09 13.23 1.42 0.447 0.395 0.380

结合可视化曲线,误检主要集中在“光斑+局部阴影+高相似度色阶”的组合情形,导致 Fresh/Rotten 之间边界模糊;漏检多出现在小尺寸与强遮挡果实。针对这些问题,训练端建议提高 HSV 抖动、Mosaic 与 Copy-Paste 的采样概率,叠加类别重权软标签缓解长尾;结构侧在 v12s 基线引入形状敏感 IoU(CIoU/EIoU)小目标分支再平衡可稳定提升边界框一致性;部署端启用类别化置信度阈值时序平滑/轨迹级 NMS可显著减少视频检测的短时抖动。对 Web 端实时体验而言,n 组的 v6n/v8n 更适合相机流 30 FPS 的长时运行,而需更高 mAP 的批量离线导出场景可选 s 组的 v12s/v10s,并利用页面进度控制+CSV 导出+一键下载闭环化评估。总体上,平台已达成“可对比、可解释、可落地”的目标:n/s 两个规模族各自有最优选择,且在同一前端交互下完成了从训练曲线—PR/F1 曲线—误差定位—导出追溯的一体化链路。


6. 系统设计与实现

6.1 系统设计思路

本系统采用分层架构以保证实时性与可维护性:表现与交互层位于浏览器端,由 HTML/CSS/JS 构成的双画面组件与控制栏统一承载“图片/视频/摄像头”三源输入、进度与参数(Conf/IoU、类别筛选)联动;业务与会话管理层由 Flask 提供 REST 与 SocketIO 通道,负责账号登录/注册/一次性跳过、会话/权限校验、任务路由与进度回传;推理与任务调度层实现媒体采集、批量预处理、YOLO 推理引擎(PyTorch 主径,ONNX/TensorRT 可选)与后处理;数据持久化层由 SQLite 维护结果、账户、配置与统计,并配合导出与归档模块生成 CSV、带框图片/视频等可追溯物料。四层之间通过显式契约(JSON schema 与事件主题)耦合,便于替换与扩展。

围绕实时性与一致性,系统在视频与摄像头任务上采用“同步双帧推送”:每个时间戳同时保留原始帧与推理后帧,在浏览器以左右等宽 16:9 呈现,避免因缓冲错位造成的视觉漂移;参数更改(阈值、类别、NMS 策略)以会话粒度下发并在推理链路内即时生效。任务调度层采用轻量队列与批量阈值,将 I/O 与 GPU/CPU 算子解耦;当用户暂停/继续/停止时,业务层通过 SocketIO 控制通道发布状态,并在调度端进行软中断或清理,确保资源及时回收与状态一致。

系统的可扩展性体现在权重热切换、统计与导出以及持久化与审计三个方面。权重热切换通过“模型注册表+Lazy Loading”机制完成:上传权重后写入注册表并校验类别集合,业务层广播模型变更事件以刷新前端类别与配色;统计与导出在服务器端集中管理,支持批量筛选、文件名高亮、CSV/MP4 一键打包与断点续传;持久化层对结果、参数与日志写入采用原子事务并记录版本与时间戳,便于跨实验对比和审计追踪。异常情况下,系统通过限流与重试策略保护 SocketIO 通道,并将失败的任务及上下文写入错误日志供复核。

图 6-1 系统流程图
图注:系统自初始化与会话建立开始,经过数据源选择、预处理、YOLO 推理与后处理,生成双画面可视并支持导出与入库,形成交互闭环。
在这里插入图片描述

图 6-2 系统设计框图
图注:分层展现浏览器端、业务与会话、推理与调度、数据持久化及模型权重管理的模块边界与数据流向。
在这里插入图片描述

6.2 登录与账户管理

在这里插入图片描述

图注:描述从进入登录界面到会话建立、个性化配置载入、资料修改与注销/切换的全流程,体现口令哈希、一次性跳过与持久化衔接。

登录与账户管理由业务层统一编排:注册阶段对口令进行哈希与加盐并写入账户表;登录成功后生成受限会话令牌并在同会话空间内同步参数与历史记录;“跳过体验”仅在当前会话有效且权限受限;资料修改通过事务写入并刷新会话,注销/切换时销毁令牌与客户端缓存,从而确保主检测流程与个性化配置、导出/入库操作在权限与审计上保持一致。


代码下载链接

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

在这里插入图片描述

在这里插入图片描述

        资源包中涵盖了你需要的训练测试数据集、训练测试代码、UI界面代码等完整资源,完整项目文件的下载链接可在Gitee项目中找到➷➷➷

完整项目下载、论文word范文下载与安装文档https://deeppython.feishu.cn/wiki/E2A1w09kbiWQoPkpw5Sc5Ymrnhg

讲解视频地址https://www.bilibili.com/video/BV1WwD9BEERr/

完整安装运行教程:

        这个项目的运行需要用到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

7. 结论与未来工作

本文面向温室与露地田间场景,完成了一个以 Flask + Flask-SocketIO 为后端、HTML/CSS/JS 为前端的人机协同番茄病害实时检测平台:系统统一支持图片、视频与浏览器摄像头输入,提供等宽双画面对比、进度与阈值/类别控制、CSV 导出与带框结果一键下载,并通过 SQLite 完成结果入库与溯源;算法侧在统一评测协议下集成 YOLOv5–YOLOv12 等八类模型,对 mAP(50–95)、F1、PR 曲线与训练曲线进行系统对比,并结合 ONNX/TensorRT 与混合精度实现软实时推理与稳定吞吐。实验与线上试用表明,该平台能够在复杂光照、遮挡与类间相似条件下保持可用的检测精度与端到端时延,网页端的双帧对比与最近记录高亮为误检定位、数据回流与快速迭代提供了工程抓手;同时,模型热切换与权重上传降低了研究与生产场景的切换成本,体现了从“算法可复现”到“系统可用”的工程闭环。需要指出的是,当前工作仍受限于跨季节与跨基地的数据分布漂移、极少样本病斑的召回、雨雾低可见度与镜头污损等极端场景,以及端侧 CPU 吞吐在高并发视频流下的抖动,这些因素在一定程度上制约了平台的鲁棒性与规模化部署。

未来将从三条主线推进:其一是模型侧的轻量化与泛化,包括蒸馏与量化联合训练、QAT 与后训练量化协同、NMS-free 训练与一致性分配策略、注意力与多尺度解耦头的细粒度增强,以及跨作物/跨季节的自监督与半监督预训练;其二是系统侧的工程化与可运维性,计划采用 Docker/Kubernetes 实现弹性伸缩与灰度发布,引入分布式任务队列与异步 I/O 管线增强多路视频并发能力,升级为 WebRTC 实时推流以降低端到端抖动,并完善角色权限、审计日志、国际化与多租户支持,同时探索 WebGPU/ONNX Runtime Web 的浏览器端轻量推理以减轻服务器压力;其三是数据侧的持续学习闭环,建设主动学习与难例挖掘策略、标签质量审计与版本化治理,叠加漂移监测与告警机制,并在极少样本病斑上结合合成数据与数据增强以改善长尾表现。随着上述方向逐步落地,平台可从番茄病害扩展到更多作物病虫害与农业质检细分任务,形成“算法—数据—系统—运维”一体化的长期可演进能力。


参考文献(GB/T 7714)

1 A systematic review of deep learning techniques for plant diseases[J/OL]. Artificial Intelligence Review, 2024. (Springer Link)
2 Enhancing plant disease detection through deep learning: a Depthwise review[J/OL]. Frontiers in Plant Science, 2024. (Frontiers)
3 PlantVillage dataset: description and statistics[EB/OL]. TensorFlow Datasets, 2024. (TensorFlow)
4 A labeled image dataset of common tomato diseases for classification[J]. Data in Brief, 2025. (ScienceDirect)
5 ONNX Runtime Quantization: 8-bit linear quantization[EB/OL]. 2025. (ONNX Runtime)
6 NVIDIA TensorRT Documentation: Working with Quantized Types[EB/OL]. 2025. (NVIDIA Docs)
7 Lin T-Y, Goyal P, Girshick R, et al. Focal Loss for Dense Object Detection[C]//ICCV, 2017. (CVF Open Access)
8 Tian Z, Shen C, Chen H, He T. FCOS: Fully Convolutional One-Stage Object Detection[C]//ICCV, 2019. (CVF Open Access)
9 Zhou X, Wang D, Krähenbühl P. Objects as Points[EB/OL]. 2019. (arXiv)
10 Liu W, Anguelov D, Erhan D, et al. SSD: Single Shot MultiBox Detector[C]//ECCV, 2016. (UNC Computer Science)
11 Ren S, He K, Girshick R, Sun J. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[EB/OL]. 2015. (arXiv)
12 Tan M, Pang R, Le Q. EfficientDet: Scalable and Efficient Object Detection[C]//CVPR, 2020. (arXiv)
13 Xu S, Wang X, Lv W, et al. PP-YOLOE: An evolved version of YOLO[EB/OL]. 2022. (arXiv)
14 Wang C-Y, Bochkovskiy A, Liao H-Y M. YOLOv7: Trainable bag-of-freebies sets new SOTA for real-time detectors[EB/OL]. 2022. (arXiv)
15 Ultralytics. YOLOv8 Documentation[EB/OL]. 2025. (Ultralytics Docs)
16 Wang C-Y, Yeh I-H, Liao H-Y M. YOLOv9: Programmable Gradient Information[EB/OL]. 2024. (arXiv)
17 Wang A, Chen H, Liu L, et al. YOLOv10: Real-Time End-to-End Object Detection[EB/OL]. NeurIPS 2024. (NeurIPS Proceedings)
18 Ultralytics. YOLO11 Overview[EB/OL]. 2025. (Ultralytics Docs)
19 YOLOv12: Attention-Centric Real-Time Object Detectors[EB/OL]. arXiv:2502.12524, 2025. (arXiv)
20 Zhao Y, Lv W, Xu S, et al. RT-DETR: DETRs Beat YOLOs on Real-time Object Detection[C]//CVPR, 2024. (CVF Open Access)
21 马丽, 周巧黎, 赵丽亚, 胡远辉. 基于深度学习的番茄叶片病害分类识别研究[J]. 中国农机化学报, 2023, 44(7):187-193. (Niam)
22 轻量化 YOLO 模型在农作物微小病虫害检测中的应用研究[J/OL]. 中国农机化学报, 2024. (Niam)

说明:文内遵循“单句单引”,表格指标均可追溯至对应条目;含中英文文献,近三年成果占一定比例。

posted @ 2026-04-23 13:16  逗逗班学Python  阅读(18)  评论(0)    收藏  举报