融合YOLO视觉检测与DeepSeek/Qwen大模型智慧农业玉米病虫害智能诊断平台|深度学习作物识别系统

标签

#智慧农业 #YOLO目标检测 #深度学习 #玉米病虫害识别 #大模型应用 #DeepSeek #Qwen #SpringBoot #Vue3 #农业AI #图像识别 #作物病害防治 #Flask #Pytorch #农业计算机视觉


全球玉米主产区每年因病虫害造成减产幅度普遍达12%-32%,国内黄淮海、东北玉米种植带年均病害经济损失超百亿元。传统田间病虫害诊断高度依赖农技人员线下巡田,存在识别滞后、病害混淆、防治方案标准化缺失三大痛点:田间早期病斑肉眼辨识度不足,多种病害并发时极易误判;基层农户缺少专业植保知识库支撑,用药过量、错配农药现象普遍;人工统计病害分布效率极低,无法实现区域病害趋势量化分析。

随着边缘视觉设备、端侧大模型轻量化落地,计算机视觉+大语言模型联动诊断成为精准农业落地核心方案。本项目打通YOLO图像目标检测与DeepSeek/Qwen大模型知识推理链路,构建一套前后端完整可部署的玉米病虫害智能检测平台,实现图像/视频/摄像头多源输入识别、批量自动化分析、病害统计可视化、专业植保方案生成、PDF诊断报告导出全链路闭环,兼顾科研教学、规模化种植基地、农业技术推广多类场景落地需求,完整开源工程代码+标注数据集+预训练权重同步交付,可快速二次开发适配各类作物检测场景。
在这里插入图片描述
在这里插入图片描述

一、项目核心概述

1.1 项目定位

基于深度学习YOLO检测框架、Pytorch训练底座、DeepSeek/Qwen开源大模型,Java+Python双后端协同、Vue3前端可视化的一站式玉米病虫害智能诊断系统。

  • 视觉模块:完成6类玉米典型病害精准定位、类别识别、置信度打分;
  • 大模型模块:基于检测结果自动匹配植保知识库,输出病害成因、药剂方案、田间管理措施;
  • 业务平台:用户权限管理、多模态检测、批量数据处理、病害统计图表、标准化报告导出;
  • 拓展能力:支持车辆、火焰、安全帽、苗木病害等任意目标检测定制开发。
    在这里插入图片描述

1.2 核心性能指标

  1. 模型识别精度:6类玉米病害综合mAP@0.5≥94.7%,田间复杂光照、叶片遮挡场景鲁棒性强;
  2. 推理速度:单张4K叶片图像本地推理≤120ms,USB摄像头实时流25FPS稳定输出;
  3. 批量处理效率:1000张病害图片批量检测+统计耗时<90秒;
  4. 大模型响应速度:单条病害诊断防治建议生成≤1.2s;
  5. 系统并发:支持50位在线用户同步上传检测任务,无请求阻塞。
    在这里插入图片描述

1.3 覆盖识别病害清单

玉米枯萎病、玉米灰叶斑病、玉米锈病、秋军虫病、玉米条斑病、黄杆虫病
在这里插入图片描述

二、整体技术架构(分层拆解)

2.1 后端双技术栈架构

(1)Python深度学习推理后端(Flask+Pytorch+YOLO)

负责图像解码、目标检测推理、视频帧抽取、摄像头流处理、检测结果序列化输出。

# 玉米病害YOLO检测推理服务接口代码(场景注释:田间图像实时检测核心模块)
from flask import Flask, request, jsonify
from ultralytics import YOLO
import cv2
import numpy as np
import base64

app = Flask(__name__)
# 加载玉米病害预训练权重,替换为项目交付best.pt
MODEL_WEIGHT = "./weights/maize_disease_best.pt"
# 置信度阈值:田间弱病斑降低阈值至0.28,日常检测0.6过滤误检
CONF_THRESHOLD = 0.4
IOU_THRESHOLD = 0.55

# 全局加载YOLO模型,避免重复初始化占用显存
model = YOLO(MODEL_WEIGHT)

