YOLOv8 深度解析!一文看懂,快速上手实操(附实践代码)

这篇具有很好参考价值的文章主要介绍了YOLOv8 深度解析!一文看懂,快速上手实操(附实践代码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关注并星标

从此不迷路

计算机视觉研究院

YOLOv8 深度解析!一文看懂,快速上手实操(附实践代码)

YOLOv8 深度解析!一文看懂,快速上手实操(附实践代码)

公众号ID|ComputerVisionGzq

学习群|扫码在主页获取加入方式

开源地址:https://github.com/ultralytics/ultralytics

计算机视觉研究院专栏

作者:Edison_G

YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本,目前支持图像分类、物体检测和实例分割任务,在还没有开源时就收到了用户的广泛关注。

一、前言

YOLOv8 深度解析!一文看懂,快速上手实操(附实践代码)

YOLOv8 是一个 SOTA 模型,它建立在以前 YOLO 版本的成功基础上,并引入了新的功能和改进,以进一步提升性能和灵活性。具体创新包括一个新的骨干网络、一个新的 Ancher-Free 检测头和一个新的损失函数,可以在从 CPU 到 GPU 的各种硬件平台上运行。

下面是使用YOLOv8做目标检测和实例分割的演示视频:(转自于 OpenCV与AI深度学习)

YOLO: A Brief History

YOLO(You Only Look Once)是一种流行的对象检测和图像分割模型,由华盛顿大学的Joseph Redmon和Ali Farhadi开发。YOLO于2015年推出,以其高速度和高精度迅速走红。

  • YOLOv2于2016年发布,通过合并批处理规范化、锚盒和维度集群来改进原始模型

  • 2018年推出的YOLOv3使用更高效的骨干网络、多个锚点和空间金字塔池进一步增强了该模型的性能

  • YOLOv4于2020年发布,引入了Mosaic数据增强、新的无锚检测头和新的丢失功能等创新

  • YOLOv5进一步提高了模型的性能,并添加了超参数优化、集成实验跟踪和自动导出到流行导出格式等新功能

  • YOLOv6于2022年由美团开源,目前正在该公司的许多自动配送机器人中使用

  • YOLOv7在COCO关键点数据集上添加了额外的任务,如姿态估计

  • YOLOv8是Ultralytics公司推出的YOLO的最新版本。作为一款尖端、最先进的(SOTA)车型,YOLOv8在之前版本的成功基础上,引入了新的功能和改进,以增强性能、灵活性和效率。YOLOv8支持全方位的视觉AI任务,包括检测、分割、姿态估计、跟踪和分类。这种多功能性允许用户在不同的应用程序和域中利用YOLOv8的功能

YOLOv8的新特性与可用模型

Ultralytics 并没有直接将开源库命名为 YOLOv8,而是直接使用 ultralytics 这个词,原因是 ultralytics 将这个库定位为算法框架,而非某一个特定算法,一个主要特点是可扩展性。其希望这个库不仅仅能够用于 YOLO 系列模型,而是能够支持非 YOLO 模型以及分类分割姿态估计等各类任务。总而言之,ultralytics 开源库的两个主要优点是:

  • 融合众多当前 SOTA 技术于一体

  • 未来将支持其他 YOLO 系列以及 YOLO 之外的更多算法

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

  1. 提供了一个全新的 SOTA 模型,包括 P5 640 和 P6 1280 分辨率的目标检测网络和基于 YOLACT 的实例分割模型。和 YOLOv5 一样,基于缩放系数也提供了 N/S/M/L/X 尺度的不同大小模型,用于满足不同场景需求

  2. 骨干网络和 Neck 部分可能参考了 YOLOv7 ELAN 设计思想,将 YOLOv5 的 C3 结构换成了梯度流更丰富的 C2f 结构,并对不同尺度模型调整了不同的通道数,属于对模型结构精心微调,不再是无脑一套参数应用所有模型,大幅提升了模型性能。不过这个 C2f 模块中存在 Split 等操作对特定硬件部署没有之前那么友好了

  3. Head 部分相比 YOLOv5 改动较大,换成了目前主流的解耦头结构,将分类和检测头分离,同时也从 Anchor-Based 换成了 Anchor-Free

  4. Loss 计算方面采用了 TaskAlignedAssigner 正样本分配策略,并引入了 Distribution Focal Loss

  5. 训练的数据增强部分引入了 YOLOX 中的最后 10 epoch 关闭 Mosiac 增强的操作,可以有效地提升精度

YOLOv8 还高效灵活地支持多种导出格式,并且该模型可以在 CPU 和 GPU 上运行。YOLOv8 模型的每个类别中有五个模型用于检测、分割和分类。YOLOv8 Nano 是最快和最小的,而 YOLOv8 Extra Large (YOLOv8x) 是其中最准确但最慢的。

YOLOv8 深度解析!一文看懂,快速上手实操(附实践代码)

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

YOLOv8 深度解析!一文看懂,快速上手实操(附实践代码)

YOLOv8 深度解析!一文看懂,快速上手实操(附实践代码)

如何使用YOLOv8

Pip install the ultralytics package including all requirements in a Python>=3.7 environment with PyTorch>=1.7.

pip install ultralytics

YOLOv8可以通过yolo命令直接在命令行界面(CLI)中使用:

yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'

yolo可以用于各种任务和模式,并接受额外的参数,即imgsz=640。有关示例,请参阅YOLOv8 CLI文档。

YOLOv8 CLI文档:https://docs.ultralytics.com/usage/cli/

YOLOv8也可以直接在Python环境中使用,并接受与上面CLI示例中相同的参数:

from ultralytics import YOLO


# Load a model
model = YOLO("yolov8n.yaml")  # build a new model from scratch
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)


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

