首页 > 其他分享 >YOLOV8详细介绍

YOLOV8详细介绍

时间:2023-08-22 14:34:49浏览次数:55  
标签:分割 检测 模型 YOLO 介绍 YOLOv8 详细 model YOLOV8

YOLOv8 是来自 Ultralytics 的最新的基于 YOLO 的对象检测模型系列,提供最先进的性能。

官方开源地址:

https://github.com/ultralytics/ultralyticsgithub.com/ultralytics/ultralytics

MMYOLO 开源地址:

https://github.com/open-mmlab/mmyolo/blob/dev/configs/yolov8/github.com/open-mmlab/mmyolo/blob/dev/configs/yolov8/

利用以前的 YOLO 版本, YOLOv8 模型更快、更准确

  • 物体检测
  • 实例分割
  • 图像分类

在撰写本文时,许多功能尚未添加到 Ultralytics YOLOv8 存储库中。这包括训练模型的完整导出功能集。此外,Ultralytics 将在 Arxiv 上发布一篇论文,将 YOLOv8 与其他最先进的视觉模型进行比较。

YOLOv8 的新特性

Ultralytics 为 YOLO 模型发布了一个全新的存储库。它被构建为 用于训练对象检测、实例分割和图像分类模型的统一框架。

以下是有关新版本的一些主要功能:

  • 用户友好的 API(命令行 + Python)
  • 更快更准确
  • 支持
  • 物体检测
  • 实例分割
  • 图像分类
  • 可扩展到所有以前的版本
  • 新骨干网络
  • 新的 Anchor-Free head
  • 新的损失函数

YOLOv8 还高效灵活地支持多种导出格式,并且该模型可以在 CPU 和 GPU 上运行。

YOLOv8 中可用的模型

YOLOv8 模型的每个类别中有五个模型用于检测、分割和分类。YOLOv8 Nano 是最快和最小的,而 YOLOv8 Extra Large (YOLOv8x) 是其中最准确但最慢的。

YOLOv8n

YOLOv8s

YOLOv8m

YOLOv8l

YOLOv8x

YOLOv8 捆绑了以下预训练模型:

  • 在图像分辨率为 640 的 COCO 检测数据集上训练的对象检测检查点。
  • 在图像分辨率为 640 的 COCO 分割数据集上训练的实例分割检查点。
  • 在图像分辨率为 224 的 ImageNet 数据集上预训练的图像分类模型。

让我们看一下使用 YOLOv8x 检测和实例分割模型的输出。

YOLOV8详细介绍_图像分类

如何使用 YOLOv8?

要充分发挥 YOLOv8 的潜力,需要从存储库和ultralytics包中安装要求。

要安装要求,我们首先需要克隆存储库。

git clone https://github.com/ultralytics/ultralytics.git

接下来,安装requirements

pip install -r requirements.txt

在最新版本中,Ultralytics YOLOv8 提供了完整的命令行界面 (CLI) API 和 Python SDK,用于执行训练、验证和推理。

要使用yoloCLI,我们需要安装ultralytics包。

pip install  ultralytics

如何使用命令行界面 (CLI) 使用 YOLOv8?

安装必要的包后,我们可以使用命令访问 YOLOv8 CLI yolo。以下是使用yoloCLI 运行对象检测推理的示例。

yolo task=detect \ 
mode=predict \ 
model=yolov8n.pt \ 
source='image.jpg'

task标志可以接受三个参数:detectclassifysegment。同样,模式可以是trainval或之一predict。我们也可以像export导出经过训练的模型时一样传递模式。

下图显示了所有可能的yoloCLI 标志和参数。

如何使用 Python API 使用 YOLOv8?

我们还可以创建一个简单的 Python 文件,导入 YOLO 模块并执行我们选择的任务。

from ultralytics import YOLO 

model = YOLO('yolov8n.pt') # 加载预训练的 YOLOv8n 模型

model.train(data='coco128.yaml') # 训练模型model.val() # 在验证集
模型
model.predict(source='https://ultralytics.com/images/bus.jpg') # 对图像进行预测
model.export(format='onnx') # 将模型导出为 ONNX 格式

例如,上述代码首先会在COCO128数据集上训练YOLOv8 Nano模型,在验证集上进行评估,并对样本图像进行预测。

让我们使用yoloCLI 并使用对象检测、实例分割和图像分类模型进行推理。

物体检测的推理结果

以下命令使用 YOLOv8 Nano 模型对视频运行检测。

