YOLOv8水稻病害识别检测系统(项目源码+YOLO数据集+模型权重+UI界面+python+深度学习+环境配置)
摘要
水稻作为全球主要粮食作物,其病害的快速准确检测对保障粮食安全具有重要意义。针对传统人工识别效率低、主观性强等问题,本文基于YOLOv8目标检测算法构建了一套水稻病害检测系统,专注于三种常见病害的识别:细菌性叶枯病(Bacterial_Leaf_Blight)、褐斑病(Brown_Spot)和叶枯病(Leaf_smut)。实验采用包含6030张训练图像、409张验证图像和276张测试图像的自建数据集。训练结果表明,模型在三类病害上的平均精度(mAP50)达到1.00,mAP50-95同样趋近于1.00,整体F1分数最高为0.97(置信度阈值0.55)。混淆矩阵分析显示,三类病害的召回率分别为0.99、0.98和0.93。精度-召回率曲线和训练损失曲线进一步验证了模型训练的稳定性和收敛性。总体而言,本文提出的YOLOv8水稻病害检测系统在精度、召回率和泛化能力上均表现优异,具备实际部署的可行性,可为智慧农业中的病害自动化监测提供有效技术支撑。
引言
水稻病害是制约水稻产量和品质的主要因素之一,其中细菌性叶枯病、褐斑病和叶枯病在我国水稻主产区频繁发生,造成严重经济损失。传统的病害识别依赖植保专家或经验丰富的农民通过肉眼观察,存在效率低、主观性强、响应滞后等问题,难以满足大规模、实时病害监测的需求。近年来,深度学习技术,特别是计算机视觉领域的卷积神经网络,为植物病害自动识别提供了新的解决思路。YOLO系列算法因其实时性和高精度,在农业目标检测任务中取得了广泛应用。其中YOLOv8作为最新迭代版本,在检测速度和精度之间实现了更优平衡。为此,本文设计并实现了一个基于YOLOv8的水稻病害检测系统,针对上述三种典型水稻病害,从数据集构建、模型训练、性能评估到部署可行性进行了系统研究。实验重点关注模型在实际农业场景中的识别准确率、类别区分能力及抗背景干扰能力。通过多维度评估指标,验证了模型在复杂环境下的鲁棒性,并为后续移动端或边缘计算设备部署提供依据。
目录
2. 精度-召回率曲线(P_curve & R_curve)编辑编辑
功能模块
✅ 用户登录注册:支持密码检测,密码加密。
注册

登录

✅ 图片检测:可对图片进行检测,返回检测框及类别信息。

✅参数实时调节(置信度和IoU阈值)

✅ 支持选择检测目标:可以选择一个或者多个类目的目标进行检测

✅ 视频检测:支持视频文件输入,检测视频中每一帧的情况。

✅ 摄像头实时检测:连接USB 摄像头,实现实时监测。

✅日志记录:日志标签页记录操作和错误信息,带时间戳

