本文构建了一个基于深度学习的玉米病虫害检测系统,后端采用 PyTorch 与 Ultralytics 系列 YOLOv5–YOLOv12 模型,前端基于 PySide6/Qt 开发桌面应用。系统统一支持图片、视频和本地摄像头输入,提供检测进度条与用时显示,并通过登录、注册或跳过登录配合本地 SQLite数据库 安全管理账户与历史记录。用户可在界面中完成模型选择和本地 .pt 权重热切换,检测结果以带框形式呈现,可一键导出 CSV、单帧 PNG 和多帧 AVI 文件。文中比较了各 YOLO 版本在玉米病虫害数据集上的 mAP、F1、PR 曲线和训练过程文末给出完整工程与数据集下载链接


功能效果展示视频:热门实战|《基于深度学习的玉米病虫害检测系统》YOLOv12-v8多版本合集:附论文/源码/PPT/数据集,支持图片/视频/摄像头输入、可视化界面、结果导出与权重切换

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


1. 系统功能与效果

(1)系统提供登录、注册与跳过三种方式,进入主界面后可直接前往图片、视频或摄像头检测,并在模型区完成权重切换。右侧会话区域实时记录检测结果,表格支持快速定位目标。账户信息与口令保存在本地 SQLite,中断后不泄露数据;跳过模式仅对当前会话有效,简单安全。

在这里插入图片描述

(2)系统支持图片即时检测、视频进度控制与摄像头实时推理,并在主显示区叠加类别与置信度。用户可随时调整置信度与 IoU,选择目标并单独高亮,或将检测记录导出为 CSV。所有带框结果可一键保存为 PNG 或 AVI,底部记录区在不同输入模式间共享,方便回看与整理。

在这里插入图片描述

(3)系统允许在运行中加载任意本地权重,模型切换后类别名称与配色同步刷新。主题样式与常用参数会在本地自动保存,下次启动仍沿用原有设置。所有导出文件以时间戳命名,放置在统一目录,便于整理、对比与追踪历史任务。

在这里插入图片描述

(4)系统结构简洁,可扩展性良好,后续可加入更强模型、可视化或统计模块。现有功能覆盖桌面端检测的主要使用场景,并保持流畅、稳定与易维护的体验。

在这里插入图片描述


2. 绪论

2.1 研究背景及意义

玉米是重要的粮食与饲料作物,病虫害发生会直接影响产量和品质,严重时甚至导致大面积减产。当前田间调查仍以人工巡查和经验诊断为主,存在效率低、主观性强、难以在大规模种植区域保持高频监测等问题。随着种植规模扩大、气候波动加剧以及品种结构调整,玉米病虫害呈现发生频次高、空间差异明显、发展速度快等特点,传统方式已难以及时支撑精准防控,对粮食安全和种植收益形成潜在风险。在此背景下,利用机器视觉和深度学习技术构建自动化检测系统,成为提高玉米病虫害发现效率和诊断稳定性的现实需求。

从应用意义看,基于深度学习的玉米病虫害检测系统能够在桌面端或边缘设备上完成本地推理,结合图片、视频和摄像头多源输入,为农技人员和种植户提供直观的可视化结果和量化指标,辅助其更快识别病虫害类型和严重程度,减少对高经验人力的依赖,降低漏检与误判风险。从研究意义看,将玉米病虫害这一典型农业场景与 YOLO 系列目标检测模型结合,并在实际环境中对比不同版本模型的精度与速度,可以推动相关算法在小目标、相似类别和复杂背景下的性能优化,为智慧农业中的病虫害监测提供可复用的技术路线和工程样例。


2.2 国内外研究现状

近年来,针对作物病虫害自动识别的研究大量引入卷积神经网络和目标检测模型,在分类、检测与分割等多个层面形成了较为完整的技术谱系1。相关综述系统梳理了深度学习在植物病虫害识别中的网络结构、数据集和指标体系,指出数据不平衡、标注成本高及场景泛化能力不足是当前制约实际落地的关键因素1。面向玉米这一特定作物,研究者进一步对多种卷积网络和迁移学习方案进行了系统评估,总结了不同模型在识别精度、推理复杂度与对田间复杂背景适应性方面的优劣,为后续算法选择提供了基础参照2。最新的文献综述则强调,在玉米及其它作物病虫害检测场景中,类间相似性高、光照和视角变化剧烈以及长尾类别分布等问题,会显著削弱模型在真实生产环境中的稳定性,这需要在数据、模型和部署策略三方面协同改进[3]。在虫害检测方面,也有工作基于 IP102 等大规模害虫数据集构建监测与分类系统,通过自编码器进行少样本类别扩增,缓解类别不平衡并提升 F1 分数和整体识别效果[4]。

在这里插入图片描述

