MMPose 姿态估计工具箱:5 分钟跑通 RTMPose 实时推理的完整指南
MMPose 姿态估计工具箱5 分钟跑通 RTMPose 实时推理的完整指南【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmposeMMPose 是 OpenMMLab 开源的姿态估计工具箱。它覆盖 2D 多人、133 点全身、手部、面部、动物和 3D 姿态内置 RTMPose、HRNet、ViTPose 等主流算法当前版本 v1.3.2要求 PyTorch 1.8。这个仓库要解决的问题很具体把下载模型、跑通推理、改数据重训这条链路压到最短。能力地图MMPose 能做什么任务覆盖广从17点 COCO 人体到133点全身手部、面部、时尚地标、动物关键点是独立的任务目录算法储备厚configs/body_2d_keypoint/ 下有11个算法家族含 HRNet、CPM、DEKR、RTMPose、RTMO、YOLOXPose数据集适配器多configs/base/datasets/ 内置51个数据集配置COCO、MPII、300W、AP-10K、CrowdPose 都在其中预训练模型可查model-index.yml 登记了全部模型的精度指标RTMPose-m 在 COCO 上75.8AP实时性能有数据RTMPose-s 在 COCO72.2APi7-11700 上200CPU FPSGTX 1660Ti 上710GPU FPS从零上手安装、选模型、跑通第一条推理安装两条命令装好环境执行以下命令克隆仓库并安装依赖git clone https://gitcode.com/GitHub_Trending/mm/mmpose cd mmpose pip install -r requirements.txt pip install -v -e .依赖上有两个硬约束PyTorch 需 1.8评估指标依赖 xtcocotools1.12。CUDA 环境可再装对应版本pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118选模型按精度和速度对号入座RTMPose 系列默认输入 256x192四个规格覆盖了从手机到服务器的场景数据来自 projects/rtmpose/README.md规格输入尺寸COCO APCPU FPSi7-11700GPU FPS1660TiRTMPose-t256x19268.5300940RTMPose-s256x19272.2200710RTMPose-m256x19275.890430RTMPose-l256x19276.550280做 133 点全身任务选 RTMW 系列。RTMW-l 在 COCO-WholeBody val 上70.1mAP配置在 configs/wholebody_2d_keypoint/rtmpose/coco-wholebody/。跑通第一条推理推理入口是 demo/inferencer_demo.py一条命令完成检测 姿态 可视化。--pose2d指定姿态模型配置--pose2d-weights是权重文件--det-model指定人体检测器--out-file保存可视化结果python demo/inferencer_demo.py \ tests/data/coco/000000196141.jpg \ --pose2d configs/body_2d_keypoint/rtmpose/coco/rtmpose-m_8xb256-420e_coco-256x192.py \ --pose2d-weights rtmpose-m_simcc-coco_pt-aic-coco_420e-256x192-d8dd5ca4_20230127.pth \ --det-model demo/mmdetection_cfg/rtmdet_m_8xb32-300e_coco.py \ --draw-bbox --out-file vis.jpg权重下载地址在 model-index.yml 对应条目里按文件名对照即可。技术内核流水线、模型结构与训练策略数据流水线mmpose/datasets/transforms/top-down 任务的流水线在 mmpose/datasets/transforms/topdown_transforms.py核心是按 bbox 裁剪 在线增强。以 COCO 人体配置为例关键增强项如下train_pipeline [ dict(typeLoadImage), dict(typeTopdownRandomFlip, flip_prob0.5), # 50% 概率水平翻转 dict(typeTopdownRandomHalfBody), # 半身裁剪防过拟合全身 dict(typeTopdownAffine), # 随机缩放/旋转/平移 ]同一套 transforms 目录还包含 hand_transforms.py、pose3d_transforms.py换任务只换配置不换代码。模型结构backbone head 的拼装方式mmpose/models/backbones/ 下有32个主干网络ResNet、HRNet、CSPNeXt、HRFormer 都在这。头部分四类heatmap、regression、coord_cls、hybrid位于 mmpose/models/heads/。热图头的关键配置长这样headdict( typeHeatmapHead, in_channels2048, out_channels17, # COCO 17 个关键点 num_deconv_layers3, # 三层上采样恢复空间分辨率 lossdict(typeKeypointMSELoss, use_target_weightTrue))RTMPose 不走热图改用 SimCC 坐标分类解码逻辑在 mmpose/codecs/simcc_label.py这是它比 HRNet 更快的原因之一。训练策略EMA 加自定义调度器mmpose/engine/hooks/ema_hook.py 提供权重 EMAmmpose/engine/schedulers/quadratic_warmup.py 提供二次预热。默认运行时配置在 configs/base/default_runtime.py改学习率策略只需在任务配置里覆盖对应键。 落地场景健身打分、安防多人、3D 姿态健身舞蹈打分133 点全身相似度projects/just_dance 用 RTMPose 对比教学视频和学员视频逐关节计算偏差后输出总分和对比视频。命令就是一条python projects/just_dance/process_video.py 教学视频.mp4 学员视频.mp4该方案基于 133 点全身关键点和 RTMW 模型COCO-WholeBody70.1mAP。Gradio 版 app.py 还支持摄像头实时输入。安防多人场景密集人群下的视频姿态CrowdPose 类场景需要检测 姿态两级流水线。demo/topdown_demo_with_mmdet.py 直接支持视频输入python demo/topdown_demo_with_mmdet.py \ demo/mmdetection_cfg/rtmdet_m_8xb32-300e_coco.py \ rtmdet_m_8xb32-300e_coco.pth \ configs/body_2d_keypoint/rtmpose/coco/rtmpose-m_8xb256-420e_coco-256x192.py \ rtmpose-m_simcc-coco_pt-aic-coco_420e-256x192-d8dd5ca4_20230127.pth \ --input video.mp4 --output-root outputs/RTMPose-m 单帧 GPU430FPS、CPU90FPS720p 视频流实时处理没有压力。多人重叠严重时可把检测器换成 RTMO 路线configs/body_2d_keypoint/rtmo/coco/端到端省去裁剪步骤。3D 姿态与数字人从 2D 到 3D3D 方向有两条路视频姿态提升mmpose/codecs/video_pose_lifting.py和实时模型 RTMW3Dprojects/rtmpose3d/。仓库自带 2D 提升 3D 的演示脚本python demo/body3d_pose_lifter_demo.py训练数据可参考 MPI-Inf-3DHP 和 Human3.6M对应配置在 configs/body_3d_keypoint/video_pose_lift/h36m/。️ 进阶操作自定义数据、ONNX 导出、多卡训练自定义数据集训练三步走做什么用自己的标注训练专属姿态模型。用 tools/dataset_converters/ 的脚本转 COCO 格式如 mat2json.py、labelstudio2coco.py复制现有配置改 data_root 和关键点数量启动训练python tools/train.py configs/body_2d_keypoint/topdown_heatmap/coco/cspnext-m_udp_8xb256-210e_coco-256x192.py坑点COCO 格式里 keypoints 顺序和 num_keypoints 必须与配置严格一致否则评估分数会错得离谱。模型量化与 ONNX 导出做什么把 .pth 模型导出到 ONNX、TensorRT、ncnn 后端。导出走 MMDeployC 和 Android 端示例在 projects/rtmpose/examples/共 9 组可直接编译的 demo。坑点256x192 和 384x288 是两套权重导出时的输入形状必须和训练配置对齐混用会掉点。多卡分布式训练做什么多 GPU 加速训练入口脚本 tools/dist_train.sh。./tools/dist_train.sh configs/body_2d_keypoint/rtmpose/coco/rtmpose-m_8xb256-420e_coco-256x192.py 8坑点配置名里的 8xb256 表示 8 卡、每卡 batch 32。卡数变了就同步改 batch_size 或梯度累积否则实际学习率行为会变。生态联动上下游项目分工MMDetection提供人体检测器demo/mmdetection_cfg/ 内置 14 个检测配置MMDeploy负责 ONNX/TensorRT/ncnn 的模型导出与部署MMTrackingdemo/mmtracking_cfg/ 提供 DeepSORT 等视频跟踪配置projects/rtmpose3dRTMW3D 实时 3D 全身姿态扩展projects/pose_anything文本驱动姿态估计projects/pose_anything/ 含完整模型与数据模块资源索引docs/ - 中英文文档含数据集准备和 API 说明demo/ - 2D/3D 人体、手部、面部等演示脚本configs/ - 模型库配置按任务类型分目录tools/ - 训练、测试、数据集转换与分析工具model-index.yml - 全部预训练模型与精度指标清单做姿态估计原型验证或工业部署的开发者从 RTMPose-m 起步最划算CPU 上就能跑到 90 FPS。给 AIGC 取骨架图的直接上 RTMW 系列。仓库结构清晰、路径即文档照着 configs/ 改配置即可开工。【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考