Ultralytics YOLO26-Pose 性能基准全解析:COCO 关键点精度、端到端推理延迟与模型选型指南
2026/9/10 19:16:32 网站建设 项目流程

Ultralytics YOLO26-Pose 性能基准全解析:COCO 关键点精度、端到端推理延迟与模型选型指南

【免费下载链接】ultralyticsUltralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation, image classification, pose estimation, object tracking项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics

YOLO26 是 Ultralytics 当前主打统一视觉模型家族,而-pose后缀的五个预训练关键点模型(YOLO26n/s/m/l/x-pose)覆盖了从边缘端到高精度服务端的人体姿态估计需求。本文以仓库中的yolo-pose-perf.md性能宏表为骨架,逐列解释 COCO Keypoints 上的 mAP、CPU ONNX 与 T4 TensorRT10 延迟、参数量与 FLOPs 的含义,并结合 yolo26-pose.yaml 与 Pose26 检测头源码 讲清端到端(e2e)精度口径的由来,最后给出可一键复现的验证命令与按规模选型建议。读完本文,你将能独立读懂并复核这份基准表,也能为自己的姿态估计项目选定合适的 YOLO26-Pose 起点模型。

一、YOLO26-Pose 预训练模型性能总览

这份性能宏表(docs/macros/yolo-pose-perf.md)是 Ultralytics 文档体系中的共享片段,同时被嵌入三个页面复用:模型总览页 docs/en/models/yolo26.md(Performance Metrics → Pose (COCO) 标签页)、姿态估计任务页 docs/en/tasks/pose.md 以及 COCO-Pose 数据集页 docs/en/datasets/pose/coco.md。五个模型的完整基准数据如下(640 输入分辨率、COCO Keypoints val2017 评测):

模型尺寸 (pixels)mAP pose 50-95 (e2e)mAP pose 50 (e2e)CPU ONNX 速度 (ms)T4 TensorRT10 速度 (ms)参数量 (M)FLOPs (B)
YOLO26n-pose64057.283.340.3 ± 0.51.8 ± 0.02.97.5
YOLO26s-pose64063.086.685.3 ± 0.92.7 ± 0.010.423.9
YOLO26m-pose64068.889.6218.0 ± 1.55.0 ± 0.121.573.1
YOLO26l-pose64070.490.5275.4 ± 2.46.5 ± 0.125.991.3
YOLO26x-pose64071.691.6565.4 ± 3.012.2 ± 0.257.6201.7

所有模型权重名以-pose结尾(如yolo26n-pose.pt),预训练于 COCO Keypoints(person 关键点)数据集,首次使用时由 Ultralytics 自动下载。

二、逐列读懂这张基准表

  • 尺寸(pixels):模型输入分辨率。表中五个模型统一为 640×640。同一模型在更大输入上精度会上升、延迟会增加,因此横向对比必须在相同输入尺寸下进行。
  • mAP pose 50-95 (e2e)/mAP pose 50 (e2e):姿态估计的核心精度指标,沿用 COCO 的 Object Keypoint Similarity(OKS)准则计算。50-95 表示 OKS 阈值从 0.50 到 0.95 的平均值,对应表格标题行写法的 "50-95(e2e)";pose 50 则是单一 0.50 阈值下的 mAP。列名中的e2e是端到端(end-to-end)的缩写:YOLO26 默认使用一对一(one-to-one)检测头直接输出结果,推理阶段无需非极大值抑制(NMS)。
  • CPU ONNX 速度(ms):将模型导出为 ONNX 后在 CPU 上单张推理的平均耗时(含标准差的重复测量),反映无 GPU 场景下的落地成本。
  • T4 TensorRT10 速度(ms):NVIDIA T4 GPU 上以 TensorRT 10 引擎推理单张图像的平均耗时,是云上与边缘 GPU 部署的典型参考值。
  • 参数量(M)与 FLOPs(B):需要特别注意的是,表格口径为model.fuse()之后的融合模型——融合会合并 Conv 与 BatchNorm 层,且端到端模型会移除辅助的一对多(one-to-many)训练头,因此数值明显低于完整训练架构。

三、评测口径与复现命令

这张表不是营销宣传图,而是可以用仓库内置命令直接复现的。任务文档 docs/en/tasks/pose.md 明确了评测口径与复现方式:

  • mAP 口径:单模型、单尺度(single-model single-scale),数据集为 COCO Keypoints val2017。复现命令:
