基于图像智能识别的农作物防治系统设计与开发

2022-02-24 00:08郎雨佳骆冰洁代丽
计算机时代 2022年2期
关键词:微信小程序病虫害

郎雨佳 骆冰洁 代丽

摘  要: 农药播撒在农作生产环节中至关重要,针对我国存在农药漏用、乱用的现象,设计的农作物防治系统将信息技术与农业生产相结合,基于Spring MVC框架,构建移动端微信小程序与后端管理系统,集合了病虫害图像识别、疫区防治信息维护和代理防控等模块。系统覆盖“播种—查虫—识别—防治”的业务闭环,提高了农业生产效率,助力我国农业信息化发展。

关键词: 智能识别; 病虫害; 农作物防治; 微信小程序

中图分类号:S435          文献标识码:A     文章编号:1006-8228(2022)02-50-05

Design and development of crop control system based on image intelligent recognition

Lang Yujia, Luo Bingjie, Dai Li

(School of Economics and Management, Zhejiang Sci-Tech University, Hangzhou, Zhejiang 310018, China)

Abstract: Pesticide sowing is very important in the process of agricultural production. In view of the phenomenon of missing use and indiscriminate use of pesticide in China, this crop control system combines information technology with agricultural production, constructs mobile WeChat Mini Program and back-end management system based on Spring MVC framework, and integrates modules such as diseases and insect pest image recognition, epidemic area control information maintenance and agent of prevention and control. The system covers the closed-loop business of "seeding- insects checking-identifying-preventing and controlling", which improves the efficiency of agricultural production and helps the development of agricultural informatization in China.

Key words: intelligent recognition; diseases and insect pests; crop control; WeChat Mini Program

0 引言

通过对国内外病虫害预报和识别的研究发现,相比发达国家,我国对农业信息资源的管理较混乱,测报技术较落后,大量的农业病虫害资料仍未按照统一标准进行收集。另外,农业防治专家与农户间存在“信息孤岛”现象,无法及时有效地处理病虫害问题。为了更好地对病虫害情况进行测报、汇报和交流,本系统按照统一标准与规范进行信息采集,打破专家和农户之间的隔阂。在病虫害测报工作中,采用新兴机器学习技术,准确识别虫害的发生,做到精准防治[1-2]。

1 系统可行性和需求分析

1.1 可行性分析

从经济可行性方面来看,系统意在打破专家与农户之间的“信息孤岛”[3],解决农作物病虫害识别难的问题,提高农业生产效率,从而推动农业信息化发展。

从市场可行性方面来看,疫情防控进入常态化,部分地区采取限制出入、封路等措施,阻碍农业专家实地走访与现场指导。因此,市场对于“非接触”、远程服务需求快速扩张,农户对作物防治指导的需求从线下转为线上,农业防治数字化迎来难得的市场机遇。

从操作可行性方面来看,平台面向农户采用移动端微信小程序,界面友好、操作简单,面向专家与管理员采用PC端网页,交互性强,操作便利。

从技术可行性方面来看,前端Bootstrap框架、后端Spring MVC框架、MySql数据库等开发所需技术都已高度成熟。数据分析、基于CNN的图像识别、图像处理等智能技术已有较多国内外的开源项目供参考,技术风险小[4]。

1.2 需求分析

系统旨在通过新型计算机技术手段改善优化传统农作行驶中的弊端,优化依靠种植经验播洒农药中存在盲目用药、过度用药问题,同时构建农户与农业专家之间的沟通桥梁,使农户在作物病虫害防治过程中远程快速获得专家指导,而专家可通过系统获悉各地间出现的病虫害,为新型病虫害的发现提供帮助,形成二者之间的正向互助循环,在此基础上整体实现“播种—查虫—识别—防治”的业务闭环。

根据农户、管理员、专家的需求分析,系统功能可划分为十个模块,系统功能模块图如图1所示。

农户的需求主要是农田的信息化管理、田间病虫害的识别、识别后的后續防控、信息百科资讯查询等;管理员的需求主要是数据的维护整合、相关专家人员的审批、管理与代理防控的执行;专家的需求主要是人工识别的技术知识保障、个人信息的查看与识别记录的回顾。

2 系统设计

2.1 系统架构设计

系统架构图如图2所示,移动端选用微信小程序搭载[5-6],网页端后台管理系统选用Bootstrap框架和ECharts组件搭建。其次,利用Spring MVC构建后端框架以接受与响应HTTP请求,数据持久层利用Java结合MyBatis框架搭建架构[7],数据库选用MySql。在图像识别功能上,系统选用Python搭建TensorFlow的环境,搭载PlantVillage数据集。在路线规划上,借助爬山算法实现最优路径选址。

2.2 功能模块设计

本系统具体的业务功能主要从用户角度划分,分为农户、管理员、专家三类。