模型自动从最新的Ultralytics版本下载。有关更多示例,请参阅YOLOv8 Python文档。

https://docs.ultralytics.com/usage/python/

YOLOv8 深度解析!一文看懂,快速上手实操(附实践代码)

推理在笔记本电脑GTX1060 GPU上以接近105 FPS的速度运行。我们得到以下输出:(转自于 OpenCV与AI深度学习)

YOLOv8 深度解析!一文看懂,快速上手实操(附实践代码)

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

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

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

YOLOv8 深度解析!一文看懂,快速上手实操(附实践代码)

实例分割的推理结果

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

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

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

YOLOv8 深度解析!一文看懂,快速上手实操(附实践代码)

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

图像分类推理结果

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

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

YOLOv8 深度解析!一文看懂,快速上手实操(附实践代码)

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

案例

YOLOv8 深度解析!一文看懂,快速上手实操(附实践代码)

快速检测缺陷并提供重要的安全功能

计算机视觉可以取代生产线上容易出错的手动零件组装和质量检查。在车内,计算机视觉可以为重要的安全功能提供动力,如分心的驾驶员监控、检测车道偏离、识别其他车辆和行人以及读取交通信号。收集用于训练的图像和视频数据。将从车辆和生产线摄像头收集的视频和图像转换为数据,以建立您的计算机视觉模型。

YOLOv8 深度解析!一文看懂,快速上手实操(附实践代码)

© THE END 

转载请联系本公众号获得授权

YOLOv8 深度解析!一文看懂,快速上手实操(附实践代码)

计算机视觉研究院学习群等你加入!

计算机视觉研究院主要涉及深度学习领域,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。研究院接下来会不断分享最新的论文算法新框架,我们这次改革不同点就是,我们要着重”研究“。之后我们会针对相应领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

扫码关注

计算机视觉研究院

公众号ID|ComputerVisionGzq

学习群|扫码在主页获取加入方式

 往期推荐 

🔗

  • 字节跳动新框架:图片中遮挡关系如何判断?新方法刷新SOTA(附源代码)

  • Apple团队:轻量级、通用且移动友好的网络框架(附论文下载)

  • 多目标检测:基于YoloV4优化的多目标检测(附论文下载)

  • Fast YOLO:用于实时嵌入式目标检测(附论文下载)

  • 目标检测干货 | 多级特征重复使用大幅度提升检测精度(文末附论文下载)

  • 多尺度深度特征(下):多尺度特征学习才是目标检测精髓(论文免费下载)

  • 多尺度深度特征(上):多尺度特征学习才是目标检测精髓(干货满满,建议收藏)

  • ICCV2021目标检测:用图特征金字塔提升精度(附论文下载)

  • CVPR21小样本检测:蒸馏&上下文助力小样本检测(代码已开源)

  • 半监督辅助目标检测:自训练+数据增强提升精度(附源码下载)

  • 目标检测干货 | 多级特征重复使用大幅度提升检测精度(文末附论文下载)

  • 目标检测新框架CBNet | 多Backbone网络结构用于目标检测(附源码下载)文章来源地址https://www.toymoban.com/news/detail-485471.html

