Ultralytics YOLO27:
Get Started

探索 Ultralytics YOLOv8#

概述#

Ultralytics 于 2023 年 1 月 10 日发布 YOLOv8,在精度和速度方面带来了前沿性能。YOLOv8 基于早期 YOLO 版本的进展,推出了新功能和优化,使其成为多种应用场景下各类目标检测任务的理想选择。

YOLOv8 性能对比图



观看: Ultralytics YOLOv8 模型概览
在 Ultralytics Platform 上试用

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

YOLOv8 的主要特性#

  • 先进的主干网络和颈部架构: YOLOv8 采用先进的主干网络和颈部架构,从而提升了特征提取和目标检测性能。
  • 无锚框解耦 Ultralytics 检测头: YOLOv8 采用无锚框解耦 Ultralytics 检测头,与基于锚框的方法相比,这有助于提高准确率并提升检测效率。
  • 优化准确率与速度的权衡: 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-clsyolov8n-cls.pt yolov8s-cls.pt yolov8m-cls.pt yolov8l-cls.pt yolov8x-cls.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 模型变体,重点介绍它们适用的特定任务,以及它们与推理、验证、训练和导出等多种操作模式的兼容性。表格展现了 YOLOv8 系列的多功能性和鲁棒性,使其适用于各种计算机视觉应用。

性能指标#

性能

这些模型在 COCO 上训练,包含 80 个预训练类别;使用示例请参阅检测文档。

模型尺寸
(像素)
mAP验证集
50-95
速度
CPU ONNX
(毫秒)
速度
A100 TensorRT
(毫秒)
参数
(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.1
YOLOv8x64053.9479.13.5368.2257.8

YOLOv8 使用示例#

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

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

示例

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

from ultralytics import YOLO

# 加载一个在 COCO 上预训练的 YOLOv8n 模型
model = YOLO("yolov8n.pt")

# 显示模型信息(可选)
model.info()

# 使用 COCO8 示例数据集训练模型 100 个 epoch
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# 使用 YOLOv8n 模型对 'bus.jpg' 图像进行推理
results = model("path/to/bus.jpg")

引用与致谢#

Ultralytics YOLOv8 出版物

由于模型快速演进,Ultralytics 尚未为 YOLOv8 发布正式研究论文。我们致力于推动技术进步并让技术更易于使用,而不是编写静态文档。要获取有关 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 和企业版许可证提供。

常见问题#

  • YOLOv8 通过先进功能提升实时目标检测性能。与早期版本不同,YOLOv8 集成了无锚框解耦 Ultralytics 检测头、先进的主干网络和颈部架构,并优化了准确率与速度之间的权衡,因此非常适合各种应用。更多详情请参阅概览和主要特性部分。

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

  • YOLOv8 模型在各种基准数据集上均达到先进的性能。例如,YOLOv8n 模型在 COCO 数据集上的平均精度均值(mAP)为 37.3,在 A100 TensorRT 上的速度为 0.99 毫秒。各模型变体在不同任务和数据集上的详细性能指标,请参阅性能指标部分。

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

    示例
    from ultralytics import YOLO
    
    # 加载一个在 COCO 上预训练的 YOLOv8n 模型
    model = YOLO("yolov8n.pt")
    
    # 使用 COCO8 示例数据集训练模型 100 个 epoch
    results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

    更多详情请参阅训练文档。

  • 可以,你可以针对不同导出格式,从速度和准确率方面对 YOLOv8 模型进行性能基准测试。你可以使用 PyTorch、ONNX、TensorRT 等进行基准测试。下面是使用 Python 和 CLI 进行基准测试的命令示例:

    示例
    from ultralytics.utils.benchmarks import benchmark
    
    # 在 GPU 上进行基准测试
    benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, device=0)

    更多信息请参阅性能指标部分。

评论