表1~表3为面向农户、管理员、专家的功能模块介绍,其中面向农户的功能模块主要有农作管理、智能识别管理、专家识别管理、防治区管理、代理防控管理等,面向管理员的功能模块主要有专家管理、后台信息维护和代理防治管理等,面向专家的功能模块主要是个人管理模块和专家识别管理模块。

2.3 主要功能设计

2.3.1 病虫害识别

“智能识别”功能旨在让农户通过拍照识别快速获取作物病害原因及治疗方法。具体流程:农户首先对受病虫害的作物叶片进行拍摄并上传照片至平台,平台交由系统后端来判断照片格式是否合法。确认无误后,系统后端运行识别脚本,生成识别记录,更新数据库后返回至用户前端展示。

若识别无效或农户对结果不满意,系统还提供“专家识别”服务。与智能识别服务流程类似,农户在上传照片的同时,还需提供作物病状描述以辅助识别,选定合适的专家后即可提交申请。待系统确认后,农户即可等待专家反馈结果。

2.3.2 疫区防治信息维护

在“疫区防治信息维护”功能上,系统选择利用日历控件实现不同日期添加与查看防治区的防治记录信息,减少农户在病虫害防治过程中遗漏播撒农药或重复播撒农药情况的概率。

2.3.3 代理防控

在“代理防控”功能上,首先需农户通过移动端小程序填写疫区信息后提交代理防控申请,申请通过后系统存储并反馈内容至后台管理系统,最后向农户反馈审核结果。

管理员登录后台管理系统,在相应页面批量选中一次任务所需处理的防治区域列表。系统接收列表信息并智能规划最优路径,管理员根据信息调配操控公共物资来执行具体防控,结束后系统生成代理防控记录,让农户通过平台查看记录。

图3为病虫害识别、疫区防治信息维护、代理防控三个功能业务流程的设计展示图。

2.4 病虫害识别

系统使用Python语言搭建TensorFlow的环境,并作为运行脚本与Java结合完成图像识别模块功能模块。综合权威性、覆盖面、时效性等因素,系统选用PlantVillage开源数据集,并通过tfds.builder获取与加载。病虫害智能识别功能使用改良CNN[8-10]完成,模块以最大池化方式搭建九层神经网络,分别包括五层的卷积层、三层的池化层以及最后的全局池化层,设置首层的卷积核尺寸为9*9dpi。最终通过网络迭代,将源数据集256*256dpi的图像格式用softmax分类器转换为38个标签,即对应着38种不同的病虫害类型。

农户只需在小程序端的首页下方子选项卡中点击“拍照识别”按钮,并拍照上传图片。算法1为移动端拍照处理的算法,经真机测试,病虫害图像识别平均准确率在90%以上,用户使用手机摄像头拍摄的图像经网络识别后能有效反馈病虫害类别,计算及处理时间大致在4-8秒之间。

算法1 移动端拍照识别处理

输入:图片文件file、地理信息latitude和longtitude。

输出:图像识别结果。

(a) 初始化:filename= ile.getOriginalFilename(),

type=fileName.indexOf(".")!=-1?fileName.substring(fileName.lastIndexOf(".")+1, fileName.length()):null;

(b) 判断文件是否为图像格式,是则转步骤(c),否则返回error;

(c) 设置存放图片文件的路径path;

(d) 服务层执行如下语句,获取识别结果identifyResult;

Process process=Runtime.getRuntime().exec

("python 脚本文件"+picPath);

InputStreamReader ir=newInputStreamReader

(process.getInputStream(),"GBK");

LineNumberReader input=new LineNumberReader(ir);

identifyResult=input.readLine();

(e) 封装反馈信息,获取病虫害名称pestName、识别可行度possibllity等;

(f) 向数据库插入当前识别记录;

(g) 返回识别结果:"病症:"+pestName+"识别可信度:

"+possibility+"更多内容请点击[识别记录]页面!"。

2.5 疫区防治信息维护

在疫区防治信息维护模块,农户用户可以利用日历控件添加与查看对于受虫害地区的治操作,以提高农作播洒农药过程中的信息化程度。操作流程类似于成长信息维护模块,用户可在首页点击“我的疫区”查看并增加、删除、修改已注冊的疫区,在首页点击“我的防控”按钮进入子页面,选择任意一条疫区信息后可进入疫区防治记录页面,通过日历控件选择不同日期添加疫区的防治记录信息,减少用户在病虫害防治过程中出现遗漏撒农药或重复撒农药情况的概率。

2.6 代理防控审核与执行

