news 2026/10/8 14:06:23

智慧农业茶叶病害检测系统 YOLOV8模型结合deepseek大模型 茶叶病虫害检测系统 YOLO+DeepSeek+Pytorch+SpringBoot+Flask+Vue

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
智慧农业茶叶病害检测系统 YOLOV8模型结合deepseek大模型 茶叶病虫害检测系统 YOLO+DeepSeek+Pytorch+SpringBoot+Flask+Vue

茶叶病虫害检测系统
YOLO+DeepSeek+Pytorch+SpringBoot+Flask+Vue

支持批量检测、图片检测、视频检测、摄像头检测四种方式。可以上传文件夹批量检测,检测结果可导出PDF。

结合DeepSeek、Qwen等大模型,给出相关建议。支持分用户管理,管理员可查看所有记录,普通用户只能看自己。
界面简洁美观,支持主题色修改、布局样式修改、组件大小修改等。技术栈:YOLO、DeepSeek、Qwen、Pytorch、SpringBoot、MyBatis-Plus、Vue3、Echarts、Ts、element-plus、Flask、Axios、MySQL。
系统还支持分用户管理,分为管理员和普通用户。普通用户只能查看自己的记录。

附:
1.整理好的yolo格式的数据集
2.详细的系统部署教程
3.实时视频,摄像头,图片检测
4.代码简洁,有注释
5.提供训练好的yolo权重

基于 YOLO + DeepSeek 的茶叶病虫害检测系统的完整技术架构、功能解析与详细代码实现(含数据集说明、前后端分离、AI 融合),

✅ 一、系统概览

项目内容
系统名称基于 YOLO + DeepSeek 的茶叶病虫害智能检测系统
核心技术
- YOLOv8 → 实时识别茶树病虫害(藻斑病、赤叶枯病等)
- DeepSeek / Qwen 大语言模型 → 自动生成防治建议
- Flask 后端 + Vue3 前端 → 构建 Web 管理平台
- SpringBoot + MyBatis-Plus → 用户权限管理与数据库操作
任务类型图像/视频/摄像头实时检测 + AI 分析 + 批量处理 + 数据导出
支持输入图片上传 / 文件夹批量 / 视频文件 / 摄像头实时流(RTSP)
输出内容检测结果图 + 病害分类 + 防治建议 + PDF 导出
部署方式Docker 容器化部署或本地运行

✅ 二、系统架构图

┌────────────────────┐ ┌────────────────────┐ │ 前端 (Vue3 + TS) │◄───►│ 后端 (Flask) │ │ (Web界面 + ECharts) │ │ (API + 模型推理) │ └────────────────────┘ └────────────────────┘ ↑ ↑ │ │ │ │ ▼ ▼ ┌────────────────────┐ ┌────────────────────┐ │ AI 推理 (YOLOv8) │◄───►│ 大模型 (DeepSeek) │ │ (定位病害区域) │ │ (生成防治建议) │ └────────────────────┘ └────────────────────┘ ↑ ↑ │ │ │ │ ▼ ▼ ┌────────────────────┐ ┌────────────────────┐ │ 数据库 (MySQL) │ │ 文件存储 (MinIO) │ └────────────────────┘ └────────────────────┘

✅ 三、核心功能模块

功能说明
🎯多模式检测支持图片、批量文件夹、视频、摄像头四种输入方式
🧠AI 自动诊断识别后自动调用 DeepSeek 或 Qwen 生成个性化防治方案
📊数据管理所有检测记录可查、可导出为 PDF、支持用户权限控制
🖼️可视化大屏统计分析图表(折线图、雷达图)、用户行为分析
💬智能问答助手可问:“如何预防赤叶枯病?”、“茶盲蝽怎么治?”
🛠️批量处理支持上传整个文件夹,一键完成所有图像检测
📥PDF 导出将检测报告导出为 PDF,便于打印和存档
🔐用户权限管理管理员 vs 普通用户,普通用户只能查看自己的记录
🎨主题定制支持颜色、布局、组件大小自定义,UI 美观

