数据采集综合设计

news/2025/2/28 23:16:26/文章来源:https://www.cnblogs.com/c786260029/p/18607074
这个项目属于哪个课程 2024数据采集与融合技术实践
组名 从你的全世界爬过
团队logo
项目简介 项目名称:博物识植
项目logo

项目介绍:在探索自然奥秘的旅途中,我们常与动植物相伴而行,却无法准确识别它们,更难以深入了解他们的特征。为了更好地理解和欣赏自然界的多样性,提升我们对动植物的认识和保护意识,我们需要一个智能系统。该系统能够根据用户拍摄的动植物照片,智能识别并匹配相应的信息,同时为用户提供丰富的学习资源,帮助人们更深入地了解和学习动植物知识。通过这样的方式,我们不仅能够更准确地识别和欣赏周围的生命,还能够在日常生活中,随时随地增长见识,体验探索自然的乐趣。
项目背景:人类的生活离不开动植物的支持,动植物的多样性是一切地球生物的依赖。在生活中随处可见很多动植物,动植物是人类生活必不可少的一部分。 保护大自然保护动植物就是在保护人类自己。在保护动植物的过程中,首先要解决的是动植物识别的问题。
项目意义:提供了一种我们与自然界互动的方式。其应用场景广泛,渗透到了教育、旅游等多个领域。在学校,它可以是生物课程的辅助工具,通过实践学习生物多样性;在旅游行业,它可以帮助游客更好地了解他们所参观的自然景观,提升旅行体验
团队成员学号 042201401陈高菲、102202107王勤琛、102202108王露洁、102202115孙佳会、102202123张铭心、102202130林烨、102202138徐婉瑜、102202140郭心怡
项目目标 本系统旨在实现以下功能:
a.图片识别功能:用户上传动植物图片,系统通过图像识别技术自动识别物种,返回准确的物种名称。
b.物种详细信息:识别后,用户将获取该物种的详细信息,包括外形特点、生长环境、分布区域等相关数据。
c.物种图片展示:系统将提供该物种的高质量图片,帮助用户更直观地了解物种特征。
d.名称搜索功能:用户可以手动输入动植物的名称,系统将返回该物种的相关信息,方便快速查询。
e.网站部署上线:通过华为云的弹性计算服务部署网站,确保系统高可用和稳定运行,实现网站上线。
其他参考文献 1.yanjingang/pigimgclassification: 图像分类
2.基于改进SE-MnasNet骨干网络YOLOv5的动植物树木识别系统_开源 树木识别
gitee链接 2024学年数据采集与融合技术大作业——博物识植 团队:从你的全世界爬过

一、系统总体技术概述

1.1 系统架构概述

系统分为前端、后端、数据库、AI接口、爬虫模块、部署等多个层级。前后端之间通过RESTful API进行通信。具体分为以下几个部分:

  • 前端:使用HTML、CSS和JavaScript进行界面设计,实现用户与系统的交互。用户可以上传文本、图片等文件。
  • 后端:使用Python语言和Flask框架实现,处理图像识别、查询请求、调用AI接口和爬虫数据存储等业务逻辑。
  • 数据库:存储动植物物种的详细信息,包括图像、分布、特点等。存储物种识别的历史记录信息。
  • 图像识别与AI接口:利用图像识别模型或调用第三方AI服务(如百度AI、Google Vision等)识别图片并返回结果。
  • 爬虫:提前爬取动植物相关网站数据,补充物种数据库。使用Selenium框架进行实时图片爬取。
  • 部署平台:使用华为云平台部署系统,保证系统的高可用和稳定性。

1.2 各模块技术实现

1.2.1 图像识别模块

  • 目标:用户上传图片,系统通过图像识别技术返回物种名称。
  • 技术方案:
    使用深度学习模型:基于改进SE-MnasNet骨干网络YOLOv5和卷积神经网络cnn opencv进行图像分类和识别。
    基于识别精确度的考虑调用第三方云服务百度智能云的动植物识别API提供快速而准确的图像识别。
  • 流程:
    用户上传图片,前端将图片通过API发送至后端。
    后端调用模型或AI图像识别API分析图片,获取可能的物种标签。
    后端将物种名称返回给前端,前端展示识别结果。

