YOLOv8 来了,快速上手实操

news2024/9/25 9:32:02

目录

  • YOLOv8的优点
  • 安装ultralytics
  • 使用YOLOv8n在图像上进行Predict
  • Tasks与 Modes
      • Modes - 模式分类
      • Tasks - 任务分类

👨‍💻 作者简介:程序员半夏 , 一名全栈程序员,擅长使用各种编程语言和框架,如JavaScript、React、Node.js、Java、Python、Django、MySQL等.专注于大前端与后端的硬核干货分享,同时是一个随缘更新的UP主. 你可以在各个平台找到我!
🏆 本文收录于专栏: YOLO
————————————————————————
🔥 热门专栏:

🥇 学透CSS: 全网阅读超百万,CSDN最强CSS专栏,精通CSS全属性,不做切图仔,从订阅本专栏开始!

🥇 SprinbBoot + Vue3 项目实战: 新鲜出炉的2023实战系列博客,配套视频,用心打磨,篇篇精品.持续更新,值得订阅!

YOLOv8YOLO(目标检测和图像分割领域中具有高度影响力的模型)家族的最新成员。它采用了新的架构、新的卷积层和新的检测头。相比于之前的版本,它的速度和准确性都有了显著提高,因此非常适合实时目标检测。此外,YOLOv8支持最新的计算机视觉算法,包括实例分割,可以检测图像中的多个对象。

YOLOv8的优点

相比于之前流行的版本(如YOLOv5、YOLOv7等)有何优势?

首先,YOLOv8引入了一个新的骨干网络——Darknet-53,它比YOLOv7中使用的先前骨干网络更快、更准确。DarkNet-53是一个53层的卷积神经网络,可以将图像分类为1000个物体类别,如键盘、鼠标、铅笔和许多动物。

Yolov8使用类似于图像分割的边界框预测,即像素级别预测。为了实现这一点,他们引入了无锚点检测头。要了解更多关于什么是无锚点目标检测的信息,可以在这里阅读。

YOLOv8比之前的版本更高效,因为它使用了更大的特征图和更高效的卷积网络。这使得模型能够更准确、更快地检测对象。通过更大的特征图,模型可以捕捉不同特征之间更复杂的关系,并更好地识别数据中的模式和对象。此外,更大的特征图还有助于减少训练模型所需的时间,并有助于减少过拟合。

YOLOv8还使用了特征金字塔网络,有助于更好地识别不同大小的对象,从而提高其整体精度。特征金字塔网络是一个概念,它使用不同尺度的特征图(类似于在不同大小的图像上进行预测),结合跳跃连接来更准确地预测较小和较大的对象。更多信息可以在这里阅读。

最后,YOLOv8引入了用户友好的API,使用户能够快速、轻松地在其应用程序中实现模型。

让我们通过一个快速尝试、实践性的解释来更详细地了解YOLOV8

你应该访问https://github.com/ultralytics/ultralytics

在进一步进行之前,了解Ultralytics和Yolo之间的关系非常重要。

Ultralytics YOLOv8 是一款前沿、最先进(SOTA)的模型,基于先前 YOLO 版本的成功,引入了新功能和改进,进一步提升性能和灵活性。YOLOv8 设计快速、准确且易于使用,使其成为各种物体检测与跟踪、实例分割、图像分类和姿态估计任务的绝佳选择。

image-20230504142750829

在这里插入图片描述

如上所示,点击“Open in Colab”,跳转到链接:https://colab.research.google.com/github/ultralytics/ultralytics/blob/main/examples/tutorial.ipynb

点击连接以开始使用Google Colab。如果你是Google Colab的新用户,则点击“如何开始使用Google Colab教程?”

当你访问链接时,它将打开以下教程:

image-20230504143710228

安装ultralytics

%pip install ultralytics
import ultralytics
ultralytics.checks()

image-20230504152300588

以上代码行安装Ultralytics包,以便我们可以使用YOLO算法。默认情况下,在我撰写本文时,它将安装版本8.0.92。或者,你可以执行以下操作

%pip install ultralytics==8.0.92

安装下一行代码后,导入Ultralytics模块,然后我们尝试检查是否存在所有所需的依赖项和兼容的硬件。

例如,当我在我的计算机上执行检查时,以下是输出。

