17个关键点不够用?MMPose全身姿态估计一次定位133个关键点
【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose
MMPose(OpenMMLab 的姿态估计工具箱)的 133 关键点全身姿态估计,把人体姿态从"四肢骨架"升级到"手指、面部、足部全覆盖",本文带你用最短路径跑通它,适合刚接触姿态估计的开发者。
为什么 17 个关节点不够用
先说个具体场景:你在做一个健身动作评分 App,判断用户做瑜伽时手指有没有伸直。如果模型只输出 COCO 的 17 个关节点,指尖、足跟全都不在检测范围里,评分逻辑根本写不出来。
133 关键点全身姿态估计就是为这类需求准备的。这 133 个点按部位分组:
| 部位 | 点数 | 主要用途 |
|---|---|---|
| 身体 | 17 | 主干关节,动作评分 |
| 面部 | 68 | 表情、视线方向 |
| 双手 | 42 | 手势与指尖精度 |
| 足部 | 10 | 重心与步态 |
MMPose 把这套点位约定落成了一批可直接运行的配置,集中在 configs/wholebody_2d_keypoint/ 目录下,按算法(RTMPose、HRNet 等)和数据集(COCO-WholeBody 等)分好类,挑一个配置加对应权重就能用。其中主打实时性的 RTMPose 系列,官方报告 RTMPose-l 在 COCO-WholeBody 验证集上达到 67.0% AP,速度约 130+ FPS。
一张图进来,发生了什么
对新手来说,MMPose 的处理链路就是三步流水:
- 找位置:人体检测器先在原图上框出每个人(这一步通常交给 MMDetection 完成,MMPose 仓库自带现成的检测器配置);
- 做姿态:对每个框裁剪出人像局部图,送进姿态模型,输出 133 个点的坐标和置信度;
- 贴回原图:把结果映射回原图坐标系,画成你熟悉的骨架图。
可以类比成流水线:检测器负责"在哪",姿态模型负责"什么姿势",可视化把两者拼起来。你在命令行里跑一次,这三步会自动串完。
最快的一条命令
仓库里的 demo 开箱即用。假设你已经 clone 了仓库,跑这一条命令:
# 对测试图片做全身姿态推理,自动下载预训练权重 python demo/inferencer_demo.py tests/data/coco/000000000785.jpg \ --pose2d wholebody --vis-out-dir vis_results/其中wholebody是预训练模型的别名,不用手动找配置文件和权重路径。结果保存在vis_results/目录里。想在代码里集成,用 Python 接口:
# 初始化推理器,wholebody 别名会自动加载预训练权重 inferencer = MMPoseInferencer(pose2d='wholebody') results = inferencer('image.jpg') # 返回每人133个点的坐标与置信度更完整的参数说明可以看 demo/docs/zh_cn/2d_wholebody_pose_demo.md。
精度、速度和规模怎么权衡
选型时先看官方在 COCO-WholeBody 验证集上的报告数据:
| 模型 | 输入分辨率 | Whole AP | 官方报告速度 |
|---|---|---|---|
| RTMPose-m | 256x192 | 0.582 | 75.8% AP on COCO,CPU 90+ FPS |
| RTMPose-l | 256x192 | 0.611 | 130+ FPS(GPU) |
| RTMPose-l | 384x288 | 0.648 | 高于 256x192 版本 |
规律很直白:输入分辨率从 256x192 升到 384x288,精度提升约 3.7 个点,代价是计算量增大。133 个点里手指占 42 个,手指点在小图上很难分开,所以"要指尖精度就上大分辨率,要速度就压小"基本就是全部取舍。
这些能力用在哪
- 健身动作评分:指尖 42 点让"手指有没有伸直"这类规则可以被量化,而不是靠猜。
- 虚拟角色驱动:身体 17 点驱动骨骼绑定,面部 68 点做表情迁移,一套数据两类用途。仓库里的 projects/just_dance/ 就演示了用全身关键点计算舞蹈动作相似度并打分。
- 实时互动(直播、体感游戏):对延迟敏感,选 RTMPose 系列,官方报告 130+ FPS,单卡即可支撑多路画面。
和 OpenMMLab 其他工具的分工
MMPose 在 OpenMMLab 生态里只负责姿态这一环:上游接 MMDetection 出人体框(仓库的demo/mmdetection_cfg/下就有现成检测器配置),下游接 MMDeploy 做 ONNX、TensorRT 量化部署,多人视频场景还可以接 MMTracking 做逐帧关联。你不需要自己搭胶水层,demo 脚本里检测器和姿态模型的衔接方式已经写好了。
边界与下一步
一句话说明适用边界:这是 2D 方案,输出的是图像平面坐标,不是 3D 骨骼;重度遮挡、极小人脸等场景精度会下降。建议先跑一遍上面的 demo,在自己数据上看效果再选型;数据集准备、训练和部署的细节都在docs/目录,遇到具体问题时直接提 issue。
【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考