yolo task=detect mode=predict model=yolov8n.pt source='input/video_3.mp4' show=True

推理在笔记本电脑 GTX 1060 GPU 上以接近105 FPS 的速度运行。我们得到以下输出。

Clip 1. 使用 YOLOv8 Nano 模型进行检测推理。

YOLOv8 Nano 模型在几帧中将猫混淆为狗。让我们使用 YOLOv8 Extra Large 模型对同一视频运行检测并检查输出。

yolo task=detect mode=predict model=yolov8x.pt source='input/video_3.mp4' show=True

Extra Large 模型在 GTX 1060 GPU 上的平均运行速度为 17 FPS。

Clip 2. 使用 YOLOv8 超大模型进行检测推理。

虽然这次错误分类稍微少一些,但模型仍然在一些帧中错误地检测到长凳。

实例分割的推理结果

使用 YOLOv8 实例分割模型运行推理同样简单。我们只需要更改上面命令中的taskmodel名称。

yolo task=segment mode=predict model=yolov8x-seg.pt source='input/video_3.mp4' show=True

因为实例分割与对象检测相结合,所以这次的平均 FPS 约为 13。

Clip 3. 使用 YOLOv8 超大模型的分割推理。

分割图在输出中看起来非常干净。即使猫在最后几帧中躲在方块下,模型也能够检测并分割它。

图像分类的推理结果

最后,由于 YOLOv8 已经提供了预训练的分类模型,让我们使用该yolov8x-cls模型对同一视频进行分类推理。这是存储库提供的最大分类模型。

yolo task=classify mode=predict model=yolov8x-cls.pt ource='input/video_3.mp4' show=True

Clip 4. 使用 YOLOv8 超大模型进行分类推理。

默认情况下,视频使用模型预测的前 5 个类进行注释。在没有任何后处理的情况下,注释直接匹配 ImageNet 类名。

YOLOv8 对比 YOLOv7 对比 YOLOv6 对比 YOLOv5

与之前的 YOLO 模型相比,YOLOv8 模型的表现似乎要好得多。不仅是 YOLOv5 模型,YOLOv8 也领先于 YOLOv7 和 YOLOv6 模型。

YOLOV8详细介绍_v8_02

YOLOv8 与其他 YOLO 模型的对比。

与以 640 图像分辨率训练的其他 YOLO 模型相比,所有 YOLOv8 模型在参数数量相似的情况下都具有更好的吞吐量。

现在,让我们详细了解最新的 YOLOv8 模型与 Ultralytics 的 YOLOv5 模型的性能对比。下表显示了 YOLOv8 和 YOLOv5 之间的综合比较。

整体比较

YOLOV8详细介绍_github_03

YOLOv8 模型与 YOLOv5 模型的对比。

物体检测比较

YOLOV8详细介绍_v8_04

YOLOv8 与 YOLOv5 对象检测模型。

实例分割比较

YOLOV8详细介绍_github_05

YOLOv8 与 YOLOv5 实例分割模型。

图像分类比较


YOLOV8详细介绍_图像分类_06

YOLOv8 与 YOLOv5 图像分类模型。

很明显,除了其中一个分类模型外,最新的 YOLOv8 模型与 YOLOv5 相比要好得多。

YOLOv8目标检测模型的演进

下图显示了 YOLO 对象检测模型的时间线以及 YOLOv8 的演变过程。


YOLOV8详细介绍_图像分类_07

Ultralytics YOLO 对象检测模型

YOLOv3 之前的所有 YOLO 目标检测模型都是使用 C 编程语言编写的,并使用 Darknet 框架。新手发现很难遍历代码库和微调模型。

与 YOLOv3 大约同时,Ultralytics 发布了第一个使用 PyTorch 框架实现的 YOLO (YOLOv3)。对于迁移学习,它也更容易访问和使用。

在发布 YOLOv3 后不久,Joseph Redmon 离开了计算机视觉研究社区。YOLOv4(由 Alexey 等人开发)是最后一个用 Darknet 编写的 YOLO 模型。之后,YOLO object detections 出现了很多次。Scaled YOLOv4、YOLOX、PP-YOLO、YOLOv6 和 YOLOv7 是其中一些突出的。

在 YOLOv3 之后,Ultralytics 还发布了 YOLOv5,它比所有其他 YOLO 模型更好、更快、更易于使用。

截至目前(2023 年 1 月),Ultralytics 在ultralytics存储库下发布了 YOLOv8,这可能是迄今为止最好的 YOLO 模型。

