0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用YOLOv8做目标检测和实例分割的演示

新机器视觉 来源:OpenCV与AI深度学习 2023-02-06 10:11 次阅读

背景介绍

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

利用以前的 YOLO 版本,YOLOv8模型更快、更准确,同时为训练模型提供统一框架,以执行:

物体检测

实例分割

图像分类

下面是使用YOLOv8做目标检测和实例分割的演示视频

YOLOv8的新特性与可用模型

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

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

用户友好的 API(命令行 + Python)。

更快更准确。

支持:

物体检测

实例分割

图像分类

可扩展到所有以前的版本。

新骨干网络。

新的无锚头。

新的损失函数。

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

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

ebcaf7c2-a4cd-11ed-bfe3-dac502259ad0.png

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

在图像分辨率为 640 的 COCO 检测数据集上训练的对象检测检查点。

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

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

如下是使用YOLOv8x做目标检测和实例分割模型的输出:

ebdf5c1c-a4cd-11ed-bfe3-dac502259ad0.gif

如何使用YOLOv8

要充分发挥YOLOv8的潜力,需要从存储库和ultralytics包中安装要求。要安装要求,我们首先需要克隆存储库。

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

pip install ultralytics
【1】如何使用命令行界面 (CLI) 使用 YOLOv8? 安装必要的包后,我们可以使用命令访问 YOLOv8 CLI yolo。以下是使用yoloCLI 运行对象检测推理的示例。
yolo task=detect 
mode=predict 
model=yolov8n.pt 
source="image.jpg"
该task标志可以接受三个参数:detect、classify和segment。同样,模式可以是train、val或之一predict。我们也可以像export导出经过训练的模型时一样传递模式。 【2】如何通过Python API使用YOLOv8? 我们还可以创建一个简单的Python文件,导入YOLO模块并执行我们选择的任务。
from ultralytics import YOLO


model = YOLO("yolov8n.pt")  # load a pretrained YOLOv8n model


model.train(data="coco128.yaml")  # train the model
model.val()  # evaluate model performance on the validation set
model.predict(source="https://ultralytics.com/images/bus.jpg")  # predict on an image
model.export(format="onnx")  # export the model to ONNX format

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

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

【3】目标检测的推理结果 以下命令使用YOLOv8 Nano模型对视频运行检测。

yolotask=detectmode=predictmodel=yolov8n.ptsource='input/video_3.mp4'show=True
推理在笔记本电脑GTX1060 GPU上以接近105 FPS的速度运行。我们得到以下输出:

f1f5f700-a4cd-11ed-bfe3-dac502259ad0.gif

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

yolotask=detectmode=predictmodel=yolov8x.ptsource='input/video_3.mp4'show=True
Extra Large模型在GTX1060 GPU上的平均运行速度为 17 FPS。

f81dd382-a4cd-11ed-bfe3-dac502259ad0.gif

【4】实例分割的推理结果 使用YOLOv8 实例分割模型运行推理同样简单。我们只需要更改上面命令中的task和model名称。

yolotask=segmentmode=predictmodel=yolov8x-seg.ptsource='input/video_3.mp4'show=True
因为实例分割与对象检测相结合,所以这次的平均 FPS 约为 13。

f925e670-a4cd-11ed-bfe3-dac502259ad0.gif

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

【5】图像分类推理结果

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

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

fa2c15f8-a4cd-11ed-bfe3-dac502259ad0.gif

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






审核编辑:刘清

文章出处:【微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • python
    +关注

    关注

    56

    文章

    4781

    浏览量

    84445
  • CLI
    CLI
    +关注

    关注

    1

    文章

    79

    浏览量

    8528

