YOLOV8的性能和使用

发布于:2024-12-18 ⋅ 阅读:(27) ⋅ 点赞:(0)

【欢迎关注编码小哥,学习更多实用的编程方法和技巧】

       YOLOv8 是YOLO 系列实时物体检测器的新的迭代产品,在精度和速度方面都具有尖端性能。在之前YOLO 版本的基础上,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)

模型 尺寸
(像素)
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

检测(开放图像)

模型 尺寸
(像素)
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)

模型 尺寸
(像素)
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)

模型 尺寸
(像素)
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

OBB

模型 尺寸
(像素)
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 训练和推理示例:

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

from ultralytics import YOLO

#加载预训练模型YOLOv8n
model = YOLO("yolov8n.pt")

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

#基于COCO8数据集训练100轮
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# 利用YOLOv8n模型预测图片'bus.jpg'
results = model("path/to/bus.jpg")

常见问题

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

YOLOv8 是Ultralytics YOLO 系列的最新版本,旨在通过先进的功能提高实时目标检测性能。与早期版本不同的是,YOLOv8 采用了无锚点分离式Ultralytics 头、最先进的骨干和颈部结构,并优化了精度与速度的权衡,是各种应用的理想之选。更多详情,请查看概述主要功能部分。

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

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

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

YOLOv8 模型在各种基准数据集上都达到了最先进的性能。例如,YOLOv8n 模型在 COCO 数据集上的 mAP(平均精度)为 37.3,在 A100TensorRT 上的速度为 0.99 毫秒。每个模型变体在不同任务和数据集上的详细性能指标见性能指标部分。

如何训练YOLOv8 模型?

可使用Python训练YOLOv8 模型,以下是使用 COCO 预训练的YOLOv8 模型在 COCO8 数据集上训练模型 100 个epoch 的示例:

from ultralytics import YOLO

#加载预训练YOLOv8n模型
model = YOLO("yolov8n.pt")

#基于COCO8数据集训练100轮
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

能否对YOLOv8 型号进行性能基准测试?

可以对YOLOv8 机型在各种导出格式下的速度和准确性进行性能基准测试。可以使用PyTorch,ONNX,TensorRT 等进行基准测试。下面是使用Python进行基准测试的命令示例:

from ultralytics.utils.benchmarks import benchmark

#在GPU上压测
benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)


网站公告

今日签到

点亮在社区的每一天
去签到