MMPose 全身姿态估计实战:3步跑通133关键点检测
【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose
MMPose 是 OpenMMLab 的 PyTorch 姿态估计工具箱,其中 WholeBody 模块在单张图像上一次性输出 133 个全身关键点,覆盖身体关节、面部轮廓、双手手指和足部。它解决的是传统姿态估计只给出 17 个身体关节、而手部表情细节必须另配模型的问题:一套 top-down 流程,人体框出来后,133 个点全部标注到位。全文覆盖内容:
- 133 个关键点的构成,以及 RTMW 模型在 COCO-WholeBody 上的实测精度
- 从克隆仓库到出结果的最短路径:安装、下模型、跑推理
- 健身评分、AIGC 集成两类落地场景的具体做法
- 按硬件选模型、微调入口与部署提速的调优要点
133关键点能力拆解:身体、面部、双手、足部一次到位
WholeBody 走的是自顶向下架构:RTMDet 先检测出每个人体框,再把裁剪后的人体区域送入 RTMPose 回归 133 个关键点。它通过共享的 CSPPAN 特征网络把四个部位联合学习,手指和面部这些高频细节不再单独建模。
133 个点的分配如下:
| 部位 | 点数 | 覆盖范围 |
|---|---|---|
| 身体 | 17 | 头、肩、肘、腕、髋、膝、踝等主要关节 |
| 面部 | 68 | 眉、眼、鼻、嘴的外轮廓与内特征点 |
| 双手 | 42(21×2) | 每根手指三个关节加手腕,支持手势级分析 |
| 足部 | 10(5×2) | 脚尖、脚跟、内外踝 |
配套的 RTMW(RTMPose-WholeBody)系列在 COCO-WholeBody v1.0 val 上的 Whole AP 从 0.582 一路到 0.702,配置与权重见 rtmpose_coco-wholebody.md 和 rtmw_cocktail14.md。轻量骨干加 SimCC 定位算法让它在消费级 GPU 上做到 130+ FPS,这是"全身点云"能实时跑起来的关键。
三步跑通全身姿态估计
第1步:克隆仓库并安装
git clone https://gitcode.com/GitHub_Trending/mm/mmpose cd mmpose pip install -r requirements.txt pip install -v -e .第2步:下载预训练权重
mim download mmpose --config rtmpose-m_8xb64-270e_coco-wholebody-256x192 --dest .检测器权重(RTMDet-m)一并放到本地目录即可,配置放在 demo/mmdetection_cfg/。
第3步:对测试图出结果
python demo/topdown_demo_with_mmdet.py \ demo/mmdetection_cfg/rtmdet_m_640-8xb32_coco-person.py <RTMDet权重> \ configs/wholebody_2d_keypoint/rtmpose/coco-wholebody/rtmpose-m_8xb64-270e_coco-wholebody-256x192.py <RTMW权重> \ --input tests/data/coco/000000196141.jpg \ --output-root vis_results/ --device cuda:0 --bbox-thr 0.5不加--show也能直接得到带 133 点标注的可视化图,输出在vis_results/下。同一脚本传视频路径即可逐帧处理。
如果只是想批量处理一个目录,Inferencer 接口把配置和权重收敛成一个别名,命令短到一行:
python demo/inferencer_demo.py tests/data/crowdpose \ --pose2d wholebody --vis-out-dir vis_results/crowdpose落地场景:输入什么、输出什么
健身动作相似度评分
projects/just_dance/ 把 133 点关键点作为输入,与参考视频的骨骼序列逐帧比对,输出 0-1 的相似度分数,用于舞蹈/健身的实时打分。整条链路是:摄像头帧进,相似度曲线出,process_video.py负责视频解码,calculate_similarity.py负责比对。
AIGC 与风格化集成
projects/mmpose4aigc/ 复用 133 点输出驱动换装、风格化骨架等 AIGC 工作流,手指与面部关键点在这里直接决定贴图对齐质量;projects/pose_anything/ 则把"提示词选部位"的交互接在整套关键点体系之上。
手部与面部细粒度分析
双手 42 点加面部 68 点意味着手势识别和表情变化不再依赖单独模型。若只需其中一块,configs/wholebody_2d_keypoint/ 下也提供了独立的 face、hand 子模块配置,可按需裁剪。
选型与调优:精度、速度、部署
- 按硬件选模型:rtmw-m/s 配 256x192 输入,整机(检测+姿态)在 i7 CPU 上约 30-90 FPS、消费级 GPU 上 130+ FPS,视硬件而定;精度敏感就换 rtmw-l/x 配 384x288,Whole AP 从 0.582 提到 0.702。追求离线精度可换 HRNet 系列 heatmap 模型,代价是帧率明显下降。
- 微调入口:标注按 COCO-WholeBody 格式准备,参照 coco_wholebody.py 改数据路径,关键点数与类别数在 config 的
num_keypoints/num_classes中同步修改,然后python tools/train.py <你的config>。 - 部署提速:推理侧把
model.test_cfg.flip_test置 False 能立省一次前向;RTMPose 系列支持导出 ONNX,RTMPose 项目(projects/rtmpose/)还覆盖了 NPU 与移动端部署样例。
133 点全身方案的价值在于把身体、面部、双手、足部压进同一次推理,下游行为分析不再需要多个模型拼接。后续若要 3D 骨骼,仓库内的 RTMPose3D 项目提供了 2D 到 3D 的提升路径。
- 官方文档:docs/zh_cn/overview.md
- 模型库:configs/wholebody_2d_keypoint/
- 推理 API:mmpose/apis/inference.py
【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考