在通用目标检测算法层面,早期工作多采用两阶段检测器,例如 Faster R-CNN 引入区域建议网络与检测头共享特征,在 PASCAL VOC 与 COCO 等数据集上取得了较高的 mAP,但推理速度通常仅为数帧每秒,难以直接满足实时监测需求[5]。随后提出的 SSD 将多尺度默认框嵌入单一卷积网络,在 COCO 上实现了 40FPS 以上的实时检测能力,在速度与精度之间取得折中[6]。RetinaNet 在此基础上设计 Focal Loss,有效缓解了一阶段检测中的前景–背景样本不平衡问题,使其在密集目标场景下的精度接近甚至超过两阶段方法[7]。EfficientDet 通过加权双向特征金字塔与复合缩放策略,在 COCO test-dev 上实现约 55% AP,同时在参数量和 FLOPs 上相比同等级检测器减少一个数量级以上,更适合在算力受限设备上部署[8]。为进一步简化锚框设计,一类 anchor-free 检测器应运而生,如 FCOS 采用逐像素回归范式消除锚框及匹配超参数,CenterNet 通过关键点三元组建模提升了小目标和密集目标的检测性能[9][10]。与此同时,DETR 将目标检测视为集合预测问题,利用 Transformer 编解码结构和匈牙利匹配实现端到端检测,而 RT-DETR 在此基础上采用高效混合编码器和不确定性驱动查询选择,在 COCO 上实现 53% 以上 AP 和百帧级实时性能,为需要高精度实时检测的农业场景提供了新的算法选择[11][12]。

在这里插入图片描述

在具体适配玉米病虫害任务时,YOLO 系列因结构紧凑、端到端训练和较好的速度–精度平衡,被广泛用作单阶段检测器的基础框架[13]。YOLOv5 及后续版本在官方实现中提供了从 PyTorch 导出到 ONNX、TensorRT 等多种推理后端的能力,为 YOLOv5–YOLOv12 系列在农业场景中的训练与部署提供了统一工程接口[14]。在玉米叶病检测方面,基于 YOLOv5 的系统已在田间场景中部署,通过固定式 GoPro 相机采集图像并进行实时检测,为农户手机端提供病斑预警和可视化结果[15]。YOLO-SDW 在 YOLOv5 框架中引入空间深度转换卷积(SPD-Conv)、可变形视觉 Transformer 和 Wise-IoU v3 损失,在玉米叶片感染数据集上将 mAP 提升至 83.5%,相较原始 YOLOv5 提升约 6.4%,同时推理速度提升约 3.2%[16]。针对密集分布的玉米叶病,GhostNet_Triplet_YOLOv8s 通过 GhostNet 轻量化骨干和三元组注意力模块,在保持实时性的前提下,相比原始 YOLOv8s 额外提升约 0.3% mAP,并将模型参数和 FLOPs 分别压缩约 50.2% 和 43.1%,适合在移动和边缘设备上部署[17]。在玉米害虫检测方面,Maize-YOLO 以 YOLOv7 为基础,引入 CSPResNeXt-50 和 VoVGSCSP 等模块,在 IP102 中选取的 4533 张玉米害虫图像上取得 76.3% mAP 和 77.3% 召回,在保证实时速度的同时兼顾检测精度[18]。进一步地,改进 YOLOv8n 的玉米害虫多目标检测方法在主干网络中引入可变形注意力(DAttention),在特征融合网络中嵌入空间通道重组卷积(SCConv),在包含 2756 张图像的五类玉米害虫数据集上实现了 94.8% mAP 和 171FPS 的性能,兼顾了高精度与高帧率[19]。同时,国内专利工作将 ShuffleNetv2 轻量骨干、GAM 注意力、SIoU 损失与 Soft-NMS 整合到 YOLOv5 模型,用于玉米叶病虫害小目标检测,在保证实时性的前提下显著提高了小目标召回率和整体精度[20]。

在这里插入图片描述

为便于对代表性方法进行直观比较,表 2-1 汇总了若干典型玉米病虫害检测算法的范式、关键改进与性能指标,可见当前研究在精度、实时性与模型复杂度之间呈现出多样化的折中策略。

表 2-1 部分玉米病虫害检测方法对比概览

