[基于yolov5多目标检测算法的农业害虫识别查询系统]
设计文档
【研究意义】本项目能够及时准确地识别农业害虫的种类,是害虫准确测报和合理防治的前提。传统的害虫识别方法主要依赖个人的专业经验进行辨别,或参考书本、网络上的文字和图像进行比对,或寻求专家鉴定等。由于害虫种类繁多,有些不同种类的害虫外观相似,而同一种类的害虫可能存在较大的变异,这种人工识别农业害虫的方法主观性强,实时性差, 容易造成误判。另外,我国农民科技文化素质普遍较低,拥有农业害虫诊断和防治知识的专家受地域和人数的制约,在时间和精力上难以满足为广大农户进行一线指导。这种情况下,需一种便捷、快速、准确识别农业害虫和提供害虫防治策略的智能工具。
【解决的问题】本项目利用深度学习方法和微信小程序,开发了一个面向移动终端的农业害虫智能识别系统,解决了农民或基层植保人员在田间遇到不认识害虫时无法实时获得有用信息的问题,可利用该小程序拍摄害虫图像,上传图片就可以实现害虫的自动检测和识别,并为用户提供一对一的农业害虫防治信息。
【实现的目标】用于解决在农业防治害虫过程中“害虫识别困难,防治方法不当,防治效率低”的问题,减小因农业害虫带来的损失,提高作物产量。
主要设计思路:
首先将该项目划分为前端、后端、通信框架三个部分,实现同步开发,前端用作显示和交互,存储用户信息;后端实现智能识别;通信框架实现前后端数据传输、以一定的协议通信。
技术路线:该系统的技术路线以YOLOV5为核心,主要分为四个阶段,分别是准备阶段、启动阶段、再重复阶段和取得成果阶段;在准备阶段本项目首先自行收录了5000张害虫照片,经过图片增强,得到近18000张害虫照片,使用ImageNet对害虫数据集进行标注,标注完成后使用云GPU资源反复调参训练长达一个星期零一天,得到较为满意的害虫检测模型。本项目各个阶段的工作如图1所示。
图 1技术路线图
详细设计方案:
前端:前端的设计思路一切以用户体验为主,为了客户更良好的体验,除了拍照识别害虫以外,本项目增加了很多其他的功能,比如在主界面设计了护林事项、线上咨询、每日一题,制作优美的数据库手册,提供了强大的数据库搜索功能,同时增加浏览记录查看功能等等。
通信框架:前后端通信需要借助云服务器,后端做好和前端通信的接口,自定义用于通信的数据结构和协议,接收前端传来的数据,通过算法处理数据后发回前端,前端解析后端发过来的数据流,然后反馈给用户。
后端:本项目团队制作较为全面的昆虫数据集并对其数据增强,使用yolov5x深度学习神经网络训练出自己的害虫检测模型,再在yolov5检测算法基础上进行优化,并且自主增加通信接口来实现和前端的通信。图2是该系统前端、通信框架、后端的数据流程图。
图 2数据处理流程
硬件:
Linux服务器1,配有GEFORCE RTX 3090显卡(用于训练模型);
Linux云服务器2(小程序服务器)。
软件:
①前端:使用微信开发者工具,制作相应界面,实现与服务器的通信、数据库接口实现,以实现多目标智能识别、害虫手册查看、数据收集、每日一题、线上咨询等功能。
②后端:采用yolov5x网络在服务器1上不断整定参数训练出更为精确的模型,在yolov5目标检测算法的基础上优化改进,增加对应的接口,采用flask框架来处理来自前端的请求,使用nginx反向代理服务器。其中通信部分涉及数据编码及解码技术。
主要功能:
1、拍照识别功能:通过用户在微信小程序拍照或上传的害虫照片进行识别,识别成功后会将检测到的各种害虫标注出来,并显示各类数量,名称,点击可以查看害虫的基本信息和防治方法。
2、手册查询功能:建立害虫分类手册,供用户查看。
3、每日一题功能:设计每日一题等有趣的功能,添加小程序科普性和趣味性。
4、浏览记录功能:客户可以选择登陆查看搜索过的记录和识别次数。
5、线上咨询功能:提供了用户与后台人员的通信功能。
6、信息收集功能:当用户遇到该系统未收录的害虫时,可以通过选择地点,害虫分类或者图片上传,便于本项目进行数据更新。
主要性能:
1、识别性能:害虫识别时间在1s之内,能把一张图片中的多种害虫标注出来,并且显示数量和名称,识别率最高达到百分之九十,平均识别率达到百分之七十五。
2、界面性能:害虫手册较齐全,用户搜索相应害虫会立即输出该害虫详细信息。
本软件对农业害虫识别系统进行数据展示和部分数据处理,运行在微信小程序上。软件采用html和js语言编写,分为五个界面:首页、手册、害虫识别、数据收集、我的。
如图3所示,首页包含了线上咨询、护林技巧、每日一题三个子界面,点击相应的子界面就会弹出相关内容;并且,主界面还提供了一个看图猜害虫的功能,吸引用户的使用。
图 3首页
如图4所示为子页面线上咨询功能。
图 4线上咨询
如图5所示为子页面每日一题功能。
图 5每日一题
如图6所示为每日一题功能,无论是答对或者答错都会有相应害虫的解析和图片供用户参考。
图 6每日一题(2)
如图7所示,手册界面包含了害虫、天敌、病害、虫害、植物病症和其他内容这几个子页面,主要是为用户提供一个较完善的害虫数据库,方便查询害虫的信息和防治方法。
图 7手册害虫界面
如图8所示为蚜虫的详细信息。
图 8害虫蚜
如图9所示为病害界面。
图 9病害界面
如图10所示是该小程序的核心,也就是以YOLOV5技术为基础,实现在微信小程序上识别一种害虫、多种害虫的功能。用户通过点击上传害虫照片,就可通过在相册上传或者现场拍照上传,点击开始识别,就会输出相应昆虫的名称和数量,还有所标注的照片;当再点击适配的害虫时,就会弹出该害虫的详细信息。
图 10识别蓟马
如图11所示为识别出蓟马的详细信息。
图 11蓟马详细信息
如图12所示为识别一张照片里的多个害虫。
图 12识别蚧
如图13所示为蚧的详细信息。
图 13蚧详细信息
如图14所示为识别一张图片里的多种害虫。
图 14识别多种害虫
如图15所示为数据收集功能,用户如果发现自己的林业有什么新的病症或者害虫是本项目该系统没有收录的,用户可以通过这个小程序把信息上传给本项目,本项目后面就会对害虫数据库进行更新。
图 15地点选择
如图16为选择农业害虫的种类。
图 16选择害虫类别
如图17所示为选择植物病症。
图 17选择植物病症
如图18所示为上传信息,用户确定好所选信息,便可上传。
图 18上传信息
本作品关注农业生产中农业害虫种类多、识别难度高、农业病症难以入手的状况,解决用户在农业防治害虫过程中“害虫识别困难,防治方法不当,防治效率低”的问题,比起传统的害虫识别软件,本项目的使用微信小程序进行开发,减少用户因安装和注册花费时间,可以打开微信就能使用,用户可以选择拍照识别或上传图片识别,可以在一秒内识别图中的多种不同害虫并且还能反馈每种有多少个,小程序中提供了齐全的害虫数据手册方便用户查看,还增加了很多能够普及害虫知识的功能,如 每日一题、护林事宜等,还提供浏览记录功能,提高用户体验。
4、设计方面:将后台数据显示在微信小程序,用户在微信小程序上将可上传害虫图片进行识别;微信小程序提供了较为全面的害虫数据库,供用户查阅,设计了每日一题、浏览记录等实用有趣的功能,用户在使用小程序的过程中增强农业基础知识,也增强了小程序的趣味性。
源码链接--若部署请联系博主