【pip安装】YOLOv8目标检测初步上手

说明:本篇blog是关于Ultralytics官方教程的学习笔记,环境为windows+conda

1、下载安装YOLOv8

1.1 YOLOv8介绍

Ultralytics YOLOv8 是一个尖端的、最先进的(SOTA)模型,它建立在以前 YOLO 版本的成功基础之上,并引入了新功能和改进,以进一步提高性能和灵活性。
YOLOv8 旨在快速、准确且易于使用,使其成为广泛的对象检测跟踪实例分割图像分类姿态估计任务的极佳选择。

1.2 环境准备

# 新建虚拟环境,要求 Python>=3.8
conda create --name yolov8 python=3.9

在这里插入图片描述

# 激活环境
conda activate yolov8
# 关闭环境
conda deactivate

# 安装 PyTorch, PyTorch>=1.8.
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

在这里插入图片描述
在这里插入图片描述

1.3 YOLOv8下载

Github地址:https://github.com/ultralytics/ultralytics
可以通过点击Download Zip进行下载,按照Github中的介绍部分,还可以通过pip进行下载
在这里插入图片描述

# pip下载yolov8
pip install ultralytics

Pip install the ultralytics package including all requirements(指的是requirements.txt内提供的依赖包)
在这里插入图片描述

2、运行YOLOv8

2.1 两行代码调用

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")

# Run inference on the source
results = model(source=“one.jpg”, show=True, conf=0.4, save=True)

在这里插入图片描述
在这里插入图片描述
在代码目录下载了yolov8n.pt,和生成了runs文件夹

2.2 返回内容

文档链接🔗:https://docs.ultralytics.com/modes/predict/
Ultralytics YOLO模型在推理时会返回一个Python列表的Result对象,或者在传递了stream=True参数给模型时会返回一个内存高效的Python生成器的Result对象

from ultralytics import YOLO

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

# Run batched inference on a list of images
results = model(["im1.jpg", "im2.jpg"])  # return a list of Results objects 返回Results对象的列表

# Process results list
for result in results:
    boxes = result.boxes  # Boxes object for bounding box outputs
    masks = result.masks  # Masks object for segmentation masks outputs
    keypoints = result.keypoints  # Keypoints object for pose outputs
    probs = result.probs  # Probs object for classification outputs
    obb = result.obb  # Oriented boxes object for OBB outputs
    result.show()  # display to screen
    result.save(filename="result.jpg")  # save to disk
from ultralytics import YOLO

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

# Run batched inference on a list of images
results = model(["im1.jpg", "im2.jpg"], stream=True)  # return a generator of Results objects

# Process results generator
for result in results:
    boxes = result.boxes  # Boxes object for bounding box outputs
    masks = result.masks  # Masks object for segmentation masks outputs
    keypoints = result.keypoints  # Keypoints object for pose outputs
    probs = result.probs  # Probs object for classification outputs
    obb = result.obb  # Oriented boxes object for OBB outputs
    result.show()  # display to screen
    result.save(filename="result.jpg")  # save to disk

2.3 推理源设置

文档链接🔗:https://docs.ultralytics.com/modes/predict/#inference-sources

YOLOv8 能够处理不同类型的输入源进行推理,如下表所示。
这些输入源包括静态图像、视频流以及各种数据格式。表格还指示了每种输入源是否可以在流模式下使用,即通过参数 stream=True ✅ 来启用。
流模式适用于处理视频或实时流,因为它生成结果的生成器而不是将所有帧加载到内存中。

使用 stream=True 来处理长视频或大型数据集,可以有效地管理内存。当 stream=False 时,所有帧或数据点的结果都会存储在内存中,这可能会迅速累积并导致大型输入的内存不足错误。相比之下,stream=True 利用生成器,它只保留当前帧或数据点的结果在内存中,显著降低了内存消耗并防止了内存不足的问题。

在这里插入图片描述

2.4 推理参数设置

文档链接🔗:https://docs.ultralytics.com/modes/predict/#inference-arguments

model.predict() 在推理时接受多个参数,可以在推理时传递这些参数以覆盖默认设置

from ultralytics import YOLO

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

# Run inference on 'bus.jpg' with arguments
model.predict("bus.jpg", save=True, imgsz=320, conf=0.5)

更多内容可以看文档,文档写的非常详细

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用System-Verilog实现FPGA基于DE2-115开发板驱动HC_SR04超声波测距模块|集成蜂鸣器,led和vga提示功能

文章目录 前言一、实验原理1.1 传感器概述:1.2 传感器引脚1.3 传感器工作原理1.4 整体测距原理及编写思路 二、System-Verilog文件2.1 时钟分频(1)clk_div.sv2.2 超声波测距(1)hc_sr_trig.sv(2)…

简单聊聊分布式系统和微服务

分布式系统是由多个独立的计算机节点通过网络相互连接协作,共同完成一项或多项任务的系统。这些节点可以是服务器、个人电脑、移动设备等,它们之间通过消息传递或共享数据来协调工作,每个节点负责系统整体功能的一部分。分布式系统的关键在于…

k8s学习--k8s集群使用容器镜像仓库Harbor

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 环境 步骤一 容器镜像仓库Harbor部署二、Kubernetes集群使用harbor仓库 环境 Ip主机名cpu内存硬盘192.168.10.11master1cpu双核2G40G192.168.10.12node011cpu双核2…

网络链路层