方法名称 范式 / 家族 数据集来源 关键改进技术 优势与局限性 关键性能指标(示例) 适用场景 / 对应难点
YOLOv5 玉米叶病检测系统[15] YOLOv5 单阶段、anchor-based 田间实采玉米叶病图像与视频 标准 YOLOv5 检测头,结合固定式 GoPro 图像采集与移动端展示 实时性好,部署简单;但对小病斑和复杂光照的鲁棒性有限,文中未系统给出 mAP 与参数量 文中强调实时检测和高准确率,未给出标准化 COCO 风格 mAP 田间固定监控与移动端预警,关注整体病斑区域而非极小目标
YOLO-SDW(基于 YOLOv5)[16] 改进 YOLOv5,单阶段 玉米叶片感染数据集(企业/实验室采集) SPD-Conv 替代步长卷积,引入 DAT 注意力和 Wise-IoU v3 损失 相比 YOLOv5 mAP 提升约 6.4% 至 83.5%,速度提升 3.2%;但模型结构更复杂,训练成本增加 mAP ≈ 83.5%,相对 YOLOv5 提升 6.4%;速度提升 3.2% 复杂背景与病斑密集场景,提高对细粒度病斑纹理的识别能力
GhostNet_Triplet_YOLOv8s[17] 改进 YOLOv8,单阶段、轻量化 玉米叶病图像公开数据集 GhostNet 轻量骨干,三元组注意力,改进 ECIoU 损失 相比 YOLOv8s,mAP 提升约 0.3%,参数量降低 50.2%,FLOPs 降低 43.1%;但改动较多,工程改造成本略高 mAP 提升 0.3%,模型大小减半,显著降低 FLOPs 叶片病害密集、需在移动或边缘设备实时部署的场景
Maize-YOLO(基于 YOLOv7)[18] YOLOv7 改进版,单阶段 IP102 中选取的 13 类玉米害虫(4533 张) 引入 CSPResNeXt-50 和 VoVGSCSP 模块,优化特征提取与轻量卷积 在 IP102 子集上取得 76.3% mAP 和 77.3% 召回,兼顾精度与速度;但对更复杂田间场景和更多虫种的泛化仍有限 mAP ≈ 76.3%,Recall ≈ 77.3% 多类玉米害虫检测,目标相似度高且运动速度快的场景
改进 YOLOv8n 玉米害虫检测[19] 改进 YOLOv8n,anchor-free 解耦头 自建 2756 张、5 类玉米害虫数据集 在 Backbone 中引入 DAttention,在 Neck 中加入 SCConv,增强多尺度特征 在 94.8% mAP 情况下达到 171FPS,适合低算力平台;但目前仅覆盖五类害虫,类别扩展有待继续 mAP = 94.8%,FPS = 171 小目标害虫密集、背景复杂且实时性要求高的玉米田间场景
ShuffleNetv2-YOLOv5s-GAM 专利方法[20] YOLOv5s + 轻量骨干 + 注意力 玉米叶病虫害图像(企业/实验室自建) ShuffleNetv2 轻量骨干、GAM 注意力、SIoU 损失与 Soft-NMS 融合 文献报告在小目标和密集场景下精度显著提升,并保持实时性;但具体公开指标有限 专利描述强调精度提升与实时检测,未给出标准化 mAP 数值 玉米叶片小病斑与高密度害虫检测,适用于需要低延迟的智能终端

从工程化与部署趋势来看,玉米病虫害检测系统正在从“纯算法验证”逐步走向“端到端应用”,研究重心拓展到模型压缩、跨平台部署与可视化分析等多个环节。部分工作在农业害虫检测中提出了轻量化 Locality-Aware Faster R-CNN 等结构,并结合特征剪枝与注意力机制,在保持检测精度的同时显著降低参数量与推理时延,为后续基于 YOLO 的轻量化改造提供了有益探索[21]。近年来,与玉米叶病和玉米病虫害相关的研究中,越来越多的 YOLO 模型被系统性地进行了蒸馏、量化与边缘端部署实验,基于 ONNX/TensorRT 等推理框架,在台式机与嵌入式平台上实现了 30FPS 以上的实时推理并维持接近原始模型的 mAP[22]。同时,国内也出现了一批面向生产的玉米病虫害检测系统实践,将改进后的 YOLO 模型与 Web 或桌面端界面结合,支持图片、视频与摄像头多源输入,以及检测结果的批量导出和可视化分析,为从模型训练、评估到农户实际使用之间搭建了完整的技术链条[23]。在此基础上,本文构建的基于深度学习的玉米病虫害检测系统,将 YOLOv5–YOLOv12 多模型框架与 Qt 桌面端界面深度融合,重点围绕精度、实时性和可视化可追溯能力进行系统设计与对比实验,为后续在机械设备缺陷检测等相近场景中的迁移应用提供了参考。


2.3 要解决的问题及其方案

要解决的问题:
(1)检测精度与实时性:玉米病斑和害虫目标尺寸差异大、背景复杂,容易漏检和误检,同时桌面端需要在普通 GPU 或 CPU 上保持流畅帧率。
(2)模型环境适应性与泛化能力:不同地区、不同光照和拍摄设备下数据分布差异明显,单一模型在新场景中的表现容易下降,缺乏可对比和调优的统一平台。
(3)桌面端交互界面的直观性与功能完整性:现有研究多停留在命令行或脚本层面,缺少面向一线用户的可视化工具,难以统一管理图片、视频和摄像头输入,也缺少模型热切换与结果管理能力。
(4)数据处理效率与存储安全性:检测结果分散在日志和图片中,不利于检索和统计分析,导出命名不统一,账户与记录缺乏本地安全管理和溯源机制。

解决方案:
(1)采用 YOLOv5–YOLOv12 系列模型,在 PyTorch 框架下进行迁移学习与数据增强,以 YOLOv12 轻量版本为核心,对比多种模型的 mAP、F1 和推理延迟,选取兼顾精度与速度的配置。
(2)构建统一训练与推理流程,基于 Ultralytics 实现权重训练和导出,在桌面端加载不同 .pt 权重进行热切换,通过多场景数据微调和对比实验提升模型泛化能力。
(3)采用 PySide6/Qt 实现桌面交互界面,支持图片、视频和本地摄像头输入,集成阈值调节、目标高亮、进度显示和模型选择等功能,让用户以图形化方式完成检测和模型管理。
(4)优化数据处理与存储结构,对检测序列进行缓存和时间戳命名,统一导出 PNG、AVI 和 CSV,使用 SQLite 管理账户与检测记录,并结合基础日志与测试用例提升系统稳定性和可追溯性。


2.4 博文贡献与组织结构

