YOLO 模型基础入门及官方示例演示

文章目录

  • Github
  • 官网
  • 简介
  • 模式
  • 数据集
  • Python 环境
  • Conda 环境
  • Docker 环境
    • 部署 CPU 版本
    • 官方 CLI 示例
    • 官方 Python 示例
  • 任务
    • 目标检测
    • 姿势估计
    • 图像分类
  • Ultralytics HUB
  • 视频流示例

Github

  • https://github.com/ultralytics/ultralytics

官网

  • https://docs.ultralytics.com/zh
  • https://docs.ultralytics.com/zh/quickstart/

简介

Ultralytics 是一个软件公司,专注于开发计算机视觉和深度学习工具。他们的主要产品是 YOLOv5,这是一个快速、高效的目标检测模型,特别适用于实时应用。YOLOv5 是对经典的 YOLO(You Only Look Once)系列模型的升级,采用了现代化的深度学习技术和优化策略,以提供更好的性能和更低的计算成本。

Ultralytics 还开发了其他一些工具和库,帮助研究人员和开发者在计算机视觉和深度学习领域更高效地工作。他们的开源项目广受欢迎,为社区提供了强大的工具和资源,以推动计算机视觉技术的发展和应用。

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

模式

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

在这里插入图片描述

Ultralytics YOLOv8 不只是另一种对象检测模型;它是一个多功能框架,旨在覆盖机器学习模型的整个生命周期–从数据摄取和模型训练到验证、部署和实际跟踪。每种模式都有特定的用途,其设计旨在为您提供不同任务和用例所需的灵活性和效率。

  • 训练模式:在自定义或预载数据集上对模型进行微调。
  • Val模式:用于验证模型性能的训练后检查点。
  • 预测模式:释放模型对真实世界数据的预测能力。
  • 导出模式:让您的模型以各种格式部署就绪。
  • 跟踪模式:将物体检测模式扩展到实时跟踪应用中。
  • 基准模式:在不同的部署环境中分析模型的速度和准确性。

数据集

  • https://docs.ultralytics.com/zh/datasets/

Ultralytics 为各种数据集提供支持,以促进检测、实例分割、姿态估计、分类和多目标跟踪等计算机视觉任务。下面列出了Ultralytics 的主要数据集,然后是每个计算机视觉任务和相应数据集的摘要。

  • 物体检测: 边界框物体检测是一种计算机视觉技术,它通过在每个物体周围绘制一个边界框来检测和定位图像中的物体。

  • 实例分割: 实例分割是一种计算机视觉技术,涉及在像素级别识别和定位图像中的对象。

  • 姿势估计: 姿态估计是一种用于确定物体相对于摄像机或世界坐标系的姿态的技术。

  • 分类: 图像分类是一项计算机视觉任务,包括根据图像的视觉内容将其归入一个或多个预定义的类别。

  • 定向边框(OBB): 定向包围盒(OBB)是计算机视觉中一种利用旋转包围盒检测图像中倾斜物体的方法,通常应用于航空和卫星图像。

  • 多目标跟踪: 多目标跟踪是一种计算机视觉技术,涉及在视频序列中检测和跟踪多个目标。

Python 环境

# 怕包冲突可以清理当前环境所有安装包
pip freeze | xargs pip uninstall -y
pip install --upgrade pip
pip install ultralytics
# 显示预测结果图片
pip install matplotlib

Conda 环境

  • Anaconda:https://www.anaconda.com/
  • Miniconda:https://docs.anaconda.com/miniconda/
# 创建 Conda 环境
conda create --name ultralytics-env python=3.8 -y
# 激活新环境
conda activate ultralytics-env
# 安装 Ultralytics
conda install -c conda-forge ultralytics
  • CUDA 环境说明

如果您在CUDA 环境中工作,最好安装 ultralytics, pytorch和 pytorch-cuda 共同解决任何冲突

conda install -c pytorch -c nvidia -c conda-forge pytorch torchvision pytorch-cuda=11.8 ultralytics

Docker 环境

  • 镜像:https://hub.docker.com/r/ultralytics/ultralytics
# 推荐用于训练的 GPU 映像。
docker pull ultralytics/ultralytics:latest
docker pull ultralytics/ultralytics:8.2.59
# 基于 Ubuntu 的仅 CPU 版本,适用于推理和无 GPU 的环境。
docker pull ultralytics/ultralytics:latest-cpu
docker pull ultralytics/ultralytics:8.2.59-cpu
# 仅包含Python 和必要依赖项的最小镜像,是轻量级应用和开发的理想选择。
docker pull ultralytics/ultralytics:latest-python
docker pull ultralytics/ultralytics:8.2.59-python
  • 仅使用CPU
