项目介绍
项目中所用到的算法模型和数据集等信息如下:
算法模型:
yolov5、yolov5 + SE注意力机制
数据集:
网上下载的加州理工学院 CUB-200数据集,格式都已转好,可直接使用。
👨💻原创声明: 我保证所有系统均为我亲手编写的代码,我并非二次销售者,而是提供原创产品的开发者。
🎉售后服务: 我提供售后支持(保运行)。遇到问题时,您可以通过截图,我将以文字或语音的方式为您解决问题。
🎆售后的重要性: 本套程序的核心价值在于售后服务。本人有幸辅导过上千名本科、研究生学生,发现许多学生对代码一无所知或者知道的就一丢丢,不管你是写多详细的文档,还是录成视频讲解,有些同学还是不会操作(因为深度学习的项目很多时候和自己的电脑硬件有关,每个人遇到的报错问题,并不一样。)所以不管在哪购买,一定要购买有售后的。如果购买了没有售后支持的产品,自己将难以独立解决问题,寸步难行。
✨警惕二手贩子: 近期,我发现有bishe二手贩子购买我的系统后进行高价二次销售。我将采取法律行动维护我的权益,并提醒大家注意辨别。另外外面被骗的同学太多了,真心提示要注意辨别(好多被骗都是 1千 起)。
🎄市场现状: 市面上那些拥有美观界面的系统,大多数是从我这里购买后,仅做了微小调整或未经任何改动直接转售的。这些转售者声称提供售后,但实际上并不能提供真正的帮助。因为没有人比我原创更了解这套代码。。。
🎊防骗提示: 请大家不要被虚假的售后服务所欺骗,选择有保障的原创产品和真正的售后支持。
注:
1. 项目提供所用到的所有资源,包含环境安装包、训练代码、测试代码、数据集、视频文件、 界面UI文件
等。
2. 项目提供详细的环境安装、模型训练、模型预测
等文档(B站配有视频讲解),小白也可以按照视频完成安装。
3. 项目代码可以用来当bishe
,也可以用来学习。
4. 我会尽全力的去帮助您,搞定bishe,搞定作业,搞定paper。
5. 我整理的知识库:https://aax3oiawuo.feishu.cn/wiki/CDoTwQcvgiv2PmkVlAUc1fO6n8g?from=from_copylink ,所有的文档类的内容都是在这个知识库里, 所以一定要看。
6. 您可以在文末的下载链接中获取完整的代码资源文件 !!!!!!!!!!
项目简介
本文将详细介绍如何使用深度学习中的YOLOv5算法实现对鸟类的检测,并利用PyQt5设计了简约的系统UI界面。在界面中,您可以选择自己的视频文件、图片文件进行检测。此外,您还可以更换自己训练的yolov5模型,进行自己数据的检测。
该系统界面优美,检测精度高,功能强大。它具备多目标实时检测,同时可以自由选择感兴趣的检测目标。
本博文提供了完整的Python程序代码和使用教程,适合新入门的朋友参考。您可以在文末的下载链接中获取完整的代码资源文件。以下是本博文的目录:
功能展示:
部分核心功能如下:
- 功能1: 支持单张图片识别
- 功能2: 支持遍历文件夹识别
- 功能3: 支持识别视频文件
- 功能4: 支持摄像头识别
- 功能5: 支持结果文件导出(xls格式)
- 功能6: 支持切换检测到的目标查看
更多的其他功能可以通过下方视频演示查看。
下面视频是对以上整体功能的演示:
基于深度学习的鸟类检测识别系统(yolov5)
🌟 一、环境安装
本项目提供所有需要的环境安装包(python、pycharm、cuda、torch
等),提供的各个库之间的版本都是匹配好的可以直接按照视频讲解或者文档进行安装。
这个指导文档是我经过三年多的精心总结(是我辅导的上千人安装环境遇到的问题总结),它汇集了详细的安装步骤以及在环境安装过程中常见的问题和解决方案。这份文档不仅全面,而且会持续更新,可以持续关注此文档。
不管你是GPU版,还是CPU版,文档中都提供了详细的安装步骤,包含各种安装细节,真心不能再详细了😂😂😂😂😂😂。。。。
在线文档截图如下,https://aax3oiawuo.feishu.cn/wiki/CDoTwQcvgiv2PmkVlAUc1fO6n8g?from=from_copylink,可以访问知识库查看。
而且B站提供有和文档对应的视频,可以将视频和文档结合起来观看,更容易理解。环境安装对应的视频可以在我B站上自己对应的项目里找到,示例截图如下:
🌟 二、数据集介绍
CUB-200数据集由加州理工学院在2010年提出的细粒度数据集,也是目前细粒度分类识别研究的基准图像数据集,共有11788张鸟类图像,包含200类鸟类子类,其中训练数据集有5994张图像,测试集有5794张图像,每张图像均提供图像类标记信息。
这里是官方的下载地址:https://www.vision.caltech.edu/datasets/
🌟 三、yolov5相关介绍
本系统采用了基于深度学习的目标检测算法YOLOv5,该算法是YOLO系列算法的较新版本,相比于YOLOv3和YOLOv4,YOLOv5在检测精度和速度上都有很大的提升。YOLOv5算法的核心思想是将目标检测问题转化为一个回归问题。此外,YOLOv5还引入了一种称为SPP(Spatial Pyramid Pooling)的特征提取方法,这种方法可以在不增加计算量的情况下,有效地提取多尺度特征,提高检测性能。
在YOLOv5中,首先将输入图像通过骨干网络进行特征提取,得到一系列特征图。然后,通过对这些特征图进行处理,将其转化为一组检测框和相应的类别概率分数,即每个检测框所属的物体类别以及该物体的置信度。YOLOv5中的特征提取网络使用CSPNet(Cross Stage Partial Network)结构,它将输入特征图分为两部分,一部分通过一系列卷积层进行处理,另一部分直接进行下采样,最后将这两部分特征图进行融合。这种设计使得网络具有更强的非线性表达能力,可以更好地处理目标检测任务中的复杂背景和多样化物体。
在YOLOv5中,每个检测框由其左上角坐标(x,y)、宽度(w)、高度(h)和置信度(confidence)组成。同时,每个检测框还会预测C个类别的概率得分,即分类得分(ci),每个类别的得分之和等于1。因此,每个检测框最终被表示为一个(C+5)维的向量。在训练阶段,YOLOv5使用交叉熵损失函数来优化模型。损失函数由定位损失、置信度损失和分类损失三部分组成,其中定位损失和置信度损失采用了Focal Loss和IoU Loss等优化方法,能够有效地缓解正负样本不平衡和目标尺寸变化等问题。
YOLOv5网络结构是由Input、Backbone、Neck、Prediction组成。Yolov5的Input部分是网络的输入端,采用Mosaic数据增强方式,对输入数据随机裁剪,然后进行拼接。Backbone是Yolov5提取特征的网络部分,特征提取能力直接影响整个网络性能。YOLOv5的Backbone相比于之前Yolov4提出了新的Focus结构。Focus结构是将图片进行切片操作,将W(宽)、H(高)信息转移到了通道空间中,使得在没有丢失任何信息的情况下,进行了2倍下采样操作。
🌟 四、模型训练步骤
提供封装好的训练脚本,如下图,更加详细的的操作步骤可以参考我的飞书在线文档:https://aax3oiawuo.feishu.cn/wiki/RqCQw0yBMie3WMkpOwOcilUCnsg , 强烈建议直接看文档去训练模型,文档是实时更新的,有任何的新问题,我都会实时的更新上去。另外B站也会提供视频。
-
使用pycharm打开代码,找到
train.py
打开,示例截图如下:
-
修改
model_yaml
的值,根据自己的实际情况修改,想要训练yolov5s
模型 就 修改为model_yaml = yaml_yolov5s
, 训练 添加SE注意力机制的模型就修改为model_yaml = yaml_yolov5_SE
-
修改
data_path
数据集路径,我这里默认指定的是traindata.yaml
文件,如果训练我提供的数据,可以不用改 -
修改
model.train()
中的参数,按照自己的需求和电脑硬件的情况更改# 文档中对参数有详细的说明 model.train(data=data_path, # 数据集 imgsz=640, # 训练图片大小 epochs=200, # 训练的轮次 batch=2, # 训练batch workers=0, # 加载数据线程数 device='0', # 使用显卡 optimizer='SGD', # 优化器 project='runs/train', # 模型保存路径 name=name, # 模型保存命名 )
-
修改
traindata.yaml
文件, 打开traindata.yaml
文件,如下所示:
在这里,只需修改 path 的值,其他的都不用改动(仔细看上面的黄色字体),我提供的数据集默认都是到yolo
文件夹,设置到 yolo 这一级即可,修改完后,返回train.py
中,执行train.py
。 -
打开
train.py
,右键执行。
-
出现如下类似的界面代表开始训练了
-
训练完后的模型保存在runs/train文件夹下
🌟 五、模型评估步骤
-
打开
val.py
文件,如下图所示:
-
修改
model_pt
的值,是自己想要评估的模型路径 -
修改
data_path
,根据自己的实际情况修改,具体如何修改,查看上方模型训练中的修改步骤 -
修改
model.val()
中的参数,按照自己的需求和电脑硬件的情况更改model.val(data=data_path, # 数据集路径 imgsz=300, # 图片大小,要和训练时一样 batch=4, # batch workers=0, # 加载数据线程数 conf=0.001, # 设置检测的最小置信度阈值。置信度低于此阈值的检测将被丢弃。 iou=0.6, # 设置非最大抑制 (NMS) 的交叉重叠 (IoU) 阈值。有助于减少重复检测。 device='0', # 使用显卡 project='runs/val', # 保存路径 name='exp', # 保存命名 )
-
修改完后,即可执行程序,出现如下截图,代表成功(下图是示例,具体输出结果以自己的实际项目为准。)
-
评估后的文件全部保存在在
runs/val/exp...
文件夹下
🌟 六、 训练结果
我们每次训练后,会在 run/train 文件夹下出现一系列的文件,如下图所示:
如果大家对于上面生成的这些内容(confusion_matrix.png、results.png
等)不清楚是什么意思,可以在我的知识库里查看这些指标的具体含义,示例截图如下:
🌟 下载链接
最后再说一下,整套项目的优势以及具体包括哪些内容:
👨💻 1. 资源中包括训练代码、测试代码、训练数据、测试数据、 UI界面源文件等等,总之做出这个项目所有需要的东西,都提供
👨💻 2. 提供的都是源代码、源文件方便大家自己改动
👨💻 3. 提供训练好的模型,最少1个(也就是如无特殊要求,你可以不用自己训练模型,这个很重要,因为有很多同学的电脑没有cuda,不能训练)
👨💻 4. 提供售后(保运行)
👨💻 5. 每一套界面我都是找设计师设计的,是不是很好看,哈哈哈哈(当然你也可以改丑🤣🤣🤣🤣🤣。。。)图标、背景图片、界面文字这些都 可以按照自己的需求随意更换
👨💻 6. B站提供详细的操作视频(环境安装、模型训练、模型预测、配置文件修改等等)
👨💻 7. 飞书知识库,里面提供环境安装、模型训练评估
等等非常多的资料,另外我会根据大家的问题,以及需求,会持续更新知识库🚀🚀🚀🚀
👨💻 8. 代码中不包含任何的个人信息,可直接提交(bishe、作业等)
我的宗旨就是让您省心,放心,最快的速度完成项目。
项目资源截图如下:
购买方法:🛒通过 淘🧧宝 扫码购买
扫码后找到自己的项目名,然后选择想要购买的版本(yolov5、yolov8等),进行购买。一定要选好版本,一定要选好版本,一定要选好版本,一定要选好版本,一定要选好版本,一定要选好版本,