本博文的主要贡献体现在以下几个方面:(1)面向玉米病虫害场景,梳理并归纳国内外相关研究与主流检测算法,为模型与系统选型提供集中参考;(2)在 YOLOv5–YOLOv12 多模型框架下,完成玉米病虫害检测模型的筛选与优化,对比精度、速度与参数规模,并给出适配场景的分析;(3)基于 PySide6/Qt 设计并实现桌面端检测系统,统一图片、视频与摄像头输入,集成模型热切换、可视化标注与结果导出等功能;(4)提供可复用的数据处理流程与完整工程代码,为后续在其他农作物或机械缺陷检测任务中的迁移与二次开发提供参考。

博文结构安排如下:(1)第 3 章介绍数据集来源、标注规范与预处理策略,说明与玉米病虫害任务难点的对应关系;(2)第 4 章给出模型原理与设计,重点说明 YOLOv12 为主线的网络结构、损失函数与训练策略;(3)第 5 章展示各版本 YOLO 模型在玉米病虫害数据集上的实验结果,比较 mAP、F1、推理延迟及曲线表现;(4)第 6 章说明系统设计与实现,包括分层架构、Qt 界面交互与推理流程集成,第 7 章对全文工作进行总结并展望未来在更大规模应用和多场景部署中的扩展方向。


3. 数据集处理

本系统使用的玉米病虫害数据集来自自然田间场景,共包含 8856 张高分辨率图像,其中 7339 张用于训练,757 张用于验证,760 张用于测试,划分比例约为 83%/8.5%/8.5%,并在划分时固定随机种子以保证实验可复现。标注采用 YOLO 格式,每个目标以类别编号和归一化后的中心点坐标与宽高表示,最终形成六个类别:病害(Enfermedad)、状态良好(Good Condition Corn)、良好(Good Condition Maize)、害虫(Plaga)、玉米(corn)和受损玉米(damaged corn)。从样例图可以看到,图像多为近距离拍摄的玉米叶片和苞叶,光照和背景变化较大,既包含明显病斑、虫体,也包含健康植株和受损组织,为模型学习“正常—异常”边界提供了基础。

在这里插入图片描述

从类别统计图和标注框分布图可以看出,“病害”和“良好状态”实例数量远多于“害虫”和“受损玉米”,存在典型长尾分布;目标中心大多集中在图像中部,宽高分布偏向窄长、小尺寸,说明病斑与虫体常以细小区域出现,对检测小目标提出挑战。针对这些特点,预处理阶段将所有图像统一缩放到 640×640,并采用随机翻转、尺度缩放、颜色抖动以及 Mosaic 等增强策略,强化模型对尺度变化、视角差异和光照不均的鲁棒性;同时对明显模糊、框越界或类别标注异常的样本进行清洗,减少噪声标签干扰。通过上述划分与增强策略,数据集能够较好地覆盖玉米病虫害在真实场景中的分布特征,为后续 YOLOv5–YOLOv12 模型的训练与对比评估提供可靠支撑。

在这里插入图片描述


4. 模型原理与设计

本系统面向玉米病虫害在线检测,整体采用单阶段的 YOLO 系列检测范式,将目标检测建模为从整幅图像到一组带类别与置信度的目标框的回归问题。给定输入图像 I ∈ R H × W × 3 I\in\mathbb{R}^{H\times W\times 3} IRH×W×3,检测模型输出预测集合 Y = ( b ∗ i , c i , s i ) ∗ i = 1 N Y={(\mathbf{b}*i, c_i, s_i)}*{i=1}^N Y=(bi,ci,si)i=1N,其中 b i = ( x i , y i , w i , h i ) \mathbf{b}_i=(x_i,y_i,w_i,h_i) bi=(xi,yi,wi,hi) 表示第 i i i 个候选框的中心坐标与宽高, c i c_i ci 为类别索引(病斑类型或虫体类别), s i ∈ [ 0 , 1 ] s_i\in[0,1] si[0,1] 为综合置信度。与传统两阶段方法不同,YOLOv12 采用 anchor-free 的单阶段解耦检测头,在多个特征尺度上直接预测边界框偏移与分类概率,从而在保证精度的同时满足田间实时检测对延迟的严格要求。结合玉米叶片上病斑纹理细碎、害虫个体往往体积较小且与叶色相近的特点,博主在系统中默认使用轻量级 YOLOv12n/YOLOv12s 作为基线,同时预留 YOLOv5–YOLOv12 共 8 组模型的对比接口,方便从速度和精度两个维度评估不同结构在玉米病虫害场景下的适配性。(docs.ultralytics.com)

在这里插入图片描述

