YOLOV8详细介绍
  gfVHCctyiq1M 2023年11月02日 79 0

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详细介绍_图像分类_02

YOLOv8 与其他 YOLO 模型的对比。

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

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

整体比较

YOLOV8详细介绍_图像分类_03

YOLOv8 模型与 YOLOv5 模型的对比。

物体检测比较

YOLOV8详细介绍_图像分类_04

YOLOv8 与 YOLOv5 对象检测模型。

实例分割比较

YOLOV8详细介绍_v8_05

YOLOv8 与 YOLOv5 实例分割模型。

图像分类比较


YOLOV8详细介绍_github_06

YOLOv8 与 YOLOv5 图像分类模型。

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

YOLOv8目标检测模型的演进

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


YOLOV8详细介绍_v8_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。我们介绍了新模型、它们的性能以及软件包附带的命令行界面。除此之外,我们还对视频进行了推理。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
gfVHCctyiq1M