基于YOLOv8的苹果叶片病害检测系统
基于YOLOv8的苹果叶片病害检测系统系统概述基于YOLOv8深度学习模型的苹果叶片病害检测系统采用PyQt5构建桌面图形界面支持多种YOLOv8模型版本选择。系统包含完整的苹果叶片病害数据集、预训练模型和可视化界面为果农、农业技术人员和研究人员提供便捷、高效的病害检测工具。✨ 核心优势• 多模型选择内置YOLOv8n、YOLOv8s、YOLOv8m三种规格的预训练模型适应不同性能需求• 完整数据集提供包含5种常见苹果叶片病害的大规模标注数据集• 多模式检测支持单张图片、批量图片、视频文件和摄像头实时检测• 高精度识别模型经过150个epoch充分训练检测精度高• 灵活扩展可替换模型用于其他目标检测任务实现自定义检测功能• 开箱即用提供完整源代码、数据集、模型和部署文档快速上手使用 病害检测类别系统可精准识别5种苹果叶片常见病害Rust - 锈病苹果叶锈病叶片表面出现橙黄色斑点Mosaic - 花叶病叶片出现不规则的黄绿相间花斑Grey_spot - 灰斑病叶片出现灰白色圆形或不规则斑点Brown_Spot - 褐斑病叶片出现褐色圆形病斑边缘清晰Alternaria_Boltch - 链格孢枯萎病叶片出现深褐色不规则病斑 数据集详情数据规模与划分数据集类型 图片数量 占比 用途说明训练集 18451张 70% 模型训练与参数优化验证集 5270张 20% 训练过程验证与调参测试集 2638张 10% 最终模型性能评估总计 26359张 100% 完整数据集数据质量特点• 高分辨率所有图片均为高清晰度叶片特写• 多样场景包含不同光照、角度、背景的真实田间环境• 专业标注由农业专家标注确保病害识别准确性• 类别均衡各类病害样本数量相对均衡避免模型偏见• 标准格式采用YOLO标准格式便于训练与验证 模型配置可用模型版本系统提供三种不同规格的YOLOv8模型用户可根据实际需求选择YOLOv8n (Nano)◦ 参数量约2.5M◦ 模型大小约6MB◦ 推理速度最快◦ 准确率适中◦ 适用场景实时检测、移动端部署、资源受限环境YOLOv8s (Small)◦ 参数量约11.2M◦ 模型大小约22MB◦ 推理速度较快◦ 准确率较高◦ 适用场景平衡速度与精度的一般应用YOLOv8m (Medium)◦ 参数量约25.9M◦ 模型大小约50MB◦ 推理速度中等◦ 准确率最高◦ 适用场景对精度要求高的专业检测训练参数• 训练轮数150 epochs充分训练• 输入尺寸640×640像素• 批量大小16-32根据GPU显存调整• 优化器SGD with momentum• 学习率余弦退火调度• 数据增强Mosaic、MixUp、随机翻转、色彩调整• 早停机制监控验证集损失防止过拟合 用户界面设计主界面布局基于PyQt5构建的现代化桌面应用界面包含以下核心区域菜单栏文件、模型、视图、帮助等菜单选项工具栏常用功能快捷按钮左侧控制面板◦ 模型选择区域单选按钮选择YOLOv8n/s/m模型◦ 输入源选择图片、视频、摄像头切换◦ 检测参数设置置信度阈值、IOU阈值调节滑块◦ 检测控制按钮开始/停止检测、保存结果中央显示区域◦ 输入源显示实时显示图片/视频/摄像头画面◦ 检测结果叠加病害位置、类别、置信度标注◦ 对比视图原始图片与检测结果对比显示右侧信息面板◦ 检测结果列表表格形式显示检测到的病害信息◦ 统计信息各类病害数量、置信度统计◦ 历史记录最近检测任务记录底部状态栏系统状态、处理进度、耗时显示界面特点• 现代化设计遵循现代桌面应用设计规范• 响应式布局窗口大小调整时组件自适应• 操作便捷常用功能提供快捷键支持• 主题切换支持浅色/深色主题切换• 多语言支持中英文界面切换• 实时反馈检测过程实时显示处理进度️ 功能详解多模式检测功能图片检测模式• 单张图片检测选择单张苹果叶片图片进行检测• 批量图片检测选择文件夹批量处理多张图片• 拖拽上传支持将图片直接拖拽到界面中• 图片预览检测前可预览图片支持缩放、旋转• 保存结果检测后保存带标注框的结果图片• 结果对比支持原始图片与检测结果对比查看视频检测模式• 视频文件选择支持常见视频格式MP4、AVI、MOV等• 视频预览检测前可预览视频内容• 逐帧检测自动提取视频帧进行检测• 实时标注检测结果实时叠加到视频帧• 结果视频保存生成带检测标注的输出视频• 关键帧提取自动提取病害出现的视频关键帧摄像头实时检测• 摄像头选择自动检测可用摄像头设备• 实时画面显示摄像头实时采集的画面• 实时检测对摄像头画面进行实时病害检测• 帧率控制可调节检测帧率平衡性能与精度• 录像功能检测过程可录制保存为视频• 截图保存随时截图保存当前检测画面模型管理功能模型选择与加载• 多模型切换运行时动态切换不同YOLOv8模型• 模型加载进度显示模型加载进度与状态• 模型信息显示显示当前使用模型的详细信息• 模型性能对比对比不同模型在同一测试集上的性能自定义模型支持• 模型替换支持用户替换为其他YOLOv8模型• 格式兼容支持PyTorch (.pt)、ONNX (.onnx)格式模型• 模型验证加载自定义模型时自动验证格式兼容性• 参数适配自动适配不同模型的输入输出参数检测结果处理实时结果显示• 视觉标注在图片/视频上绘制病害位置边界框• 类别标签使用不同颜色标注不同病害类型• 置信度显示在标注框旁显示检测置信度• 数量统计实时统计各类病害检测数量• 热力图显示可选显示病害分布热力图结果分析与统计• 详细列表表格形式列出所有检测到的病害信息• 分类统计饼图/柱状图展示各类病害数量分布• 置信度分布直方图展示检测结果的置信度分布• 面积统计统计病害斑点占叶片面积的比例• 严重程度评估基于病害数量与面积评估病害严重程度结果导出功能• 图片导出保存带标注的检测结果图片• 视频导出保存带标注的检测结果视频• 报告生成生成包含检测统计的文本报告• 数据导出导出检测结果为CSV、Excel格式• 批量导出批量检测结果的批量导出功能系统设置与配置检测参数配置• 置信度阈值调节滑块控制检测灵敏度• IOU阈值调节非极大值抑制的IOU阈值• 检测速度平衡检测速度与精度的参数• 类别过滤选择只检测特定类别的病害• 区域选择指定只检测图片的特定区域显示设置• 标注样式自定义标注框颜色、线条粗细• 标签显示控制是否显示类别标签和置信度• 界面主题浅色/深色主题切换• 语言设置中英文界面切换• 布局调整自定义界面各面板的布局系统设置• 默认模型设置启动时默认加载的模型• 默认路径设置图片/视频的默认打开路径• 自动保存设置检测结果自动保存选项• 硬件加速启用/禁用GPU加速• 日志记录控制系统日志记录级别 项目结构 仅供参考苹果叶片病害检测系统/├── 源码文件/│ ├── main.py # 主程序入口│ ├── ui_main_window.py # 主窗口界面类│ ├── detection_worker.py # 检测工作线程│ ├── camera_capture.py # 摄像头捕获类│ ├── video_processor.py # 视频处理类│ ├── model_manager.py # 模型管理类│ ├── utils.py # 工具函数│ └── config.py # 配置文件├── 数据集/│ ├── train/ # 训练集│ │ ├── images/ # 训练图片 (18451张)│ │ └── labels/ # 训练标注│ ├── val/ # 验证集│ │ ├── images/ # 验证图片 (5270张)│ │ └── labels/ # 验证标注│ ├── test/ # 测试集│ │ ├── images/ # 测试图片 (2638张)│ │ └── labels/ # 测试标注│ └── data.yaml # 数据集配置文件├── 模型文件/│ ├── yolov8n.pt # YOLOv8n 模型权重│ ├── yolov8s.pt # YOLOv8s 模型权重│ ├── yolov8m.pt # YOLOv8m 模型权重│ └── model_config.yaml # 模型配置文件├── 界面资源/│ ├── icons/ # 图标资源│ ├── styles/ # 样式表│ └── translations/ # 多语言文件├── 测试文件/│ ├── test_images/ # 测试图片│ ├── test_videos/ # 测试视频│ └── test_results/ # 测试结果├── 环境配置/│ ├── requirements.txt # Python依赖包│ ├── environment.yml # Conda环境配置│ └── install.bat # Windows安装脚本├── 文档/│ ├── 程序运行说明文档.pdf # 详细使用说明│ ├── 环境配置教程.pdf # 环境配置步骤│ ├── 模型训练指南.pdf # 自定义训练指南│ └── 常见问题解答.pdf # 问题解决方法└── README.md # 项目说明⚙️ 技术实现核心检测流程简化的检测流程加载选择的YOLOv8模型预处理输入图片/视频帧调整大小到640×640归一化像素值转换为模型输入格式模型推理前向传播获取预测结果应用NMS过滤重叠框根据置信度阈值过滤结果后处理将边界框坐标转换回原始尺寸提取病害类别、位置、置信度计算病害面积与统计信息结果可视化在原始图片上绘制边界框添加类别标签和置信度更新统计信息显示结果保存与导出保存带标注的结果图片/视频记录检测结果到文件生成检测报告多线程处理• 主线程UI渲染与用户交互• 检测线程模型推理与结果处理• 摄像头线程实时视频帧捕获• 文件处理线程批量图片/视频处理• 结果保存线程检测结果异步保存性能优化• 模型量化使用FP16混合精度推理• 批处理批量图片检测时使用批处理加速• 缓存机制频繁检测的图片结果缓存• 硬件加速支持CUDA GPU加速推理• 内存优化大文件分块处理减少内存占用 快速开始环境要求• 操作系统Windows 10/11, Ubuntu 18.04, macOS 10.15• Python版本Python 3.8-3.10• 内存要求8GB RAM推荐16GB• 存储空间10GB可用空间• 显卡可选NVIDIA GPU可加速检测安装步骤1. 克隆或下载项目git clone 项目地址cd apple-leaf-disease-detection2. 创建Python虚拟环境python -m venv venvWindowsvenv\Scripts\activateLinux/Macsource venv/bin/activate3. 安装依赖pip install -r requirements.txt4. 运行程序python main.py依赖包列表PyQt55.15.0opencv-python4.5.0ultralytics8.0.0torch1.10.0torchvision0.11.0numpy1.20.0pandas1.3.0matplotlib3.4.0Pillow8.3.0tqdm4.62.0pyyaml5.4.0 模型性能评估指标在测试集上模型 mAP0.5 精确率 召回率 F1分数 推理速度(FPS)YOLOv8n 0.856 0.832 0.841 0.836 85YOLOv8s 0.892 0.871 0.864 0.867 62YOLOv8m 0.915 0.899 0.882 0.890 45注推理速度测试环境Intel i7-11800H, NVIDIA RTX 3060, 批量大小1各类病害检测精度病害类别 YOLOv8n YOLOv8s YOLOv8m 平均置信度锈病 0.841 0.886 0.902 0.876花叶病 0.832 0.879 0.908 0.873灰斑病 0.857 0.893 0.921 0.890褐斑病 0.861 0.895 0.917 0.891链格孢枯萎病 0.889 0.907 0.927 0.908平均 0.856 0.892 0.915 0.888 应用场景果园生产管理• 病害早期预警及时发现病害防止大面积传播• 精准施药根据病害类型和严重程度精准施药• 生长监测定期监测叶片健康状况• 防治效果评估评估防治措施效果优化防治方案农业技术服务• 远程诊断技术员远程查看病害图片提供指导• 技术培训作为果农技术培训的直观教具• 防治指导根据检测结果提供针对性防治建议• 数据采集采集病害发生数据建立病害数据库农业科研与教育• 病害研究辅助病害发生规律与防治技术研究• 品种选育评估不同品种的抗病性• 教学实验农业院校植物病理学教学工具• 算法研究计算机视觉在农业领域的应用研究质量检测与认证• 有机认证监测果园病害防治情况支持有机认证• 出口检验确保出口苹果符合目标市场植物检疫要求• 保险勘察农业保险理赔的病害损失评估• 供应链管理苹果供应链质量监控 自定义与扩展模型替换指南系统设计支持轻松替换模型用于其他检测任务准备新模型◦ 使用YOLOv8训练自己的数据集◦ 导出为PyTorch (.pt) 或 ONNX (.onnx) 格式◦ 确保类别定义与系统兼容模型配置修改 model_config.yamlmodel_name: “自定义模型”model_path: “./models/custom_model.pt”classes: [“类别1”, “类别2”, “类别3”]input_size: 640界面适配◦ 更新类别标签显示◦ 调整统计图表标签◦ 修改结果导出格式训练自己的模型系统提供完整的训练脚本和指南1. 准备数据集将图片放入 dataset/images/将标注文件放入 dataset/labels/编辑 dataset/data.yaml 配置类别2. 开始训练python train.py --data dataset/data.yaml–weights yolov8s.pt–epochs 150–imgsz 640–batch 163. 验证模型python val.py --data dataset/data.yaml–weights runs/train/exp/weights/best.pt4. 导出模型python export.py --weights runs/train/exp/weights/best.pt–include torchscript onnx 使用指南基本操作流程启动程序运行main.py启动应用程序选择模型在左侧面板选择YOLOv8n/s/m模型选择输入源点击对应按钮选择图片/视频/摄像头调整参数根据需要调整置信度阈值等参数开始检测点击开始检测按钮查看结果在中央区域查看检测结果右侧查看统计信息保存结果点击保存结果保存检测图片/视频/报告切换任务可随时切换不同输入源或模型继续检测快捷键说明• CtrlO打开图片• CtrlShiftO打开文件夹批量图片• CtrlV打开视频文件• CtrlC打开/关闭摄像头• Space开始/停止检测• CtrlS保存当前检测结果• CtrlQ退出程序• F1显示帮助文档• F11全屏切换常见问题解决模型加载失败检查模型文件路径确保模型文件完整摄像头无法打开检查摄像头连接确保没有被其他程序占用检测速度慢尝试使用YOLOv8n模型降低输入分辨率内存不足减少批量处理数量关闭其他占用内存的程序结果不准确调整置信度阈值确保输入图片质量 交付内容完整源码文件• 主程序源代码Python• 界面设计文件• 工具类与工具函数• 配置文件与资源文件已标注的数据集• 训练集18451张苹果叶片图片及标注• 验证集5270张图片及标注• 测试集2638张图片及标注• 数据集配置文件训练好的模型• YOLOv8n模型权重150 epochs训练• YOLOv8s模型权重150 epochs训练• YOLOv8m模型权重150 epochs训练• 模型配置文件环境配置教程• Python环境安装指南• 依赖包安装步骤• 常见问题解决方法• 虚拟环境配置说明程序运行说明文档• 系统功能详细说明• 操作步骤图文教程• 参数配置指南• 高级功能使用说明本苹果叶片病害检测系统将先进的YOLOv8深度学习技术与实用的农业生产需求相结合提供了从病害检测到分析统计的完整解决方案。系统设计注重实用性、易用性和扩展性既可作为果园生产的日常管理工具也可作为农业科研的教学研究平台。通过本系统用户可以快速、准确地识别苹果叶片病害及时采取防治措施提高苹果产量和品质助力智慧农业发展。