1.2.2 物种信息查询功能

  • 目标:根据识别后的物种名称或用户输入的名称,返回该物种的详细信息。
  • 技术方案:
    利用selenium技术和scrapy框架爬取信息网站所有物种信息(如外形特点生长环境、分布区域等)存储在csv表导入数据库并定期更新。
    利用查询语句在数据库中进行查找并返回详细信息。
    若数据库中没有相关信息,则调用百度智能云的千帆大模型识别物种名称,查询物种相关信息。
  • 流程:
    后端识别出物种名称时,系统首先查询数据库,若没有该物种的信息,再调用AI接口获取。

1.2.3 相似图片展示

  • 目标:根据用户上传的图片,返回物种的相似图片,帮助用户直观了解物种。
  • 技术方案:
    运用selenium爬虫技术实时爬取百度识图返回的相似图片
  • 流程:
    后端接收前端传入的图片后,将图片作为输入文件传入百度识图网站实时爬取相似图片,在系统返回物种详细信息时,将图片URL一并返回。

1.2.4 保存历史记录

  • 目标:将用户的历史搜索记录保存至数据库,方便用户在“我的图鉴”页面查看并跳转至物种详情页,随时查看过去的搜索记录。
  • 技术方案:
    创建一个数据库表专门用来保存用户的搜索记录,包括用户上传的图片、识别出来的物种名称、物种的详细信息(如描述、分布、图片URL等)
  • 流程:
    当用户获取识别结果时,后端系统会将物种信息保存至数据库中。在点击我的图鉴中的物种名称时,后端调取数据库信息展示在前端界面。

1.2.5 部署与部署架构

  • 目标:将整个系统部署到华为云服务器上,让非本地用户可以访问。
  • 技术方案:
    使用华为云ECS(Elastic Cloud Server)部署后端服务。
    使用华为云OBS 存储图片等静态资源。
    使用RDS(Relational Database Service)存储物种信息数据库。
    前端可以使用 Nginx 进行负载均衡和反向代理
  • 流程:
    前后端文件上传部署完成后即可实现非本地用户的访问。

1.3 源码运行步骤

  • gitee仓库下载源码
  • 启动文件中的ai.py与database.py文件
  • 运行index.html文件
    (!注意在本地主机运行代码时请更换代码中的路径名)

二、个人分工

在该实践作业中,我与郭心怡同学一同负责数据的爬取工作,我负责植物库的爬取。另外我还负责服务器的部署工作。数据爬取较为简单,与平时作业差不多,只是数据量庞大,爬虫程序运行的时间较长。服务器的部署与之前的华为云部署实验不同,这个没有教程,网上的资料也很少,我只能自己摸索。
以下是爬取植物库的部分关键代码。根据植物库的网页结构,我先爬取了所有植物页面的链接,存储到csv文件当中。然后从csv文件当中读取链接,打开链接后,再从二级链接当中爬取所有信息。



我还做了部署服务器的工作。以下是我部署的云服务器的基本信息。


这相当与重新配置一个空的电脑,我先下载了131版本的chrome浏览器并配置了对应版本的chromedriver。然后配置了5.7版本的mysql,这一步一直报错,经过查询资料发现是因为ecs用的是华为的操作系统,导致很多依赖版本不兼容。下载我们的项目所需要的所有包,配置好python环境,上传我们项目的代码并把所有的localhost改成了弹性ip的地址。运行server端并设置为长期运行。
心得体会:爬取数据较为简单,平时作业积累的足够的经验来应对作业,只是爬虫花费的时间较长。而部署云服务器虽然描述很简单,但是配置各种环境是很耗费心力的一件事,特别是明明什么都搞好了但是就是访问不了的时候。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/852622.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中创建线程的几种方式

