【毕业设计】【河蟹识别微信小程序】项目总结

news/2025/2/25 1:46:10/文章来源:https://www.cnblogs.com/zkcyy/p/18735265

一、项目需求与背景

1. 项目背景与需求

  近年来,相关水产公司以及水产研究所等,利用类似水池生态育种等群体育种方法,  共培育了“长江 1 号”、“长江 2 号”、 “光合 1 号”、“诺亚 1 号”、“江海 21  号”以及“长荡湖 1 号”总计 6 类优良品种。这些新培育的河蟹品种,不仅抗病毒性强、而且生成发育更快、肉质也十分饱满。对整个河蟹水产养殖业而言都是一项重大突破。

  对于河蟹养殖行业而言,存在由于各种品系的河蟹形状外壳等外在特征相似度较高,非专业人士很难直接依据外部特征进行区分,而传统化学检验法又太过于繁琐的实际问题。在此背景下,设计和开发一款河蟹识别微信小程序,可以帮助相关用户更  好地对河蟹品种进行识别和判断。


 

2. 研究内容和主要工作

  本系统主要研究内容涉及到:基于机器学习相关算法,收集并组织河蟹图片集合,  用于读取河蟹图片的特征(例如形状、斑点、颜色、纹理等等),从而训练出河蟹的识  别模型,根据该算法作为后端识别模块。并根据相关用户和行业人员的需求,建立合理  且完善的后端数据库,然后通过使用 Spring Boot 相关后端框架搭建好整个系统的后端  模块。在前端考虑到项目的通用性,选择在 uni-app 框架下搭建小程序前端项目,通过  一套代码即可适配包括 Android 、IOS、Web 网站、还有其他各平台的小程序端,使用  一些较为美观的组件方便用户体验和优化用户感官。而对于 Web 端的管理系统而言,则  是基于 Vue 框架配合 Element 相关组件,搭建了一套可供管理整个项目后端数据的管理  平台。    本系统的主要工作为: 

  1. 河蟹图像集的采集与预处理工作:收集不同品种、场景下的河蟹图形集,并对收集  到的图像进行预处理操作,例如调整图像大小像素、灰度化处理等等;
  2. 河蟹识别特征提取:从河蟹识别集合中提取出能有效区分图像类型(河蟹和非河  蟹)、和不同品种(长江 1 号等河蟹分类)的特征,例如外壳、形状、斑点、花纹、颜色等; 
  3. 使用第三方算法训练识别模型:根据上述提取出的特征,使用第三方的基于  yolov5 的河蟹识别算法,建立河蟹识别模型,并使用上面已处理好的河蟹图像训练集来  训练和优化该识别模型; 
  4. 后端模块的设计和开发:结合用户和项目需求,设计合理完善的数据库,并基于SSM 后端框架完成相关功能接口的开发和设计,同时也可以接入一些第三方 API 来提  升用户体验(如腾讯短信服务、支付宝沙箱支付等); 
  5. 微信小程序模块的设计与开发:基于 uni-app 框架,配合 uView 组件进行微信小程序端的设计与开发,要考虑到用户的实际操作体验和需求,实现用河蟹的种类识别、个体识别、生物识别、注册登录、数据查看等等相关功能模块。同时也需要考虑界面设计、用户体验、数据安全等其他问题; 
  6. Web 管理系统模块的设计与开发:基于 Vue 框架,结合 Element 相关界面组件进行前端管理系统的设计与开发,主要根据后端的数据类型和业务流程进行考虑,可以充  分的查看到整个项目的数据变动和数据的管理; 
  7. 系统测试和性能评估:对最终完成的河蟹识别小程序进行软件测试,测试系统的功能是否完善,运行流程是否正常。并进行性能评估,包括识别精度、系统健壮性、适  配性、负载能力等性能指标进行评估;

 


 

二、论文算法

《基于改进YOLOv5算法的中华绒螯蟹品系识别算法》

YOLOv5是一种目标检测模型,它继承了YOLO系列模型的特点,并在网络结构上进行了优化,提高了检测性能和效率‌。