在网络结构上,YOLOv12 继承了“Backbone–Neck–Head”三级设计:Backbone 负责从原始玉米植株图像中提取多层次语义特征,Neck 通过 FPN/PAN 式的多尺度特征融合增强对不同尺度病斑与虫体的感知,Head 则在各尺度特征图上输出无锚点的检测框与类别预测。与 YOLOv5–YOLOv11 相比,YOLOv12 在骨干与颈部大量引入 A2 区域注意力与 A2C2f/R-ELAN 等模块,通过将特征图划分为若干区域并在区域内执行高效注意力计算,既保留了大感受野,又显著降低了全局自注意力的计算复杂度;同时,R-ELAN 的分支残差与高效特征聚合提升了跨层信息流通能力,更有利于从复杂叶片纹理中分离出病斑边缘与虫体轮廓。其注意力模块的核心仍可抽象为标准缩放点积注意力:
Attention ( Q , K , V ) = softmax ( Q K T d k ) V , \text{Attention}(Q,K,V)=\text{softmax}\left(\frac{QK^{\mathsf{T}}}{\sqrt{d_k}}\right)V, Attention(Q,K,V)=softmax(dk QKT)V,
其中 Q , K , V ∈ R n × d k Q,K,V\in\mathbb{R}^{n\times d_k} Q,K,VRn×dk 分别为查询、键与值, d k d_k dk 为特征维度,YOLOv12 通过区域划分与高效实现(如 FlashAttention)在不牺牲表达能力的前提下降低了 Q K T QK^{\mathsf{T}} QKT 的计算与访存开销,从而在 COCO 等基准上相较 YOLOv10/YOLOv11 获得更高的 mAP 与接近的推理延迟。(arXiv) 网络整体架构图如下图所示,读者可参考示意图链接了解各模块的具体堆叠关系:https://www.dtcms.com/a/86520.html。

在这里插入图片描述

在损失函数与任务建模方面,本系统沿用 YOLOv12 的多任务联合优化形式,将边界框回归、目标存在性与类别预测统一到一个总损失之中:
L = λ box L CIoU + λ obj L obj + λ cls L cls , L = \lambda_{\text{box}} L_{\text{CIoU}} + \lambda_{\text{obj}} L_{\text{obj}} + \lambda_{\text{cls}} L_{\text{cls}}, L=λboxLCIoU+λobjLobj+λclsLcls,
其中 L box L_{\text{box}} Lbox 采用 CIoU 损失,对预测框与真实框的重叠度、中心距离与长宽比同时建模; L obj L_{\text{obj}} Lobj 用于监督每个位置是否存在目标; L cls L_{\text{cls}} Lcls 则为多标签二值交叉熵或 Focal Loss,用来缓解玉米病虫害数据中“病斑/害虫样本远少于背景叶片”的类别不均衡问题。CIoU 损失可表示为
L CIoU = 1 − IoU + ρ 2 ( b , b ∗ ) c 2 + α v , L_{\text{CIoU}} = 1-\text{IoU} + \frac{\rho^2(\mathbf{b},\mathbf{b}^*)}{c^2} + \alpha v, LCIoU=1IoU+c2ρ2(b,b)+αv,
其中 IoU \text{IoU} IoU 为预测框 b \mathbf{b} b 与真实框 b ∗ \mathbf{b}^* b 的交并比, ρ ( ⋅ ) \rho(\cdot) ρ() 为两框中心点的欧氏距离, c c c 为最小外接框对角线长度, v v v 刻画长宽比差异, α \alpha α 为平衡系数。通过在训练中对小尺度虫体、细长病斑适当提高 λ box \lambda_{\text{box}} λbox、并配合标签平滑与 Focal Loss 中调节因子 γ \gamma γ,可以在一定程度上降低易混类别(如不同病斑阶段、幼虫与虫斑阴影)的误检率,同时抑制大量背景叶片对损失的主导作用。

在这里插入图片描述

训练与部署策略上,博主基于 PyTorch 与 Ultralytics 实现了 YOLOv12 的端到端训练流程,采用 640 × 640 640\times640 640×640 统一输入尺寸、随机翻转与颜色扰动等增强手段,让模型在不同光照、拍摄距离与叶面遮挡条件下保持稳定表现;推理阶段在 Qt 桌面端严格复用了同一预处理与尺度还原策略,通过非极大值抑制在给定置信度与 IoU 阈值下过滤冗余框,以保证玉米田间实时检测的可解释性与一致性。系统实现层面,将 Ultralytics YOLO 与传统 YOLO 分支统一封装为一个检测适配层,外部只需选择对应权重文件即可在 YOLOv5–YOLOv12 间热切换,Qt 前端则通过滑块实时调整阈值并以可视化框、类别列表与统计信息呈现检测结果,为后续在玉米不同生长时期、不同田块环境下的多模型对比与快速迭代提供了良好的工程基础。


5. 实验结果与分析

本节围绕 CornPest 玉米病虫害数据集,对 YOLOv5–YOLOv12 系列轻量模型在检测精度、模型复杂度和推理速度上的综合表现进行评估,用于支撑桌面端 Qt 系统中的模型选择与权衡。所有模型均在统一的数据划分和增强策略下训练约 120 个 epoch,输入分辨率固定为 640×640,实验环境为 NVIDIA GeForce RTX 3070 Laptop GPU(8 GB 显存)。评价指标包括 Precision、Recall、F1 Score、mAP@0.5(记为 mAP50)及 mAP@0.5:0.95(记为 mAP50–95),同时记录前处理、推理和后处理耗时,其中推理时间 InfTime 直接反映模型在本机显卡上的实时性。nano 级(YOLOv5nu–YOLOv12n)和 small 级(YOLOv5su–YOLOv12s)共 16 个模型的核心结果汇总如表 5-1 所示,F1 与 mAP50 的对比双柱图见图 5-1。

