基于深度学习的病虫害识别开发文档
程序开发文档
目 录
第一章 需求分析 14
第二章 概要设计 14
第三章 详细设计 14
第四章 测试报告 14
第五章 安装及使用 14
第六章 项目总结 14
需求分析农作物病虫害是我国的主要农业灾害之一,它具有种类多、影响大、并时常暴发成灾的特点,对我国国民经济、特别是农业生产常造成重大损失。
随着人工智能的发展,利用机器视觉进行农作物病虫害检测与识别可以提高识别的准确率,具有高效客观的特点;随着计算机、手机等移动设备的普及,利用病虫害专家系统可跨越时间、空间的限制为农民提供病虫害防治策略。本系统利用深度学习算法、前后端开发技术、数据库技术进行开发,深度学习算法解决农作物病虫害的识别与检测困难的问题,前后端技术主要用于开发web应用,数据库SQLite用于存储数据信息,最终,开发出一款集农作物病虫害检测、识别、防治和决策的web应,本系统具有以下功能:
导入图片并识别病虫害类别;实时显示识别结果与识别准确率;分析识别结果、给出已识别病虫害的发病特征、预防措施、治理方案。系统特点:
界面有友好,操作方便;识别准确率高;识别结果可视显示、提供治理方案。 概要设计
一、技术栈
开发语言
python
前端
layui,jinjia2
后端
flask
数据库
SQLite, 连接使用的flask_sqlalchemy
深度学习
pytorch,使用resNet34训练
API
识农API、百度识虫API
服务器
阿里云轻量服务器(Ubuntu20.04)+Apache
农作物病虫害识别与治理系统是基于前后端分离的Web应用:
(一)前端技术采用:
1.layui作为一款国产开源的前端UI,简单易上手,并且UI简洁美观。本身目标对象是不怎么懂前端的后端开发人员,也适合后端人员使用。
(1)layui属于轻量级框架,简单美观。适用于开发后端模式,它在服务端页面上有非常好的效果。
(2)layui是提供给后端开发人员最好的ui框架,基于DOM驱动。
2.jinja2是Flask作者开发的一个模板系统,起初是仿django模板的一个模板引擎,为Flask提供模板支持,由于其灵活,快速和安全等优点被广泛使用。
(1)相对于Template,jinja2更加灵活,它提供了控制结构,表达式和继承等;
(2)相对于Mako,jinja2仅有控制结构,不允许在模板中编写太多的业务逻辑;
(3)相对于Django模板,jinja2性能更好;
(4)jinja2模板的可读性很棒。
(二)后端技术采用:
flask主要特点小而轻,原生组件几乎为0,非常全面,属于短小精悍型框架
优点:
a.简单,Flask的路由以及路由函数由修饰器设定,开发人员不需要借助其他文件匹配;
b.配置灵活,有多种方法配置,不同环境的配置也非常方便;环境部署简单,Flask运行不需要借助其他任何软件,只需要安装了Python的IDE,在命令行运行即可。只需要在Python中导入相应包即可满足所有需求;
c.入门简单,通过官方指南便可以清楚的了解Flask的运行流程;
d.低耦合,Flask可以兼容多种数据库、模板。
(三)数据库技术:
SQLite是目前最流行的开源嵌入式数据库,和很多其他嵌入式存储引擎相比(NoSQL),如BerkeleyDB、MemBASE等,SQLite可以很好的支持关系型数据库所具备的一些基本特征,如标准SQL语法、事务、数据表和索引等。事实上,尽管SQLite拥有诸多关系型数据库的基本特征,然而由于应用场景的不同,它们之间并没有更多的可比性。下面我们将列举一下SQLite的主要特征:
a.管理简单,甚至可以认为无需管理;
b.操作方便,SQLite生成的数据库文件可以在各个平台无缝移植;
c.可以非常方便的以多种形式嵌入到其他应用程序中,如静态库、动态库等;
d.易于维护。
(四)数据库设计:
用户表
虫害百科表
历史记录表
二、功能介绍及界面设计
1.病虫害图片识别
上传后给出识别结果
点击图片跳转百科详情页
2.用户登录
注册页面
登录页面
后台主页信息显示
普通用户个人信息修改
管理员管理用户
需要先进行查询
点击
进入到对应的百科页面
若是管理员账号,还可以添加记录
点击对应图片,可查看详情
若是管理员账号,还可以编辑、删除
客服咨询一般用户可留言
留言后可查看内容,也可查看其它留言
如果为管理员,可以删除留言
图片识别历史记录上传图片后,会将本次查询记录保存,用户可以查看历次查询记录,有日期搜索功能,点击即可查看详情
运行速度
通过127.0.0.1:5000访问web应用
安全性
用户在使用账号登录时加入验证
扩展性
加入更多功能,如作物生长情况预测等
部署方便性
可部署于阿里云Ubuntu、Windows系统中
可用性
可用于农户防止农作物病虫害,适用范围较广
安装及使用1、安装相应的python包
(1)pip install flask
pip install flask_sqlalchemy
pip install torch==1.8.0+cpu torchvision==0.9.0+cpu torchaudio===0.8.0 -f https://download.pytorch.org/whl/torch_stable.html
pip install matplotlib
这里安装的是cpu版本的pytorch,你也可以根据需要安装其他版本的,安装过程最好换用国内源,快很多
注:如果你用的不是pycharm,建议安装gevent
pip install gevent
(2)pip install -r requirements.txt -i
Simple Index进行运行环境的安装
2、运行app.py
3、访问 127.0.0.1:5000
注:如果是将项目部署到服务器端,最好检查一下自己的SQLAlchemy版本,如果不是1.3.23会报错,这时将其卸载重装即可
项目总结 项目协调对于该项目,我们将其分为搭建网站与分类算法实现部分。最开始我们就实现了项目大概分工,考虑到网站部分较为困难,最后是一个人负责分类算法,两个人负责搭建网站。
任务分解1.算法部分
分类算法是使用ResNet34模型,运用torch框架进行训练,最终得到了比较好的训练结果,但由于神经网络模型训练的数据集比较小,且训练的种类仅有6种,在这6种图片的测试下准确率很高,但对于其它病虫害无法识别,因此引入了识农的API,经过测试,该识农API准确率很高,可以达到87%以上的结果。
2.搭建网站部分
网站我们考虑到torch分类算法(使用python语言)在其他程序语言平台还需要进行转换,故而考虑直接用python作为开发语言,其强大的第三方库也为我们节省了大量的开发时间。这部分可以分为三个小部分——前端界面美化、后端资源调控以及前后端交互。
困难与提升在开发时主要困难来自于搭建网站部分,前后端交互不断出现bug,比如页面资源显示问题,要在数据库中调取用户保存的图片显示在前端,格式的转换也消耗了很多时间,所幸经过团队的不断努力,最终还算是搭建出了一个比较可以的网站。
系统完善对于这个系统来说,最终由于时间等因素的影响,没有将客服回复问题的功能制作出来,后续我们会考虑完善该功能。页面的设计界面也不是很好看,可以继续美化。
相关知识
深度学习农作物病虫害智能识别APP开发教程
基于深度学习的农作物病虫害识别系统
基于深度学习的病虫害智能化识别系统
基于深度学习的yolov7植物病虫害识别及防治系统
基于深度学习的园林植物病虫害智能识别系统
基于深度学习特征的植物病虫害检测
基于深度学习的植物病虫害智能检测系统研究
基于深度学习的花卉识别研究
深度学习之基于YoloV7植物病虫害识别及防治系统
基于深度学习神经网络的农业病虫害识别(完整代码+数据)
网址: 基于深度学习的病虫害识别开发文档 https://www.huajiangbk.com/newsview504814.html
上一篇: 花卉有病虫不想喷药?教你自制有效 |
下一篇: [图像识别]水果农作物病虫害识别 |
推荐分享

- 1君子兰什么品种最名贵 十大名 4012
- 2世界上最名贵的10种兰花图片 3364
- 3花圈挽联怎么写? 3286
- 4迷信说家里不能放假花 家里摆 1878
- 5香山红叶什么时候红 1493
- 6花的意思,花的解释,花的拼音 1210
- 7教师节送什么花最合适 1167
- 8勿忘我花图片 1103
- 9橄榄枝的象征意义 1093
- 10洛阳的市花 1039