YOLO26N 姿态估计模型架构与 17 关键点解析

发布时间:2026/6/30 22:25:50

YOLO26N 姿态估计模型架构与 17 关键点解析 YOLO26N 姿态估计模型架构与 17 关键点解析1. 姿态估计概述姿态估计任务 ├── 输入RGB 图像 ├── 输出人体边界框 17 个关键点坐标 ├── 关键点鼻子、眼睛、耳朵、肩膀、肘、腕、髋、膝、踝 └── 应用跌倒检测、健身指导、动作识别、人机交互2. COCO 17 关键点定义关键点索引与连接关系 ┌─────┬──────────┬─────────────────────────┐ │ 索引 │ 名称 │ 连接关系 │ ├─────┼──────────┼─────────────────────────┤ │ 0 │ 鼻子 │ → 左眼(1), 右眼(2) │ │ 1 │ 左眼 │ → 鼻子(0), 左耳(3) │ │ 2 │ 右眼 │ → 鼻子(0), 右耳(4) │ │ 3 │ 左耳 │ → 左眼(1) │ │ 4 │ 右耳 │ → 右眼(2) │ │ 5 │ 左肩 │ → 右肩(6), 左肘(7) │ │ 6 │ 右肩 │ → 左肩(5), 右肘(8) │ │ 7 │ 左肘 │ → 左肩(5), 左腕(9) │ │ 8 │ 右肘 │ → 右肩(6), 右腕(10) │ │ 9 │ 左腕 │ → 左肘(7) │ │ 10 │ 右腕 │ → 右肘(8) │ │ 11 │ 左髋 │ → 右髋(12), 左膝(13) │ │ 12 │ 右髋 │ → 左髋(11), 右膝(14) │ │ 13 │ 左膝 │ → 左髋(11), 左踝(15) │ │ 14 │ 右膝 │ → 右髋(12), 右踝(16) │ │ 15 │ 左踝 │ → 左膝(13) │ │ 16 │ 右踝 │ → 右膝(14) │ └─────┴──────────┴─────────────────────────┘ 骨架连接骨骼 上半身0-1, 0-2, 1-3, 2-4, 5-6, 5-7, 6-8, 7-9, 8-10 下半身11-12, 11-13, 12-14, 13-15, 14-16 躯干5-11, 6-123. YOLO26N 姿态估计架构YOLO26N-Pose 模型结构 ├── Backbone主干 │ ├── Stem3 层 Conv下采样 8x │ ├── Stage 1-4C3k2 模块 │ └── SPPF空间金字塔池化 ├── Neck特征融合 │ ├── FPN自顶向下 │ └── PAN自底向上 └── Head检测头 ├── 分类分支1 类person ├── 回归分支4 值bbox └── 关键点分支17x3x, y, visibility4. 模型输出格式# YOLO26N-Pose 输出格式# 输出 tensor shape: [1, 56, 8400]# 56 4(bbox) 1(conf) 1(cls) 17*3(kpts)# 分解# bbox: [4, 8400] → cx, cy, w, h# conf: [1, 8400] → 目标置信度# cls: [1, 8400] → 类别person0# kpts: [51, 8400] → 17 个关键点 × (x, y, visibility)# 关键点 visibility# 0 不可见被遮挡# 1 部分可见# 2 完全可见5. 模型规格YOLO26N-Pose 模型参数 ┌──────────────────┬──────────┐ │ 参数 │ 数值 │ ├──────────────────┼──────────┤ │ 参数量 │ 3.2M │ │ FLOPs │ 6.8G │ │ 模型大小FP16 │ 6.4MB │ │ 模型大小INT8 │ 3.2MB │ │ 输入尺寸 │ 640x640 │ │ 输出维度 │ 56x8400 │ │ 关键点数 │ 17 │ │ COCO mAP50-95 │ 68.5 │ │ 推理延迟Orin NX│ 5.2ms │ └──────────────────┴──────────┘6. 快速体验#!/usr/bin/env python3quick_pose.py - 快速姿态估计fromultralyticsimportYOLO# 加载预训练模型modelYOLO(yolo26n-pose.pt)# 推理resultsmodel.predict(person.jpg,conf0.3,saveTrue)forrinresults:ifr.keypointsisnotNone:forkpinr.keypoints:kptskp.data[0]# [17, 3]fori,(x,y,vis)inenumerate(kpts):ifvis0.5:print(f关键点{i:2d}: ({x:6.1f},{y:6.1f}) 可见性:{vis:.2f})7. 关键点可视化#!/usr/bin/env python3draw_pose.py - 姿态可视化importcv2importnumpyasnp# 骨架连接定义SKELETON[(0,1),(0,2),(1,3),(2,4),# 头部(5,6),(5,7),(6,8),(7,9),(8,10),# 上半身(11,12),(11,13),(12,14),(13,15),(14,16),# 下半身(5,11),(6,12),# 躯干]# 关键点颜色COLORS[(255,0,0),(255,85,0),(255,170,0),(255,255,0),(170,255,0),(85,255,0),(0,255,0),(0,255,85),(0,255,170),(0,255,255),(0,170,255),(0,85,255),(0,0,255),(85,0,255),(170,0,255),(255,0,255),(255,0,170),]defdraw_pose(image,keypoints,conf_thresh0.3):绘制姿态骨架canvasimage.copy()# 绘制骨架连线for(i,j)inSKELETON:ifkeypoints[i][2]conf_threshandkeypoints[j][2]conf_thresh:pt1(int(keypoints[i][0]),int(keypoints[i][1]))pt2(int(keypoints[j][0]),int(keypoints[j][1]))cv2.line(canvas,pt1,pt2,(0,255,0),2)# 绘制关键点fori,(x,y,vis)inenumerate(keypoints):ifvisconf_thresh:cv2.circle(canvas,(int(x),int(y)),4,COLORS[i],-1)cv2.circle(canvas,(int(x),int(y)),6,(255,255,255),1)returncanvas总结维度YOLO26N-Pose参数量3.2M模型大小6.4MB (FP16) / 3.2MB (INT8)关键点17 个COCO 标准精度mAP 68.5延迟5.2ms (Orin NX FP16)核心要点输出格式[1, 56, 8400] bbox(4) conf(1) cls(1) kpts(51)关键点17 个 COCO 标准关键点每个含 (x, y, visibility)骨架连接16 条骨骼线用于可视化轻量化仅 3.2M 参数适合边缘部署

相关新闻