yolo val pose data=coco-pose.yaml device=0
  • 速度口径:逐张(batch=1)在 COCO val 图像上取平均,分别跑 CPU 与 GPU 两条命令:
yolo val pose data=coco-pose.yaml batch=1 device=0 # GPU(T4/TensorRT 场景) yolo val pose data=coco-pose.yaml batch=1 device=cpu # CPU(ONNX 场景)
  • 参数量 / FLOPs 口径:在 Python 中依次执行model.fuse()后再统计。如下面的 YAML 结构分析所示,预训练权重保留完整训练架构,直接统计会得到更高的数值,这解释了为何 yolo26-pose.yaml 文件头注释里的规模参数摘要(n/s/m/l/x 分别为约 3.7M / 11.9M / 24.3M / 28.7M / 62.9M 参数)普遍高于上表融合后的 2.9M / 10.4M / 21.5M / 25.9M / 57.6M。

需要复现训练或验证原始精度时,可直接在 Python 中加载官方权重并调用验证接口:

from ultralytics import YOLO model = YOLO("yolo26n-pose.pt") # 也可替换为 yolo26s/m/l/x-pose.pt 或自定义权重 metrics = model.val() # 数据集与参数沿用训练时设置 print(metrics.pose.map) # mAP pose 50-95 print(metrics.pose.map50) # mAP pose 50 print(metrics.pose.maps) # 逐类别 mAP pose 50-95 列表

四、五个规模的横向对比与选型建议

将表中的关键数值按精度与开销两个维度拆解,可以看到清晰的梯度:

对比维度n → ss → mm → ll → x
mAP pose 50-95 提升+5.8+5.8+1.6+1.2
T4 TensorRT10 延迟+0.9 ms+2.3 ms+1.5 ms+5.7 ms
CPU ONNX 延迟+45 ms+132.7 ms+57.4 ms+290 ms

据此可以得出几条可靠的选型结论:

  • YOLO26n-pose(2.9M 参数):以 1.8 ms 的 T4 延迟和 40 ms 级 CPU 延迟提供 57.2 的 mAP 50-95,是边缘设备、移动端与实时视频流的首选;CPU 侧相对其余规模的延迟优势最明显。
  • YOLO26s-pose / YOLO26m-pose:二者是"每毫秒精度收益"最高的区间,适合通用服务端部署,也是从 nano 微调、量级升级时性价比最高的选择。
  • YOLO26l-pose / YOLO26x-pose:mAP 已趋于饱和(l→x 仅 +1.2),但 CPU 延迟从 275 ms 陡增至 565 ms。若应用对 CPU 实时性敏感而只需要 70~72 的精度,YOLO26l-pose 比 x 更划算;追求最高关键点精度且 GPU 充裕时才建议 x。

五、精度数字背后的模型结构:端到端 Pose26 检测头

宏表中的 "(e2e)" 标注源自模型本身的架构属性。打开 ultralytics/cfg/models/26/yolo26-pose.yaml 可以看到 YOLO26-Pose 的关键配置:

nc: 80 # 类别数(COCO 检测基准,姿态任务实际聚焦 person 关键点) end2end: True # 端到端模式:推理时无需 NMS reg_max: 1 # DFL bins(YOLO26 移除 DFL 后的设置) kpt_shape: [17, 3] # 17 个关键点,每个关键点 3 维 (x, y, visible) head: - [[16, 19, 22], 1, Pose26, [nc, kpt_shape]] # 在 P3/P4/P5 三级特征上接 Pose26 头

模型的 compound scaling 常量(scales)定义了五档:n 为深度/宽度 (0.50, 0.25),s 为 (0.50, 0.50),x 为 (1.00, 1.50),这是上表参数量呈非线性增长的结构性原因。

从源码看,Pose26 检测头(class Pose26(Pose))相比早期 YOLO 姿态头引入了两大变化,直接影响精度与速度表现:

  1. 基于归一化流的 RLE 关键点精度提升:Pose26 头内嵌了RealNVP()流模型,用于对关键点坐标的不确定性进行建模(即 Residual Log-Likelihood Estimation,RLE 思想),并额外通过cv4_sigma输出每个关键点的sigma_x/sigma_y预测。这使得关键点定位精度显著高于前代,是表中 mAP 50-95 数值的来源之一。
  2. 端到端解码与轻量推理end2end=True时 Pose26 复制一份one2one_cv4用于一对一输出;同时fuse()方法会清空cv2/cv3/cv4等一对多训练头,保留最精简的推理路径。这与上一节"融合后参数低于训练架构"的表格口径完全对应。