原文标题:使用YOLOv8做目标检测、实例分割和图像分类

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    TensorRT 8.6 C++开发环境配置与YOLOv8实例分割推理演示

    YOLOv8实例分割TensorRT 推理代码已经完成C++类封装,三行代码即可实现YOLOv8对象检测
    的头像 发表于 04-25 10:49 5599次阅读
    TensorRT 8.6 C++开发环境配置与<b class='flag-5'>YOLOv8</b><b class='flag-5'>实例</b><b class='flag-5'>分割</b>推理<b class='flag-5'>演示</b>

    在AI爱克斯开发板上用OpenVINO™加速YOLOv8分类模型

    本系列文章将在 AI 爱克斯开发板上使用 OpenVINO 开发套件依次部署并测评 YOLOv8 的分类模型、目标检测模型、实例分割模型和人
    的头像 发表于 05-05 11:47 1011次阅读
    在AI爱克斯开发板上用OpenVINO™加速<b class='flag-5'>YOLOv8</b>分类模型

    在AI爱克斯开发板上用OpenVINO™加速YOLOv8目标检测模型

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 分类模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO 开发套件部署并测评 YOLOv8 的分类模型,本文将介绍在 AI 爱克斯开发板上使用 OpenVINO 加速
    的头像 发表于 05-12 09:08 1259次阅读
    在AI爱克斯开发板上用OpenVINO™加速<b class='flag-5'>YOLOv8</b><b class='flag-5'>目标</b><b class='flag-5'>检测</b>模型

    YOLOv8版本升级支持小目标检测与高分辨率图像输入

    YOLOv8版本最近版本又更新了,除了支持姿态评估以外,通过模型结构的修改还支持了小目标检测与高分辨率图像检测。原始的YOLOv8模型结构如
    的头像 发表于 05-16 11:14 1.2w次阅读
    <b class='flag-5'>YOLOv8</b>版本升级支持小<b class='flag-5'>目标</b><b class='flag-5'>检测</b>与高分辨率图像输入

    AI爱克斯开发板上使用OpenVINO加速YOLOv8目标检测模型

    《在AI爱克斯开发板上用OpenVINO加速YOLOv8分类模型》介绍了在AI爱克斯开发板上使用OpenVINO 开发套件部署并测评YOLOv8的分类模型,本文将介绍在AI爱克斯开发板上使用OpenVINO加速YOLOv8
    的头像 发表于 05-26 11:03 1187次阅读
    AI爱克斯开发板上使用OpenVINO加速<b class='flag-5'>YOLOv8</b><b class='flag-5'>目标</b><b class='flag-5'>检测</b>模型

    在AI爱克斯开发板上用OpenVINO™加速YOLOv8-seg实例分割模型

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 目标检测模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO 开发套件部署并测评 YOLOv8
    的头像 发表于 06-05 11:52 964次阅读
    在AI爱克斯开发板上用OpenVINO™加速<b class='flag-5'>YOLOv8</b>-seg<b class='flag-5'>实例</b><b class='flag-5'>分割</b>模型

    教你如何用两行代码搞定YOLOv8各种模型推理

    大家好,YOLOv8 框架本身提供的API函数是可以两行代码实现 YOLOv8 模型推理,这次我把这段代码封装成了一个类,只有40行代码左右,可以同时支持YOLOv8对象检测
    的头像 发表于 06-18 11:50 2970次阅读
    教你如何用两行代码搞定<b class='flag-5'>YOLOv8</b>各种模型推理

    目标检测算法再升级!YOLOv8保姆级教程一键体验

    YOLO作为一种基于图像全局信息进行预测的目标检测系统,始终保持着极高的迭代更新率,从YOLOv5到YOLOv8,本次升级主要包括结构算法、命令行界面、PythonAPI等。具体到
    的头像 发表于 02-28 11:16 2552次阅读
    <b class='flag-5'>目标</b><b class='flag-5'>检测</b>算法再升级!<b class='flag-5'>YOLOv8</b>保姆级教程一键体验

    在AI爱克斯开发板上用OpenVINO™加速YOLOv8-seg实例分割模型

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 目标检测模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO 开发套件部署并测评 YOLOv8
    的头像 发表于 06-30 10:43 868次阅读
    在AI爱克斯开发板上用OpenVINO™加速<b class='flag-5'>YOLOv8</b>-seg<b class='flag-5'>实例</b><b class='flag-5'>分割</b>模型

    三种主流模型部署框架YOLOv8推理演示

    部署。这里以YOLOv8为例,演示YOLOv8对象检测模型在OpenVINO、ONNXRUNTIME、TensorRT三个主流框架上C++推理演示
    的头像 发表于 08-06 11:39 2647次阅读

    用自己的数据集训练YOLOv8实例分割模型

    YOLOv8 于 2023 年 1 月 10 日推出。截至目前,这是计算机视觉领域分类、检测分割任务的最先进模型。该模型在准确性和执行时间方面都优于所有已知模型。
    的头像 发表于 11-10 16:44 4129次阅读
    用自己的数据集训练<b class='flag-5'>YOLOv8</b><b class='flag-5'>实例</b><b class='flag-5'>分割</b>模型

    基于YOLOv8的自定义医学图像分割

    YOLOv8是一种令人惊叹的分割模型;它易于训练、测试和部署。在本教程中,我们将学习如何在自定义数据集上使用YOLOv8。但在此之前,我想告诉你为什么在存在其他优秀的分割模型时应该使用
    的头像 发表于 12-20 10:51 733次阅读
    基于<b class='flag-5'>YOLOv8</b>的自定义医学图像<b class='flag-5'>分割</b>

    YOLOv8实现旋转对象检测

    YOLOv8框架在在支持分类、对象检测实例分割、姿态评估的基础上更近一步,现已经支持旋转对象检测(OBB),基于DOTA数据集,支持航拍图
    的头像 发表于 01-11 10:43 1677次阅读
    <b class='flag-5'>YOLOv8</b>实现旋转对象<b class='flag-5'>检测</b>

    OpenCV4.8 C++实现YOLOv8 OBB旋转对象检测

    YOLOv8框架在在支持分类、对象检测实例分割、姿态评估的基础上更近一步,现已经支持旋转对象检测(OBB),基于DOTA数据集,支持航拍图
    的头像 发表于 02-22 10:15 1466次阅读
    OpenCV4.8 C++实现<b class='flag-5'>YOLOv8</b> OBB旋转对象<b class='flag-5'>检测</b>

    YOLOv8中的损失函数解析

    YOLO长期以来一直是目标检测任务的首选模型之一。它既快速又准确。此外,其API简洁易用。运行训练或推断作业所需的代码行数有限。在2023年下半年,YOLOv8在框架中引入了姿态估计后,该框架现在支持最多四个任务,包括分类、
    的头像 发表于 11-05 17:15 409次阅读
    <b class='flag-5'>YOLOv8</b>中的损失函数解析