在这里插入图片描述

表 5-1 YOLOv5–YOLOv12 轻量模型在 CornPest 数据集上的整体性能对比

模型 Params (M) FLOPs (G) InfTime / ms Precision Recall F1 Score mAP50 mAP50–95
YOLOv5nu 2.6 7.7 7.73 0.503 0.409 0.451 0.400 0.224
YOLOv6n 4.3 11.1 6.78 0.506 0.374 0.430 0.366 0.207
YOLOv7-tiny 6.2 13.8 14.74 0.551 0.361 0.436 0.370 0.198
YOLOv8n 3.2 8.7 6.83 0.492 0.405 0.444 0.385 0.224
YOLOv9t 2.0 7.7 16.51 0.481 0.420 0.448 0.401 0.235
YOLOv10n 2.3 6.7 11.24 0.494 0.399 0.441 0.387 0.232
YOLOv11n 2.6 6.5 9.44 0.467 0.417 0.440 0.392 0.233
YOLOv12n 2.6 6.5 12.47 0.460 0.396 0.426 0.389 0.225
YOLOv5su 9.1 24.0 8.45 0.481 0.417 0.447 0.395 0.231
YOLOv6s 17.2 44.2 8.59 0.502 0.372 0.427 0.378 0.226
YOLOv7 36.9 104.7 23.62 0.448 0.454 0.451 0.386 0.215
YOLOv8s 11.2 28.6 7.66 0.498 0.406 0.447 0.392 0.233
YOLOv9s 7.2 26.7 18.66 0.517 0.414 0.459 0.407 0.244
YOLOv10s 7.2 21.6 11.38 0.446 0.420 0.433 0.390 0.230
YOLOv11s 9.4 21.5 9.74 0.492 0.432 0.460 0.400 0.244
YOLOv12s 9.3 21.4 13.23 0.486 0.431 0.457 0.398 0.245

从单模型训练过程来看,以最终部署重点候选 YOLOv12s 为例,其训练与验证阶段的 box_loss、cls_loss 和 dfl_loss 随 epoch 提升呈现出平滑下降趋势,前二十个 epoch 下降最快,之后逐步趋于平稳;验证集的 mAP50 和 mAP50–95 从初始不足 0.05 逐步提升到约 0.39 和 0.22,Precision 在 0.45 左右小幅波动,Recall 则由 0.1 附近稳定上升至 0.39 左右。训练曲线和验证曲线之间未出现明显分叉,说明在当前数据规模和增强策略下模型过拟合现象较轻,整体优化过程稳定,为后续不同结构之间在相同训练配置下进行公平对比提供了前提。

从 nano 级模型的比较可以看出,YOLOv9t 在 mAP50(0.401)和 mAP50–95(0.235)上取得了组内最高值,同时 Recall 也处于领先水平,说明其对玉米叶片病斑和虫体的覆盖最为充分;YOLOv5nu 的 F1 Score 约为 0.451,与 YOLOv9t 接近但 mAP50–95 略低,更偏向轻量和速度的折中方案。考虑到 QT 桌面端实时检测的需求,推理时间在 6–8 ms 的 YOLOv8n 和 YOLOv6n 具有较好的速度优势,在 0.38 左右的 mAP50 下即可满足 30 FPS 左右的流畅体验,而 YOLOv9t 虽然精度更高,但 16 ms 级别的推理时间会在帧率上有所牺牲;因此在系统中,博主将 YOLOv9t 标记为“高精度 nano 模式”,而将 YOLOv5nu/YOLOv8n 作为“实时优先 nano 模式”,供用户在模型选择下拉框中按场景切换。

在这里插入图片描述

small 级模型整体精度明显优于 nano 级,图 5-1 的双柱图给出了 YOLOv5su–YOLOv12s 在 F1 Score 和 mAP50 上的直观对比。可以看到,YOLOv9s、YOLOv11s 和 YOLOv12s 在两项指标上均处于前列,其中 YOLOv9s 的 mAP50 达到 0.407,为 small 组最高;YOLOv11s 的 F1 Score 约为 0.460,略高于 YOLOv9s;而 YOLOv12s 虽然 mAP50 略低于 YOLOv9s,但在 mAP50–95 上取得全组最高值(约 0.245),说明其在高 IoU 阈值下的检测更加稳健,对边界定位要求更高的病斑和虫洞目标表现更好。结合训练过程中各版本模型的 mAP50 曲线可以发现,从 YOLOv8s 到 YOLOv12s,曲线整体呈现“上移”趋势,YOLOv11s/YOLOv12s 在中后期 epoch 的 mAP50 明显高于 YOLOv8s/YOLOv10s,体现出新一代结构在多尺度特征融合和注意力机制上的优势。small 组模型的 FLOPs 和参数量整体控制在 10M/30G 左右,推理时间主要分布在 7–19 ms 区间,结合本系统在桌面端对 20–30 FPS 的需求,在中高端 GPU 上已能满足实时检测。

在这里插入图片描述