✅ 四、数据集详情(已整理好)

🌿数据集名称:Tea Disease Dataset
📁总数量:5,200 张高清图像
📦划分比例:

  • 训练集:4,160 张
  • 验证集:624 张
  • 测试集:416 张

📊 类别分布(共 6 类)

类别样本数说明
algal_spot900藻斑病(叶片出现绿色或黑色斑点)
brown_rot850褐枯病(叶片边缘干枯发褐)
gray_rot780灰枯病(灰白色霉层覆盖)
healthy1,200健康茶叶
tea_bug650茶盲蝽(小虫在叶背活动)
red_leaf_spot720赤叶枯病(红褐色斑块)

✅标注格式:YOLO.txt(每张图对应一个标签文件)
✅分辨率:640×640(统一缩放)
✅拍摄场景:茶园实景、不同光照、多角度拍摄
✅提供训练好的权重文件:best.pt(直接可用)


✅ 五、前端代码(Vue3 + TypeScript + Element Plus)

1.src/router/index.ts

import{createRouter,createWebHistory}from'vue-router'importLoginfrom'@/views/Login.vue'importDashboardfrom'@/views/Dashboard.vue'importImageDetectfrom'@/views/ImageDetect.vue'importBatchDetectfrom'@/views/BatchDetect.vue'importVideoDetectfrom'@/views/VideoDetect.vue'importCameraDetectfrom'@/views/CameraDetect.vue'importHistoryfrom'@/views/History.vue'importAIAssistantfrom'@/views/AIAssistant.vue'importUserManagefrom'@/views/UserManage.vue'constroutes=[{path:'/login',component:Login},{path:'/',component:Dashboard},{path:'/image-detect',component:ImageDetect},{path:'/batch-detect',component:BatchDetect},{path:'/video-detect',component:VideoDetect},{path:'/camera-detect',component:CameraDetect},{path:'/history',component:History},{path:'/ai-assistant',component:AIAssistant},{path:'/user-manage',component:UserManage}]constrouter=createRouter({history:createWebHistory(),routes})exportdefaultrouter

2.src/views/BatchDetect.vue—— 批量检测页面

<template> <div class="batch-detect"> <h2>批量检测</h2> <el-form :model="form" label-width="100px"> <el-form-item label="模型选择"> <el-select v-model="form.model" placeholder="请选择模型"> <el-option label="best.onnx" value="best.onnx"></el-option> </el-select> </el-form-item> <el-form-item label="上传文件夹"> <el-upload action="" :auto-upload="false" :on-change="handleFileChange" :multiple="true" accept=".jpg,.jpeg,.png" > <el-button type="primary">上传图片文件夹</el-button> </el-upload> </el-form-item> <el-form-item> <el-slider v-model="minConfidence" :min="0.1" :max="1.0" step="0.01" /> <span>设置最小置信度阈值:{{ minConfidence }}</span> </el-form-item> <el-form-item> <el-button type="primary" @click="startDetection">开始预测</el-button> </el-form-item> </el-form> <el-table :data="results" style="width: 100%"> <el-table-column prop="index" label="序号"></el-table-column> <el-table-column prop="result" label="识别结果"></el-table-column> <el-table-column prop="confidence" label="预测概率"></el-table-column> <el-table-column prop="time" label="总耗时"></el-table-column> <el-table-column prop="timestamp" label="预测时间"></el-table-column> <el-table-column label="预测图片"> <template #default="{ row }"> <img :src="row.image" width="100" /> </template> </el-table-column> <el-table-column label="操作"> <template #default="{ row }"> <el-button size="small" @click="selectImage(row)">选择</el-button> </template> </el-table-column> </el-table> <div class="preview"> <img v-if="selectedImage" :src="selectedImage" alt="预览" /> <div v-if="selectedImage"> <p><strong>识别结果:</strong>{{ selectedResult }}</p> <p><strong>预测概率:</strong>{{ selectedConfidence }}</p> <p><strong>总耗时:</strong>{{ selectedTime }}</p> </div> </div> </div> </template> <script setup lang="ts"> import { ref } from 'vue' import axios from 'axios' interface Result { index: number result: string confidence: string time: string timestamp: string image: string } const form = ref({ model: 'best.onnx' }) const minConfidence = ref(0.5) const results = ref<Result[]>([]) const selectedImage = ref('') const selectedResult = ref('') const selectedConfidence = ref('') const selectedTime = ref('') const handleFileChange = (file: any) => { // 上传文件夹逻辑 console.log(file) } const startDetection = async () => { const formData = new FormData() formData.append('folder', 'uploads/test') formData.append('min_conf', minConfidence.value.toString()) const res = await axios.post('/api/detect/batch', formData, { headers: { 'Content-Type': 'multipart/form-data' } }) results.value = res.data.results.map((item: any, index: number) => ({ index: index + 1, result: item.class, confidence: `${item.confidence}%`, time: item.time, timestamp: new Date().toLocaleString(), image: `/static/images/${item.filename}` })) } </script>