到了这里,关于YOLOv8 深度解析!一文看懂,快速上手实操(附实践代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • YOLOv8详解 【网络结构+代码+实操】

    🚀🚀🚀 目标检测——Yolo系列(YOLOv1/2/v3/4/5/x/6/7) ✨✨✨ YOLOv8改进——引入可变形卷积DCNv3 YOLOv8是目前YOLO系列算法中最新推出的检测算法,YOLOv8可以完成检测、分类、分割任务,其检测和分割网络结构图如下。 YOLOv8 算法的核心特性和改动可以归结为如下: 提供了一个全新

    2024年02月01日
    浏览(54)
  • YOLOv8预测参数详解(全面详细、重点突出、大白话阐述小白也能看懂)

    YOLOv8现在可以接受输入很多,如下表所示。包括图像、URL、PIL图像、OpenCV、NumPy数组、Torch张量、CSV文件、视频、目录、通配符、YouTube视频和视频流。表格✅指示了每个输入源是否可以在流模式下使用,并给出了每个输入源使用流模式的示例参数 预测参数 Key Value Description s

    2024年02月11日
    浏览(42)
  • 【YOLO】YOLOv8实操:环境配置/自定义数据集准备/模型训练/预测

    源码链接:https://github.com/ultralytics/ultralytics yolov8和yolov5是同一作者,相比yolov5,yolov8的集成性更好了,更加面向用户了 YOLO命令行界面(command line interface, CLI) 方便在各种任务和版本上训练、验证或推断模型。CLI不需要定制或代码,可以使用yolo命令从终端运行所有任务。 如果

    2023年04月24日
    浏览(61)
  • 【计算机视觉】YOLOv8参数详解(全面详细、重点突出、大白话阐述小白也能看懂)

    comments description keywords true Master YOLOv8 settings and hyperparameters for improved model performance. Learn to use YOLO CLI commands, adjust training settings, and optimize YOLO tasks modes. YOLOv8, settings, hyperparameters, YOLO CLI commands, YOLO tasks, YOLO modes, Ultralytics documentation, model optimization, YOLOv8 training YOLO 设置和超参数

    2024年02月05日
    浏览(47)
  • 【基础知识】一文看懂深度优先算法和广度优先算法

    先上个图 现在我们要访问图中的每个节点,即图的遍历。 图的遍历是指,从给定图中任意指定的顶点(称为初始点)出发,按照某种搜索方法沿着图的边访问图中的所有顶点,使每个顶点仅被访问一次,这个过程称为图的遍历。 我们根据访问节点的顺序与方式(根据搜索方

    2024年02月09日
    浏览(38)
  • 深度学习代码学习(一文真正看懂卷积层的代码定义)

    一维卷积: 将n行3列升维到n行6列。(原因:卷积核为6个) *表示点乘  Linear线性层: (通过矩阵计算改变输入输出特征向量的维度) Pytorch nn.Linear的基本用法与原理详解-CSDN博客  pytorch初学笔记(十二):神经网络基本结构之线性层-CSDN博客 二维卷积: torch学习 (十六):二维

    2024年01月16日
    浏览(63)
  • MQTT协议图解,一文看懂MQTT协议数据包(真实报文数据解析解释)

    本文主要介绍MQTT协议的结构和具体的2条报文数据解析,帮忙更简单、快速地理解mqtt协议,如果要深入了解实现完整的协议,可以查看文章最后的完整协议文档做更深入的研究。 MQTT协议在lot领域是使用的最广泛的通用协议,在一般企业级物联网产品开发中,通常会考虑的协

    2023年04月16日
    浏览(43)
  • Selenium性能优化:一文带你快速上手!

    在自动化测试领域(做爬虫、自动化办公也不是不行😁😁), Selenium 是一个极为强大且广泛使用的工具。 学会使用工具是开始,学会优化该工具的使用才属于是真正的学会使用这个工具。面对日益复杂的网页结构和动态内容,仅仅掌握 Selenium 的基础操作已经过时啦!!!

    2024年02月04日
    浏览(41)
  • 【一文到底】【0基础】【快速上手】Django基本使用

    和之前python一样,通过pip来安装即可 django和其他第三方Python模块一样,会在当前python环境下的 libsite-package 中,只是django是比较大的那种模块。 But,django这个包呢同时会生成 django-admin.exe 在 Scripts 文件夹中,这个exe可执行文件是帮助我们操作django项目的。目录情况大体如下:

    2023年04月09日
    浏览(72)
  • 【深度学习】YOLOv8训练过程,YOLOv8实战教程,目标检测任务SOTA,关键点回归

    https://github.com/ultralytics/ultralytics 官方教程:https://docs.ultralytics.com/modes/train/ 更建议下载代码后使用 下面指令安装,这样可以更改源码,如果不需要更改源码就直接pip install ultralytics也是可以的。 这样安装后,可以直接修改yolov8源码,并且可以立即生效。此图是命令解释: 安

    2024年02月10日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包