万众瞩目!YOLOv8诞生,要包揽目标检测、实例分割新SOTA!

来源  机器之心  编辑:小舟、陈萍

YOLOv8 抛弃了前几代模型的 Anchor-Base。

YOLO 是一种基于图像全局信息进行预测的目标检测系统。自 2015 年 Joseph Redmon、Ali Farhadi 等人提出初代模型以来,领域内的研究者们已经对 YOLO 进行了多次更新迭代,模型性能越来越强大。现在,YOLOv8 已正式发布。

YOLOv8 是由小型初创公司 Ultralytics 创建并维护的,值得注意的是 YOLOv5 也是由该公司创建的。

fd3560ca7af010f530a2015e164844c3.png

YOLOv8 项目地址:https://github.com/ultralytics/ultralytics

YOLOv8 模型介绍

与先前几个版本相比,YOLOv8 模型更快、更准确,同时为训练模型提供统一框架,以执行以下基本任务:

  • 目标检测;

  • 实例分割;

  • 图像分类。

下图是 YOLOv8 执行目标检测和实例分割的实际效果:

bee113106acbc9fb254405d1d9443ba5.png

图源:https://www.youtube.com/watch?v=QgF5PHDCwHw

YOLOv8 的主要具有以下特点:

  • 对用户友好的 API(命令行 + Python);

  • 模型更快更准确;

  • 模型能完成目标检测、实例分割和图像分类任务;

  • 与先前所有版本的 YOLO 兼容可扩展;

  • 模型采用新的网络主干架构;

  • 无锚(Anchor-Free)检测;

  • 模型采用新的损失函数。

YOLOv8 还高效灵活地支持多种导出格式,并且可在 CPU 和 GPU 上运行该模型。YOLOv8 的整体架构如下图所示:

163902da991ffe2f43e78a9fac16e94b.png

YOLOv8 架构。图源:GitHub 用户 RangeKing。

值得注意的是,YOLOv8 是一个无锚(Anchor-Free)模型。这意味着它直接预测对象的中心,而不是已知锚框的偏移量。由于减少了 box 预测的数量,因此这种新方法加速了一个非常复杂的推理步骤 —— 非极大值抑制 (NMS)。

ff3cd24b89e4c4090767fa64bb4de573.png

图源:https://blog.roboflow.com/whats-new-in-yolov8/

YOLOv8 系列包含 5 个模型,其中 YOLOv8 Nano(YOLOv8n)是最小的模型,但速度最快;而 YOLOv8 Extra Large (YOLOv8x) 是最准确的模型,但速度最慢。

84d1d805f88bdc1a688fa454397d03ec.png

此外,YOLOv8 捆绑(bundle)了以下预训练模型:

  • 在图像分辨率为 640 的 COCO 检测数据集上训练的目标检测检查点;

  • 在图像分辨率为 640 的 COCO 分割数据集上训练的实例分割检查点;

  • 在图像分辨率为 224 的 ImageNet 数据集上预训练的图像分类模型。

从下图我们可以看到,YOLOv8 在目标检测和实例分割任务上的性能很好:

124dbe67d90378ef560ff0c15c59decc.gif

安装与使用

首先,我们需要用 git 克隆存储库:

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

然后用一行代码安装:

pip install -r requirements.txt

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

Ultralytics 为 YOLOv8 提供了完整的命令行界面 (CLI) API 和 Python SDK,用于执行训练、验证和推理。要使用命令行界面,需要安装 ultralytics 包。

pip install ultralytics

安装完所需的包后,用户就可以使用 yolo 命令进入 YOLOv8 CLI。下面是使用 yolo CLI 运行目标检测推理的示例:

0d605344f9c6c6b8c1677be6bb1262c6.png

代码中,task flag 可以接受三个参数:detect、classify、segment,分别对应三类任务。类似地,mode 也可以接受三个参数:train、val、predict。

如何在 Python API 中使用 YOLOv8?

你可以创建一个简单的 Python 文件,以导入 YOLO 模块并执行特定任务。

8b223816aab15aaddd32c64abc7e0e07.png

上面的代码表明,首先需要在 COCO128 数据集上训练 YOLOv8 Nano 模型,然后在验证集上对其进行评估,最后对样本图像进行预测。

目标检测的推理结果

下面的命令为使用 YOLOv8 Nano 模型对视频进行检测。

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

