基于深度学习的病虫害识别开发文档

程序开发文档

  录

第一章 需求分析 14

第二章 概要设计 14

第三章 详细设计 14

第四章 测试报告 14

第五章 安装及使用 14

第六章 项目总结 14

  • 需求分析

农作物病虫害是我国的主要农业灾害之一,它具有种类多、影响大、并时常暴发成灾的特点,对我国国民经济、特别是农业生产常造成重大损失。

随着人工智能的发展,利用机器视觉进行农作物病虫害检测与识别可以提高识别的准确率,具有高效客观的特点;随着计算机、手机等移动设备的普及,利用病虫害专家系统可跨越时间、空间的限制为农民提供病虫害防治策略。本系统利用深度学习算法、前后端开发技术、数据库技术进行开发,深度学习算法解决农作物病虫害的识别与检测困难的问题,前后端技术主要用于开发web应用,数据库SQLite用于存储数据信息,最终,开发出一款集农作物病虫害检测、识别、防治和决策的web应,本系统具有以下功能:

  1. 导入图片并识别病虫害类别;
  2. 实时显示识别结果与识别准确率;
  3. 分析识别结果、给出已识别病虫害的发病特征、预防措施、治理方案。

系统特点:

  1. 界面有友好,操作方便;
  2. 识别准确率高;
  3. 识别结果可视显示、提供治理方案。

  • 概要设计

 

  • 详细设计

一、技术栈

开发语言

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.用户登录

注册页面

 

登录页面

 

后台主页信息显示

 

普通用户个人信息修改

 

管理员管理用户

 

需要先进行查询

 

  1. 百科查询

点击

 

进入到对应的百科页面

 

若是管理员账号,还可以添加记录

点击对应图片,可查看详情

若是管理员账号,还可以编辑、删除

  1. 客服咨询

一般用户可留言

留言后可查看内容,也可查看其它留言

如果为管理员,可以删除留言

  1. 图片识别历史记录

上传图片后,会将本次查询记录保存,用户可以查看历次查询记录,有日期搜索功能,点击即可查看详情

 

  • 测试报告

运行速度

通过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,比如页面资源显示问题,要在数据库中调取用户保存的图片显示在前端,格式的转换也消耗了很多时间,所幸经过团队的不断努力,最终还算是搭建出了一个比较可以的网站。

  • 系统完善

对于这个系统来说,最终由于时间等因素的影响,没有将客服回复问题的功能制作出来,后续我们会考虑完善该功能。页面的设计界面也不是很好看,可以继续美化。

  • 8
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源码空间站11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值