Ultralytics YOLOv8
概述
YOLOv8 是YOLO 系列实时物体检测器的最新迭代产品,在精度和速度方面都具有尖端性能。在之前YOLO 版本的基础上,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 |
速度 CPU ONNX (毫秒) |
速度 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 |
速度 CPU ONNX (毫秒) |
速度 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 |
速度 CPU ONNX (毫秒) |
速度 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 |
速度 CPU ONNX (毫秒) |
速度 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 |
速度 CPU ONNX (毫秒) |
速度 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 |
速度 CPU ONNX (毫秒) |
速度 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 命令可直接运行模型:
引用和致谢
Ultralytics YOLOv8 出版物
Ultralytics 由于模型的快速发展,YOLOv8 还没有发表正式的研究论文。我们专注于推进技术发展,使其更易于使用,而不是制作静态文档。有关YOLO 架构、功能和使用方法的最新信息,请参阅我们的GitHub 存储库和文档。
如果您在工作中使用了YOLOv8 模型或本资源库中的任何其他软件,请使用以下格式引用:
请注意,DOI 尚未公布,一旦公布,将添加到引文中。YOLOv8 模型是根据 AGPL-3.0和企业许可证提供。
常见问题
YOLOv8 是什么?它与以前的YOLO 版本有何不同?
YOLOv8 是Ultralytics YOLO 系列的最新版本,旨在通过先进的功能提高实时目标检测性能。与早期版本不同的是,YOLOv8 采用了无锚点分离式Ultralytics 头、最先进的骨干和颈部结构,并优化了精度与速度的权衡,是各种应用的理想之选。更多详情,请查看概述和主要功能部分。
如何将YOLOv8 用于不同的计算机视觉任务?
YOLOv8 支持多种计算机视觉任务,包括物体检测、实例分割、姿态/关键点检测、定向物体检测和分类。每个模型变体都针对其特定任务进行了优化,并与推理、验证、训练和导出等各种操作模式兼容。更多信息,请参阅 "支持的任务和模式"部分。
YOLOv8 模型的性能指标是什么?
YOLOv8 模型在各种基准数据集上都达到了最先进的性能。例如,YOLOv8n 模型在 COCO 数据集上的 mAP(平均精度)为 37.3,在 A100TensorRT 上的速度为 0.99 毫秒。每个模型变体在不同任务和数据集上的详细性能指标见性能指标部分。
如何训练YOLOv8 模型?
可使用Python 或CLI 训练YOLOv8 模型。以下是使用 COCO 预训练的YOLOv8 模型在 COCO8 数据集上训练模型 100 个epoch 的示例:
示例
有关详细信息,请访问培训文档。
我能否对YOLOv8 型号进行性能基准测试?
是的,可以对YOLOv8 机型在各种导出格式下的速度和准确性进行性能基准测试。您可以使用PyTorch,ONNX,TensorRT 等进行基准测试。下面是使用Python 和CLI 进行基准测试的命令示例:
示例
有关其他信息,请查看性能指标部分。