✅ 六、后端代码(Python + Flask)

1.app.py—— 主程序

# app.pyfromflaskimportFlask,render_template,request,jsonify,send_from_directoryimportcv2importnumpyasnpimportosimportjsonfromultralyticsimportYOLOimportrequests app=Flask(__name__)app.config['UPLOAD_FOLDER']='uploads'app.config['STATIC_FOLDER']='static'# 加载 YOLOv8 模型model=YOLO('best.pt')# 提供的训练好的权重# DeepSeek API 配置DEEPSEEK_API_KEY="your_deepseek_api_key"DEEPSEEK_URL="https://api.deepseek.com/v1/chat/completions"@app.route('/')deflogin():returnrender_template('login.html')@app.route('/dashboard')defdashboard():returnrender_template('dashboard.html')@app.route('/detect/image',methods=['POST'])defdetect_image():file=request.files['image']img_array=np.array(bytearray(file.read()),dtype=np.uint8)img=cv2.imdecode(img_array,cv2.IMREAD_COLOR)# YOLO 推理results=model(img)result_img=results[0].plot()# 保存结果图像result_path=os.path.join(app.config['UPLOAD_FOLDER'],'result.jpg')cv2.imwrite(result_path,result_img)# 提取标签labels=[]forboxinresults[0].boxes:cls_name=results[0].names[int(box.cls)]conf=float(box.conf)labels.append({'class':cls_name,'confidence':conf})# 调用 DeepSeek 生成防治建议advice=generate_advice(labels)returnjsonify({'image_url':'/uploads/result.jpg','labels':labels,'advice':advice})@app.route('/detect/batch',methods=['POST'])defdetect_batch():folder=request.form['folder']min_conf=float(request.form['min_conf'])results=[]forfilenameinos.listdir(folder):iffilename.endswith('.jpg')orfilename.endswith('.png'):img_path=os.path.join(folder,filename)img=cv2.imread(img_path)res=model(img)pred=res[0].boxesforboxinpred:cls_name=res[0].names[int(box.cls)]conf=float(box.conf)ifconf>=min_conf:results.append({'class':cls_name,'confidence':conf,'filename':filename,'time':res[0].time})returnjsonify({'results':results})

✅ 七、DeepSeek 生成防治建议函数

defgenerate_advice(labels):prompt=f""" 你是一位农业专家,请根据以下检测到的茶叶病虫害,生成一份详细的防治建议: 检测结果:{json.dumps(labels,ensure_ascii=False,indent=2)}请包含以下内容: 1. 病害描述 2. 发生原因 3. 防治措施(物理、化学、生物) 4. 预防建议 """response=requests.post("https://api.deepseek.com/v1/chat/completions",headers={"Authorization":"Bearer YOUR_API_KEY"},json={"model":"deepseek-chat","messages":[{"role":"user","content":prompt}]})returnresponse.json()['choices'][0]['message']['content']

✅ 八、SpringBoot 用户管理模块(Java)

User.java

