# plants_and_animals
**Repository Path**: okiqiiii/plants_and_animals
## Basic Information
- **Project Name**: plants_and_animals
- **Description**: 2024学年数据采集与融合技术大作业——博物识植
团队:从你的全世界爬过
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2024-12-13
- **Last Updated**: 2024-12-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 一、项目与团队介绍
## 项目
**2024学年数据采集与融合技术大作业——博物识植**
**项目logo**
## 团队
**团队名称:从你的全世界爬过**
**团队logo**
# 二、系统总体技术概述
## 1. 系统架构概述
系统分为前端、后端、数据库、AI接口、爬虫模块、部署等多个层级。前后端之间通过RESTful API进行通信。具体分为以下几个部分:
* 前端:使用HTML、CSS和JavaScript进行界面设计,实现用户与系统的交互。用户可以上传文本、图片等文件。
* 后端:使用Python语言和Flask框架实现,处理图像识别、查询请求、调用AI接口和爬虫数据存储等业务逻辑。
* 数据库:存储动植物物种的详细信息,包括图像、分布、特点等。
* 图像识别与AI接口:利用图像识别模型或调用第三方AI服务(如百度AI、Google Vision等)识别图片并返回结果。
* 爬虫:提前爬取动植物相关网站数据,补充物种数据库。使用Selenium框架进行实时图片爬取。
* 部署平台:使用华为云平台部署系统,保证系统的高可用和稳定性。
## 2. 各模块技术实现
### 2.1 图像识别模块
* 目标:用户上传图片,系统通过图像识别技术返回物种名称。
* 技术方案:
使用深度学习模型:基于改进SE-MnasNet骨干网络YOLOv5和卷积神经网络cnn opencv进行图像分类和识别。
调用第三方云服务百度智能云的动植物识别API提供快速而准确的图像识别。
* 流程:
用户上传图片,前端将图片通过API发送至后端。
后端调用模型或AI图像识别API分析图片,获取可能的物种标签。
后端将物种名称返回给前端,前端展示识别结果。
### 2.2 物种信息查询功能
* 目标:根据识别后的物种名称或用户输入的名称,返回该物种的详细信息。
* 技术方案:
利用selenium技术和scrapy框架爬取信息网站所有物种信息(如外形特点生长环境、分布区域等)存储在csv表导入数据库并定期更新。
利用查询语句在数据库中进行查找并返回详细信息。
若数据库中没有相关信息,则调用百度智能云的千帆大模型识别物种名称,查询物种相关信息。
* 流程:
后端识别出物种名称时,系统首先查询数据库,若没有该物种的信息,再调用AI接口获取。
### 2.3 相似图片展示
* 目标:根据用户上传的图片,返回物种的相似图片,帮助用户直观了解物种。
* 技术方案:
运用selenium爬虫技术实时爬取百度识图返回的相似图片
* 流程:
后端接收前端传入的图片后,将图片作为输入文件传入百度识图网站实时爬取相似图片,在系统返回物种详细信息时,将图片URL一并返回。
### 2.4 部署与部署架构
* 目标:将整个系统部署到华为云服务器上,让非本地用户可以访问。
* 技术方案:
使用华为云ECS(Elastic Cloud Server)部署后端服务。
使用华为云OBS 存储图片等静态资源。
使用RDS(Relational Database Service)存储物种信息数据库。
前端可以使用 Nginx 进行负载均衡和反向代理
* 流程:
前后端文件上传部署完成后即可实现非本地用户的访问。