跳转至内容

探索 Ultralytics YOLOv8

概述

YOLOv8 由 Ultralytics 于 2023 年 1 月 10 日发布,在准确性和速度方面提供了前沿的性能。YOLOv8 在之前 YOLO 版本的基础上进行了改进,引入了新的特性和优化,使其成为各种应用中各种 目标检测 任务的理想选择。

Ultralytics YOLOv8



观看: Ultralytics YOLOv8 模型概述

YOLOv8 的主要特性

  • 高级骨干和颈部架构: YOLOv8 采用最先进的骨干和颈部架构,从而改进了特征提取目标检测性能。
  • 无锚点分离式 Ultralytics Head: YOLOv8 采用无锚点分离式 Ultralytics head,与基于锚点的方法相比,这有助于提高准确性并提高检测效率。
  • 优化的准确性-速度权衡: 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-pose 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
速度
CPU ONNX
(毫秒)
速度
A100 TensorRT
(毫秒)
参数
(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
速度
CPU ONNX
(毫秒)
速度
A100 TensorRT
(毫秒)
参数
(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
速度
CPU ONNX
(毫秒)
速度
A100 TensorRT
(毫秒)
参数
(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
速度
CPU ONNX
(毫秒)
速度
A100 TensorRT
(毫秒)
参数
(M)
FLOPs
(B) at 224
YOLOv8n-cls 224 69.0 88.3 12.9 0.31 2.7 0.5
YOLOv8s-cls 224 73.8 91.7 23.4 0.35 6.4 1.7
YOLOv8m-cls 224 76.8 93.5 85.4 0.62 17.0 5.3
YOLOv8l-cls 224 76.8 93.5 163.0 0.87 37.5 12.3
YOLOv8x-cls 224 79.0 94.6 232.0 1.01 57.4 19.0

请参阅姿势估计文档,获取在COCO上训练的这些模型的使用示例,其中包括 1 个预训练类别“person”。

模型 尺寸
(像素)
mAP姿势估计
50-95
mAP姿势估计
50
速度
CPU ONNX
(毫秒)
速度
A100 TensorRT
(毫秒)
参数
(M)
FLOPs
(B)
YOLOv8n-pose 640 50.4 80.1 131.8 1.18 3.3 9.2
YOLOv8s-pose 640 60.0 86.2 233.2 1.42 11.6 30.2
YOLOv8m-pose 640 65.0 88.8 456.3 2.00 26.4 81.0
YOLOv8l-pose 640 67.6 90.0 784.5 2.59 44.4 168.6
YOLOv8x-pose 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 个预训练类别。

模型 尺寸
(像素)
mAP测试
50
速度
CPU ONNX
(毫秒)
速度
A100 TensorRT
(毫秒)
参数
(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 训练和推理示例。有关这些和其他模式的完整文档,请参见PredictTrainValExport文档页面。

请注意,以下示例适用于用于目标检测的 YOLOv8 Detect 模型。有关其他支持的任务,请参阅SegmentClassifyOBB 文档和 Pose 文档。

示例

PyTorch pretrained *.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

引用与致谢

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.0Enterprise 许可提供。

常见问题

什么是 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 个 epochs 的示例:

示例

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)
yolo train model=yolov8n.pt 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)
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0

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



📅 创建于 1 年前 ✏️ 更新于 5 个月前

评论