# 农作物病虫害识别 Web 系统 **Repository Path**: zzh551/implement-algorithm-library ## Basic Information - **Project Name**: 农作物病虫害识别 Web 系统 - **Description**: 本项目面向农作物病虫害识别场景,提供从前端交互到模型推理的完整 Web 应用能力。用户可以通过网页上传图片、上传视频或接入摄像头,调用 YOLO 模型完成目标检测,并在页面中查看识别结果。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 188 - **Forks**: 137 - **Created**: 2026-02-04 - **Last Updated**: 2026-06-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # YOLO Crop Disease Detection Web 一个基于 `Vue + Flask + YOLO + PyTorch` 的农作物病虫害识别 Web 系统,支持图像检测、视频检测和摄像头实时检测。 ## 项目简介 本项目面向农作物病虫害识别场景,提供从前端交互到模型推理的完整 Web 应用能力。用户可以通过网页上传图片、上传视频或接入摄像头,调用 YOLO 模型完成目标检测,并在页面中查看识别结果。 ## 功能特性 - 图像检测 - 视频检测 - 摄像头实时检测 - 模型权重切换 - 检测置信度调节 - 识别结果可视化展示 - Web 页面交互式操作 ## 技术栈 - Frontend: `Vue` - Backend: `Flask`, `Flask-SocketIO` - Deep Learning: `YOLO`, `PyTorch` - Computer Vision: `OpenCV` - Optional Service: `Spring Boot`, `MySQL` ## 项目结构 ```text yolo_cropDisease_detection_web/ ├─ README.md ├─ predictImg.py ├─ ffmpeg-7.1-full_build/ ├─ yolo_cropDisease_detection_flask/ ├─ yolo_cropDisease_detection_springboot/ ├─ yolo_cropDisease_detection_vue/ ├─ 测试图片/ └─ cropdisease.sql ``` ## 运行环境 - `Python 3.10`、`Python 3.11` 或 `Python 3.12` - `Node.js 18+` - `npm 9+` - `Windows` ## Python 依赖 核心依赖包括: - `torch` - `torchvision` - `flask` - `flask-socketio` - `opencv-python` - `requests` - `ultralytics` 安装方式: ```powershell # 在已激活的 Python 虚拟环境中执行 pip install -r requirements.txt ``` ## 模型文件 默认模型权重位于: ```text yolo_cropDisease_detection_flask/weights/Pest_best.pt ``` 如需增加新模型,可将权重文件放入 `yolo_cropDisease_detection_flask/weights/` 目录,并在前端页面中选择对应模型。 ## 启动方式 ### 1. 启动 Flask 推理服务 ```powershell # 在项目根目录 yolo_cropDisease_detection_web 下执行 cd .\yolo_cropDisease_detection_flask python -m venv .venv .\.venv\Scripts\Activate.ps1 pip install -r requirements.txt python main.py ``` 默认服务地址: ```text http://127.0.0.1:5000 ``` 健康检查接口: ```text http://127.0.0.1:5000/health ``` ### 2. 启动 Vue 前端 ```powershell cd .\yolo_cropDisease_detection_vue npm install npm run dev -- --host 0.0.0.0 ``` 默认访问地址: ```text http://127.0.0.1:8888/index.html ``` ## 使用说明 ### 图像检测 1. 打开图像检测页面 2. 选择模型权重 3. 上传待检测图片 4. 调整置信度阈值 5. 点击“开始预测” 6. 查看检测结果 ### 视频检测 1. 打开视频检测页面 2. 上传待检测视频 3. 选择模型并设置阈值 4. 开始检测并查看结果 ### 摄像头检测 1. 打开摄像头检测页面 2. 授权浏览器访问摄像头 3. 选择模型并设置阈值 4. 开始实时检测 ## 扩展模块 项目中保留了 `Spring Boot` 与 `MySQL` 相关模块,可用于扩展: - 用户管理 - 记录管理 - 后台业务接口 如需启用,请额外配置: - `Java 8` - `Maven` - `MySQL` 并导入数据库脚本: ```text cropdisease.sql ``` ## 常见问题 ### 1. 模型可以启动,但图片无法识别 通常是因为输入图片不在当前模型的目标类别范围内。请使用与训练任务对应的病虫害图片进行测试。 ### 2. 前端页面可以打开,但检测接口调用失败 请先确认 Flask 服务已启动,并能正常访问: ```text http://127.0.0.1:5000/health ``` ### 3. 权重文件无法加载 请检查模型文件是否存在于 `yolo_cropDisease_detection_flask/weights/` 目录,并确认文件名与前端选择项一致。 ## 开源说明 本项目可作为病虫害识别、YOLO Web 部署、目标检测前后端联调的参考实现。 ## 贡献与引用说明 本项目技术引用并参考了两个开源基础项目,构建起面向农作物病虫害智能识别 Web 系统的模型训练、轨迹/时序建模参考与异构计算迁移支撑能力: https://gitee.com/ShiruiTian/Trajectory_Prediction 作为轨迹预测与时序建模方向的开源参考项目,本项目参考其在数据预处理、模型输入组织、预测结果可视化与实验流程管理方面的工程化思路,用于完善农作物病虫害检测结果的记录管理、批量分析与后续时序趋势扩展设计。本项目未直接调用其原始二进制文件,而是基于其公开实现思想进行可审计、可维护的适配开发。 https://gitee.com/liu_muzhou/sptensor 作为稀疏张量计算与异构平台迁移方向的开源参考项目,本项目参考其面向国产异构计算平台的软件迁移、算子组织和工程构建经验,为 YOLO 病虫害识别模型在 GPU/DCU 等异构硬件环境中的部署验证、模型推理加速与后续算子级优化提供技术参考。 上述引用均遵循对应仓库许可证和开源使用规范,在本项目中作为公开开源实现的技术参考和关联支撑,不隐去原项目来源,不移除原作者版权标识。项目后续扩展中,如引入对应仓库源码、子模块或可执行组件,将保留完整许可证文本、版权说明和版本来源记录,并通过依赖安装、接口调用、功能测试等流程验证集成的真实性、可控性与可复现性,从而体现被引用、被依赖、被关联的开源协同价值。 ## 开源协议补充说明 根据材料完善意见,现对本项目各汇总目录和主要文件类别统一补充开源协议声明: - 根目录 `README.md`、`predictImg.py`、`requirements.txt`、`cropdisease.sql` 以及其他自研说明文档,统一采用 `MIT License` - `yolo_cropDisease_detection_flask/` 目录内自研 Flask 推理服务、分析扩展与配套 Python 代码,统一采用 `MIT License` - `yolo_cropDisease_detection_springboot/` 目录内自研 Spring Boot 业务代码,统一采用 `MIT License` - `yolo_cropDisease_detection_springboot/mvnw`、`yolo_cropDisease_detection_springboot/mvnw.cmd` 与 `.mvn/wrapper/*` 保留 Maven Wrapper 上游 `Apache-2.0` 协议声明 - `yolo_cropDisease_detection_vue/` 目录内自研前端代码采用 `MIT License`,并保留该目录原有 `LICENSE` 文件 - `yolo_cropDisease_detection_flask/weights/`、`yolo_cropDisease_detection_springboot/files/`、`测试图片/` 中的模型权重、测试样例和演示输出文件,不作为独立开源代码再次授权,使用时应遵循原始模型、数据集或素材来源约束 项目根目录已新增 `LICENSE` 作为默认协议文本,并新增 `LICENSES.md` 作为目录级协议汇总清单。若后续引入新的第三方源码、二进制、子模块或数据文件,将继续遵循“保留原许可证文本、保留版权标识、按原协议使用”的原则处理。