项目中所用到的算法模型和数据集等信息如下:
算法模型:
? ? yolov8
? ? yolov8主要包含以下几种创新:
? ? ? ? 1. 添加注意力机制(SE
、CBAM
等)
? ? ? ? 2. 修改可变形卷积(DySnake
-主干c3
替换、DySnake-所有c3替换)
数据集:
? ? 网上下载的数据集,详细介绍见数据集介绍部分。
以上是本套代码的整体算法架构和对目标检测模型的修改说明,这些模型修改可以为您的 毕设、作业等提供创新点和增强模型性能的功能 。
如果要是需要更换其他的检测模型,请私信。
注:本项目提供所用到的所有资源,包含 环境安装包、训练代码、测试代码、数据集、视频文件、 界面UI文件
等。
本文将详细介绍如何使用深度学习中的YOLOv8算法实现对蔬菜和水果的检测,且利用PyQt5设计了简约的系统UI界面。在界面中,您可以选择自己的视频文件、图片文件进行检测。此外,您还可以更换自己训练的yolov8模型,进行自己数据的检测。
该系统界面优美,检测精度高,功能强大。它具备多目标实时检测,同时可以自由选择感兴趣的检测目标。
本博文提供了完整的Python程序代码和使用教程,适合新入门的朋友参考。您可以在文末的下载链接中获取完整的代码资源文件。以下是本博文的目录:
功能:
1. 支持单张图片识别
2. 支持遍历文件夹识别
3. 支持识别视频文件
4. 支持结果导出(xls、csv两种格式)
5. 支持切换检测到的目标
基于深度学习的果蔬识别系统(yolov8)
本项目提供所有需要的环境安装包(python、pycharm、cuda、torch
等),可以直接按照视频讲解进行安装。具体的安装流程见此视频:视频链接
环境安装视频是以车牌项目为例进行讲解的,但是可以适用于任何项目。
视频快进到 3:18 - 21:17
,这段时间讲解的是环境安装,可直接快进到此处观看。
环境安装包可通过百度网盘下载:
链接:https://pan.baidu.com/s/17SZHeVZrpXsi513D-6KmQw?pwd=a0gi
提取码:a0gi
–来自百度网盘超级会员V6的分享
上面这个方法,是比较便捷的安装方式(省去了安装细节),按照我的视频步骤和提供的安装包安装即可,如果要是想要多学一点东西,可以按照下面的安装方式走一遍,会更加熟悉。
环境安装方法2:
追求快速安装环境的,只看上面即可!!!
下面列出了5个步骤,是完全从0开始安装(可以理解为是一台新电脑,没有任何环境),如果某些步骤已经安装过的可以跳过。下面的安装步骤带有详细的视频讲解和参考博客,一步一步来即可。另外视频中讲解的安装方法是通用的,可用于任何项目
。
按照上面的步骤安装完环境后,就可以直接运行程序,看到效果了。
数据集总共包含以下类别,且已经分好 train、val、test
文件夹,也提供转好的yolo
格式的标注文件,可以直接使用。
白菜
白萝卜
胡萝卜
番茄
大蒜
花生
黄瓜
茄子
辣椒
花菜
西蓝花
土豆
菠萝
火龙果
黑葡萄
梨子
柑橘
龙眼
草莓
芒果
苹果
绿葡萄
西瓜
樱桃
香蕉
柚子
数据样式如下:
YOLOv8 是一个 SOTA 模型,它建立在以前 YOLO 版本的成功基础上,并引入了新的功能和改进,以进一步提升性能和灵活性。具体创新包括一个新的骨干网络、一个新的 Ancher-Free 检测头和一个新的损失函数,可以在从 CPU 到 GPU 的各种硬件平台上运行。
不过 ultralytics 并没有直接将开源库命名为 YOLOv8,而是直接使用 ultralytics 这个词,原因是 ultralytics 将这个库定位为算法框架,而非某一个特定算法,一个主要特点是可扩展性。其希望这个库不仅仅能够用于 YOLO 系列模型,而是能够支持非 YOLO 模型以及分类分割姿态估计等各类任务。
总而言之,ultralytics 开源库的两个主要优点是:
融合众多当前 SOTA 技术于一体
未来将支持其他 YOLO 系列以及 YOLO 之外的更多算法
网络结构如下:
此代码的训练步骤极其简单,不需要修改代码,直接通过cmd
就可以命令运行,命令都已写好,直接复制即可,命令如下图:
下面这条命令是 训练 添加 CBAM 注意力机制的命令,复制下来,直接就可以运行,看到训练效果(需要将coco_NEU-DET.yaml替换为自己的数据集的yaml文件)。
python ./train.py --epochs 500 --cfg models/yolov5s-CBAM-2.yaml --hyp data/hyps/hyp.scratch-low.yaml --data data/coco_NEU-DET.yaml --weight weights/yolov5s.pt --workers 4 --batch 16
执行完上述命令后,即可完成训练,训练过程如下:
下面是对命令中各个参数的详细解释说明:
python
: 这是Python解释器的命令行执行器,用于执行后续的Python脚本。
./train.py
: 这是要执行的Python脚本文件的路径和名称,它是用于训练目标检测模型的脚本。
--epochs 500
: 这是训练的总轮数(epochs),指定为500,表示训练将运行500个轮次。
--cfg models/yolov5s-CBAM-2.yaml
: 这是YOLOv5模型的配置文件的路径和名称,它指定了模型的结构和参数设置。
--hyp data/hyps/hyp.scratch-low.yaml
: 这是超参数文件的路径和名称,它包含了训练过程中的各种超参数设置,如学习率、权重衰减等。
--data data/coco_NEU-DET.yaml
: 这是数据集的配置文件的路径和名称,它指定了训练数据集的相关信息,如类别标签、图像路径等。
--weight weights/yolov5s.pt
: 这是预训练权重文件的路径和名称,用于加载已经训练好的模型权重以便继续训练或进行迁移学习。
--workers 4
: 这是用于数据加载的工作进程数,指定为4,表示使用4个工作进程来加速数据加载。
--batch 16
: 这是每个批次的样本数,指定为16,表示每个训练批次将包含16个样本。
通过运行上面这个命令,您将使用YOLOv5模型对目标检测任务进行训练,训练500个轮次,使用指定的配置文件、超参数文件、数据集配置文件和预训练权重。同时,使用4个工作进程来加速数据加载,并且每个训练批次包含16个样本。
评估步骤同训练步骤一样,执行1行语句即可,注意--weights
需要变为自己想要测试的模型路径, VOC_fruit.yaml
替换为自己的数据集的yaml文件。
python ./val.py --data data/VOC_fruit.yaml --weights ../weights/YOLOv5s/weights/best.pt
评估结果如下:
我们每次训练后,会在 run/train 文件夹下出现一系列的文件,如下图所示:
? ?该代码采用Pycharm
+Python3.8
开发,经过测试能成功运行,运行界面的主程序为main.py
,提供用到的所有程序。为确保程序顺利运行,请按照requirements.txt
配置Python依赖包的版本。Python版本:3.8,为避免出现运行报错,请勿使用其他版本,详见requirements.txt
文件;
? ? 若您想获得博文中涉及的实现完整全部程序文件(包括训练代码、测试代码、训练数据、测试数据、视频,py、 UI文件等
,如下图),这里已打包上传至博主的面包多
平台,可通过下方项目讲解链接中的视频简介部分下载
,完整文件截图如下:
项目演示讲解链接:B站