data: 2024/5/25 14:02:20 周六 limou3434 叠甲:以下文章主要是依靠我的实际编码学习中总结出来的经验之谈,求逻辑自洽,不能百分百保证正确,有错误、未定义、不合适的内容请尽情指出! 文章目录 1.协议结构2.封装分离3.…

计算机毕业设计 | SpringBoot 房屋销售租赁平台 房屋购物网站(附源码)

1,绪论 1.1 背景调研 在房地产行业持续火热的当今环境下,房地产行业和互联网行业协同发展,互相促进融合已经成为一种趋势和潮流。本项目实现了在线房产平台的功能,多种技术的灵活运用使得项目具备很好的用户体验感。 这个项目的…

Python自动化识别与删除Excel表格空白行和列

在处理Excel数据时,经常会遇到含有空白行和空白列的情况。这些空白区域不仅占用表格显示空间,还可能导致数据分析时出现偏差,影响数据处理的效率与结果的准确性,如空白行可能干扰数据聚合操作,导致统计计数不准确&…

【嵌入式DIY实例】-OLED显示天气数据

OLED显示天气数据 文章目录 OLED显示天气数据1、硬件准备与接线2、天气数据获取准备3、代码实现在这个物联网项目中,本文将展示如何使用 ESP8266 NodeMCU (ESP-12E) Wi-Fi 开发板和 SSD1306 OLED 显示屏(12864 像素)制作一个简单的互联网气象站。 NodeMCU 从天气网站 openwe…

牛客网刷题 | BC114 圣诞树 (不理解)

目前主要分为三个专栏,后续还会添加: 专栏如下: C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读! 初来乍到,如有错误请指出,感谢! 这道题没搞懂 也没找到视…

软件定义汽车,通信连接世界 | 2024汽车软件与通信大会开幕

5月28日-30日,在江苏省工业和信息化厅、智能汽车安全技术全国重点实验室指导下,由中国中检所属中国汽车工程研究院股份有限公司(下称:中国汽研)主办,中汽院(江苏)汽车工程研究院有限公司承办的2024汽车软件…

RTOS(ENV)串口DMA接收GPS数据并解析

RTOS(ENV)配置STM32串口DMA接收模式 环境: RTOS 4.0.3Keil5ENVSTm32l475 ENV配置 使能串口: 2. 使能DMA,并设置接收缓冲区大小: 创建工程 scons --targetmdk工程配置 1. 创建串口设备句柄 #define SA…

从零开始实现一个可靠、健壮的内存池

文章目录 概要 这个项目是干什么的项目所需储备知识什么是内存池 池化技术内存池内存池主要解决的问题框架设计开发计划系统测试情况遇到的主要问题和解决方法分工和协作提交仓库目录和文件描述比赛收获 概要 这个项目是干什么的 当前项目是实现一个高并发的内存池&#xff0c…

养生与健康|一起跟随林曦老师养个元气满满

暄桐是一间传统美学教育教室,创办于2011年,林曦是创办人和授课老师,教授以书法为主的传统文化和技艺,皆在以书法为起点,亲近中国传统之美,以实践和所得,滋养当下生活。    在暄桐教室的六阶…

QT 使用信号和槽,让QLabel的内容实时与QLineEdit同步,类似vue框架的双向绑定

在窗口里放置一个单行文本编辑器(QLineEdit)和一个标签控件(QLabel),实现的效果就是当编辑器的内容被编辑时,标 签控件同步显 示编辑控件里的内容 1)当 lineEdit 控件被用户编辑时,它…

边缘密度分布图 | ggExtra包/aplot拼图/ggpubr包 等的实现方法

概述:aplot 拼图效果好 根据网友探索[1],总结如下: ggExtra 包的拼图间隙有点大,图例在主图和边缘图之间,除非去掉图例,否则没法看。aplot包的默认拼图间隙很小,比较美观,图例在外…

Java——二进制原码、反码和补码

一、简要介绍 原码、反码和补码只是三种二进制不同的表示形式,每个二进制数都有这三个形式。 1、原码 原码是将一个数的符号位和数值位分别表示的方法。 最高位为符号位,0表示正,1表示负,其余位表示数值的绝对值。 例如&…

生成式AI,在云端的绽放与盛开

编辑:阿冒 设计:沐由 毫无疑问,生成式AI已然成为当今技术发展和应用创新的重要引擎之一。 过去的一年多时间里,我们每个人都在目睹和见证着生成式AI是如何以移山倒海的力量,为诸多行业带来革命性乃至颠覆性的变革&…

FS118M 单A口QC协议芯片

FS118M是一个QC快充协议芯片,FS118M可以识别插入的手机类型,选择最为合适的协议应对手机需要。USB Type-A 口的 D连接到FS118M芯片,当手机插入到 USB Type-A 口后,根据各个协议的约定,手机和FS118M之间将开始互相识别&…

计网ppt标黄知识点整理第(2)章节——谢希仁版本、期末复习自用

物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。4 个特性: 机械特性:指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等。 电气特性:指明在接口电缆的各条线上出现…

C/C++开发,2024.x CLion安装,亲测有效

CLion 是一款专为 C 和 C 开发者设计的跨平台集成开发环境(IDE),提供了智能代码补全、代码分析、调试和 Git 集成等功能,以提高开发效率和代码质量。 1.下载安装c/c开发工具 CLion 先去官网下载,我这里下载的是最新版…

【docker】docker的安装

如果之前安装了旧版本的docker我们需要进行卸载: 卸载之前的旧版本 卸载 # 卸载旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc # 卸载历史版本 apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker…