毕业设计-基于深度学习的鱼群计数识别系统 YOLO python 卷积神经网络 人工智能

目录

前言

设计思路

一、课题背景与意义

二、算法理论原理

2.1 YOLOv5算法

2.2 改进的YOLOv5算法

三、鱼群计数检测的实现

3.1 实现环境

3.2 CBMA注机制

3.2 级联卷积神经网络

实现效果图样例

最后


前言

       📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

        🚀对毕设有任何疑问都可以问学长哦!

         选题指导:

        最新最全计算机专业毕设选题精选推荐汇总

        大家好,这里是海浪学长毕设专题,本次分享的课题是

        🎯基于深度学习的鱼群计数识别系统 

设计思路

一、课题背景与意义

       鱼群计数在水产养殖密度控制、成活率估算、运输和营销管理等方面具有重要的指导作用。然而,由于鱼类在养殖、运输和营销过程中存在复杂的环境条件,而且鱼类的体型和形态各异,对鱼群进行准确计数带来了一定的挑战。因此,需要一种能够处理复杂背景和鱼类重叠的计数方法,以满足水产养殖行业不同环节的需求,并实现自动、准确和高效的鱼群计数。

二、算法理论原理

2.1 YOLOv5算法

       YOLOv5模型按照网络深度和维度的不同,可分为4种模型。其中,YOLOv5s是最轻量的网络模型,具有更好的训练速度和检测速度,因此被广泛应用于工业场景中。本研究选用YOLOv5s模型对鱼群目标进行计数。其网络模型分为4个部分:输入端、主干网络(Backbone)、Neck模块、预测端(Prediction)。

毕业设计-鱼群计数识别系统-卷积神经网络-YOLOv5-深度学习

       CSPDarknet53在主干网络的开始部分增加了一个特殊的下采样操作,即Focus操作。通过使用Focus操作,可以将高分辨率的特征图分割成多个低分辨率的特征图。如图所示,一个4×4×3的Tensor被间断采样分割成4部分,并在通道维度上进行拼接,形成一个2×2×12的Tensor。Focus层将宽度和高度平面的信息转化为通道维度,并通过卷积操作提取不同的特征,从而减少由下采样引起的信息损失。

毕业设计-鱼群计数识别系统-卷积神经网络-YOLOv5-深度学习

       CSPDarknet53还采用了Neck模块,其中使用了特征金字塔网络(Feature Pyramid Networks,FPN)和路径聚合网络(Path Aggregation Network,PAN)的结构,以增强网络融合不同尺度对象特征的能力。FPN层负责将顶层丰富的语义特征传输到底层,PAN层负责将底层的精确定位信息传输到顶层,这两者都可以提高预测框位置的精度和预测框类别的准确性。FPN+PAN结构实现了自上而下和自底向上的双向融合。

毕业设计-鱼群计数识别系统-卷积神经网络-YOLOv5-深度学习

2.2 改进的YOLOv5算法

       YOLOv5使用k-means聚类算法为通用数据集COCO上的大中小全尺寸对象生成先验框。直接使用初始化先验框检测小目标的鱼群容易出现精度低、漏检率高的问题。因此,有必要先根据鱼群数据集的特征生成合适的先验框,再进行模型训练。利用k-means++算法替换YOLOv5网络的k-means算法可以生成更好的先验框,从而避免重叠鱼群被识别成一个目标的问题,且k-means++算法不会带来额外的参数和计算量。在鱼群数据集上使用k-means++算法生成9个适合鱼群检测数据集的先验框,见表。

毕业设计-鱼群计数识别系统-卷积神经网络-YOLOv5-深度学习

      为更好地学习鱼群图像的特征信息,提升泛化性能,在训练过程中,本研究使用迁移学习方式,将在COCO数据集上已经训练好的权重迁移到鱼群计数的实验任务中。鱼群计数模型训练可分为两个阶段:第一阶段,利用YOLOv5网络在COCO数据集上的预训练权重,冻结该预训练权重中CSPDarknet53网络层的权重,该网络层的权重不发生改变;第二阶段,将冻结的权重进行解冻,使用鱼群图像数据集对整个YOLOv5网络进行训练,直到模型收敛。

