🍊作者:计算机编程-吉哥
🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。
🍊心愿:点赞 👍 收藏 ⭐评论 📝
🍅 文末获取源码联系
👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~
目录
[2.1 后端技术栈](#2.1 后端技术栈)
[2.2 前端技术栈](#2.2 前端技术栈)
[2.3 模型训练](#2.3 模型训练)
[3.1 登录 / 注册](#3.1 登录 / 注册)
[3.2 病害检测(核心模块)](#3.2 病害检测(核心模块))
[3.3 检测记录](#3.3 检测记录)
[3.4 数据看板](#3.4 数据看板)
[3.5 智能问答](#3.5 智能问答)
[3.6 个人中心](#3.6 个人中心)
[3.7 用户管理(仅管理员)](#3.7 用户管理(仅管理员))
一、项目简介
苹果叶片病害是影响苹果产量和品质的重要因素,早期发现和精准识别对防治至关重要。传统的人工识别方式依赖经验,效率低且容易误判。因此,我构建了AppleGuardYOLO11,用深度学习的方式实现自动化、智能化的病害检测。
系统覆盖5类常见苹果叶片病害:
| 类别ID | 英文名称 | 中文名称 |
|---|---|---|
| 0 | Rust | 锈病 |
| 1 | Mosaic | 花叶病 |
| 2 | Grey_spot | 灰斑病 |
| 3 | Brown_Spot | 褐斑病 |
| 4 | Alternaria_Boltch | 斑点落叶病 |
整个系统采用Vue 3用户端 + Django 4后端 + YOLO11s模型 + MySQL 8数据库的架构,提供从登录注册、病害检测、检测记录、数据看板到智能问答的完整功能链路。
二、技术选型
2.1 后端技术栈
| 组件 | 版本 | 用途 |
|---|---|---|
| Python | 3.10 | 开发语言 |
| Django | 4.2.16 | Web框架 |
| ultralytics | 8.3.40 | YOLOv11模型加载与推理 |
| torch | 2.2.2 | 深度学习框架 |
| MySQL | 8.x | 数据存储 |
| PyMySQL | 1.1.1 | 数据库驱动 |
| scikit-learn | 1.5.2 | 智能问答TF-IDF检索 |
| jieba | 0.42.1 | 中文分词 |
2.2 前端技术栈
| 依赖 | 版本 | 用途 |
|---|---|---|
| Vue | ^3.4.0 | SPA框架 |
| vue-router | ^4.3.0 | 路由管理 |
| Element Plus | ^2.9.0 | UI组件库 |
| ECharts | ^5.5.0 | 数据看板图表 |
| marked | ^15.0.0 | Markdown渲染 |
| Vite | ^6.0.0 | 构建工具 |
2.3 模型训练
-
模型:YOLO11s(215层,约940万参数,21.4 GFLOPs)
-
数据集:18,451张训练图 + 5,270张验证图 + 2,638张测试图
-
训练配置:100 epoch,batch=16,640×640输入尺寸
-
优化器:SGD,初始学习率0.01,余弦退火
-
早停策略:30个epoch内mAP无提升则自动停止
三、功能模块
系统共包含7大模块,管理员额外拥有用户管理权限。
3.1 登录 / 注册
-
统一登录入口,后端根据
users.role自动分流 -
普通用户注册默认
role='user',前端无法注册为管理员 -
默认管理员账号:
admin / admin123
3.2 病害检测(核心模块)
支持4种检测模式:
-
单图检测:上传单张叶片图片,实时返回检测结果
-
批量检测:一次上传多张图片,批量推理
-
视频检测:上传视频文件,逐帧检测并输出结果
-
摄像头实时检测:调用浏览器摄像头,每500ms采集一帧进行实时推理
摄像头模式是我个人比较满意的一个功能。它不依赖WebSocket,而是用浏览器原生 getUserMedia API + Canvas离屏渲染 + 定时POST帧数据到后端,实现了约2 FPS的实时检测体验。后端用内存字典按 session_key 隔离多用户会话,30分钟TTL自动清理,用户点击"停止并保存"时才聚合落库。
3.3 检测记录
-
普通用户只能查看自己的检测记录
-
管理员可查看全部记录,并支持按用户名筛选
-
支持查看检测详情、结果图、目标列表
-
摄像头记录只展示汇总统计,避免单帧多目标撑爆表格
3.4 数据看板
-
基于ECharts的可视化大屏
-
展示检测总数、类别分布、时间趋势等
-
管理员看全站数据,普通用户看个人数据
-
管理员额外可见
total_users字段
3.5 智能问答
-
基于jieba + TF-IDF的RAG检索
-
知识库预置10条:5条病害知识 + 5条通用问题
-
支持Markdown格式回答渲染
3.6 个人中心
-
修改邮箱 / 手机
-
修改密码(需验证旧密码)
-
上传 / 更换头像(≤2MB)
-
查看用户名、角色、注册时间、累计检测次数
3.7 用户管理(仅管理员)
-
分页 + 关键词搜索用户
-
重置用户密码
-
启用 / 禁用用户(管理员账号除外)
-
删除用户 + 级联删除其检测记录(管理员账号除外)
四、项目亮点
亮点1:全栈闭环,从训练到上线
项目不只是跑通一个模型,而是完成了训练工程 → 模型权重 → 后端推理 → 前端交互 → 数据库持久化 的完整闭环。训练脚本、验证脚本、预测脚本一应俱全,训练完成后只需把 best.pt 复制到 weights/ 目录,Django启动时自动加载。
亮点2:4种检测模式覆盖多场景
单图、批量、视频、摄像头实时------4种模式覆盖了从离线分析到实时监测的多种应用场景。尤其是摄像头实时检测,用纯浏览器API + 定时帧上传的方式,在不引入WebSocket/Channels的前提下实现了准实时体验。
亮点3:精简的数据库设计
整个系统只用了3张表,却支撑了7大模块:
-
users:登录、注册、个人中心、用户管理 -
detection_records:病害检测、检测记录、数据看板 -
knowledge_corpus:智能问答
一张 detection_records 表撑起三个模块,设计上做了充分精简。
亮点4:完善的权限体系
-
普通用户与管理员权限严格分离
-
检测记录:普通用户强制只看自己,访问他人记录返回403
-
数据看板:管理员全站,普通用户个人
-
管理员账号不可被禁用、不可被删除
五、项目结构