为了进一步分析误检与漏检的模式,博主对最终选择的代表模型绘制了归一化混淆矩阵,如图 5-2 所示。从结果来看,“Plaga”(害虫)类别的对角线准确率约为 0.92,说明对虫体目标的检测相对容易,这与虫体轮廓清晰、颜色与叶片反差较大有关;“background” 背景类在各列上的占比普遍超过 0.75,表明模型能够较好地区分非目标区域。然而,“Enfermedad”(病害)与 “damaged corn” 等受损类与背景之间存在较明显的混淆,病害被误判为背景的比例接近 0.37,部分正常玉米也会被误判为受损或病害,这一方面反映出早期病斑在颜色与纹理上与正常叶片差异很小,另一方面也暴露了数据集中病害样本数量相对有限、标注边界存在主观差异的问题。针对这些现象,博主在后续实验中将尝试增加针对病斑区域的局部放大和对比度增强数据增强策略,在损失函数中适当提高病害类权重,并探索引入轻量级分割或多任务学习头,以缓解疾病–背景之间的模糊边界。

在这里插入图片描述

综上所述,CornPest 数据集上的实验结果表明:在保证轻量化的前提下,YOLOv9/YOLOv11/YOLOv12 系列在 F1、mAP50 和 mAP50–95 等指标上相对均衡,其中 YOLOv12s 在高 IoU 阈值下表现最稳健,非常适合作为 Qt 系统默认的“高精度检测模型”;以 YOLOv5nu、YOLOv8n 为代表的 nano 级模型在延迟与功耗上更具优势,适合作为“实时模式”部署在移动 GPU 或算力受限的场景。依托桌面端的模型热切换功能和检测记录可视化,用户可以在实际玉米田间作业中根据硬件条件和任务需求在精度与速度之间灵活平衡,实现对玉米病虫害的高效、可追溯和易用的智能检测。


6. 系统设计与实现

6.1 系统设计思路

本系统采用分层架构设计,将整体功能划分为表现与交互层、业务与会话管理层、推理与任务调度层以及数据持久化层,以保证玉米病虫害检测在桌面端具备良好的实时性与可维护性。表现与交互层由 PySide6/Qt 客户端实现,界面采用左侧数据源与阈值控制、中央检测画面、右侧目标详情和下方检测记录与进度条的布局,负责呈现图片、视频和摄像头画面,并通过 Conf/IoU 滑块、目标高亮选择、导出按钮等控件与用户交互。业务与会话管理层对会话状态、登录用户、模型选择和多源输入进行统一调度,确保任一时刻只有一个输入源处于激活状态,同时维护阈值参数、帧率统计和导出任务队列,使得前端操作与后端推理在逻辑上保持一致。

推理与任务调度层负责承接媒体流与检测任务,将图片、视频帧或摄像头采集的单帧统一封装为待处理任务,通过预处理子模块完成尺寸缩放、颜色归一化和张量转换,然后调用 YOLOv5–YOLOv12 之一的模型完成前向推理,随即在后处理模块中执行置信度过滤、NMS 与坐标还原,生成带类别与置信度的检测框列表。为了在桌面端实现近实时的视觉反馈,该层采用事件驱动的帧流机制与异步任务队列,将媒体读取、模型推理和前端渲染解耦运行;推理完成后的结果通过信号与槽传回业务层,进度条与用时显示则由业务层根据帧计数与系统时间同步更新,从而实现“多源输入—预处理—YOLO 推理—后处理/统计—前端可视”的闭环流程。

数据持久化层以本地 SQLite 数据库为核心,配合文件系统实现检测结果与用户配置的可靠保存。检测层在完成每一帧或每一批图像的推理后,会将目标类别、位置、置信度、用时以及当前模型信息与输入源标识打包成结构化记录,由业务层统一写入数据库表,并在需要时导出为 CSV 供外部分析;导出的 PNG 单帧图像和 AVI 视频按照时间戳与模型名称命名,便于后续溯源和批量管理。用户的登录信息、界面主题、默认模型、常用阈值和最近检测记录同样存储在本地数据库与配置文件中,在系统初始化阶段由业务层加载并应用到 Qt 客户端,实现个性化体验的延续。此外,模型权重管理与日志接口也归属于该层,支持在运行时热切换 .pt 权重并记录系统异常与推理状态,为后续扩展 Docker 化部署、远程日志收集等能力预留空间。

图 6-1 系统流程图

在这里插入图片描述

图 6-1 展示了系统从启动、选择输入源、完成预处理和 YOLO 推理,到前端可视化与 CSV/PNG/AVI 导出及时间戳命名的完整流程,强调了事件驱动帧流与“继续获取下一帧”的闭环控制。

图 6-2 系统设计框图

在这里插入图片描述

图 6-2 描述了系统由上至下的四层结构及其交互方式:Qt 客户端承接用户操作,业务层负责会话与任务编排,推理层执行媒体接入和 YOLO 检测,数据层完成结果与账户配置的持久化,并为权重管理和日志监控提供统一接口。

6.2 登录与账户管理

在这里插入图片描述

图 6-3 给出了登录与账户管理的流程,从打开登录界面开始,根据是否已有账号分别走注册写入 SQLite 或直接口令校验的路径,随后加载个性化配置与历史记录进入主界面,并提供资料修改与注销/切换账号的闭环。

