一、项目需求与背景
1. 项目背景与需求
近年来,相关水产公司以及水产研究所等,利用类似水池生态育种等群体育种方法, 共培育了“长江 1 号”、“长江 2 号”、 “光合 1 号”、“诺亚 1 号”、“江海 21 号”以及“长荡湖 1 号”总计 6 类优良品种。这些新培育的河蟹品种,不仅抗病毒性强、而且生成发育更快、肉质也十分饱满。对整个河蟹水产养殖业而言都是一项重大突破。
对于河蟹养殖行业而言,存在由于各种品系的河蟹形状外壳等外在特征相似度较高,非专业人士很难直接依据外部特征进行区分,而传统化学检验法又太过于繁琐的实际问题。在此背景下,设计和开发一款河蟹识别微信小程序,可以帮助相关用户更 好地对河蟹品种进行识别和判断。
2. 研究内容和主要工作
本系统主要研究内容涉及到:基于机器学习相关算法,收集并组织河蟹图片集合, 用于读取河蟹图片的特征(例如形状、斑点、颜色、纹理等等),从而训练出河蟹的识 别模型,根据该算法作为后端识别模块。并根据相关用户和行业人员的需求,建立合理 且完善的后端数据库,然后通过使用 Spring Boot 相关后端框架搭建好整个系统的后端 模块。在前端考虑到项目的通用性,选择在 uni-app 框架下搭建小程序前端项目,通过 一套代码即可适配包括 Android 、IOS、Web 网站、还有其他各平台的小程序端,使用 一些较为美观的组件方便用户体验和优化用户感官。而对于 Web 端的管理系统而言,则 是基于 Vue 框架配合 Element 相关组件,搭建了一套可供管理整个项目后端数据的管理 平台。 本系统的主要工作为:
- 河蟹图像集的采集与预处理工作:收集不同品种、场景下的河蟹图形集,并对收集 到的图像进行预处理操作,例如调整图像大小像素、灰度化处理等等;
- 河蟹识别特征提取:从河蟹识别集合中提取出能有效区分图像类型(河蟹和非河 蟹)、和不同品种(长江 1 号等河蟹分类)的特征,例如外壳、形状、斑点、花纹、颜色等;
- 使用第三方算法训练识别模型:根据上述提取出的特征,使用第三方的基于 yolov5 的河蟹识别算法,建立河蟹识别模型,并使用上面已处理好的河蟹图像训练集来 训练和优化该识别模型;
- 后端模块的设计和开发:结合用户和项目需求,设计合理完善的数据库,并基于SSM 后端框架完成相关功能接口的开发和设计,同时也可以接入一些第三方 API 来提 升用户体验(如腾讯短信服务、支付宝沙箱支付等);
- 微信小程序模块的设计与开发:基于 uni-app 框架,配合 uView 组件进行微信小程序端的设计与开发,要考虑到用户的实际操作体验和需求,实现用河蟹的种类识别、个体识别、生物识别、注册登录、数据查看等等相关功能模块。同时也需要考虑界面设计、用户体验、数据安全等其他问题;
- Web 管理系统模块的设计与开发:基于 Vue 框架,结合 Element 相关界面组件进行前端管理系统的设计与开发,主要根据后端的数据类型和业务流程进行考虑,可以充 分的查看到整个项目的数据变动和数据的管理;
- 系统测试和性能评估:对最终完成的河蟹识别小程序进行软件测试,测试系统的功能是否完善,运行流程是否正常。并进行性能评估,包括识别精度、系统健壮性、适 配性、负载能力等性能指标进行评估;
二、论文算法
《基于改进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前端模块