# insects_detection_flask_backend
**Repository Path**: bzb136/insects_detection_flask_backend
## Basic Information
- **Project Name**: insects_detection_flask_backend
- **Description**: 温室病虫害识别flask框架
- **Primary Language**: Python
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2021-07-18
- **Last Updated**: 2021-07-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 配置说明
* **该项目为温室病虫害flask后端,所有与温室病虫害相关的核心代码,请参阅
`insects_detection`中的相关实现**
* **使用前请在终端运行`pip install -r requirements.txt`安装项目依赖的程序包**
=========================================================
### 相关文件说明,`insects_detection` 模块
* `project_util.py`规定了整个工程遵循的相关约定和工作路径的定义
* `test.py`给出了核心代码的调用Demo
* `file_manager.py`提供简单的在线服务器文件操作接口
* `processed_imgs`为预处理后的图像文件存放路径
* `chas_data`为特征提取后特征数据的存放路径
* `insects_tags`为进行虫种学习后人工标记内容的存放路径
* `tranning_data_source`存放与`insects_tags`对应的昆虫特征项文件
* `trainning_models`为虫种学习后生成的虫种识别模型存放路径
========================================================
### 主要API
* API已使用swagger维护,访问127.0.0.1:5000即可预览和测试

* 获取当前温室病虫害宏观数据:
* **127.0.0.1:5000/api/get_insects_info/{cached}**
Redis做结果缓存,cached不填使用缓存,cached填写任意字符为重新处理图像获得虫害数据。
* 获取当前温室病虫害分类后的详细数据:
* **127.0.0.1:5000/api/get_detailed_insects_info/{cached}**
cached不填使用缓存,cached填写任意字符为重新处理图像获得虫害数据。
* 在线文件操作:
* **127.0.0.1:5000/file_views/scan/**
* 其他增删改查请查阅`file_manager.py`中定义的相关接口
### 前端工程
* 请访问insects_detection_webui仓库
### 6月更新
* API接口加入swagger支持(仅部分接口),访问项目根路径即可浏览本项目接口。
* 耗时工作重构为异步非阻塞调用,使用celery+redis构建分布式任务队列,redis做为分布式任务队列的中间人(broker)并兼做项目缓存及数据库,异步任务定义详见:
* `chas_task.py` ——>异步获取虫害特征数据
* `classify_task.py`——>异步对虫群进行分类计数
* `imgprocess_task.py`——>异步图像预处理
* 异步方法的调用demo详见**insects_detection.async_test.py**中给出的样例代码
。
* 运行flask之后请在终端启动celery worker。
Windows 环境下使用命令:`celery -A celery_task.celery_init worker --loglevel=info --pool threads`
Linux 环境下使用命令:`celery -A celery_task.celery_init worker --loglevel=info`
### 7月更新
* 温室病虫害前端接入后台真实数据,后台新增“虫害影像标记”功能接口。
* 采用vdftpd+nginx构建私有图像服务器,已打包为docker镜像,相关代码封装及测试样例请查阅`insects_detection.ftp_imgserver.py`。
* 温室病虫害前端有关在线图像处理的功能展示已借助图像服务器实现,在线图像存取仅为测试使用,需搭配数据库用户权限表及相关应用表进行存取控制。
* 重构了异步任务的相关实现,新增任务运行详情接口,处理进度一目了然。
* 新增celery异步任务监控面板(flower),启动命令:`celery -A celery_task.celery_init flower`,访问`127.0.0.1:5555`即可可视化任务执行详情。

* 新增服务端`ZIP`在线解压功能。
* 前端更新进度请前往作者`insects_detection_webui`仓库。