@Entity@Table(name="users")publicclassUser{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)privateLongid;@Column(unique=true)privateStringusername;privateStringpassword;privateStringrole;// admin / user// getter & setter}

UserService.java

@ServicepublicclassUserService{@AutowiredprivateUserRepositoryuserRepository;publicUserfindByUsername(Stringusername){returnuserRepository.findByUsername(username);}publicbooleanhasPermission(Useruser,Stringoperation){return"admin".equals(user.getRole())||"user".equals(operation);}}

✅ 九、部署教程

1. 安装依赖

pipinstallflask opencv-python numpy ultralytics requests

2. 启动服务

python app.py

3. 访问地址

http://localhost:5000/login

✅ 十、创新点总结(直击评委评分)

创新点说明
🌐双模态融合YOLO 定位 + DeepSeek 解释 → 实用性拉满
📡全场景接入支持图片、视频、摄像头、批量文件夹
📊数据可视化大屏展示、历史记录、统计分析
🤖AI 智能助手自动生成防治建议,提升用户体验
📥PDF 导出检测报告可导出为 PDF,便于归档
🔐用户权限管理管理员 vs 普通用户,安全可控
🎨主题定制支持颜色、布局、组件大小自定义

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/6 4:26:02

‌一篇让你不再头疼的职业院校智慧校园技术参数编写指南

✅作者简介&#xff1a;合肥自友科技 &#x1f4cc;核心产品&#xff1a;智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…

作者头像 李华
网站建设 2026/10/5 14:42:34

智能体来了:从0到1教你三步构建属于你的 AI 数字分身

导语&#xff1a; 当全球科技巨头争相推出 AI 助手时&#xff0c;一个更激动人心的可能性正在悄然兴起——创建真正属于你个人的 AI 智能体。本文将带你踏上从0到1的智能体搭建之旅&#xff0c;揭开 AI 数字分身的神秘面纱。第一部分&#xff1a;智能体新纪元的黎明AI 智能体与…

作者头像 李华
网站建设 2026/10/6 4:26:14

CASS插件合集 | 让你的测绘绘图效率翻倍!

&#x1f527; 大家好&#xff01;作为测绘和地理信息行业的从业者&#xff0c;你一定对CASS软件不陌生。今天为大家带来一份 CASS插件合集&#xff0c;这些工具能够显著提升你的绘图效率和数据处理能力&#xff01; &#x1f4ca; 合集 &#x1f6e0;️ 包含CASS插件类型 &a…

作者头像 李华
网站建设 2026/10/4 10:02:32

霍尔电流传感器在新能源汽车中的应用探讨

最近在研究新能源汽车电驱动系统的电流监测方案&#xff0c;发现霍尔电流传感器在电机控制、逆变器和BMS中扮演着关键角色。尤其是在高压、大电流场景下&#xff0c;非接触式测量的优势特别明显。不过&#xff0c;实际应用中也发现了一些技术细节和挑战&#xff0c;今天就聊聊霍…

作者头像 李华
网站建设 2026/10/8 10:50:29

渗透测试实战核心:ARP 欺骗攻击(ARP 断网攻击)全流程实操指南

一、目的&#xff1a;通过实训理解ARP欺骗的原理。掌握中间攻击的方法。 二、场景描述&#xff1a; 在虚拟机环境下配置 “Win7”和“Kali Linux”虚拟系统&#xff0c;使得2个系统之间能够相互通信。 三、实验环境&#xff1a; 1.软件&#xff1a;VMware Workstations14以…

作者头像 李华
网站建设 2026/10/8 2:01:37

基于区块链的传感器数据存证与溯源系统

基于区块链的传感器数据存证与溯源系统:用“不可篡改的指纹”守护数字世界的真实 一、引入:一盒冰淇淋的信任危机 夏天的午后,小明抱着刚从超市买的进口香草冰淇淋往家跑——包装盒上明明白白写着“全程冷链≤-18℃”。可打开时,冰淇淋已经化成了黏糊糊的液体。 他拿着购…

作者头像 李华