探索 Ultralytics YOLOv8

概述

YOLOv8 由 Ultralytics 于 2023 年 1 月 10 日发布,在精度和速度方面提供了尖端的性能。基于以往 YOLO 版本的进步,YOLOv8 引入了新的功能和优化,使其成为各种应用场景下 目标检测 任务的理想选择。

YOLOv8 性能对比图



Watch: Ultralytics YOLOv8 Model Overview
在 Ultralytics Platform 上尝试

直接在 Ultralytics Platform 上探索并运行 YOLOv8 模型。

YOLOv8 的主要功能

  • 先进的骨干网络 (Backbone) 和颈部网络 (Neck) 架构: YOLOv8 采用了最先进的骨干和颈部架构,从而提升了 特征提取目标检测 的性能。
  • 无锚点 (Anchor-free) 分离式 Ultralytics Head: YOLOv8 采用了无锚点的分离式 Ultralytics head,与基于锚点的方法相比,它有助于提高精度并使检测过程更加高效。
  • 优化的精度-速度权衡: YOLOv8 专注于在精度和速度之间保持最佳平衡,适用于多种应用领域中的实时目标检测任务。
  • 多种预训练模型: YOLOv8 提供了一系列预训练模型以满足不同的任务和性能要求,让你更容易找到适合你特定用例的模型。

支持的任务和模式

YOLOv8 系列提供了一系列多样化的模型,每种模型都专门针对计算机视觉中的特定任务。这些模型旨在满足各种需求,从目标检测到更复杂的任务,如 实例分割、姿态/关键点检测、旋转目标检测和分类。

YOLOv8 系列的每个变体都针对其各自的任务进行了优化,确保了高性能和高精度。此外,这些模型兼容各种操作模式,包括 推理验证训练导出,从而促进了它们在部署和开发不同阶段的使用。

模型文件名任务推理验证训练导出
YOLOv8yolov8n.pt yolov8s.pt yolov8m.pt yolov8l.pt yolov8x.pt检测
YOLOv8-segyolov8n-seg.pt yolov8s-seg.pt yolov8m-seg.pt yolov8l-seg.pt yolov8x-seg.pt实例分割
YOLOv8-poseyolov8n-pose.pt yolov8s-pose.pt yolov8m-pose.pt yolov8l-pose.pt yolov8x-pose.pt yolov8x-pose-p6.pt姿态/关键点
YOLOv8-obbyolov8n-obb.pt yolov8s-obb.pt yolov8m-obb.pt yolov8l-obb.pt yolov8x-obb.pt旋转目标检测
YOLOv8-clsyolov8n-cls.pt yolov8s-cls.pt yolov8m-cls.pt yolov8l-cls.pt yolov8x-cls.pt分类

此表格概述了 YOLOv8 模型变体,重点介绍了它们在特定任务中的适用性以及它们与推理、验证、训练和导出等各种操作模式的兼容性。它展示了 YOLOv8 系列的多功能性和鲁棒性,使其适用于 计算机视觉 中的多种应用。

性能指标

性能

See Detection Docs for usage examples with these models trained on COCO, which include 80 pretrained classes.

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(ms)
速度
A100 TensorRT
(ms)
参数
(M)
FLOPs
(B)
YOLOv8n64037.380.40.993.28.7
YOLOv8s64044.9128.41.2011.228.6
YOLOv8m64050.2234.71.8325.978.9
YOLOv8l64052.9375.22.3943.7165.2
YOLOv8x64053.9479.13.5368.2257.8

YOLOv8 使用示例

此示例提供了简单的 YOLOv8 训练和推理示例。有关这些模式以及其他 模式 的完整文档,请参阅 预测训练验证导出 文档页面。

请注意,以下示例适用于目标检测的 YOLOv8 检测 模型。有关其他支持的任务,请参阅 分割分类OBB姿态 文档。

示例

可以将 PyTorch 预训练的 *.pt 模型以及配置文件 *.yaml 传递给 YOLO() 类,以在 Python 中创建模型实例:

from ultralytics import YOLO

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

# Display model information (optional)
model.info()

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference with the YOLOv8n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")

引文与致谢

Ultralytics YOLOv8 出版物

由于 YOLOv8 模型发展迅速,Ultralytics 尚未发布正式的研究论文。我们专注于推进技术并使其更易于使用,而不是制作静态文档。有关 YOLO 架构、功能和用法的最新信息,请参阅我们的 GitHub 存储库文档

如果你在工作中使用 YOLOv8 模型或本存储库中的任何其他软件,请使用以下格式引用它:

引用
@software{yolov8_ultralytics,
  author = {Glenn Jocher and Ayush Chaurasia and Jing Qiu},
  title = {Ultralytics YOLOv8},
  version = {8.0.0},
  year = {2023},
  url = {https://github.com/ultralytics/ultralytics},
  orcid = {0000-0001-5950-6979, 0000-0002-7603-6750, 0000-0003-3783-7069},
  license = {AGPL-3.0}
}

请注意,DOI 尚在处理中,一旦可用,将添加到引用中。YOLOv8 模型根据 AGPL-3.0企业版 许可证提供。

常见问题 (FAQ)

什么是 YOLOv8,它与之前的 YOLO 版本有何不同?

YOLOv8 旨在通过高级功能提高实时目标检测性能。与早期版本不同,YOLOv8 采用了 无锚点分割 Ultralytics 检测头、最先进的 骨干网络 和颈部架构,并提供优化的 精度-速度权衡,使其成为各种应用的理想选择。有关更多详细信息,请查看 概述关键特性 部分。

我该如何将 YOLOv8 用于不同的计算机视觉任务?

YOLOv8 支持广泛的计算机视觉任务,包括目标检测、实例分割、姿态/关键点检测、旋转目标检测和分类。每个模型变体都针对其特定任务进行了优化,并兼容各种操作模式,如 推理验证训练导出。有关更多信息,请参阅 支持的任务和模式 部分。

YOLOv8 模型的性能指标是什么?

YOLOv8 模型在各种基准测试数据集上实现了最先进的性能。例如,YOLOv8n 模型在 COCO 数据集上实现了 37.3 的 mAP(平均精度均值),在 A100 TensorRT 上达到了 0.99 毫秒的速度。各模型变体在不同任务和数据集上的详细性能指标可以在 性能指标 部分找到。

如何训练 YOLOv8 模型?

可以使用 Python 或 CLI 训练 YOLOv8 模型。以下是使用 COCO 预训练的 YOLOv8 模型在 COCO8 数据集上训练 100 个 轮次 的示例:

示例
from ultralytics import YOLO

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

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

有关更多详细信息,请访问 训练 文档。

我可以对 YOLOv8 模型进行性能基准测试吗?

是的,可以对 YOLOv8 模型进行速度和精度方面的性能基准测试,涵盖各种导出格式。你可以使用 PyTorch、ONNX、TensorRT 等进行基准测试。以下是使用 Python 和 CLI 进行基准测试的示例命令:

示例
from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)

有关更多信息,请查看 性能指标 部分。

评论