YOLOv8 Ultralytics:最先进的 YOLO 模型

什么是 YOLOv8?

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

利用以前的 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) 是其中最准确但最慢的。

<table><tbody><tr><td>YOLOv8n</td><td>YOLOv8s</td><td>YOLOv8m</td><td>YOLOv8l</td><td>YOLOv8x</td></tr></tbody></table>

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

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

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

如何使用 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() # 在验证集
模型
上评估模型性能.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 的速度运行。我们得到以下输出。

<video src="https://learnopencv.com/wp-content/uploads/2023/01/yolov8-nano-detection-inference-1.mp4" control></video>

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。

<video src="https://learnopencv.com/wp-content/uploads/2023/01/yolov8-x-detection-inference.mp4" control></video>

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

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

实例分割的推理结果

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

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

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

<video src="https://learnopencv.com/wp-content/uploads/2023/01/yolov8x-segment.mp4" control></video>

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

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

图像分类的推理结果

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

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

<video src="https://learnopencv.com/wp-content/uploads/2023/01/yolov8-x-cls-1.mp4" control></video>

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

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

YOLOv8 对比 YOLOv7 对比 YOLOv6 对比 YOLOv5

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

YOLOv8 与其他 YOLO 模型的对比。

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

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

整体比较

YOLOv8 模型与 YOLOv5 模型的对比。

物体检测比较

YOLOv8 与 YOLOv5 对象检测模型。

实例分割比较

YOLOv8 与 YOLOv5 实例分割模型。

图像分类比较

YOLOv8 与 YOLOv5 图像分类模型。

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

YOLOv8目标检测模型的演进

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

YOLOv8目标检测模型的演进。

YOLOv1

YOLO 目标检测的第一个版本,即 YOLOv1,由 Joseph Redmon 等人发布。2015 年。它是第一个单阶段目标检测 (SSD) 模型,它催生了 SSD 和所有后续的 YOLO 模型。

YOLO 9000(v2)

YOLOv2,也称为 YOLO 9000,由 YOLOv1 的原作者 Joseph Redmon 发布。它通过引入锚框的概念和更好的骨干网 Darknet-19 改进了 YOLOv1。

YOLOv3

2018 年,Joseph Redmon 和 Ali Farhadi 发表了 YOLOv3。它与其说是架构上的飞跃,不如说是技术报告,但仍然是 YOLO 家族的重大改进。YOLOv3 使用 Darknet-53 主干、残差连接、更好的预训练和图像增强技术带来改进。

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

本文由mdnice多平台发布

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容