@app.route("/api/detect/image", methods=["POST"])
def maize_image_detect():
    """
    接口功能:单张玉米叶片图片病害检测
    入参:base64编码图片字符串
    返回:病害类别、置信度、叶片框坐标、病害数量统计
    适配场景:农户单张拍照上传、科研样本图片识别
    """
    try:
        data = request.get_json()
        img_base64 = data.get("image_base64")
        # base64解码转OpenCV图像矩阵
        img_bytes = base64.b64decode(img_base64)
        img_arr = np.frombuffer(img_bytes, np.uint8)
        img = cv2.imdecode(img_arr, cv2.IMREAD_COLOR)
        
        # YOLO前向推理,NMS过滤重叠病斑框
        results = model(img, conf=CONF_THRESHOLD, iou=IOU_THRESHOLD)
        detect_result = []
        for res in results:
            boxes = res.boxes
            cls_names = res.names
            for box in boxes:
                cls_id = int(box.cls.cpu().numpy()[0])
                cls_name = cls_names[cls_id]
                conf = float(box.conf.cpu().numpy()[0])
                xyxy = box.xyxy.cpu().numpy()[0].tolist()
                detect_result.append({
                    "disease_name": cls_name,
                    "confidence": round(conf, 3),
                    "bbox": xyxy
                })
        return jsonify({
            "code": 200,
            "msg": "检测完成",
            "data": {"disease_list": detect_result, "total_count": len(detect_result)}
        })
    except Exception as e:
        return jsonify({"code": 500, "msg": f"检测异常:{str(e)}"})

if __name__ == "__main__":
    # 推理服务端口5002,供SpringBoot后端调用
    app.run(host="0.0.0.0", port=5002, threaded=True)
(2)Java业务后端(SpringBoot+MyBatis-Plus+MySQL)

负责用户权限、检测记录存储、Echarts统计数据封装、PDF报告生成、大模型接口转发、日志管理。

(3)大模型调度模块(DeepSeek/Qwen双模型兼容)

接收YOLO检测输出的病害类别,拼接植保Prompt,调用大模型生成专属防治方案,代码示例:

# 大模型病害诊断Prompt调度代码(场景注释:植保专业文本生成模块)
import requests

def get_disease_control_advice(disease_list: list):
    """
    输入:YOLO识别出的病害名称数组
    输出:大模型生成标准化防治方案(病害诱因、农药配比、田间管理、施药周期)
    兼容DeepSeek、Qwen两类开源大模型API,可切换本地部署/在线API模式
    """
    prompt = f"""
    你是资深玉米植保专家,针对以下玉米病害给出专业防治方案:{disease_list}
    输出规范:
    1.每种病害单独说明发病诱因;
    2.推荐低毒农药配比、每亩用量、施药间隔;
    3.配套田间水肥、通风、清理病叶管理措施;
    4.区分轻度发病、重度发病两套处置方案;
    禁止输出无关内容,语言简洁适配农户阅读。
    """
    # 切换模型地址,DeepSeek本地端口8001,Qwen本地端口8002
    llm_url = "http://127.0.0.1:8001/v1/chat/completions"
    payload = {
        "messages": [{"role": "user", "content": prompt}],
        "temperature": 0.3  # 低温度保证植保方案稳定统一,减少随机输出
    }
    resp = requests.post(llm_url, json=payload)
    return resp.json()["choices"][0]["message"]["content"]

2.2 前端技术栈(Vue3+TS+Element-Plus+Echarts+Axios)

  • 可视化:Echarts绘制病害月度分布、各类病害占比、区域发病趋势饼图/柱状图;
  • UI定制:全局主题色自定义、组件尺寸自适应、多套页面布局模板;
  • 文件交互:图片/视频批量上传、文件夹批量拖拽、PDF报告在线预览下载;
  • 实时流:Websocket对接摄像头实时检测画面,同步渲染病害标注框。

2.3 数据库设计(MySQL)

核心数据表:用户表、检测记录表、病害知识库表、系统操作日志表、报告存储表。

三、系统全量功能模块详解

3.1 多模态病害检测模块(四大检测模式)

  1. 单张图片检测:农户手机拍摄叶片上传,实时返回病害标注与置信度;
  2. 批量文件夹检测:支持本地文件夹压缩上传,自动遍历全部图片批量推理,生成批量统计汇总;
# 批量文件夹检测完整脚本(场景注释:基地大批量样本自动化分析)
import os
import pandas as pd
from ultralytics import YOLO
from flask_service import get_disease_control_advice

model = YOLO("./weights/maize_disease_best.pt")
batch_img_dir = "./batch_upload/field_samples"
output_csv = "./batch_result/report.csv"
result_data = []

# 遍历文件夹内所有图片
for img_name in os.listdir(batch_img_dir):
    if img_name.endswith(("jpg", "png", "jpeg")):
        img_path = os.path.join(batch_img_dir, img_name)
        res = model(img_path, conf=0.4)
        disease_set = set()
        for r in res:
            for box in r.boxes:
                cls = r.names[int(box.cls)]
                disease_set.add(cls)
        # 调用大模型生成防治建议
        advice = get_disease_control_advice(list(disease_set))
        result_data.append({
            "图片文件名": img_name,
            "识别病害": ",".join(disease_set),
            "防治方案": advice
        })