六、17 个关键点定义与 COCO-Pose 数据集

表中的全部精度指标都建立在 COCO 人体 17 关键点协议上。默认 YOLO26-Pose 模型的每个索引对应一个人体部位:

0鼻子、1左眼、2右眼、3左耳、4右耳、5左肩、6右肩、7左肘、8右肘、9左腕、10右腕、11左髋、12右髋、13左膝、14右膝、15左踝、16右踝。

数据集配置见 ultralytics/cfg/datasets/coco-pose.yaml,其中声明了关键点结构kpt_shape: [17, 3]、水平翻转时左右关键点互换索引的flip_idx,以及仅0: person一个类别。若需要快速验证训练/推理流程而不下载 20 GB 级完整 COCO-Pose,可使用配套的小样本集 COCO8-Pose(见 docs/en/datasets/pose/coco8-pose.md),其配置 coco8-pose.yaml 结构完全相同、仅图像数量大幅缩减。

七、Pose mAP 的评估原理:OKS 与关键点 IoU

理解表格数值口径,还需要知道"姿态 mAP"与传统检测 mAP 的差异。从 ultralytics/models/yolo/pose/val.py 的实现看:

  • 当数据集关键点结构为[17, 3]时,验证器使用标准OKS_SIGMA(每个人体关键点的标准差先验)计算 OKS;
  • update_metrics中通过kpt_iou(...)计算关键点层面的 IoU,据此判断预测真伪并累计 TP;
  • 最终由 ultralytics/utils/metrics.py 中的PoseMetrics汇总出map / map50 / map75 / maps等结果对象,正是上一节 Python 验证代码里metrics.pose.*的字段来源。

换言之,表中的 57.2 ~ 71.6 这一列反映的是"关键点预测坐标与真值在 OKS 意义下的对齐程度",而不只是框是否框中人;训练时也正因此对关键点回归损失给予额外监督。

八、从基准到落地:训练、推理与导出一条龙

若要基于这份基准表在自己的数据上微调,或把对应模型接入业务,可按任务文档 docs/en/tasks/pose.md 的标准流程操作:

训练(以 COCO8-Pose 为例,快速验证流程):

# 从预训练权重开始训练(推荐) yolo pose train data=coco8-pose.yaml model=yolo26n-pose.pt epochs=100 imgsz=640

推理

yolo pose predict model=yolo26n-pose.pt source='path/to/image.jpg'

Python 侧通过result.keypoints访问关键点:result.keypoints.xy为像素坐标、result.keypoints.xyn为归一化坐标、result.keypoints.data则包含(x, y, visible)三元组。

导出(ONNX 等格式),用于复现表中的 CPU ONNX / TensorRT 场景:

yolo export model=yolo26n-pose.pt format=onnx # 导出 ONNX yolo export model=yolo26n-pose.pt format=engine # 导出 TensorRT 引擎

导出完成后可对yolo26n-pose.onnx直接执行yolo predict model=yolo26n-pose.onnx ...,从而在自己的硬件上实测延迟,判断与表中 T4 / CPU 参考值的差距。

九、总结

YOLO26-Pose 性能宏表以统一的 640 输入与 COCO Keypoints val2017 口径,给出了 n/s/m/l/x 五个端到端关键点模型在精度(mAP pose 50-95 从 57.2 到 71.6)、GPU/CPU 延迟与参数量上的完整画像。读懂它需要同时理解三件事:OKS 准则下的姿态 mAP 口径、e2e 融合模型的参数统计方式、以及 Pose26 检测头(RLE 流模型 + NMS-free 解码)对精度与速度的贡献。借助仓库提供的yolo val pose data=coco-pose.yaml系列命令与五档规模数据的梯度变化,开发者在选型时可以清晰地权衡"每毫秒能换回多少精度",为边缘实时姿态估计或高精度离线分析各自找到合适的起点。

【免费下载链接】ultralyticsUltralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation, image classification, pose estimation, object tracking项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询