YOLOv5的主要架构包括以下几个部分:

  • ‌Backbone(主干网络)‌:负责提取输入图像的多层次特征。YOLOv5使用CSPNet作为特征提取器,通过将特征图分成两部分,分别在不同的路径上进行处理,再将结果合并,从而减少计算量并提高模型性能‌12。

  • ‌Neck(颈部网络)‌:进行特征融合和多尺度特征处理。通常包含FPN(特征金字塔网络)等结构,用于结合不同尺度的特征图,增强模型对不同大小物体的检测能力‌

  • ‌Head(输出层)‌:负责生成最终的检测结果,包括边界框的位置、物体类别及置信度。对于每个锚框,YOLOv5会输出边界框坐标、类别概率和置信度等信息‌

此外,YOLOv5在训练过程中还采用了一些策略来提高模型的性能,如Mosaic数据增强、自适应锚框计算、自适应图片缩放等‌

摘要

  • ‌问题提出‌:中华绒螯蟹品系外壳特征相似度高,养殖人员难以直接区分。
  • ‌解决方案‌:提出基于YOLOv5s的改进算法YOLOCrab,引入Swin-Transformer和Shuffle Attention模块,优化损失函数。
  • ‌实验结果‌:在精确率、召回率、平均精度均值上分别达到94.2%、94.8%、98.5%,相比原始YOLOv5算法有所提升。

1. 引言

  • ‌背景‌:中华绒螯蟹是重要的水产养殖物种,但养殖过程中存在种质退化和混杂问题。
  • ‌目的‌:提出基于YOLOv5的河蟹品系识别算法YOLOCrab,解决养殖人员难以区分蟹品系的问题。

2. YOLOv5算法

  • ‌简介‌:YOLOv5是一种单阶段目标检测算法,分为YOLOv5n、YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x五个版本。
  • ‌核心思想‌:通过数据增强、网格划分、锚框预测和非极大值抑制实现目标检测。
  • ‌组成部分‌:主干网络(特征提取)、颈部网络(多尺度信息融合)、预测层(预测物体)。

3. YOLOCrab算法

  • ‌改进点‌:
    • ‌引入Swin Transformer模块‌:提高蟹壳特征提取能力。
    • ‌引入Shuffle Attention模块‌:提升模型对蟹壳的关注度。
    • ‌优化损失函数‌:引入EIOU损失函数,加速模型收敛。

4. 实验分析

  • ‌实验环境‌:Windows11专业版,Intel Core i7-12700KF,NVIDIA GeForce RTX3080Ti,Python3.9,PyTorch 1.10.1。
  • ‌数据集‌:上海海洋大学提供的4种不同品系中华绒螯蟹图像,共计14613张。
  • ‌评估指标‌:FPS、精确率、召回率、mAP@0.5。
  • ‌实验结果‌:
    • YOLOCrab算法在精确率、召回率、mAP@0.5上分别提升了0.6%、2.4%、1.3%。
    • 消融实验证明每个改进点的有效性。
    • YOLOCrab检测速度略有下降,但仍满足实时检测需求。

5. 结论

  • ‌研究意义‌:YOLOCrab算法能够快速准确识别中华绒螯蟹品系,对养殖业具有应用价值。
  • ‌未来展望‌:未来可进一步优化算法,提高检测速度和精度。

关键词

  • 中华绒螯蟹、YOLOv5、Swin-Transformer、注意力机制

 

三、项目架构

本项目架构如下

  • backend:Java后端接口模块(Java、SpringBoot、Mybatis)
  • front:微信小程序前端模块(Vue、JavaScript)
  • interface:识别算法模块(Python、TensorFlow、OpenCV、PyTorch、YOLOv5)
  • sql:MySQL数据库文件(MySQL)
  • web:Web前端管理系统页面(Vue、JavaScript、CSS、HTML)

 


 

 

四、识别算法模块

 

五、Java后端接口模块

 

六、小程序前端模块

 

七、Web前端模块

 

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

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

相关文章

日志(logging)

【一】函数式简单配置 import logging logging.debug(debug message) logging.info(info message) logging.warning(warning message) logging.error(error message) logging.critical(critical message)默认情况下Python的logging模块将日志打印到了标准输出中,且只…