✅结果保存模块:支持图片/视频/摄像头检测结果保存
1、用户管理模块
| 功能 | 描述 |
|---|---|
| 用户注册 | 用户名、密码、确认密码、邮箱(选填)注册,密码SHA256加密存储 |
| 用户登录 | 用户名密码验证,自动跳转主界面 |
| 用户数据存储 | JSON文件存储用户信息(密码加密、注册时间、邮箱) |
| 登录状态 | 主界面显示当前登录用户名 |
2、界面与交互模块
| 功能 | 描述 |
|---|---|
| 玻璃效果界面 | 半透明毛玻璃背景,圆角边框,现代化视觉风格 |
| 无边框窗口 | 自定义标题栏,支持窗口拖动、最小化、最大化、关闭 |
| 响应式布局 | 主窗口三栏布局(左侧控制区、中央显示区、右侧信息区) |
| 状态栏 | 显示设备信息、模型状态、当前用户、实时时间 |
3、检测源管理模块
| 功能 | 描述 |
|---|---|
| 图片检测 | 支持JPG/JPEG/PNG/BMP格式图片载入 |
| 视频检测 | 支持MP4/AVI/MOV/MKV格式视频载入 |
| 摄像头检测 | 实时调用摄像头(默认ID 0)进行检测 |
| 检测源切换 | 下拉菜单切换三种检测模式,自动更新界面状态 |
4、检测参数配置模块
| 功能 | 描述 |
|---|---|
| 置信度阈值 | 滑动条调节(0-100%,步长1%),实时显示当前值 |
| IoU阈值 | 滑动条调节(0-100%,步长1%),实时显示当前值 |
| 类别选择 | 动态生成检测类别复选框,支持全选/取消全选 |
| 参数同步 | 参数实时同步到检测器核心 |
5、YOLO检测核心模块
| 功能 | 描述 |
|---|---|
| 模型加载 | 加载best.pt模型文件,自动检测GPU可用性,支持CPU/GPU切换 |
| 多模式检测 | 图片检测、视频检测、摄像头实时检测 |
| 检测线程 | 基于QThread的多线程处理,避免界面卡顿 |
| 检测结果 | 返回目标类别、置信度、边界框坐标 |
| FPS计算 | 实时计算处理帧率 |
| 进度反馈 | 视频处理进度条实时更新 |
6、结果显示模块
| 功能 | 描述 |
|---|---|
| 实时画面 | 中央区域显示检测结果图像(带标注框) |
| 统计信息 | 检测状态、目标数量、FPS、处理帧数实时更新 |
| 检测列表 | 右侧列表显示当前帧所有检测到的目标(类别+置信度) |
| 日志记录 | 日志标签页记录操作和错误信息,带时间戳 |
| 占位显示 | 未选择检测源时显示系统LOGO和提示文字 |
7、结果保存模块
| 功能 | 描述 |
|---|---|
| 保存开关 | 复选框控制是否保存检测结果 |
| 路径选择 | 自定义保存路径,支持图片/视频格式自动识别 |
| 自动命名 | 保存文件自动添加时间戳(detection_result_20240101_120000.jpg) |
| 视频保存 | 支持检测结果视频录制(MP4格式) |
| 手动保存 | 工具栏保存按钮可随时保存当前画面 |
| 保存反馈 | 保存成功弹窗提示,日志记录保存路径 |
8、工具栏功能
| 功能 | 描述 |
|---|---|
| 图片按钮 | 快速切换到图片检测模式并打开文件选择器 |
| 视频按钮 | 快速切换到视频检测模式并打开文件选择器 |
| 摄像头按钮 | 快速切换到摄像头检测模式 |
| 保存按钮 | 手动保存当前显示画面 |
9、辅助功能
| 功能 | 描述 |
|---|---|
| 错误处理 | 统一错误弹窗提示,日志记录错误详情 |
| 资源清理 | 检测停止时自动释放摄像头、视频文件、视频写入器资源 |
| 时间显示 | 状态栏实时显示系统时间 |
| 模型状态 | 状态栏显示模型加载状态和当前设备(CPU/GPU) |
10、数据校验模块
| 功能 | 描述 |
|---|---|
| 注册验证 | 用户名长度≥3,密码长度≥6,密码一致性检查,邮箱格式验证 |
| 协议确认 | 注册前需勾选同意用户协议 |
| 文件校验 | 模型文件存在性检查,文件大小验证(≥6MB) |
| 输入非空 | 登录/注册时必填项非空检查 |
背景
水稻是全球超过一半人口的主要食物来源,而病害是导致水稻减产的主要原因之一。细菌性叶枯病由黄单胞菌引起,可导致叶片干枯,严重时使整株死亡;褐斑病由稻平脐蠕孢菌引起,常在抽穗期爆发,影响谷粒灌浆;叶枯病则主要通过种子传播,在湿润条件下迅速蔓延。这三种病害在田间往往同时发生,症状相似,仅靠肉眼难以快速准确区分。传统的检测方法包括聚合酶链式反应(PCR)和酶联免疫吸附测定(ELISA),虽然准确性高,但成本昂贵、操作复杂,不适合田间实时应用。
随着计算机视觉和深度学习的发展,基于图像的目标检测模型在农业病害识别中展现出巨大潜力。特别是YOLO系列模型,实现了从图像中直接预测病害类别和位置,具有端到端、高效率的特点。然而,现有研究多集中于单一病害或实验室条件下采集的图像,在真实农田环境中面临光照变化、背景复杂、病害重叠等挑战。因此,构建一个能够在复杂田间背景下同时检测多种水稻病害的高精度模型,具有重要的现实意义和应用价值。
数据集介绍
1. 病害类别与标注
数据集共包含3个类别:
-
Bacterial_Leaf_Blight(细菌性叶枯病)
-
Brown_Spot(褐斑病)
-
Leaf_smut(叶枯病)
使用LabelImg工具进行人工标注,采用YOLO格式的边界框(中心点坐标、宽度、高度)。每张图像中的每个病害病斑均被独立标注。标注完成后,由两名植物病理学专家进行复核,确保标注质量。
2. 数据集划分
按照目标检测任务的标准流程,将数据集划分为:
| 数据集类型 | 图像数量 | 用途 |
|---|---|---|
| 训练集 | 6030 | 模型参数学习 |
| 验证集 | 409 | 超参数调优与过拟合监控 |
| 测试集 | 276 | 最终性能评估 |
总计:6715张标注图像







