一张图像数清 133 个关键点:MMPose 全身姿态估计快速上手
2026/9/20 6:49:27 网站建设 项目流程

一张图像数清 133 个关键点:MMPose 全身姿态估计快速上手

【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose

MMPose 是 OpenMMLab 的姿态估计工具箱。它的 WholeBody 模块解决一件事:从单张图里同时定位人的身体、面部、双手和双脚共 133 个关键点,一次推理拿到全身姿态。

🎯 先数清楚:133 个关键点都分布在哪儿

很多教程只说"全身姿态",却不说具体在估什么。COCO-WholeBody 标注把这 133 个点拆成四组:

部位点数编号范围说明
身体170-16鼻、眼耳、肩肘腕、髋膝踝
足部1017-22左右脚的大脚趾、小脚趾、脚跟
面部6823-90轮廓、眉眼鼻口
双手4291-132每只手 21 个关节

编号和定义写在数据集基类 configs/base/datasets/coco_wholebody.py 里,每点名称、左右配对、颜色都有。看懂这张表后你就能明白:所谓全身姿态估计,就是比只做 17 点身体姿态多估了 116 个点。

⚙️ 又快又准的诀窍:按部位分头、各估各的

133 个点如果硬塞进一张大特征图,脸和手指这些密集区域很容易互相干扰。MMPose 的思路是把身体、面部、手部拆给不同的检测头分别建模,再在推理时并行输出、最后拼回一个人的 133 点结果。骨干则用 CSPNeXt(一种跨阶段部分连接的轻量网络,源码在 mmpose/models/backbones/cspnext.py),从 tiny 到 x-large 多档规模可选。这套分层结构让精度和帧速不必互相拆台。

📊 基准数据:COCO-WholeBody 验证集怎么看

下面是仓库文档里 RTMPose 的公开成绩(COCO-WholeBody v1.0 验证集,配的人体检测器 human AP 为 56.4):

模型输入分辨率Whole APWhole AR备注
rtmpose-m256×19258.267.4小模型首选
rtmpose-l256×19261.170.0官方称 130+ FPS
rtmpose-l384×28864.873.0精度最高档

AP 可简单理解为定位越准分越高,100 封顶。怎么选?要帧速就上 256×192 的 rtmpose-m/l;要精度就把分辨率加到 384×288,AP 能再涨 3.7 个点。

🏃 最小推理流程:三步跑起来

from mmpose.apis import MPInferencer # 加载全身姿态估计模型(133 关键点) inferencer = MPInferencer('topdown', 'rtmpose-l_256x192') # 传入图片路径即可 result = inferencer('demo/data/coco/000000000785.jpg')

分三步理解:

  1. MPInferencer把模型配置加载进内存,'topdown'表示先检测人、再逐人估姿态的两阶段模式;
  2. 第二行是唯一的推理调用,图片路径、张量都能喂;
  3. 结果里每人对应一组 133 个坐标加可见度分数,取出来就是可用的关键点数据。

想直接看完整效果,仓库里的 demo/inferencer_demo.py 就是这套流程的脚本版。

🏋️ 能解决什么实际问题

  • 健身动作评分:输入一段运动视频的关键点序列,输出关节角度与标准模板的偏差分(参考 projects/just_dance,它就算舞蹈动作相似度)。
  • 手势交互:输入单帧图像,输出双手 42 点坐标,下游做手势分类或捏合检测。
  • 虚拟角色驱动:输入全身 133 点,输出骨骼驱动参数,面部 68 点负责表情,手指 42 点负责精细动作。

🚀 部署路线怎么选

  • 云端:用 docker/serve 里的 Dockerfile 打包成推理服务,镜像内已配好模型挂载和推理参数。
  • 移动端:先把模型转 ONNX,再做 INT8 量化或剪枝;RTMPose 官方在移动端有完整部署记录,130+ FPS 的基准就是在轻量档测的。

🔄 换自己的数据:微调三步走

  1. 转格式:用 tools/dataset_converters 里的脚本(如labelstudio2coco.py)把标注转成 COCO-WholeBody 的 JSON;
  2. 改配置:复制一份 configs/wholebody_2d_keypoint/rtmpose/coco-wholebody 下的训练配置,替换数据路径和关键点映射,不用从零写;
  3. 开训tools/train.py指向该配置即可,学习率调度、数据增强都已在配置里配好。

❓ 新手常见问题

手机上能跑吗?能。选 rtmpose-t/m 这种小模型,配合量化和剪枝,RTMPose 系列本身就是冲着实时部署设计的。

2D 和 3D 差在哪?2D 给你图像平面上的 (x, y),3D 要多估一个深度 z 并恢复空间结构;MMPose 的 3D 方向可看 projects/rtmpose3d,思路是先把 2D 关键点抬升(lifting)到 3D。

关键点被挡住了怎么办?模型会输出可见度分数,低于阈值你就当这个点不可信,而不是硬用它。

写在最后

MMPose 的全身姿态估计把 133 关键点的定位做到了可商用的帧速,一套配置同时覆盖身体、面部和双手,这正是多数应用最缺的一块。接下来 3D 抬升与多视角融合会补上深度维度,届时全身姿态分析会更接近真实的三维人体。

【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose

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

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

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

立即咨询