解决Docker连接XQuartz报错

背景 打开XQuartz,在桌面右上角菜单栏中的XQuartz偏好设置中的安全性中启用 "允许从网络客户端连接",并重启XQuartz生效,后续操作中要保持XQuartz为打开状态,不要退出XQuartz报错内容: root@9b90039a4d17:~# ros2 run turtlesim turtlesim_node Authorization r…

MySQL的四种事务隔离级别

一.MySQL四大隔离级别 事务隔离级别 1.读未提交 (Read Uncommitted) 允许一个事务读取另一个事务未提交的数据。 2.读已提交 (Read Committed) 一个事务只能读取另一个事务已经提交的数据。 3.可重复读 (Repeatable Read) 保证在一个事务内多次读取同一数据时,其结果是一致的。…

持续分享干货!清华出品《DeepSeek如何赋能职场》PDF可下载

🔥今天分享的是清华出品《DeepSeek如何赋能职场》的PPT,内容涵盖了DeepSeek运行模式的讲解,如何向DeepSeek提问,如何构建提示词,结合实际多个实际应用场景,详细的介绍了DeepSeek结合其他多模态AI模型持续赋能职场的方法。提示词框架如何使用DeepSeek制作可视化图表如何使…

「跟着渡一学前端」并发请求实现

学习资源 并发请求 【渡一教育】 完整代码 function concurRequest(urls, maxNum) {if (urls.length === 0) {return Promise.resolve([]);}return new Promise((resolve) => {let nextIndex = 0;let finishCount = 0;const result = [];async function _request() {if (nex…

软工作业1

作业相关信息这个作业属于哪个课程 软件工程 这个作业要求在哪里 自我介绍+软工5问 这个作业的目标 自我介绍,了解软件工程基本概念个人介绍 Im YiLaiL YiLaiL/YiLaiL is a ✨ special ✨ repository because its README.md (this file) appears on your GitHub profile.🔭 …

EmEdit设置缓存目录临时文件夹

前言全局说明一、说明 1.1 环境: Windows 11 家庭版 23H2 22631.3737 EmEditor Professional (64-bit) Version 17.2.4二、打开大文本控制器三、点击右边大文本控制器上 自定义四、选择比较大的磁盘空间作为缓存空间免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他…

谈谈 ES 6.8 到 7.10 的功能变迁(3)- 查询方法篇

上一篇咱们了解了 ES 7.10 相较于 ES 6.8 新增的字段类型,这一篇我们继续了解新增的查询方法。 Interval 间隔查询: 功能介绍 Interval 查询,词项间距查询,可以根据匹配词项的顺序、间距和接近度对文档进行排名。主要解决的查询场景“创建一个多搜索词匹配的查询,同时保留…

【蓝牙小程序】在微信小程序中使用 ECharts

echarts-for-weixin 项目提供了一个小程序组件,用这种方式可以方便地使用 ECharts。 使用方式下载该项目 如有必要,将 ec-canvas 目录下的 echarts.js 替换为最新版的 ECharts。如果希望减小包体积大小,可以使用自定义构建生成并替换 echarts.js pages 目录下是使用的示例文…

Virtual Box设置双网卡

一、硬件 1.为虚拟机添加网卡2.配置网卡二、软件 3.获取mac地址 命令:ip link [root@vbox network-scripts]# ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000link/loopback 00:00:00:00:00:00 brd…

简单逆向Java程序

前置 来源 这个程序是我同学编写的一个学生分数管理系统,我将对这个已经编译的程序进行测试、逆向,找出其中的问题,并进行改进。 运行环境macOS 15.4 IntelliJ IDEA 2024.2.3 OpenJDK 23.0.2 TomCat 11.0.4 Safari 15.4运行结果主要问题 在使用了这个程序之后,我发现了以下…

信息论概述

1 信息与消息 1.1 信息 1.1.1 信息的定义 信息是信息论中最基本、最重要的概念 香农信息的定义:信息是事物运动状态或存在方式的不确定描述 1.1.2 (香农)信息的度量样本空间:对于我们需要描述的事物中,事物可能存在不同的状态,即事物展现出来的多种状态。那么为了便于形容事…