docker run -it --rm ultralytics/ultralytics:8.2.59-cpu
  • 使用图形处理器
# Run with all GPUs
sudo docker run -it --ipc=host --gpus all ultralytics/ultralytics:8.2.59# Run specifying which GPUs to use
sudo docker run -it --ipc=host --gpus '"device=2,3"' ultralytics/ultralytics:8.2.59

部署 CPU 版本

docker run -it --rm --name yolo ultralytics/ultralytics:8.2.59-cpu
# 拷贝 ultralytics 源码
docker cp yolo:/usr/src/ultralytics ./yolo# 部署 yolo
docker run -it --rm --name yolo \
-v ./yolo/ultralytics:/usr/src/ultralytics \
ultralytics/ultralytics:8.2.59-cpu

注意: 以下脚本与CLI命令都是在容器内执行。

官方 CLI 示例

YOLO 命令行界面 (CLI) 允许使用简单的单行命令,而无需Python 环境。CLI 不需要定制或Python 代码。您只需使用 yolo 指挥。

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

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

官方 Python 示例

pip install matplotlib
import matplotlib.pyplot as plt
from ultralytics import YOLO# 加载模型
model = YOLO("yolov8n.yaml")  # 从头开始构建一个新模型
model = YOLO("yolov8n.pt")  # 加载预训练模型(推荐用于训练)# 使用模型
model.train(data="coco8.yaml", epochs=3)  # 训练模型
metrics = model.val()  # 在验证集上评估模型性能
results = model("https://ultralytics.com/images/bus.jpg")  # 对一张图片进行预测
path = model.export(format="onnx")  # 将模型导出为ONNX格式# 显示预测结果图片
plt.figure(figsize=(10, 8))
plt.imshow(results[0].plot())  # 显示预测结果图片
plt.axis('off')  # 关闭坐标轴
plt.show()
  • 使用 matplotlib 显示预测结果

在这里插入图片描述

任务

  • https://docs.ultralytics.com/zh/tasks/

在这里插入图片描述

YOLOv8 是一个支持多种计算机视觉任务的人工智能框架。该框架可用于执行检测、分割、obb、分类和姿态估计。每种任务都有不同的目标和用例。

目标检测

  • https://docs.ultralytics.com/zh/tasks/detect/

在这里插入图片描述

  • 训练模型
from ultralytics import YOLO# 加载模型
model = YOLO("yolov8n.yaml")  # 从 YAML 文件构建一个新模型
model = YOLO("yolov8n.pt")  # 加载预训练模型(推荐用于训练)
model = YOLO("yolov8n.yaml").load("yolov8n.pt")  # 从 YAML 文件构建模型,并加载预训练权重# 训练模型
results = model.train(data="coco8.yaml", epochs=3, imgsz=640)

在这里插入图片描述

  • 验证模型
from ultralytics import YOLO# 加载模型
model = YOLO("yolov8n.pt")  # 加载官方模型
model = YOLO("/usr/src/ultralytics/runs/detect/train/weights/best.pt")  # 加载自定义模型# 验证模型
metrics = model.val()  # 无需参数,数据集和设置已被记录
metrics.box.map  # mAP50-95,所有类别的平均精度(Average Precision)
metrics.box.map50  # mAP50,所有类别的平均精度(Average Precision)在IoU阈值为50%时
metrics.box.map75  # mAP75,所有类别的平均精度(Average Precision)在IoU阈值为75%时
metrics.box.maps  # 一个包含每个类别的mAP50-95的列表,即每个类别的平均精度(Average Precision)

在这里插入图片描述

  • 测试模型
import matplotlib.pyplot as plt
from ultralytics import YOLO# 加载模型
model = YOLO("yolov8n.pt")  # 加载官方模型
model = YOLO("/usr/src/ultralytics/runs/detect/train/weights/best.pt")  # 加载自定义模型# 使用模型进行预测
results = model("https://ultralytics.com/images/bus.jpg")  # 对一张图片进行预测# 显示预测结果图片
plt.figure(figsize=(10, 8))
plt.imshow(results[0].plot())  # 显示预测结果图片
plt.axis('off')  # 关闭坐标轴
plt.show()
yolo pose predict model=/usr/src/ultralytics/runs/detect/train/weights/best.pt source='https://ultralytics.com/images/bus.jpg'

在这里插入图片描述

  • 导出模型
