MMPose Documentation
repository·main·Indexed 26 days ago
https://github.com/open-mmlab/mmposeAn open-source PyTorch-based toolbox for pose estimation tasks, including 2D/3D human pose, hand pose, face landmarks, and animal pose estimation. It supports top-down and bottom-up architectural approaches, featuring high-performance frameworks like RTMPose for real-time multi-person pose estimation and RTMO for one-stage inference. The library provides a variety of models (e.g., HRNet, ResNet, CSPNeXt) and supports multiple datasets including COCO, MPII, CrowdPose, and various animal-specific datasets.
What's inside MMPose
- RTMPose is a high-performance real-time multi-person pose estimation framework built on MMPose. It is designed to bridge the gap between high-performance benchmarks and industrial requirements by optimizing paradigm, backbone networks, localization algorithms, training strategies, and deployment inference. It is suitable for applications requiring high FPS on both CPUs (e.g., Intel i7) and GPUs (e.g., NVIDIA GTX series), as well as mobile devices.
Overview of Top-down integral-regression-based pose estimation
mainTop-down integral-regression-based pose estimation methods operate in two stages:
- Object Detection: Identifying human bounding boxes.
- Single-object Pose Estimation: Estimating keypoints within the detected bounding boxes.
Integral regression methods unify heatmap and joint regression through a differentiable integral operation. This allows the model to obtain keypoint coordinates directly from features extracted from the bounding box area, following the paradigm introduced in Integral Human Pose Regression.
Overview of DEKR (Disentangled Keypoint Regression)
mainDEKR is a bottom-up 2D human pose estimation approach. It works by simultaneously detecting all person instances and regressing the offsets from the instance centers to the joints. To improve accuracy, it uses separated branches with deformable convolutional layers for different joints, allowing the model to use convolution kernels of different shapes tailored to each specific joint's feature extraction requirements.Overview of RTMPose for 2D Pose Estimation
mainRTMPose is a high-performance real-time multi-person pose estimation framework built on MMPose. It is designed to bridge the gap between high-performance benchmarks and industrial requirements by optimizing paradigm, backbone networks, localization algorithms, training strategies, and deployment inference. It is optimized for low latency and low parameter counts, making it suitable for CPU, GPU, and mobile device deployment.Overview of MMPose Framework Components
mainMMPose is an open-source toolbox based on PyTorch for pose estimation. It consists of 8 main components:
- apis: High-level APIs for model inference.
- structures: Data structures including
bbox,keypoint, andPoseDataSample. - datasets: Support for various pose estimation datasets, including
transformsfor data augmentation. - codecs: Pose encoders (e.g., converting keypoints to heatmaps) and decoders (e.g., converting model output back to pose estimates).
- models: Modular components for pose estimation models, including:
pose_estimators: The main model classes.data_preprocessors: Input data preprocessing.backbones: Backbone networks.necks: Model neck components.heads: Model head components.losses: Loss functions.
- engine: Runtime components, including
hooksfor runtime execution. - evaluation: Metrics for evaluating model performance.
- visualization: Tools for visualizing keypoint skeletons, heatmaps, and other information.
Overview of YOLO-Pose (YOLOX-Pose)
mainYOLO-Pose is a bottom-up pose estimation approach that performs multi-person pose estimation by simultaneously detecting person instances and regressing keypoint locations in a single pass.
In
mmpose, we implement YOLOX-Pose, which is based on the YOLOX object detection framework. It utilizes separate branches with adaptive convolutions to regress offsets for different joints, allowing for optimized feature extraction for each specific keypoint.Overview of 2D Fashion Landmark Detection
main2D fashion landmark detection (also known as fashion alignment) is used to detect key-points located at functional regions of clothing, such as the neckline and the cuff.Overview of Top-down heatmap-based pose estimation
mainTop-down methods for fashion pose estimation follow a two-stage process:
- Object Detection: Identifying the object within the image.
- Single-object Pose Estimation: Estimating keypoints within the provided object bounding boxes.
Instead of predicting raw keypoint coordinates, these models generate heatmaps that represent the likelihood of a keypoint being present at specific locations.
Overview of Top-down Heatmap-based Animal Pose Estimation
mainTop-down heatmap-based pose estimation follows a two-stage process:
- Object Detection: Identifying the object within the image.
- Single-object Pose Estimation: Estimating keypoints within the provided object bounding boxes.
Instead of predicting raw keypoint coordinates, this method produces heatmaps representing the likelihood of keypoint locations, following the paradigm established in 'Simple Baselines for Human Pose Estimation and Tracking'.
Overview of RTMPose toolkit
mainRTMPose is a high-performance, real-time multi-person pose estimation toolkit built on top of MMPose. It is designed for industrial applications where low latency and high accuracy are critical. The toolkit provides models of varying scales (t, s, m, l) to balance performance and speed across different hardware environments.
Key Features:
- High Accuracy & Low Latency: Models achieve high COCO AP while maintaining high FPS on both CPU and GPU.
- Easy Deployment: Supports multiple backends including ONNX, TensorRT, ncnn, and OpenVINO via MMDeploy.
- Cross-Platform Support: Compatible with Linux, Windows, NVIDIA Jetson, ARM, and mobile platforms.
- Business-Ready: Provides inference interfaces and SDKs for Python, C++, C#, and Java.
Overview of 2D Face Landmark Detection
main2D face landmark detection (face alignment) involves detecting face keypoints from an input image. Typically, input images are either cropped face images with the face centered, or images where a rough location or bounding box of the face is provided.Overview of MMPose components
mainMMPose is a PyTorch-based pose estimation toolkit for 2D multi-person human pose estimation, hand pose estimation, face landmark detection, whole-body human pose estimation, fashion landmark detection, and animal pose estimation. The framework is organized into several core components:
- apis: High-level APIs for model inference.
- structures: Data structures such as
bbox,keypoint, andPoseDataSample. - datasets: Support for various pose estimation datasets, including transforms for data augmentation.
- codecs: Pose encoders (e.g., encoding keypoints into heatmaps) and decoders (decoding model outputs into pose predictions).
- models: Modular components including:
pose_estimators: Model classes.data_preprocessors: Input data preprocessing.backbones: Backbone networks.necks: Neck modules.heads: Prediction heads.losses: Loss functions.
- engine: Runtime components and hooks for the runner.
- evaluation: Metrics for performance evaluation.
- visualization: Tools for visualizing skeletons, heatmaps, and other information.