1 系统概述
1.1 研究背景和目的
农业作为国民经济的基础性产业,其生产效率和质量直接关联着粮食安全与农民的经济收益。但农作物在生长周期中极易遭受病虫害侵扰,传统的病害识别手段过度依赖人工经验,存在识别效率低下、主观性突出、误判率偏高的问题 —— 尤其是在规模化种植场景中,人工巡检既耗费大量人力物力,又难以实现病害的早期发现与精准诊断,进而导致病害扩散蔓延,造成惨重的产量损失[1]。随着现代农业向智能化、数字化方向转型,加之计算机视觉 与深度学习技术的飞速发展,基于人工智能的病害识别方法逐渐成为破解这一痛点的核心路径。当前,YOLO 系列等目标检测算法在图像识别领域的精度与速度持续突破,为农作物病害的自动化、实时化识别提供了技术可行性,但现有相关系统普遍存在功能单一(仅支持图像检测)、用户体验欠佳(操作繁琐、识别结果展示不直观)、权限管理缺失(无法区分普通用户与管理员的需求)等问题,难以满足不同用户在实际农业生产中的多元化需求。因此,设计并开发一款功能完备、操作简便、识别精准的农作物病害识别系统,成为推动智慧农业落地应用、助力农业减少损失的迫切需求[2]。
本研究旨在融合前端开发、后端服务、深度学习与数据管理技术,搭建一套覆盖 “普通用户病害识别 + 管理员系统运维” 全流程的农作物病害识别系统,以此解决传统识别方式的缺陷与现有系统的不足。具体而言,系统开发的核心目标包含三个维度:其一,实现多形式、高精度的病害识别功能,支持图像、视频及摄像三种检测模式,通过集成 YOLOv8 深度学习模型,保障不同农作物病害的精准分类与定位,并直观呈现识别结果(如病害类型、预测概率、标注图像 / 视频等);其二,满足不同角色的个性化需求,为普通用户提供识别记录查询、个人信息管理功能,为管理员提供用户全生命周期管理、全量识别记录监管功能,保障系统使用的便捷性与管理的规范性;其三,验证技术栈的实用性与系统的稳定性,通过采用 Vue、SpringBoot、MySQL 等成熟技术,确保系统在实际应用中的高效响应与数据安全,最终为农业从业者提供低成本、易操作的病害识别工具,为农业生产的智能化管理提供技术支撑,助力提升农业生产效率与抗风险能力[3]。
1.2 国内外研究现状
在国内研究领域,农作物病害识别系统的开发正加速从传统机器学习 向深度学习技术演进,相关探索集中于提高识别精度、丰富功能场景及增强系统实用性[4]。早期部分工作依托判别字典学习等经典算法搭建识别模型,借由提取与匹配作物叶片病害图像特征完成识别,这类系统在特定病害情境下表现尚可,但受限于传统算法对复杂背景及混合病害场景的适应力欠缺,整体精度与泛化性能仍有提升余地[5]。伴随深度学习技术的普及,近年多数研究转向基于深度学习的系统构建,以YOLO系列、CNN等算法为核心打造检测模型,显著改善了识别准确率与速度,部分系统能支持草莓、玉米、水稻等多种作物的多类病害辨识,并输出病害种类、严重等级等详尽信息[6]。同时,研究日益重视系统功能完备性与用户体验,部分系统已具备图像上传检测、记录存储查询等基础能力,少数系统更进一步区分用户角色,为管理员提供数据管控与用户监管功能,以契合实际农业生产中不同群体的使用需求。此外,另有研究深耕病害等级识别,通过优化模型输出层架构,实现病害严重程度的分级判定,为后续防治策略制定提供更精准参考,相关系统在气象服务、农技推广等领域已完成初步应用验证[7]。
国内农作物病害识别系统的技术路径已日趋明朗,深度学习模型应用成为主流导向,系统功能亦从单一识别迈向“识别+管理”一体化发展。然而现有研究尚存若干待完善之处:部分系统仅支持图像单一种类检测,对视频、实时摄像等动态监测场景覆盖不足;部分系统人机交互界面设计较为简陋,参数配置与结果展示的直观性亟待加强;此外,在模型轻量化部署 、多作物多病害泛化能力优化等方面,仍需深入探究以适应基层农业从业者的设备环境与多样化识别需求,推动系统从实验室研发走向实际农业生产的大规模落地应用[8]。
国外农作物病害识别系统的研究起步较早,技术路线聚焦于深度学习模型优化与多场景适配,在提升模型精度、促进数据共享及跨平台应用方面形成独特优势。早期研究已着手探索机器学习在病害识别中的应用,如利用SVM、随机森林等算法对作物叶片病害特征进行分类,为后续技术发展奠定基石[9]。随着深度学习技术兴起,国外研究迅速推进基于CNN、Transformer 等先进算法的模型研发,通过构建大规模、多源的农作物病害图像数据集(如PlantVillage),训练出泛化能力较强的识别模型,部分模型在多作物、多病害场景下的识别准确率可达95%以上,且能有效应对叶片遮挡、光照变化等复杂田间干扰因素[10]。
在系统应用层面,国外研究注重多场景适配与用户体验优化,部分系统支持图像、视频、无人机航拍图等多类型数据输入,可满足家庭农场、大型种植基地等不同场景的识别需求[11];部分系统开发了移动端应用,结合轻量化模型部署技术,实现田间实时检测,用户上传图像后可快速获取病害识别结果及对应防治建议,大幅提升了系统的实用性与便捷性[12]。此外,国外研究还关注数据共享与协同创新,通过构建开放的病害图像数据库与模型开源平台,促进不同研究机构间的技术交流与成果复用。但国外研究也存在一定局限:部分系统功能过度聚焦于识别本身,缺乏对用户权限管理、识别记录长期存储与分析的支持;部分系统针对特定地区作物(如玉米、大豆)优化,对其他地区特色作物的病害识别适配性不足;同时,受地域农业生产模式差异影响,部分系统的防治建议与本地农业实际需求匹配度较低,一定程度上影响了应用效果[13]。
2 系统开发技术介绍
2.1 前端技术栈(Vue+Element-Plus+TypeScript)
本农作物病害识别系统的前端交互层基于Vue、Element-Plus与TypeScript组合的技术栈构建,三者协同作用,既保障了界面的交互流畅性与视觉一致性,又提升了代码的可维护性与稳定性,满足系统中图像检测参数配置、识别记录展示、个人信息管理等多样化交互场景需求。
Vue作为核心前端框架,凭借其轻量高效的特性成为界面开发的基础。其创新的Composition API打破了Vue2 Options API的代码组织限制,可将图像检测、记录查询等功能相关的逻辑代码聚合在一起,便于开发人员快速定位与维护;同时,Vue的响应式系统采用Proxy代理机制,能更精准地监听数据变化,确保界面元素(如识别结果、参数数值)与数据状态实时同步,避免冗余渲染,提升用户操作的流畅度。Element-Plus作为适配Vue的组件库,提供了覆盖系统需求的各类预置组件——例如用于参数配置的下拉选择框、用于识别记录展示的表格、用于信息提交的表单等,这些组件不仅具备统一的设计风格,还支持自定义样式与交互逻辑,可快速搭建出专业、美观的用户界面,减少重复开发工作。TypeScript的引入则为前端代码提供了静态类型检查能力,通过为变量、函数定义明确的类型,在编码阶段即可发现潜在的类型错误(如参数类型不匹配、属性不存在等),降低后期调试成本;同时,类型定义文档化的特性也提升了代码的可读性,便于多人协作开发,为系统的长期维护提供保障。
2.2 后端技术框架(SpringBoot+MyBatis-Plus+Flask)
系统后端采用多框架协同架构,融合SpringBoot的业务处理力、MyBatis-Plus的数据访问效与Flask的模型部署灵,构建了兼顾业务逻辑与深度学习服务的后端体系,有效支撑用户权限管理、识别记录存储、病害检测模型调用等核心功能。
SpringBoot作为后端核心业务框架,凭借“约定优于配置”理念简化了传统Spring应用配置流程,无需大量XML配置即可快速搭建稳定Web服务,大幅缩短开发周期。其内置Tomcat服务器可直接部署应用,同时支持自动配置数据源、事务管理等功能,能高效处理用户注册登录、权限验证、识别记录增删改查等业务请求;此外,SpringBoot良好扩展性可轻松集成日志、安全等框架组件,进一步提升系统稳定性与安全性。MyBatis-Plus作为数据访问层增强工具,在MyBasis基础上扩展了丰富实用功能,针对系统中用户表、图像及摄像识别记录表等数据操作需求,提供了免写SQL的单表CRUD接口、条件构造器、分页查询等功能,大幅减少了数据访问层代码编写量;同时,其支持SQL与代码分离特性,允许开发人员针对复杂查询场景编写定制SQL,兼顾了开发效率与业务适配性,确保数据交互高效性。Flask作为轻量级Web框架,主要承担深度学习模型部署与接口开发任务,其简洁灵活特性可快速构建YOLOv8病害识别模型API 服务,实现后端业务系统与模型无缝对接——当前端发起图像或视频检测请求时,Flask接口接收请求并调用模型处理,再将识别结果(如病害类型、置信度)返回至业务层,最终传递给前端展示,有效解决了深度学习模型与传统业务系统的协同难题。
2.3 深度学习技术(YOLOv8+PyTorch)
深度学习模块是农作物病害识别系统实现精准检测的核心,系统选用YOLOv8作为目标检测算法,结合PyTorch深度学习框架完成模型的训练、优化与部署,确保对不同农作物病害的高效识别与分类。
YOLOv8作为YOLO系列的稳定迭代版本,在检测精度与速度上均实现了显著提升,完美适配系统对实时性与准确性的双重需求。相较于前代版本,YOLOv8优化了网络结构,采用更高效的特征提取模块与多尺度特征融合技术,既能捕捉到农作物叶片上小面积病害的细节特征,又能处理复杂背景(如土壤、杂草)下的病害识别场景,有效降低漏检与误检率;同时,YOLOv8提供轻量化模型版本,在保证识别精度(如对草莓锈病、玉米大斑病的识别准确率超90%)的前提下,大幅降低模型计算开销,确保前端上传的图像、视频能快速得到检测结果,提升用户体验[14]。PyTorch作为主流的深度学习框架,为模型开发提供了强大的技术支撑,其灵活的张量计算机制与动态计算图特性,便于开发人员进行模型结构设计、训练过程调试与参数优化——例如通过调整学习率、迭代次数优化模型收敛速度,通过数据增强(如图像旋转、翻转、亮度调整)提升模型泛化能力;此外,PyTorch丰富的生态系统支持模型的导出与部署,可将训练完成的YOLOv8模型转换为适配Flask接口的格式,实现模型与后端服务的快速集成,确保检测功能的稳定落地[15]。
2.4 MySQL数据库
MySQL作为开源关系型数据库管理系统,凭借高稳定性、强并发处理力与低成本优势,成为农作物病害识别系统的数据存储核心,承载用户信息、识别记录及检测参数等全量结构化数据。 MySQL支持标准SQL查询语言,可依据业务需求设计规范表结构——如用户表含账号、密码、角色及联系方式,图像记录表囊括输入输出路径、置信度、时间与作物类型,通过科学划分表结构与字段类型,保障数据存储的规范与关联;同时,MySQL提供主键、外键及唯一约束等机制,能有效确保数据完整性(如账号唯一性、记录与用户关联准确)。面对系统高频查询(如按作物查记录、按名搜用户),MySQL索引机制可大幅提速,通过对“username”“kind”“start_time”等常用字段建索引,缩小扫描范围,实现毫秒级响应。此外,MySQL与后端技术栈兼容极佳,能借JDBC与SpringBoot、MyBatis-Plus无缝对接,达成数据高效存取,为系统业务逻辑稳健运行提供坚实数据支撑。
2.5 微信小程序
微信小程序是一种无需下载安装即可使用的应用,实现了“触手可及”的梦想。用户扫一扫或搜索一下即可打开应用,真正做到了“用完即走”。它依托于微信庞大的生态体系,能够轻松获取用户信息、地理位置、支付能力等原生功能。小程序采用类似Web前端的技术栈(WXML、WXSS、JavaScript),开发门槛相对较低,但运行效率接近原生App。其核心优势在于轻量化与高传播性,特别适合农业场景下基层用户的使用习惯:农民无需占用手机存储,通过微信群分享即可快速推广。系统后端可灵活对接云开发或自有服务器,实现数据实时同步。在病害识别场景中,小程序能直接调用手机摄像头进行拍照或录像,结合云端AI模型返回结果,大幅降低了硬件依赖。此外,微信提供的订阅消息功能,可及时向用户推送病害预警,增强了服务的主动性与实用性,是连接农户与数字化农业技术的理想桥梁。
3 系统总体设计
4 系统实现