from ultralytics import YOLO# 加载模型
model = YOLO("yolov8n.pt")  # 加载官方模型
model = YOLO("/usr/src/ultralytics/runs/detect/train/weights/best.pt")  # 加载自定义训练模型# 导出模型为 ONNX 格式
model.export(format="onnx")  # 将模型导出为ONNX格式

在这里插入图片描述

  • 测试导出的 ONNX 模型
from ultralytics import YOLO# 加载导出的 ONNX 模型
onnx_model = YOLO("/usr/src/ultralytics/runs/detect/train/weights/best.onnx")# 运行推理
results = onnx_model("https://ultralytics.com/images/bus.jpg")  # 对一张图片进行推理
  • CLI 命令方式
yolo predict model=/usr/src/ultralytics/runs/detect/train/weights/best.onnx source='https://ultralytics.com/images/bus.jpg'

在这里插入图片描述

姿势估计

  • https://docs.ultralytics.com/zh/tasks/pose/

在这里插入图片描述

  • 训练模型
from ultralytics import YOLO# 加载模型
model = YOLO("yolov8n-pose.yaml")  # 从 YAML 文件构建一个新模型
model = YOLO("yolov8n-pose.pt")  # 加载预训练模型(推荐用于训练)
model = YOLO("yolov8n-pose.yaml").load("yolov8n-pose.pt")  # 从 YAML 文件构建模型,并加载预训练权重# 训练模型
results = model.train(data="coco8-pose.yaml", epochs=3, imgsz=640)

在这里插入图片描述

  • 验证模型
from ultralytics import YOLO# 加载模型
model = YOLO("yolov8n-pose.pt")  # 加载官方模型
model = YOLO("/usr/src/ultralytics/runs/pose/train/weights/best.pt")  # 加载自定义模型# 验证模型
metrics = model.val()  # 无需参数,数据集和设置已被记录
metrics.box.map  # mAP50-95,所有类别的平均精度(Average Precision)
metrics.box.map50  # mAP50,所有类别的平均精度(Average Precision)在IoU阈值为50%时
metrics.box.map75  # mAP75,所有类别的平均精度(Average Precision)在IoU阈值为75%时
metrics.box.maps  # 一个包含每个类别的mAP50-95的列表,即每个类别的平均精度(Average Precision)
  • 测试模型
import matplotlib.pyplot as plt
from ultralytics import YOLO# 加载模型
model = YOLO("yolov8n-pose.pt")  # 加载官方模型
model = YOLO("/usr/src/ultralytics/runs/pose/train/weights/best.pt")  # 加载自定义模型# 使用模型进行预测
results = model("https://ultralytics.com/images/bus.jpg")  # 对一张图片进行预测# 显示预测结果图片
plt.figure(figsize=(10, 8))
plt.imshow(results[0].plot())  # 显示预测结果图片
plt.axis('off')  # 关闭坐标轴
plt.show()
  • 使用 matplotlib 显示预测结果

在这里插入图片描述

  • CLI 命令方式
yolo pose predict model=/usr/src/ultralytics/runs/pose/train/weights/best.pt source='https://ultralytics.com/images/bus.jpg'

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

  • 导出模型
from ultralytics import YOLO# 加载模型
model = YOLO("yolov8n-pose.pt")  # 加载官方模型
model = YOLO("/usr/src/ultralytics/runs/pose/train/weights/best.pt")  # 加载自定义训练模型# 导出模型为 ONNX 格式
model.export(format="onnx")  # 导出模型为ONNX格式

图像分类

  • https://docs.ultralytics.com/zh/tasks/classify/

在这里插入图片描述

  • 训练模型
from ultralytics import YOLO# 加载模型
model = YOLO("yolov8n-cls.yaml")  # 从 YAML 文件构建一个新模型
model = YOLO("yolov8n-cls.pt")  # 加载预训练模型(推荐用于训练)
model = YOLO("yolov8n-cls.yaml").load("yolov8n-cls.pt")  # 从 YAML 文件构建模型,并加载预训练权重# 训练模型
results = model.train(data="mnist160", epochs=3, imgsz=64)

在这里插入图片描述

  • 验证模型
from ultralytics import YOLO# 加载模型
model = YOLO("yolov8n-cls.pt")  # 加载官方模型
model = YOLO("/usr/src/ultralytics/runs/classify/train/weights/best.pt")  # 加载自定义模型# 验证模型
metrics = model.val()  # 无需参数,数据集和设置已被记录
metrics.top1  # top1 准确率(accuracy)
metrics.top5  # top5 准确率(accuracy)
  • 测试模型