在农户用户通过移动端小程序提出代理防控申请后,管理员可以通过网页端后台管理系统审核其发布的申请。管理员登录后台系统,点击“代理防控管理--申请列表”选项卡,进入相应界面查看申请情况,表内反馈用户的申请信息,包括所受病虫害、疫区的位置坐标等,管理员根据其业务能力确定审核通过与否,审核结果反馈到用户小程序端。 当管理员需要提供代理审核服务时,可以通过登录管理系统完成。管理员登录后台系统,点击“代理防控管理--防控执行”,进入子页面。表内反馈当前被服务状态的防治区, 每条记录左侧包括一个选中框,支持全选效果。管理员在勾选当前有执行需求的区域,点击“批量规划路线”按钮弹出提示框。算法2为TSP的爬山算法模型,根据模型系统自动规划出遍历所有防治区的最优路径与相应总路程长度(单位“米”)[13]。

管理员点击确定即执行该次代理防控,系统记录当前选中的防治区域与操作人员、具体操作、操作时间等信息存进数据库相应表格内。当农户用户登录移动端时即可查到相应执行记录。管理员也可在当前页面选择对部分区域的代理服务选择取消,每一条记录行尾部带有“暂停服务”按钮,单击后实现代理服务的终止。管理员也可在“代理防控管理--记录明细”中查看本人过往执行记录。代理防控审核与执行界面如图4所示。

算法2 爬山算法

输入:PC路径编码 T爬山代数。

输出:最优路径PC。

(a) 初始化:int i, temp, t=0, r1, r2, e;

int[] tempPC=new int[regionNum];

(b) 獲取评估:bestEva=evaluate(PC);

(c) 判断t是否小于T,是则继续执行步骤d),否则结束执行;

(d) 将路径编码PC复制给临时路径编码tempPC;

(e) 随机生成两个不同的整数,范围[0, 65535);

(f) 将两个值 % regionNum分别赋值给r1、r2;

(g) 两交换法实施邻域操作;

(h) 评价新值newEva=evaluate(tempPC);

(i) 判断newEva是否小于bestEva,是则tempPC赋值给PC;

(j) t++,执行完转步骤(c)。

3 结论

本文讨论了一套基于卷积神经网络技术,以病虫害图像智能识别为核心的,集病虫害鉴别、防治预警、信息查询于一体的面向农作物防治的公共服务平台,旨在充分利用信息资源,优化传统依靠农作经验的农业生产模式所存在的弊端。平台所设计的用户角色包括农户、管理员和农业专家,主要功能模块包括成长信息维护、图像智能识别、防治信息维护、农作信息查询等。图像智能识别经真机测试,平均准确率在90%以上,移动端能有效反馈病虫害类别,计算时间在4-8秒之间。采用多平台设计,设立移动端微信小程序与网页端后台管理系统。 后端基于SpringMVC开发,使用Java 8和Python 3.6作为主要开发语言,以IDEA作为开发环境。

农业的快速发展事关国计民生,农业病虫害防治工作将直接影响农业生产及其发展。依托现代信息技术,建设和完善农业病虫害防治网络体系,为更好地防治农业病虫害。相信随着农业计算水平的不断提高。农业病虫害防治必将更加成功。

参考文献(References):

[1] 安晓荣.试析基于农业信息化的农业病虫害防治[J].农家参谋,2021(13):65-66

[2] 曹鑫年.基于农业信息化的农业病虫害防治探索[J].农业科技与信息,2017(24):66

[3] 唐斌.大数据:生态文明建设信息资源的“去孤岛化”[J].湘潭大学学报(哲学社会科学版),2017,41(1):67-71

[4] 张翠丽,孟小艳,杨抒.基于Django框架的管理系统的设计与开发[J].计算机技术与发展,2019,29(10):63-68

[5] 高洁.“互联网+”背景下利用微信小程序开展用户营销的探索研究[J].中国市场,2019(4):122-123,131

[6]  张妮,刘铸德.微信小程序在“互联网+农业”中的应用探析[J].广西农学报,2019,34(2):42-45

[7] 向春会.基于SpringMVC的web工程通用模板设计[D].北京邮电大学,2018:15-18

[8] 李哲,潘维,张赟.基于深度卷积神经网络的植物病虫害识别[J].电子技术与软件工程,2020(23):194-195

[9] 吴健宇.基于深度卷积神经网络的农作物病虫害识别及实现[D].哈尔滨工业大学,2019:37-49

[10] 林黛仪,吴永彬,陈梓宜,等.基于GPS定位植物导览系统在教学和科普导赏中的应用——以华南农业大学为例[J].现代园艺,2020,43(3):185-188

[11] 任芳,沈文辉,范迪.基于爬山算法的自适应遗传算法[J].工业控制计算机,2018,31(7):92-93

猜你喜欢
微信小程序病虫害
春季葡萄苗病虫害咋样防治
夏季玉米主要病虫害有哪些
三招搞定花卉病虫害
矮砧密植苹果栽培技术及病虫害防治
葡萄采收后 病虫害防治莫忽视
图书馆微信小程序的应用现状及前景分析
基于CNKI的微信小程序研究文献计量分析
信息技术与专业课程融合路径探索
当图书馆遇上微信小程序
梨病虫害防治时间表