在配置有 GTX 1060 GPU 的笔记本电脑上,YOLOv8 Nano 的推理运行速度约为 105 FPS。效果如下:

采用 YOLOv8 Nano 模型进行检测推理。

不过上述 YOLOv8 Nano 模型在一些画面中会把猫检测成狗。接下来可以使用 YOLOv8 Extra Large 模型对同一视频运行检测并检查输出。

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

在配置有 GTX 1060 GPU 的笔记本电脑上,YOLOv8 Extra Large 模型的推理速度约为 17 FPS。效果如下

采用 YOLOv8 Extra large 模型进行检测推理。

尽管 YOLOv8 Extra Large 的错误分类稍微少了一些,但模型仍然在一些帧中检测错误。

实例分割的推理结果

使用 YOLOv8 进行实例分割同样简单,你只需在上面的命令中更改 task 和 model 名称。

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

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

使用 YOLOv8 Extra Large 模型进行分割推理。

在输出中,分割映射看起来非常干净。即使猫在最后几帧藏在积木下面,模型也能够检测并进行图像分割。

图像分类的推理结果

最后,由于 YOLOv8 已经提供了预训练分类模型,你可以使用 yolov8x-cls 模型对同一视频进行分类。

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

利用 YOLOv8 Extra Large 模型进行分类推理。

默认情况下,视频中标注了模型预测的前 5 个类。用户无需任何后处理,注释直接匹配 ImageNet 类名。

YOLO 不同版本之间的对比

相比于之前的 YOLO 系列,YOLOv8 模型似乎表现得更好,不仅领先于 YOLOv5,YOLOv8 也领先于 YOLOv7 和 YOLOv6 版本。

65fc4de26c18954864da1a36d8524d14.png

YOLOv8 与其他 YOLO 模型的对比。

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

接下来我们详细了解一下最新的 YOLOv8 模型与 Ultralytics 的 YOLOv5 模型的性能比较。

YOLOv8 和 YOLOv5 之间的综合比较

e1b4f23bdbff1f9a85a641d761c2cffb.png

YOLOv8 和 YOLOv5 目标检测模型对比

bd28d49eaa58e1411bd412d9cc91d806.png

YOLOv8 和 YOLOv5 实例分割模型对比

574b1d62da47dc626cd57877a862d72e.png

YOLOv8 和 YOLOv5 图像分类模型对比

92445995025d4a2dafba2fb7db193ecf.png

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

由此看来,随着 YOLOv8 的发布,其在计算机视觉领域的重要性不言而喻,目标检测、图像分割以及图像分类任务都将达到新的水平。

参考链接:

https://learnopencv.com/ultralytics-yolov8/

https://blog.roboflow.com/whats-new-in-yolov8/

https://github.com/ultralytics/ultralytics

猜您喜欢:

深入浅出stable diffusion:AI作画技术背后的潜在扩散模型论文解读

5bca84ba6b7511c10cf6bd2872f1cff5.png 戳我,查看GAN的系列专辑~!

一顿午饭外卖,成为CV视觉的前沿弄潮儿!

最新最全100篇汇总!生成扩散模型Diffusion Models

ECCV2022 | 生成对抗网络GAN部分论文汇总

CVPR 2022 | 25+方向、最新50篇GAN论文

 ICCV 2021 | 35个主题GAN论文汇总

超110篇!CVPR 2021最全GAN论文梳理

超100篇!CVPR 2020最全GAN论文梳理

拆解组新的GAN:解耦表征MixNMatch

StarGAN第2版:多域多样性图像生成

附下载 | 《可解释的机器学习》中文版

附下载 |《TensorFlow 2.0 深度学习算法实战》

附下载 |《计算机视觉中的数学方法》分享

《基于深度学习的表面缺陷检测方法综述》

《零样本图像分类综述: 十年进展》

《基于深度神经网络的少样本学习综述》

《礼记·学记》有云:独学而无友,则孤陋而寡闻

欢迎加入 GAN/扩散模型 —交流微信群 !

扫描下面二维码,添加运营小妹好友,拉你进群。发送申请时,请备注,格式为:研究方向+地区+学校/公司+姓名。如 扩散模型+北京+北航+吴彦祖

db833f5aa9a025d25a1a5c1955cf3a96.jpeg

请备注格式:研究方向+地区+学校/公司+姓名

点击 一顿午饭外卖,成为CV视觉的前沿弄潮儿!,领取优惠券,加入 AI生成创作与计算机视觉 知识星球!

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值