from ultralytics import YOLO# 加载模型
model = YOLO("yolov8n-cls.pt")  # 加载官方模型
model = YOLO("/usr/src/ultralytics/runs/classify/train/weights/best.pt")  # 加载自定义模型# 使用模型进行预测
results = model("https://ultralytics.com/images/bus.jpg")  # 对一张图片进行预测
  • CLI 命令方式
yolo classify predict model=/usr/src/ultralytics/runs/classify/train/weights/best.pt source='https://ultralytics.com/images/bus.jpg'

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

  • 导出模型
from ultralytics import YOLO# 加载模型
model = YOLO("yolov8n-cls.pt")  # 加载官方模型
model = YOLO("/usr/src/ultralytics/runs/classify/train/weights/best.pt")  # 加载自定义训练模型# 导出模型
model.export(format="onnx")  # 导出模型为ONNX格式

Ultralytics HUB

  • https://hub.ultralytics.com/home

在 Ultralytics HUB 上创建和训练复杂的模型,无需代码,只需几秒钟即可完成,适用于网络和移动设备。

在这里插入图片描述

注: Ultralytics HUB 具体用法将在下篇文章介绍敬请关注。

视频流示例

  • 使用 OpenCV 和 YOLO 模型进行实时目标检测并在视频流中显示检测结果

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

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

相关文章

【IEEE出版】第四届能源工程与电力系统国际学术会议(EEPS 2024)

第四届能源工程与电力系统国际学术会议(EEPS 2024) 2024 4th International Conference on Energy Engineering and Power Systems 重要信息 大会官网:www.iceeps.com 大会时间:2024年8月9-11日 大会…

2024年7月萤火虫航天为NASA发射8颗立方体卫星

作为美国宇航局立方体卫星发射计划的一部分,萤火虫航空航天公司于7月3日在该公司的阿尔法火箭上发射了八颗小型卫星。这枚名为“夏日噪音”的火箭于太平洋夏令时(PDT)晚上9点04分从加利福尼亚州范登堡空军基地的2号航天发射场成功升空。 立方…

解读vue3源码-响应式篇2

提示:看到我 请让我滚去学习 文章目录 vue3源码剖析reactivereactive使用proxy代理一个对象1.首先我们会走isObject(target)判断,我们reactive全家桶仅对对象类型有效(对象、数组和 Map、Set 这样的集合类型),而对 str…

【数学建模】多波束测线问题(持续更新)

多波束测线问题 问题 1建立模型覆盖宽度海水深度重叠长度重叠率 问题二问题三问题四 问题 1 与测线方向垂直的平面和海底坡面的交线构成一条与水平面夹角为 α \alpha α的斜线(如下图),称 α \alpha α为坡度。请建立多波束测深的覆盖宽度及…

Python代码,强化学习,深度学习

python代码编写,Python算法设计,强化学习优化,改进模型,训练模型,测试模型,可视化绘制,代编运行结果,交互多模型改进,预测模型,算法修改,Python包…

11.斑马纹列表 为没有文本的链接设置样式

斑马纹列表 创建一个背景色交替的条纹列表。 使用 :nth-child(odd) 或 :nth-child(even) 伪类选择器,根据元素在一组兄弟元素中的位置,对匹配的元素应用不同的 background-color。 💡 提示:你可以用它对其他 HTML 元素应用不同的样式,如 <div>、<tr>、<p&g…

利用PyTorch进行模型量化

利用PyTorch进行模型量化 目录 利用PyTorch进行模型量化 一、模型量化概述 1.为什么需要模型量化&#xff1f; 2.模型量化的挑战 二、使用PyTorch进行模型量化 1.PyTorch的量化优势 2.准备工作 3.选择要量化的模型 4.量化前的准备工作 三、PyTorch的量化工具包 1.介…

openGauss学习笔记-312 openGauss 数据迁移-MySQL迁移-迁移MySQL数据库至openGauss-概述

文章目录 openGauss学习笔记-312 openGauss 数据迁移-MySQL迁移-迁移MySQL数据库至openGauss-概述312.1 工具部署架构图 openGauss学习笔记-312 openGauss 数据迁移-MySQL迁移-迁移MySQL数据库至openGauss-概述 312.1 工具部署架构图 当前openGauss支持对MySQL迁移服务&#x…

【多任务YOLO】 A-YOLOM: You Only Look at Once for Real-Time and Generic Multi-Task