Ultralytics YOLOv8.0.92 🚀 Python-3.10.11 torch-2.0.0+cu118 CUDA:0 (Tesla T4, 15102MiB) Setup complete ✅ (2 CPUs, 12.7 GB RAM, 23.4/78.2 GB disk)

使用YOLOv8n在图像上进行Predict

# Run inference on an image with YOLOv8n
!yolo predict model=yolov8n.pt source='https://ultralytics.com/images/zidane.jpg'

image-20230504152249485

img

上述语句将:

  1. 首先下载引用的图像,

  2. 然后下载引用的预训练模型检查点(如果尚未下载),

  3. 最后生成推断结果。在我的情况下。

以下是结果。它可能会有所不同,特别是在延迟和检测到的标签数量方面。

image-20230504154625470

Tasks与 Modes

yolo 可用于各种任务和模式,并接受其他参数,例如 imgsz=640。查看 YOLOv8 CLI 文档以获取示例。

Modes - 模式分类

https://docs.ultralytics.com/modes/

  • Train - 训练:用于在自定义数据集上训练YOLOv8模型。
  • Val - 验证:在训练完YOLOv8模型后,用于验证其准确性。
  • Predict - 预测:使用已训练好的YOLOv8模型对新图像或视频进行预测。
  • Export - 导出:将YOLOv8模型导出为可用于部署的格式。
  • Track - 跟踪:使用YOLOv8模型实时跟踪物体。
  • Benchmark - 基准测试:用于基准测试YOLOv8导出(ONNX,TensorRT等)的速度和准确性。

Tasks - 任务分类

https://docs.ultralytics.com/tasks/?h=task

  • Detection- 检测

  • Segmentation - 分割

  • Classification- 分类

  • Pose -姿态

image-20230504152926943

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/498033.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot集成Redis—缓存穿透解决方案与哨兵模式实战

目录 1、环境准备 1)pom.xml引入Redis依赖 2) 演示业务场景 2、SpringBoot集成Redis单机模式 1) 通过MyBatis逆向工程生成实体Bean和数据持久层 2) application.yml 中配置redis连接信息 3) 启动redis服务 4) XinTuProductRedisController类 5…

一图看懂 yarl 模块:为URL解析和更改提供了方便的URL类, 资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创,转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 yarl 模块:为URL解析和更改提供了方便的URL类, 资料整理笔记(大全) 摘要模块图类关系图模块全展开【yarl】统计常量模块1 yarl._quoting…

Python图形界面开发——系统资源监视器System-Monitor

Python图形界面程序怎么开发呢?很多人推荐python自带的tkinter自带库,还有pyqt这个这种拖拽式界面开发方案,但是他们开发界面比较难定制界面样式。现在web前端这么多框架用来开发python的图形界面其实不是很好?下面这么案例就是用…

Python爬虫 | 一文解决文章付费限制问题

本文概要 本篇文章主要介绍利用Python爬虫爬取付费文章,适合练习爬虫基础同学,文中描述和代码示例很详细,干货满满,感兴趣的小伙伴快来一起学习吧! 🌟🌟🌟个人简介🌟&…

项目内训(2023.5.6)

目录 Nacos是什么? 领域模型是什么? domain模块一般是干什么的? 在小乌龟中合并其他分支的作用是什么? nacos的配置文件 服务集群、服务提供、服务更加灵活庞大、消费服务、访问比较麻烦,A和B服务一起访问 系统结…

Qt5.9学习笔记-事件(四)Qt5.9中常见事件

⭐️我叫忆_恒心,一名喜欢书写博客的在读研究生👨‍🎓。 如果觉得本文能帮到您,麻烦点个赞👍呗! 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三…

5月1日 9H45min|5月2日 8H20min+30min|时间轴复盘

8:00 起床 8:00-8:30 洗漱吃饭 8:30-10:40 temporary pools阅读真题精读 (真的很慢了 不知道什么原因 感觉也没有彻底完全弄懂)【2h+10min】 10:40-11:10 午餐+酸奶(423+174KJ) 11:20-12:30 三篇阅读【1h+10min】 13:10-14:50 健身 14:50-15:45诵默写list…

【Stable Diffusion】ControlNet基本教程(四)