三、鱼群计数检测的实现

3.1 实现环境

       本研究采用的鱼群数据集来源于b站的鱼群视频,通过魔影工厂软件进行视频截取,得到510张鱼群图像,其中训练集与测试集的比例为9:1,数据集中的鱼群图像见下图。由于模型的输入是图像,需要人为对输入图像进行标记,定义图像特征,为其制作标签文件。本实验利用图像标注工具LabelImg制作VOC数据集。

毕业设计-鱼群计数识别系统-卷积神经网络-YOLOv5-深度学习

3.2 CBMA注机制

本实验采用的深度学习平台软硬件环境见下表。

毕业设计-鱼群计数识别系统-卷积神经网络-YOLOv5-深度学习

3.2 级联卷积神经网络

       本研究将准确率(Precision,P)、召回率(Recall,R)和平均精度(Mean average precision,mAP)作为模型评估指标。采用迁移学习方法进行鱼群计数模型训练,训练时加载预训练权重。训练过程为800 epochs,前50个epochs利用冻结网络的方式进行训练,学习率为0.001,Batch Size设置为8;之后的750个epochs学习率为0.0001,Batch Size设置为4,每10个epochs保存1次权值,设置多线程读取数据,使用混合精度训练,动量为0.937,采用SGD优化算法。其中,平均精度随迭代次数的变化曲线,以及精确率和召回率变化曲线见下图。平均精度在迭代800次后趋近平稳,约为96.29%。

毕业设计-鱼群计数识别系统-卷积神经网络-YOLOv5-深度学习

毕业设计-鱼群计数识别系统-卷积神经网络-YOLOv5-深度学习

部分代码如下:

net = cv2.dnn.readNetFromCaffe('path/to/prototxt', 'path/to/caffemodel')

# 加载图像
image = cv2.imread('path/to/image.jpg')

# 对图像进行预处理
blob = cv2.dnn.blobFromImage(cv2.resize(image, (300, 300)), 0.007843, (300, 300), 127.5)

# 输入图像到深度学习模型中进行推理
net.setInput(blob)
detections = net.forward()

# 计数鱼群
fish_count = 0
for i in range(detections.shape[2]):
    confidence = detections[0, 0, i, 2]
    if confidence > 0.5:  # 设置置信度阈值
        fish_count += 1

print("鱼群数量:", fish_count)

实现效果图样例

毕业设计-鱼群计数识别系统-卷积神经网络-YOLOv5-深度学习

创作不易,欢迎点赞、关注、收藏。

毕设帮助,疑难解答,欢迎打扰!

最后

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyTorch是一个开源的深度学习框架,在深度学习任务中具有很高的灵活性和可扩展性。而Jupyter是一个交互式的编程环境,能够方便地组织和展示代码、图像以及文字等内容。 基于海洋类分类这个任务,我们可以使用PyTorch和Jupyter来构建一个分类模型。首先,我们可以使用PyTorch库来加载、预处理和训练我们的数据集。我们可以使用PyTorch提供的数据加载器和转换工具来加载数据,并使用数据增强技术来扩充数据集,提高模型泛化能力。然后,使用PyTorch来构建一个深度学习模型,如卷积神经网络CNN),用于类图像分类任务。我们可以使用PyTorch提供的各种层和激活函数来定义网络架构,并使用梯度下降算法和优化器来训练模型。 在Jupyter中,我们可以使用Markdown单元格来记录和展示我们的代码、实验结果和解释。我们可以使用代码单元格来编写、运行和调试我们的PyTorch代码。此外,我们还可以使用Jupyter的可视化功能来展示模型训练的过程中的损失曲线、准确度等指标,并可视化模型在测试集上的预测结果。 使用PyTorch和Jupyter,我们可以方便地进行迭代实验,优化模型的性能,调整超参数并进行模型的可视化分析。通过PyTorch和Jupyter的强大功能和易用性,我们可以更有效地进行海洋类分类任务的研究和实践。同时,这也为其他相关的深度学习任务提供了一个良好的平台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值