摘要:根据YOLOv8模型的奶牛方针检测体系可用于日常日子中检测与定位奶牛方针,运用深度学习算法可完结图片、视频、摄像头等方法的方针检测,别的本体系还支撑图片、视频等格局的成果可视化与成果导出。本体系采用YOLOv8方针检测算法练习数据集,运用Pysdie6库来搭建前端页面展现体系。别的本体系支撑的功用还包括练习模型的导入、初始化;检测相信分与检测后处理IOU阈值的调理;图画的上传、检测、可视化成果展现与检测成果导出;视频的上传、检测、可视化成果展现与检测成果导出;摄像头的图画输入、检测与可视化成果展现;已检测方针个数与列表、方位信息;前向推理用时等功用。本博文供给了完整的Python代码与装置和运用教程,适合新入门的朋友参阅,部分重要代码部分都有注释,完整代码资源文件请转至文末的下载链接。

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

需求源码的朋友在后台私信博主获取下载链接

基本介绍

近年来,机器学习和深度学习取得了较大的发展,深度学习方法在检测精度和速度方面与传统方法相比体现出更杰出的性能。YOLOv8 是 Ultralytics 公司继YOLOv5算法之后开发的下一代算法模型,现在支撑图画分类、物体检测和实例分割使命。YOLOv8 是一个 SOTA模型,它建立在之前YOLO系列模型的成功基础上,并引入了新的功用和改进,以进一步提高性能和灵活性。具体创新包括:一个新的主干网络、一个新的 Ancher-Free 检测头和一个新的丢失函数,能够在从 CPU 到 GPU 的各种硬件平台上运行。因而本博文运用YOLOv8方针检测算法完结一种根据YOLOv8模型的奶牛方针检测体系,再运用Pyside6库搭建出界面体系,完结方针检测页面的开发。本博主之前发布过关于YOLOv5算法的相关模型与界面,需求的朋友可从我之前发布的博客检查。别的本博主计划将YOLOv5、YOLOv6、YOLOv7和YOLOv8一起联合发布,需求的朋友能够持续重视,欢迎朋友们重视收藏。

环境搭建

(1)翻开项目目录,在搜索框内输入cmd翻开终端

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

(2)新建一个虚拟环境(conda create -n yolo8 python=3.8)

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

(3)激活环境,装置ultralytics库(yolov8官方库),pip install ultralytics -i pypi.tuna.tsinghua.edu.cn/simple

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

(4)注意到这种装置方法只会装置cpu版torch,如需装置gpu版torch,需在装置包之前先装置torch:pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118 -f download.pytorch.org/whl/torch_s…;再,pip install ultralytics -i pypi.tuna.tsinghua.edu.cn/simple

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

(5)装置图形化界面库pyside6:pip install pyside6 -i pypi.tuna.tsinghua.edu.cn/simple

界面及功用展现

下面给出本博文规划的软件界面,全体界面简洁大方,大体功用包括练习模型的导入、初始化;相信分与IOU阈值的调理、图画上传、检测、可视化成果展现、成果导出与完毕检测;视频的上传、检测、可视化成果展现、成果导出与完毕检测;已检测方针列表、方位信息;前向推理用时。初始界面如下图:

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

模型挑选与初始化

用户能够点击模型权重挑选按钮上传练习好的模型权重,练习权重格局可为.pt、.onnx以及engine等,之后再点击模型权重初始化按钮可完结已挑选模型初始化的装备。

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

相信分与IOU的改动

在Confidence或IOU下方的输入框中改动值即可同步改动滑动条的进展,一起改动滑动条的进展值也可同步改动输入框的值;Confidence或IOU值的改动将同步到模型里的装备,将改动检测相信度阈值与IOU阈值。

图画挑选、检测与导出

用户能够点击挑选图画按钮上传单张图画进行检测与识别,上传成功后体系界面会同步显现输入图画。

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

再点击图画检测按钮可完结输入图画的方针检测功用,之后体系会在用时一栏输出检测用时,在方针数量一栏输出已检测到的方针数量,在下拉框可挑选已检测方针,对应于方针方位(即xmin、ymin、xmax以及ymax)标签值的改动。

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

