基于SpringBoot的农作物受灾分析系统
摘要:该文基于图像分割技术,采用B/S模式设计了农作物受灾分析系统。系统后端使用SpringBoot框架作为系统开发主要框架组件;同时使用了Flask框架为底层图像分割技术发布接口,实现农作物受灾后的证据留存和自动化受灾区域检测的功能,有效提高了农业保险公司的信息化智能化水平。
关键词:农作物受灾分析;SpringBoot;Flask;图像分割;农业保险
中国是土地广袤、资源丰富,是粮食大国更是粮食强国。但随着近年来极端天气增多,农作物受到的威胁也越来越大,给农作物产量带来重大影响[1],国家出台了许多政策保护农民的权益,其中农业保险是非常重要的部分。农作物受灾后,保险公司通常使用传统查勘方法,对受灾区域进行划定、测产、丈量、拍照作为定损理赔提供依据,但传统查勘方法有可能受到人为因素的影响,导致查勘区域测算不准确,历史记录难溯源的问题[2]。
基于上述问题,本文创新使用受灾区域现场采集的无人机图像,采用以计算机视觉领域的图像分割[3]技术为核心,以B/S架构和多种网站开发技术为基础构建的农作物受灾分析系统,实现了从受灾图像资源管理、图像分割模型管理到执行自动化图像分割的功能,除此之外,系统还可以实时查看农户受灾的历史记录、通过上传不同的分割模型不断优化分割的准确率。
1    系统设计
1.1  技术架构
农作物受灾分析系统分为两部分。一是提供用户交互的界面,这部分基于浏览器-服务器架构模式(B/S),用户使用交互界面实现对农户、图像等基本信息、图像分割模型和任务执行的管理;二是通过交互界面的新建图像处理任务,将任务下发给底层Python接口调用图像分割程序。系统使用Java 和Python开发语言,Java端使用SpringBoot框架[4]开发,Python接口端使用Flask框架开发,后台按照MVC的架构模式分为5层。(1)基础设施层,系统运行的底层基础。系统使用CentOS作为服务器操作系统,Tomcat容器作为中间件,MySQL数据库作为持久化存储,Python作为图像分割处理基本运行环境。(2)持久层,实现后台对数据库的操作,是业务与数据的桥梁。通过Mybatis[5]将数据库的SQL语句封装成对应的Mapper方法,方便上层调用。(3)业务层,封装了业务逻辑。降低代码的耦合度,提高代码复用性。同时通过Flask[6]发布了图像分割代码的接口。(4)控制层,定义网页与Controller方法的映射。方法通过调用业务层接口,与Mybatis连接,实现一次交互操作。(5)展示层,用户看到的页面以及页面中的交互。用户通过交互操作执行控制层中的方法,实现业务需求。
1.2  功能设计
按功能将系统划分为四个模块,系统管理、基本信息管理、分析管理、系统监控。系统管理负责管理系统的相关配置,实现系统用户、权限、部门、公告等系统级功能。基本信息管理负责维护业务的基本信
息,包括农户管理、地域管理和图像管理。分析管理作为系统核心模块,负责管理分割模型和对受灾图像分析的调用,包括模型管理和受灾分析。系统监控是对系统环境、系统进程的分析和定时任务的调用。
1.3  接口设计
本系统的接口设计分为两大部分,一部分是Java端发布的Controller映射接口,另外一部分是Python端发布的Flask
请求接口。这里以分析模块为例,如表1所示。
18
19
的框架中进行图像分割任务,分割完成后,生成的结果图像会存储到传入参数指定的存储路径中,最终调用执行后,在列表中查看分析结果。
3    结语
该文介绍了基于SpringBoot 的农作物受灾分析系统的设计与实现。系统页面全部使用响应式布局,在使用手机或者平板等设备浏览页面时不会出现页面布局失效的问题。系统扩展性强,图像分析的结果与调用的模型关联,可以处理多种计算机视觉领域的图像处理问题,在Flask 框架中发布图像分类接口,在模型管理模块中上传图像分类模型,调用本系统就能完成图像分类任务、查看图像分类结果。本系统功能简洁,简化了农业保险部门在农作物受灾后使用大量人力物力去丈量、勘探、记录的过程,并降低了人为因素干扰受灾结果的可能,在农业保险行业有一定的推广应用价值。
2    系统实现
2.1  系统管理
系统管理负责对系统使用情况进行管理。用户管理是对登录用户的管理。包括用户名、密码、手机号码、性别、岗位、部门、邮箱和角的维护。角管理负责对权限的划分,权限控制对应着后台方法,也对应系统能够展示的菜单。菜单管理负责维护整个系统的菜单,菜单共被划分为三级,每级菜单中又
包含功能按钮的操作,通过角管理与菜单管理的配合,实现了对用户的函数级细粒度的权限控制。2.2  基本信息管理
基本信息管理是对业务基本信息的维护,包括农户、地域和图片资源的管理。农户管理是对农户基本信息的维护,包括所属地域、姓名、邮箱、手机号、性别字段,农户作为系统业务核心数据信息,与地域、图像、分析结果紧密相关。地域管理实现了对地域的维护,根据父母层级关系设计了所属关系,在展示层中,设计了新增或修改地域时的标签页面,增加了灵活性。图像管理存储了受灾图像,用于后续自动化分析,每张图像对应所属农户,这种设计便于历史记录溯源,提高查询效率。2.3  分析管理
分析管理是系统的核心模块,不仅包含模型管理和受灾分析,也连接着服务器中运行的Flask 接口服务。模型管理对应图像分割的预训练模型,将模型管理独立成模块的设计,可以后向兼容,在预训练模型更新时,系统处理图像使用的模型也更新到最新版本,一次次提高准确率。新增一次受灾分析时,需指定模型,预测类型,图片或图片文件夹,json 参数,这些参数以post 方式请求P 指定接口,传入到底层的DeepLabV3+
参考文献:
[1] 周文魁. 气候变化对中国粮食生产的影响及应对策略 [D]; 南京农业大学, 2012.
[2] 张祖荣. 论农业保险经营中的技术障碍与技术选择 [J]. 经济问题, 2007 (6): 108-110.
[3] 黄鹏, 郑淇, 梁超. 图像分割方法综述 [J]. 武汉大学学报(理学版),
2020, 66(6): 519-531.
[4] 张峰. 应用SpringBoot改变web应用开发模式 [J]. 科技创新与应用, 2017 (23): 193-194.
[5] 荣艳冬. 关于Mybatis持久层框架的应用研究 [J]. 信息安全与技术, 2015, 6(12): 86-88.
[6] 叶锋. Python最新Web编程框架Flask研究 [J]. 电脑编程技巧与维护, 2015 (15): 27-28.
[引用信息] 曲锦旭. 基于 SpringBoot 的农作物受灾分析系统的设计与实现 [J].农业工程技术,2023,43(35):18-19 .
表1 分析模块接口设计
接口地址
接口说明
localhost/analyze/analyze/list 受灾分析列表
localhost/analyze/analyze/add
新增受灾分析。包括选择模型、预测类型、图片或文件夹。localhost/analyze/analyze/edit/{analyzeId}根据id 修改受灾分析字段信息。localhost/analyze/analyze/remove
spring boot选择题删除受灾分析信息。localhost/analyze/analyze/result/{analyzeId}根据id 查看受灾分析结果。
localhost:60015/predict
Falsk 发布的用于预测的接口,需要传入预测类型、模型url、图片url、保存路径、原路径。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。