You Only Look at Once for Real-Time and Generic Multi-Task 论文链接&#xff1a;http://arxiv.org/abs/2310.01641 代码链接&#xff1a;https://github.com/JiayuanWang-JW/YOLOv8-multi-task 一、摘要 高精度、轻量级和实时响应性是实现自动驾驶的三个基本要求。本研究…

多光谱的空间特征和光谱特征Statistics of Real-World Hyperspectral Images

文章目录 Statistics of Real-World Hyperspectral Images1.数据集2.spatial-spectral representation3.Separable Basis Components4.进一步分析5.复现一下5.1.patch的特征和方差和论文近似&#xff0c;5.2 spatial的basis和 spectral的basis 6.coef model7.join model Statis…

多视角数据的不确定性估计:全局观的力量

论文标题&#xff1a;Uncertainty Estimation for Multi-view Data: The Power of Seeing the Whole Picture 中文译名&#xff1a;多视角数据的不确定性估计:全局观的力量 原文地址&#xff1a;Uncertainty Estimation for Multi-view Data: The Power of Seeing the Whole …

python用selenium网页模拟时xpath无法定位元素解决方法2

有时我们在使用python selenium xpath时&#xff0c;无法定位元素&#xff0c;红字显示no such element。上一篇文章写了1种情况&#xff0c;是包含iframe的&#xff0c;详见https://blog.csdn.net/Sixth5/article/details/140342929。 本篇写第2种情况&#xff0c;就是xpath定…

类和对象:赋值函数

1.运算符重载 • 当运算符被⽤于类类型的对象时&#xff0c;C语⾔允许我们通过运算符重载的形式指定新的含义。C规定类类型对象使⽤运算符时&#xff0c;必须转换成调⽤对应运算符重载&#xff0c;若没有对应的运算符重载&#xff0c;则会编译报错&#xff1b;&#xff08;运算…

数据旋律与算法和谐:LLMs的微调交响

论文&#xff1a;https://arxiv.org/pdf/2310.05492代码&#xff1a;暂未开源机构&#xff1a;阿里巴巴领域&#xff1a;模型微调发表&#xff1a;ACL 2024 这篇论文《How Abilities in Large Language Models are Affected by Supervised Fine-tuning Data Composition》深入…

【BUG】已解决:raise KeyError(key) from err KeyError: (‘name‘, ‘age‘)

已解决&#xff1a;raise KeyError(key) from err KeyError: (‘name‘, ‘age‘) 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xf…

python学习(不是广告)是我自己看了这么多课总结的经验

入门 首先推荐的是林粒粒的python入门学习 在你看完这套Python入门教程后&#xff1a; 想继续巩固基础 &#x1f449; 想学习Python数据分析 &#x1f449; 想学习Python AI大模型应用开发 &#x1f449; 进阶 入门之后就是进阶使用python实现 1.办公效率化 2.数据分析&am…

信弘智能与图为科技共探科技合作新蓝图

本期导读 近日&#xff0c;图为信息科技&#xff08;深圳&#xff09;有限公司迎来上海信弘智能科技有限公司代表的到访&#xff0c;双方共同探讨英伟达生态系统在人工智能领域的发展。 在科技日新月异的今天&#xff0c;跨界合作与技术交流成为了推动行业发展的重要驱动。7月…

GraphRAG+ollama+LM Studio+chainlit

这里我们进一步尝试将embedding模型也换为本地的&#xff0c;同时熟悉一下流程和学一些新的东西 1.环境还是用之前的&#xff0c;这里我们先下载LLM 然后你会在下载nomic模型的时候崩溃&#xff0c;因为无法搜索&#xff0c;无法下载 解决办法如下lm studio 0.2.24国内下载…

Ubuntu 24.04 LTS Noble安装Docker Desktop简单教程

Docker 为用户提供了在 Ubuntu Linux 上快速创建虚拟容器的能力。但是&#xff0c;那些不想使用命令行管理容器的人可以在 Ubuntu 24.04 LTS 上安装 Docker Desktop GUI&#xff0c;本教程将提供用于设置 Docker 图形用户界面的命令…… Docker Desktop 是一个易于使用的集成容…

脑肿瘤有哪些分类? 哪些人会得脑肿瘤?

脑肿瘤&#xff0c;作为一类严重的脑部疾病&#xff0c;其分类复杂多样&#xff0c;主要分为原发性脑肿瘤和脑转移瘤两大类。原发性脑肿瘤起源于颅内组织&#xff0c;常见的有胶质瘤、脑膜瘤、生殖细胞瘤、颅内表皮样囊肿及鞍区肿瘤等。其中&#xff0c;胶质瘤作为最常见的脑神…