结论

在本文中,我们探讨了最新一期的 YOLO 模型,即 YOLOv8。我们介绍了新模型、它们的性能以及软件包附带的命令行界面。除此之外,我们还对视频进行了推理。


标签:分割,检测,模型,YOLO,介绍,YOLOv8,详细,model,YOLOV8
From: https://blog.51cto.com/u_16083630/7189629

相关文章

  • 【Flutter】Flutter 目录结构介绍
    Flutter的目录结构如下: 主要的目录结构及其作用:文件夹 作用 android android平台相关代码 ios ios平台相关代码 linux Linux平台相关代码 macos macos平台相关代码 web web相关的代码 windows windows相关代码 lib flutter相......
  • C# OCR光学识别深度学习框架PaddleOCRSharp使用介绍
    PaddleOCRSharp是一个基于PaddlePaddle深度学习框架的OCR(光学字符识别)库的C#封装。它提供了一种方便的方式来进行文字检测、文本识别和版面分析等任务。下面是PaddleOCRSharp的使用方法的详细介绍:一、安装PaddleOCRSharpPaddleOCRSharp可以通过NuGet包管理器进行安......
  • 介绍Berkeley DB及其使用
    数据库系统是管理信息系统的核心,是计算机应用的重要组成部分。在众多的数据库系统中,BerkeleyDB是一款开放源代码的嵌入式数据库管理系统,适用于许多应用场景,如数据仓库、大数据处理、Web开发等。本文将介绍BerkeleyDB的基本概念、体系结构、功能特点、使用场景以及优势与注意事项......
  • 自我介绍:20231301 周子昂
    自我介绍大家好!我叫周子昂。#(0)照片---#(1)形容词##周:思绪“周”密,严谨踏实###做事之前喜欢整体思考,有一定的布局。尽可能在做事时脚踏实地,认真仔细。事后反思总结经验教训,以便下次更好。##子:谦谦君“子”,温和有礼###待人接物有基本的礼仪与尊重。......
  • 【G-LAB】网络工程师常用排错命令详细版
    网络工程师在日常配置中难免出现各种配置错误,比如接口地址配错、掩码位数配错、接口忘记noshutdown。除去这些基础错误,在配置各种路由选择协议时也会因为网络类型、邻居类型、区域和路由器层级等各种问题使邻居无法建立、路由无法传递进而导致网络不通。我整理了一下日常常用的各......
  • 国标GB28181视频平台EasyGBS通过对应密钥上传到其他平台展示的详细步骤来啦!
    国标GB28181协议视频平台EasyGBS是基于国标GB28181协议的视频云服务平台,支持多路设备同时接入,并对多平台、多终端分发出RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。平台可提供视频监控直播、云端录像、云存储、检索回放、智能告警、语音对讲、平台级联等功能,在视频能力上,GB28181......
  • 国标GB28181安防视频平台EasyGBS通过对应密钥上传到其他平台展示的详细步骤来啦!
    国标GB28181协议视频平台EasyGBS是基于国标GB28181协议的视频云服务平台,支持多路设备同时接入,并对多平台、多终端分发出RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。平台可提供视频监控直播、云端录像、云存储、检索回放、智能告警、语音对讲、平台级联等功能,在视频能力上,GB281......
  • SOLIDWORKS基准面介绍
    SOLIDWORKS是一款广泛应用于机械设计领域的三维建模软件,其中基准面是在建模过程中必不可少的要素。本文将介绍什么是SOLIDWORKS基准面,以及它在设计中的作用。SOLIDWORKS基准面是指在设计过程中用来确定草图绘制、特征创建的参考平面。SOLIDWORKS基准面在设计中起着至关重要的作用。......
  • 在windows上安装Apache Kafka的详细步骤
    在Windows上安装ApacheKafka的步骤如下:步骤1:下载和解压1.打开ApacheKafka的官方网站:https://kafka.apache.org/downloads2.在下载页面下方找到“Binarydownloads”,找到最新版本的Kafka,点击下载。3.下载完成后,解压压缩包到你想要安装的目录。步骤2:配置环境变量1.打开系......
  • SSO-Cookie介绍
    1.cookie是一个存储在客户端的字符串属性,可以用它对当前网页的cookie进行读,写,增,删等操作;javascript能够用document对象的cookie属性对cookie进行操作; 2.cookie的四个可选属性:2.1cookie的生存期属性:expires;默认情况下,cookie只在浏览器会话期存在.退出浏览器就丢失;......