再点击检测成果展现按钮可在体系左下方显现输入图画检测的成果,体系将显现识别出图片中的方针的类别、方位和相信度信息。

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

点击图画检测成果导出按钮即可导出检测后的图画,在保存栏里输入保存的图片称号及后缀即可完结检测成果图画的保存。

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

点击完毕图画检测按钮即可完结体系界面的改写,将一切输出信息清空,之后再点击挑选图画或挑选视频按钮来上传图画或视频,或许点击翻开摄像头按钮来敞开摄像头。

视频挑选、检测与导出

用户点击挑选视频按钮上传视频进行检测与识别,之后体系会将视频的榜首帧输入到体系界面中显现。

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

再点击视频检测按钮可完结输入视频的方针检测功用,之后体系会在用时一栏输出检测用时,在方针数量一栏输出已检测到的方针数量,在下拉框可挑选已检测方针,对应于方针方位(即xmin、ymin、xmax以及ymax)标签值的改动。

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

点击暂停视频检测按钮即可完结输入视频的暂停,此刻按钮变为持续视频检测,输入视频帧与帧检测成果会保存在体系界面,可点击下拉方针框挑选已检测方针的坐标方位信息,再点击持续视频检测按钮即可完结输入视频的检测。

点击视频检测成果导出按钮即可导出检测后的视频,在保存栏里输入保存的图片称号及后缀即可完结检测成果视频的保存。

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

点击完毕视频检测按钮即可完结体系界面的改写,将一切输出信息清空,之后再点击挑选图画或挑选视频按钮来上传图画或视频,或许点击翻开摄像头按钮来敞开摄像头。

摄像头翻开、检测与完毕

用户能够点击翻开摄像头按钮来翻开摄像头设备进行检测与识别,之后体系会将摄像头图画输入到体系界面中显现。

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

再点击摄像头检测按钮可完结输入摄像头的方针检测功用,之后体系会在用时一栏输出检测用时,在方针数量一栏输出已检测到的方针数量,在下拉框可挑选已检测方针,对应于方针方位(即xmin、ymin、xmax以及ymax)标签值的改动。

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

点击完毕视频检测按钮即可完结体系界面的改写,将一切输出信息清空,之后再点击挑选图画或挑选视频按钮来上传图画或视频,或许点击翻开摄像头按钮来敞开摄像头。

算法原理介绍

本体系采用了根据深度学习的单阶段方针检测算法YOLOv8,相较于之前的YOLO系列方针检测算法,YOLOv8方针检测算法具有如下的几点优势:(1)更友好的装置/运行方法;(2)速度更快、准确率更高;(3)新的backbone,将YOLOv5中的C3更换为C2F;(4)YOLO系列榜首次尝试运用anchor-free;(5)新的丢失函数。YOLOv8模型的全体结构如下图所示,原图见mmyolo的官方库房。

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

YOLOv8与YOLOv5模型最明显的差异是运用C2F模块替换了原来的C3模块,两个模块的结构如下图所示,原图见mmyolo的官方库房。

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

别的Head 部分改变最大,从原先的耦合头变成了解耦头,并且从 YOLOv5 的 Anchor-Based 变成了 Anchor-Free。其结构对比如下图所示。

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

数据集介绍

本体系运用的奶牛数据集手动标示了奶牛这一个类别,数据集总计4110张图片。该数据会集类别都有大量的旋转和不同的光照条件,有助于练习出愈加鲁棒的检测模型。本文试验的奶牛检测识别数据集包括练习集3250张图片,验证集860张图片,选取部分数据部分样本数据集如下图所示。由于YOLOv5算法对输入图片巨细有约束,需求将一切图片调整为相同的巨细。为了在不影响检测精度的情况下尽可能减小图片的失真,咱们将一切图片调整为640×640的巨细,并保持原有的宽高比例。此外,为了增强模型的泛化才能和鲁棒性,咱们还运用了数据增强技能,包括随机旋转、缩放、裁剪和色彩改换等,以扩大数据集并削减过拟合风险。

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

要害代码解析

在练习阶段,咱们运用了预练习模型作为初始模型进行练习,然后经过屡次迭代优化网络参数,以达到更好的检测性能。在练习过程中,咱们采用了学习率衰减和数据增强等技能,以增强模型的泛化才能和鲁棒性。一个简略的单卡模型练习命令如下。

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