在登录与账户管理的实现上,系统首先在应用启动时弹出登录窗口,用户可以选择输入已注册的用户名与口令,或跳转到注册界面完成新账户创建;注册操作会将基本身份信息、口令摘要以及默认主题、默认模型等初始化配置写入本地 SQLite 数据库,而登录操作则在验证口令正确性后建立会话并加载对应用户的历史检测记录、界面布局偏好和常用阈值,确保进入主界面时即可恢复上次使用状态。后续在主界面中,用户可以通过“个人设置”区域修改口令、调整主题和默认模型,这些变更会实时同步回数据库和配置缓存,实现结果与设置的本地持久化;当用户选择注销或切换账号时,业务层会安全释放当前会话、清空临时缓存,并重新回到登录窗口,从而在不影响正在保存的检测数据的前提下,保持检测流程与账户体系之间的自然衔接。

代码下载链接:<由读者提供的实际地址>


7. 下载链接

    若您想获得博文中涉及的实现完整全部资源文件(包括测试图片、视频,py, UI文件,训练数据集、训练代码、界面代码等),这里见可参考博客与视频,已将所有涉及的文件同时打包到里面,点击即可运行,完整文件截图如下:

在这里插入图片描述

功能效果展示视频:热门实战|《基于深度学习的玉米病虫害检测系统》YOLOv12-v8多版本合集:附论文/源码/PPT/数据集,支持图片/视频/摄像头输入、可视化界面、结果导出与权重切换
环境配置博客教程:https://deeppython.feishu.cn/wiki/EwnTwJ2H3iLF6VkNG6ccgZYrnvd
或者环境配置视频教程:Pycharm软件安装视频教程;(2)Anaconda软件安装视频教程;(3)Python环境配置视频教程
数据集标注教程(如需自行标注数据):数据标注合集


参考文献(GB/T 7714 格式

1 Liu J, Wang X. Plant diseases and pests detection based on deep learning: a review[J]. Plant Methods, 2021, 17(1): 22.
2 Gülmez B. Advancements in maize disease detection: a comprehensive review of convolutional neural networks[J]. Computers in Biology and Medicine, 2024, 183: 109222.
[3] Shoaib M, Sadeghi-Niaraki A, et al. Leveraging deep learning for plant disease and pest detection: a comprehensive review and future directions[J]. Frontiers in Plant Science, 2025, 16: 1538163.
[4] Venkateswara S M, et al. Deep learning based agricultural pest monitoring and classification using IP102 dataset[J]. Scientific Reports, 2025, 15: 92659.
[5] 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.
[6] Liu W, Anguelov D, Erhan D, et al. SSD: single shot multibox detector[C]//ECCV 2016. Cham: Springer, 2016: 21-37.
[7] Lin T Y, Goyal P, Girshick R, et al. Focal loss for dense object detection[C]//ICCV 2017: 2999-3007.
[8] Tan M, Pang R, Le Q V. EfficientDet: scalable and efficient object detection[C]//CVPR 2020: 10781-10790.
[9] Tian Z, Shen C, Chen H, et al. FCOS: fully convolutional one-stage object detection[C]//ICCV 2019: 9627-9636.
[10] Duan K, Bai S, Xie L, et al. CenterNet: keypoint triplets for object detection[C]//ICCV 2019: 6569-6578.
[11] Carion N, Massa F, Synnaeve G, et al. End-to-end object detection with transformers[C]//ECCV 2020: 213-229.
[12] Zhao Y, Lv W, Xu S, et al. DETRs beat YOLOs on real-time object detection[EB/OL]. arXiv:2304.08069, 2023.
[13] Ultralytics. YOLOv5: PyTorch models and usage guide[EB/OL]. 2022.
[14] Ultralytics. YOLOv5u and YOLOv8: anchor-free real-time object detectors[EB/OL]. 2023.
[15] Santhi S, Mahima M, Vengatesan R, et al. Corn leaf disease detection using YOLOv5[C]//2024 International Conference on Inventive Computation Technologies. IEEE, 2024.
[16] Yang H, Sheng S, Jiang F, et al. YOLO-SDW: a method for detecting infection in corn leaves[J]. Energy Reports, 2024, 12: 6102-6111.
[17] Li R, Li Y, Qin W, et al. Lightweight network for corn leaf disease identification based on improved YOLO v8s[J]. Agriculture, 2024, 14(2): 220.
[18] Yang S, Xing Z, Wang H, et al. Maize-YOLO: a new high-precision and real-time method for maize pest detection[J]. Insects, 2023, 14(3): 278.
[19] Liang Q, Zhao Z, Sun J, et al. Multi-target detection method for maize pests based on improved YOLOv8n[J]. INMATEH – Agricultural Engineering, 2024, 73(2): 227-237.
[20] CN116310836A. 基于YOLO模型改进的玉米叶病虫害自动检测方法[P]. 2023-06-30.
[21] Li K R, et al. Pest detection based on lightweight locality-aware Faster R-CNN[J]. Agronomy, 2024, 14(10): 2303.
[22] Hao S, Gao E, Ji Z, et al. BCS_YOLO: research on corn leaf disease and pest detection based on YOLOv11n[J]. Applied Sciences, 2025, 15(15): 8231.

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