本文概要 接上篇【Stable Diffusion】ControlNet基本教程(三),本篇再介绍两个ControlNet常见的基本用法:控制人物动作和建筑/室内生成。让人物摆出特定的动作,这是ControlNet最神级的操作!这意味着可以自定…

密码学【java】初探究之springboo集成mybatis,swagger,数字签名

文章目录 项目环境一 swagger技术的补充1.1 [swagger]((https://github.com/OAI/OpenAPI-Specification))介绍1.2 swagger的基础注解1.3 controller添加swagger注解 二 项目搭建2.1 创建数据库2.2 引入项目依赖2.3 配置数据库的连接2.4 配置swagger的配置…

USB 字节序,编码格式及位填充

字节序 LSB 发送一个字节时,先发送低位数据,再发送高位数据发送一个字时,先发送低字节数据,再发送高字节数据 例如: 发送 0x2D,发送的顺序为:10110100(低位在前,高位在后)发送 0…

项目前置准备

目录 项目前置准备 总体架构 CVPR2022是什么 一个项目架构图要如何进行看和学习呢?内容有点多有些摸不着头脑 我该如何理解架构图中的组件 Jenkins是什么? Docker是什么? FastDFS是什么? 项目前置准备 总体架构 CVPR2022是什…

golang grpc配置使用实战教程

什么是PRC&GRPC RPC是远程过程调用(Remote Procedure Call)的缩写形式, RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。通俗地讲,使用RP…

软考 软件设计师 数据结构

大O表示法 常数阶,他的次数不会随着n的变大而变长 抓大头 取次方最大的 时间复杂度 没有循环 没有递归没有跟n相关的东西,那么他的复杂度就是o(1) 为什么ii*2那里会加1阿? 因为需要加一次才能跳出循环1 2 4 8 中间加…

有趣的回文检测

英文中有很多的回文词,回文词的拼法十分有趣,无论是从前往后拼读,还是从后往前拼读,他们的拼法和词义都不变。例如:dad(爸爸),mum(妈妈),noon&…

flac格式怎么转换mp3格式?

flac格式怎么转换mp3格式?什么是flac格式呢?通常来说,flac是一种无损音频压缩编码。flac格式主要特点就是无损压缩。对于flac格式而言,与其他有损压缩编码不同,比如与aac、mp3等相较而言,flac对原有的音频信…

PySide6/PyQT多线程之 生命周期:从创建到销毁的完整解析

前言 在PySide6/PyQT 中使用多线程时,多线程生命周期是一个重要的概念。如果不能正确地管理多线程生命周期,可能会导致程序崩溃、内存泄漏等问题。 在前面的文章中有介绍到 PySide6/PyQT 可以实现多线程的多个类, 有 QObject、QThread、QRun…

【C++刷题笔记】继承和多态常见面试题汇总

对C继承和多态方面的部分面试题进行了汇总 一、概念考察 1. 下面哪种面向对象的方法可以让你变得富有( ) A: 继承 B: 封装 C: 多态 D: 抽象 2. ( )是面向对象程序设计语言中的一种机制。这种机制实现了方法的定义与具体的对象无关,而对方法的调用则可以关联于具体…

双目测距--4 双目立体匹配 获取深度图

在这之前需要已经完成双目标定,这里是利用双目标定结果利用SGBM算法获取深度图,以及转伪彩图。 目录 StereoSGBM用到的参数: 一、 预处理参数 二 、代价参数 三 、动态规划参数 四、后处理参数 reprojectImageTo3D函数 获取真实距离 …

ChatGPT - 快速生成 流程图

文章目录 Prompt输出Copy 到 drawio Prompt 我想做一个研发标准化的流程,但是我是一个小白,不懂研发管理的流 程,我希望你作为一个经验丰富的技术管理人员,请帮我梳理一个完整流程,包括需求分析、概要设计,代码走查等等,输出的节点不少于18个,包含逻辑判断的分支,要通循实事求…

【SpringCloud微服务实践】服务注册与发现

注册与发现 在之前的示例中,采取的是硬编码的方式,需要调用的微服务的地址是被我们写死在文件或代码中的。在传统应用程序中,一般都是这么做的,然而这种方式存在不少缺陷: 静态配置:因为是写死的网络地址…