盘点一下Java中创建线程的几种方式 一、继承Thread类,重写run()方法public class MyThread extends Thread {@Overridepublic void run() {System.out.println("my thread start " + Thread.currentThread().getName());}public static void main(String[] args) {S…

消防通道堵塞识别摄像机

消防通道堵塞识别摄像机是一种安装在建筑物消防通道中的监控设备,主要用于监测消防通道是否被车辆、杂物或其他障碍物所堵塞,以确保在火灾等紧急情况下消防通道畅通无阻。这种摄像机通常安装在消防通道的入口或周围,具备高清摄像功能,能够全天候监测通道状况。一旦摄像机检…

发布你的第一个python包

发布你的第一个python包到pypi网站这里介绍如何将你写的python工具包,打包成whl,并发布到pypi.org网站,使用pip进行安装使用。大致步骤如下:注册测试testpypi.org网站,生成上传的token 注册正式pypi.org网站,生成上传的token 编写代码 规划项目代码目录布局 编写打包文件…

火灾监测识别摄像机

火灾监测识别摄像机是一种基于视觉识别技术的智能设备,旨在实时监测并识别火灾,及时报警并提供相关数据支持,以提高火灾应急响应和减少火灾灾害损失。火灾监测识别摄像机是一种基于视觉识别技术的智能设备,旨在实时监测并识别火灾,及时报警并提供相关数据支持,以提高火灾…

佩戴口罩监测识别摄像机

佩戴口罩监测识别摄像机是一种基于计算机视觉技术的智能监测设备,它能够快速准确地识别出人们是否佩戴口罩,并对佩戴口罩的人员进行识别和记录。这种摄像机在当前抗击病毒的背景下具有重要意义,在公共场所、医疗机构、交通枢纽等地方都有着广泛的应用价值。佩戴口罩监测识别…

随机中文字符生成-python包工具

随机生成中文文字,你指定数量这里介绍一个python工具包,随机生成中文文字,方便中文模型训练及随机中文字符串填充场景。操作如下: pip install chineserand代码示例: from chineserand import raw chinese_words = raw(10) print(chinese_words)项目开源地址: https://gi…

P6786 「SWTR-6」GCDs LCMs

有意思的推式子题一开始看到这个式子是不知所措的,推理出来的结论倒是挺有意思的,还是第一次遇到这样推理的。 一开始是打算直接枚举的,时间复杂度太高了,这个式子有什么意义呢? x+y+gcd(x,y) = lcm(x,y) x 等于 y时,显然不成立 当y>x时,这时候就需要猜了。x+y…

Muduo网络库解析---架构设计

前言 muduo库是陈硕个人开发基于reactor模式的tcp网络编程库。本人之前有学习过boost.asio网络库,故学习一下Muduo网络库,并分析它们之间的优缺点。 本系列将重点放在以下几件事情:梳理Muduo的核心架构设计以及各个模块的职责 理解Muduo的事件驱动机制 理解Muduo的多线程模型…

2024-2025-1学号20241309《计算机基础与程序设计》第十二周学习总结

作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 2024-2025-1计算机基础与程序设计第十二周作业这个作业的目标作业正文 2024-2025-1学号20241309《计算机基础与程序设计》第十二周学习总结教材学习内容总结 《C语言程序设计》第十一章: 一…

四阶魔方教程

四阶魔方玩法还原教程 四阶魔方的还原其实很简单,大家不要看我画了这么多图,写了这么多字就以为好像很难,其实我是为了让大家尽可能的不费脑力就能学会才讲得尽量具体一点。 我们用的是降阶法,基本的还原过程如下:1.中心块复原2.棱的合并3.按三阶魔方还原4.特殊情况校正四…

P6599 「EZEC-2」异或

写数学时发现的好题 给出n和l,构造一个数组,数组长度为l,满足数组中的数字在 1-n 之间贪心的想,直接放n会发生什么。不难发现,最终的答案其实是两两异或之和 放一个n,答案就是1(l-1)n; 放一个n,答案就是2(l-2)n; 其实就是x(l-x)n; 还可以更大吗? n写成二进制就…

使用AOP防止请求重复提交

使用AOP防止请求重复提交首先定义注解NoPepeatSubmit@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface NoRepeatSubmit {long value() default 1000*10; }定义AOP相关方法public class RepeatSubmitAspect {@Autowiredprivate StringRedisS…