跳至内容

YOLOv8

概述

YOLOv8 是YOLO 系列实时物体检测器的最新迭代产品,在精度和速度方面都具有尖端性能。在之前YOLO 版本的基础上,YOLOv8 引入了新的功能和优化,使其成为广泛应用中各种物体检测任务的理想选择。

Ultralytics YOLOv8



观看: Ultralytics YOLOv8 机型概览

主要功能

  • 先进的骨干和颈部架构: YOLOv8 采用了最先进的骨干和颈部架构,从而提高了特征提取和物体检测性能。
  • 无锚分裂Ultralytics 头: YOLOv8 采用无锚分裂Ultralytics 头,与基于锚的方法相比,它有助于提高检测过程的准确性和效率。
  • 优化精度与速度之间的权衡: YOLOv8 专注于保持精度与速度之间的最佳平衡,适用于各种应用领域的实时目标检测任务。
  • 各种预训练模型: YOLOv8 提供一系列预训练模型,以满足各种任务和性能要求,从而更容易为您的特定用例找到合适的模型。

支持的任务和模式

YOLOv8 系列提供多种模型,每种模型都专门用于计算机视觉中的特定任务。这些模型旨在满足从物体检测到实例分割、姿态/关键点检测、定向物体检测和分类等更复杂任务的各种要求。

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

模型 文件名 任务 推论 验证 培训 出口
YOLOv8 yolov8n.pt yolov8s.pt yolov8m.pt yolov8l.pt yolov8x.pt 检测
YOLOv8-seg yolov8n-seg.pt yolov8s-seg.pt yolov8m-seg.pt yolov8l-seg.pt yolov8x-seg.pt 实例分割
YOLOv8-姿势 yolov8n-pose.pt yolov8s-pose.pt yolov8m-pose.pt yolov8l-pose.pt yolov8x-pose.pt yolov8x-pose-p6.pt 姿势/关键点
YOLOv8-obb yolov8n-obb.pt yolov8s-obb.pt yolov8m-obb.pt yolov8l-obb.pt yolov8x-obb.pt 定向检测
YOLOv8-cls yolov8n-cls.pt yolov8s-cls.pt yolov8m-cls.pt yolov8l-cls.pt yolov8x-cls.pt 分类

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

性能指标

性能

有关在COCO 上训练的这些模型的使用示例,请参见检测文档,其中包括 80 个预先训练的类别。

模型 尺寸
(像素)
mAPval
50-95
速度
CPUONNX
(ms)
速度
A100 TensorRT
(毫秒)
params
(M)
FLOPs
(B)
YOLOv8n 640 37.3 80.4 0.99 3.2 8.7
YOLOv8s 640 44.9 128.4 1.20 11.2 28.6
YOLOv8m 640 50.2 234.7 1.83 25.9 78.9
YOLOv8l 640 52.9 375.2 2.39 43.7 165.2
YOLOv8x 640 53.9 479.1 3.53 68.2 257.8

有关在Open Image V7 上训练的这些模型的使用示例,请参见检测文档,其中包括 600 个预先训练的类别。

模型 尺寸
(像素)
mAPval
50-95
速度
CPUONNX
(ms)
速度
A100 TensorRT
(毫秒)
params
(M)
FLOPs
(B)
YOLOv8n 640 18.4 142.4 1.21 3.5 10.5
YOLOv8s 640 27.7 183.1 1.40 11.4 29.7
YOLOv8m 640 33.6 408.5 2.26 26.2 80.6
YOLOv8l 640 34.9 596.9 2.43 44.1 167.4
YOLOv8x 640 36.3 860.6 3.56 68.7 260.6

有关在COCO 上训练的这些模型的使用示例,请参阅 "分割文档",其中包括 80 个预先训练的类别。

模型 尺寸
(像素)
mAPbox
50-95
mAPmask
50-95
速度
CPUONNX
(ms)
速度
A100 TensorRT
(毫秒)
params
(M)
FLOPs
(B)
YOLOv8n-seg 640 36.7 30.5 96.1 1.21 3.4 12.6
YOLOv8s-seg 640 44.6 36.8 155.7 1.47 11.8 42.6
YOLOv8m-seg 640 49.9 40.8 317.0 2.18 27.3 110.2
YOLOv8l-seg 640 52.3 42.6 572.4 2.79 46.0 220.5
YOLOv8x-seg 640 53.4 43.4 712.1 4.02 71.8 344.1

有关在ImageNet 上训练的这些模型的使用示例,请参见分类文档,其中包括 1000 个预训练的类别。

模型 尺寸
(像素)
acc
top1
acc
top5
速度
CPUONNX
(ms)
速度
A100 TensorRT
(毫秒)
params
(M)
FLOPs
(B) at 640
YOLOv8n-cls 224 69.0 88.3 12.9 0.31 2.7 4.3
YOLOv8s-cls 224 73.8 91.7 23.4 0.35 6.4 13.5
YOLOv8m-cls 224 76.8 93.5 85.4 0.62 17.0 42.7
YOLOv8l-cls 224 76.8 93.5 163.0 0.87 37.5 99.7
YOLOv8x-cls 224 79.0 94.6 232.0 1.01 57.4 154.8

有关在COCO 上训练的这些模型的使用示例,请参见姿势估计文档,其中包括一个预训练类别 "人"。

模型 尺寸
(像素)

50-95
mAPpose
50
速度
CPUONNX
(ms)
速度
A100 TensorRT
(毫秒)
params
(M)
FLOPs
(B)
YOLOv8n-姿势 640 50.4 80.1 131.8 1.18 3.3 9.2
YOLOv8s-姿势 640 60.0 86.2 233.2 1.42 11.6 30.2
YOLOv8m-姿势 640 65.0 88.8 456.3 2.00 26.4 81.0
YOLOv8l-姿势 640 67.6 90.0 784.5 2.59 44.4 168.6
YOLOv8x-姿势 640 69.2 90.2 1607.1 3.73 69.4 263.2
YOLOv8x-pose-p6 1280 71.6 91.2 4088.7 10.04 99.1 1066.4

有关在DOTAv1 上训练的这些模型的使用示例,请参见定向检测文档,其中包括 15 个预先训练的类别。

模型 尺寸
(像素)
mAPtest
50
速度
CPUONNX
(ms)
速度
A100 TensorRT
(毫秒)
params
(M)
FLOPs
(B)
YOLOv8n-obb 1024 78.0 204.77 3.57 3.1 23.3
YOLOv8s-obb 1024 79.5 424.88 4.07 11.4 76.3
YOLOv8m-obb 1024 80.5 763.48 7.61 26.4 208.6
YOLOv8l-obb 1024 80.7 1278.42 11.83 44.5 433.8
YOLOv8x-obb 1024 81.36 1759.10 13.23 69.5 676.7

使用示例

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

请注意,以下示例用于YOLOv8 Detect模型的对象检测。有关其他支持的任务,请参阅 "分割"、"分类"、"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')

CLI 命令可直接运行模型:

# Load a COCO-pretrained YOLOv8n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640

# Load a COCO-pretrained YOLOv8n model and run inference on the 'bus.jpg' image
yolo predict model=yolov8n.pt source=path/to/bus.jpg

引文和致谢

如果您在工作中使用了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企业许可证提供。



创建于 2023-11-12,更新于 2024-04-17
作者:glenn-jocher(12),Laughing-q(2),AyushExel(1),fcakyon(1)

评论