训练过程


训练结果

总体评价
模型训练效果非常好,在三个病害类别(Bacterial_Leaf_Blight、Brown_Spot、Leaf_smut)上均表现出极高的检测精度和召回率,尤其适合对精确率要求高的实际应用场景。
关键指标分析
1. 混淆矩阵(Confusion Matrix)
原始混淆矩阵显示:
-
Bacterial_Leaf_Blight:184 正确,0 错误预测为其他
-
Brown_Spot:708 正确,11 被预测为 Leaf_smut
-
Leaf_smut:366 正确,28 被预测为 Brown_Spot
-
background:15 个背景被误判为病害
归一化混淆矩阵显示:
-
Bacterial_Leaf_Blight 召回率:0.99
-
Brown_Spot 召回率:0.98
-
Leaf_smut 召回率:0.93
-
主要混淆:Brown_Spot ↔ Leaf_smut 之间存在少量误判(约 2-7%)
2. 精度-召回率曲线(P_curve & R_curve)

-
最高精度:1.00(在置信度 0.965 时)
-
最高召回率:0.98(在置信度 0.000 时)
-
在常见置信度阈值(0.5~0.8)下,精度和召回率均保持在 **0.95~1.00**
模型在不同置信度下表现稳定,可灵活调整阈值以平衡精度与召回率。
3. F1-置信度曲线
-
最大 F1 值:0.97(置信度 0.55)
-
三类病害的 F1 曲线几乎重合,说明类别间性能一致
4. PR 曲线
-
各类别 PR 曲线几乎为 矩形(即精度始终接近 1.00,直到召回率接近 1.00 才下降)
-
平均精度(AP) 应接近 1.00
训练过程分析(results.png)
| 指标 | 趋势 | 说明 |
|---|---|---|
| train/box_loss | ↓ 下降 | 定位损失不断减小 |
| train/cls_loss | ↓ 下降 | 分类损失不断减小 |
| val/box_loss | ↓ 下降 | 验证集定位泛化良好 |
| val/cls_loss | ↓ 下降 | 验证集分类泛化良好 |
| precision | → 接近 1.0 | 最终精度极高 |
| recall | → 接近 1.0 | 最终召回率极高 |
| mAP50 | → 1.0 | 完美 |
| mAP50-95 | → 1.0 | 在不同 IoU 阈值下均表现极好 |
训练过程稳定,没有过拟合或欠拟合迹象。


常用标注工具
假设您现在准备好进行标注。有几种开源工具可以帮助简化数据标注流程。以下是一些有用的开放标注工具:
Label Studio:一个灵活的工具,支持各种标注任务,并包含用于管理项目和质量控制的功能。 CVAT:一个强大的工具,支持各种标注格式和可定制的工作流程,使其适用于复杂的项目。 Labelme:一个简单易用的工具,可以快速标注带有多边形的图像,非常适合简单的任务。 LabelImg: 一款易于使用的图形图像标注工具,特别适合以 YOLO 格式创建边界框标注。

这些开源工具经济实惠,并提供一系列功能来满足不同的标注需求。
界面核心代码:

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




所有评论(0)