在练习时也可指定更多的参数,大部分重要的参数如下所示:

称号 默许参数 描述
model None 模型或模型装备文件
data None 数据集装备文件
epochs 100 练习的次序
patience 50 准确率如果没有明显提高时停止的次序
batch 16 练习的批次巨细
imgsz 640 图画的尺寸
save True 是否需求保存练习的成果与模型
save_period -1 每隔多少个epoch保存练习好的权重模型
cache False 是否运用缓存保存数据,可选True/ram、disk或许False
device None 练习设备,可选0或1或cpu等
workers 8 多线程数据集加载
project None 项目称号
name None 试验称号
exist_ok False 是否掩盖现有试验
pretrained False 是否运用预练习模型
optimizer ‘auto’ 优化器挑选,有[SGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp, auto]
verbose False 是否打印具体输出
seed 0 种子数
deterministic True 是否启动确定性形式
single_cls False 单类别形式练习
rect False 是否支撑矩形练习
cos_lr False 是否运用余弦学习率调度器
resume False 是否从最近练习断掉的权重持续练习
amp True 是否敞开混合精度练习

在测验阶段,咱们运用了练习好的模型来对新的图片和视频进行检测。经过设置阈值,将相信度低于阈值的检测框过滤掉,终究得到检测成果。一起,咱们还能够将检测成果保存为图片或视频格局,以便进行后续剖析和运用。本体系根据YOLOv8算法,运用PyTorch完结。代码中用到的主要库包括PyTorch、NumPy、OpenCV、Pyside6等。

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

Pyside6界面规划

PySide是一个Python的图形化界面(GUI)库,由C++版的Qt开发而来,在用法上基本与C++版没有特别大的差异。相对于其他Python GUI库来说,PySide开发较快,功用更完善,并且文档支撑更好。在本博文中,咱们运用Pyside6库创建一个图形化界面,为用户供给简略易用的交互界面,完结用户挑选图片、视频进行方针检测。

咱们运用Qt Designer规划图形界面,然后运用Pyside6将规划好的UI文件转换为Python代码。图形界面中包括多个UI控件,例如:标签、按钮、文本框、多选框等。经过Pyside6中的信号槽机制,能够使得UI控件与程序逻辑代码相互连接。

试验成果与剖析

在试验成果与剖析部分,咱们运用精度和召回率等指标来评价模型的性能,还经过丢失曲线和PR曲线来剖析练习过程。在练习阶段,咱们运用了前面介绍的数据集进行练习,运用了YOLOv8算法对数据集练习,总计练习了100个epochs。在练习过程中,咱们运用tensorboard记录了模型在练习集和验证集上的丢失曲线。从下图能够看出,随着练习次数的添加,模型的练习丢失和验证丢失都逐渐降低,说明模型不断地学习到愈加精准的特征。在练习完毕后,咱们运用模型在数据集的验证集上进行了评价,得到了以下成果。

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

下图展现了咱们练习的YOLOv8模型在验证集上的PR曲线,从图中能够看出,模型取得了较高的召回率和准确率,全体体现杰出。

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

下图展现了本博文在运用YOLOv8模型对数据集进行练习时分的Mosaic数据增强图画。

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)

综上,本博文练习得到的YOLOv8模型在数据集上体现杰出,具有较高的检测精度和鲁棒性,能够在实际场景中运用。别的本博主对整个体系进行了具体测验,终究开发出一版流通的高精度方针检测体系界面,就是本博文演示部分的展现,完整的UI界面、测验图片视频、代码文件等均已打包上传,感兴趣的朋友能够重视我私信获取。

其他根据深度学习的方针检测体系如西红柿、猫狗、山羊、野生方针、烟头、二维码、头盔、交警、野生动物、野外烟雾、人体摔倒识别、红外行人、家禽猪、苹果、推土机、蜜蜂、打电话、鸽子、足球、奶牛、人脸口罩、安全背心、烟雾检测体系等有需求的朋友重视我,从博主其他视频中获取下载链接。

完整项目目录如下所示:

基于YOLOv8模型的奶牛目标检测系统(PyTorch+Pyside6+YOLOv8模型)