# 导出批量检测表格,用于生成PDF报告
pd.DataFrame(result_data).to_csv(output_csv, index=False, encoding="utf-8-sig")
  1. 视频文件检测:解析田间监控视频,间隔帧抽取检测,统计全视频病害出现频次;
  2. 摄像头实时检测:USB/网络RTSP摄像头接入,25帧实时推理,画面实时绘制病害框,异常病害弹窗预警。

3.2 大模型智能诊断分析模块

  • 自动关联植保知识库,区分单病/混合病害给出差异化治理方案;
  • 病害数据量化统计,输出发病严重程度分级(轻度/中度/重度);
  • 联动前端Echarts可视化展示基地病害分布热力、月度发病走势;
  • 一键整合图像检测结果+文字防治建议,生成标准化PDF诊断报告。

3.3 用户权限与日志系统

  • 管理员权限:查看全平台所有用户检测记录、批量导出全量病害数据、管理知识库;
  • 普通农户/农技员权限:仅查看个人上传检测记录、下载自有报告;
  • 全操作日志留存:上传时间、检测类型、模型调用记录、报告下载记录,支持溯源查询。

3.4 前端个性化界面模块

  • 多套主题配色自由切换;
  • 页面布局拖拽调整、UI组件尺寸自定义;
  • 移动端自适应布局,支持手机、平板、电脑多端访问。

四、项目完整交付资源清单

  1. 标准化YOLO格式玉米病害标注数据集(6类病害完整标注图像);
  2. 全套前后端源码(Python推理服务+SpringBoot业务后端+Vue3前端),代码全中文注释;
  3. 训练完成的YOLO预训练权重文件,开箱即可推理;
  4. 完整环境部署文档:Windows/Linux双系统环境配置、模型训练教程、大模型本地部署步骤;
  5. 批量检测、摄像头实时推理、PDF报告生成全套可复用脚本;
  6. 数据库初始化SQL脚本、接口文档、前端页面操作手册。

五、拓展定制能力(通用目标检测二次开发)

系统底层YOLO推理模块完全解耦,替换数据集与权重即可快速改造为其他检测场景,支持定制:

  • 农林场景:苗木病害、果树虫害、杂草识别;
  • 工业安防:火焰烟雾、安全帽、人员闯入、口罩佩戴检测;
  • 交通场景:车辆分类、车牌识别、道路障碍物检测;
  • 其他:人脸情绪、商品缺陷、物料计数等任意视觉识别需求。

六、增值付费服务(可选)

  1. 远程服务器/边缘设备一键部署调试;
  2. YOLO模型深度调优、轻量化剪枝、TensorRT加速、mAP精度提升;
  3. 完整代码逐模块讲解、模型训练全流程教学;
  4. 定制化新增功能开发(病害预警短信推送、无人机图像对接、小程序端等)。

七、落地适用场景

  1. 规模化玉米种植基地田间智能管理;
  2. 农业科研院所作物病害识别研究;
  3. 农业农村局农技推广、基层农户培训;
  4. 智慧农业AI教学实训、计算机视觉课程毕业设计。

八、项目优势总结

  1. 视觉+大模型双AI融合:区别于单一图像识别系统,自动输出专业植保方案,落地实用性更强;
  2. 多源输入全覆盖:图片/视频/摄像头/批量文件夹适配田间各类采集设备;
  3. 工程化完整闭环:从图像推理、数据存储、可视化统计到报告导出全链路实现,无需二次开发;
  4. 开源轻量化部署:本地离线运行,无需依赖付费云端API,适配农村无网络边缘场景;
  5. 高拓展性:底层检测模块通用,低成本迁移至各类作物、工业安防识别项目。

九、部署快速启动命令(GitHub风格一键运行)

# 1.克隆项目代码仓库
git clone https://github.com/maize-ai/maize-disease-detect.git
cd maize-disease-detect

# 2.Python推理环境安装
conda create -n maize_yolo python=3.10
conda activate maize_yolo
pip install ultralytics flask opencv-python torch torchvision pandas requests

# 3.启动YOLO检测推理服务
python flask_detect_server.py

# 4.启动SpringBoot后端(maven打包运行)
mvn clean package -DskipTests
java -jar maize-admin-1.0.jar

# 5.前端Vue项目启动
cd vue-front
npm install
npm run dev

十、后续迭代路线图

  1. 接入无人机航拍图像批量解析,实现大田全域病害地图生成;
  2. 集成时序病害预测大模型,根据历史数据预判发病高峰期;
  3. 支持边缘端Jetson设备轻量化部署,本地离线实时监测;
  4. 新增小程序端,农户无需电脑手机直接拍照诊断;
  5. 接入气象数据,联动温湿度、降雨优化病害防治推荐方案。
Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