![]() * update * [Fix] Fix HRFormer log link * [Feature] Add Application 'Just dance' (#2528) * [Docs] Add advanced tutorial of implement new model. (#2539) * [Doc] Update img (#2541) * [Feature] Support MotionBERT (#2482) * [Fix] Fix demo scripts (#2542) * [Fix] Fix Pose3dInferencer keypoint shape bug (#2543) * [Enhance] Add notifications when saving visualization results (#2545) * [Fix] MotionBERT training and flip-test (#2548) * [Docs] Enhance docs (#2555) * [Docs] Fix links in doc (#2557) * [Docs] add details (#2558) * [Refactor] 3d human pose demo (#2554) * [Docs] Update MotionBERT docs (#2559) * [Refactor] Update the arguments of 3d inferencer to align with the demo script (#2561) * [Enhance] Combined dataset supports custom sampling ratio (#2562) * [Docs] Add MultiSourceSampler docs (#2563) * [Doc] Refine docs (#2564) * [Feature][MMSIG] Add UniFormer Pose Estimation to Projects folder (#2501) * [Fix] Check the compatibility of inferencer's input/output (#2567) * [Fix]Fix 3d visualization (#2565) * [Feature] Add bear example in just dance (#2568) * [Doc] Add example and openxlab link for just dance (#2571) * [Fix] Configs' paths of VideoPose3d (#2572) * [Docs] update docs (#2573) * [Fix] Fix new config bug in train.py (#2575) * [Fix] Configs' of MotionBERT (#2574) * [Enhance] Normalization option in 3d human pose demo and inferencer (#2576) * [Fix] Fix the incorrect labels for training vis_head with combined datasets (#2550) * [Enhance] Enhance 3dpose demo and docs (#2578) * [Docs] Enhance Codecs documents (#2580) * [Feature] Add DWPose distilled WholeBody RTMPose models (#2581) * [Docs] Add deployment docs (#2582) * [Fix] Refine 3dpose (#2583) * [Fix] Fix config typo in rtmpose-x (#2585) * [Fix] Fix 3d inferencer (#2593) * [Feature] Add a simple visualize api (#2596) * [Feature][MMSIG] Support badcase analyze in test (#2584) * [Fix] fix bug in flip_bbox with xyxy format (#2598) * [Feature] Support ubody dataset (2d keypoints) (#2588) * [Fix] Fix visualization bug in 3d pose (#2594) * [Fix] Remove use-multi-frames option (#2601) * [Enhance] Update demos (#2602) * [Enhance] wholebody support openpose style visualization (#2609) * [Docs] Documentation regarding 3d pose (#2599) * [CodeCamp2023-533] Migration Deepfashion topdown heatmap algorithms to 1.x (#2597) * [Fix] fix badcase hook (#2616) * [Fix] Update dataset mim downloading source to OpenXLab (#2614) * [Docs] Update docs structure (#2617) * [Docs] Refine Docs (#2619) * [Fix] Fix numpy error (#2626) * [Docs] Update error info and docs (#2624) * [Fix] Fix inferencer argument name (#2627) * [Fix] fix links for coco+aic hrnet (#2630) * [Fix] fix a bug when visualize keypoint indices (#2631) * [Docs] Update rtmpose docs (#2642) * [Docs] update README.md (#2647) * [Docs] Add onnx of RTMPose models (#2656) * [Docs] Fix mmengine link (#2655) * [Docs] Update QR code (#2653) * [Feature] Add DWPose (#2643) * [Refactor] Reorganize distillers (#2658) * [CodeCamp2023-259]Document Writing: Advanced Tutorial - Custom Data Augmentation (#2605) * [Docs] Fix installation docs(#2668) * [Fix] Fix expired links in README (#2673) * [Feature] Support multi-dataset evaluation (#2674) * [Refactor] Specify labels to pack in codecs (#2659) * [Refactor] update mapping tables (#2676) * [Fix] fix link (#2677) * [Enhance] Enable CocoMetric to get ann_file from MessageHub (#2678) * [Fix] fix vitpose pretrained ckpts (#2687) * [Refactor] Refactor YOLOX-Pose into mmpose core package (#2620) * [Fix] Fix typo in COCOMetric(#2691) * [Fix] Fix bug raised by changing bbox_center to input_center (#2693) * [Feature] Surpport EDPose for inference(#2688) * [Refactor] Internet for 3d hand pose estimation (#2632) * [Fix] Change test batch_size of edpose to 1 (#2701) * [Docs] Add OpenXLab Badge (#2698) * [Doc] fix inferencer doc (#2702) * [Docs] Refine dataset config tutorial (#2707) * [Fix] modify yoloxpose test settings (#2706) * [Fix] add compatibility for argument `return_datasample` (#2708) * [Feature] Support ubody3d dataset (#2699) * [Fix] Fix 3d inferencer (#2709) * [Fix] Move ubody3d dataset to wholebody3d (#2712) * [Refactor] Refactor config and dataset file structures (#2711) * [Fix] give more clues when loading img failed (#2714) * [Feature] Add demo script for 3d hand pose (#2710) * [Fix] Fix Internet demo (#2717) * [codecamp: mmpose-315] 300W-LP data set support (#2716) * [Fix] Fix the typo in YOLOX-Pose (#2719) * [Feature] Add detectors trained on humanart (#2724) * [Feature] Add RTMPose-Wholebody (#2721) * [Doc] Fix github action badge in README (#2727) * [Fix] Fix bug of dwpose (#2728) * [Feature] Support hand3d inferencer (#2729) * [Fix] Fix new config of RTMW (#2731) * [Fix] Align visualization color of 3d demo (#2734) * [Fix] Refine h36m data loading and add head_size to PackPoseInputs (#2735) * [Refactor] Align test accuracy for AE (#2737) * [Refactor] Separate evaluation mappings from KeypointConverter (#2738) * [Fix] MotionbertLabel codec (#2739) * [Fix] Fix mask shape (#2740) * [Feature] Add training datasets of RTMW (#2743) * [Doc] update RTMPose README (#2744) * [Fix] skip warnings in demo (#2746) * Bump 1.2 (#2748) * add comments in dekr configs (#2751) --------- Co-authored-by: Peng Lu <penglu2097@gmail.com> Co-authored-by: Yifan Lareina WU <mhsj16lareina@gmail.com> Co-authored-by: Xin Li <7219519+xin-li-67@users.noreply.github.com> Co-authored-by: Indigo6 <40358785+Indigo6@users.noreply.github.com> Co-authored-by: 谢昕辰 <xiexinch@outlook.com> Co-authored-by: tpoisonooo <khj.application@aliyun.com> Co-authored-by: zhengjie.xu <jerryxuzhengjie@gmail.com> Co-authored-by: Mesopotamia <54797851+yzd-v@users.noreply.github.com> Co-authored-by: chaodyna <li0331_1@163.com> Co-authored-by: lwttttt <85999869+lwttttt@users.noreply.github.com> Co-authored-by: Kanji Yomoda <Kanji.yy@gmail.com> Co-authored-by: LiuYi-Up <73060646+LiuYi-Up@users.noreply.github.com> Co-authored-by: ZhaoQiiii <102809799+ZhaoQiiii@users.noreply.github.com> Co-authored-by: Yang-ChangHui <71805205+Yang-Changhui@users.noreply.github.com> Co-authored-by: Xuan Ju <89566272+juxuan27@users.noreply.github.com> |
||
---|---|---|
.. | ||
configs | ||
datasets | ||
models | ||
README.md | ||
demo | ||
tools |
README.md
YOLOX-Pose
This project implements a YOLOX-based human pose estimator, utilizing the approach outlined in YOLO-Pose: Enhancing YOLO for Multi Person Pose Estimation Using Object Keypoint Similarity Loss (CVPRW 2022). This pose estimator is lightweight and quick, making it well-suited for crowded scenes.
📌 For improved performance and compatibility, consider using YOLOX-Pose which is built into MMPose, which seamlessly integrates with MMPose's tools. To learn more about adopting YOLOX-Pose in your workflow, see the documentation: YOLOX-Pose.
Usage
Prerequisites
-
Python 3.7 or higher
-
PyTorch 1.6 or higher
-
MMEngine v0.6.0 or higher
-
MMCV v2.0.0rc4 or higher
-
MMDetection v3.0.0rc6 or higher
-
MMYOLO v0.5.0
-
MMPose v1.0.0rc1 or higher
All the commands below rely on the correct configuration of PYTHONPATH
, which should point to the project's directory so that Python can locate the module files. In yolox-pose/
root directory, run the following line to add the current directory to PYTHONPATH
:
export PYTHONPATH=`pwd`:$PYTHONPATH
Inference
Users can apply YOLOX-Pose models to estimate human poses using the inferencer found in the MMPose core package. Use the command below:
python demo/inferencer_demo.py $INPUTS \
--pose2d $CONFIG --pose2d-weights $CHECKPOINT --scope mmyolo \
[--show] [--vis-out-dir $VIS_OUT_DIR] [--pred-out-dir $PRED_OUT_DIR]
For more information on using the inferencer, please see this document.
Here's an example code:
python demo/inferencer_demo.py ../../tests/data/coco/000000000785.jpg \
--pose2d configs/yolox-pose_s_8xb32-300e_coco.py \
--pose2d-weights https://download.openmmlab.com/mmpose/v1/projects/yolox-pose/yolox-pose_s_8xb32-300e_coco-9f5e3924_20230321.pth \
--scope mmyolo --vis-out-dir vis_results
This will create an output image vis_results/000000000785.jpg
, which appears like:
Training & Testing
Data Preparation
Prepare the COCO dataset according to the instruction.
Commands
To train with multiple GPUs:
bash tools/dist_train.sh $CONFIG 8 --amp
To train with slurm:
bash tools/slurm_train.sh $PARTITION $JOBNAME $CONFIG $WORKDIR --amp
To test with single GPU:
python tools/test.py $CONFIG $CHECKPOINT
To test with multiple GPUs:
bash tools/dist_test.sh $CONFIG $CHECKPOINT 8
To test with multiple GPUs by slurm:
bash tools/slurm_test.sh $PARTITION $JOBNAME $CONFIG $CHECKPOINT
Results
Results on COCO val2017
Model | Input Size | AP | AP50 | AP75 | AR | AR50 | Download |
---|---|---|---|---|---|---|---|
YOLOX-tiny-Pose | 416 | 0.518 | 0.799 | 0.545 | 0.566 | 0.841 | model | log |
YOLOX-s-Pose | 640 | 0.632 | 0.875 | 0.692 | 0.676 | 0.907 | model | log |
YOLOX-m-Pose | 640 | 0.685 | 0.897 | 0.753 | 0.727 | 0.925 | model | log |
YOLOX-l-Pose | 640 | 0.706 | 0.907 | 0.775 | 0.747 | 0.934 | model | log |
We have only trained models with an input size of 640, as we couldn't replicate the performance enhancement mentioned in the paper when increasing the input size from 640 to 960. We warmly welcome any contributions if you can successfully reproduce the results from the paper!
NEW!
MMYOLO also supports YOLOX-Pose and achieves better performance. Their models are fully compatible with this project. Here are their results on COCO val2017:
Backbone | Size | Batch Size | AMP | RTMDet-Hyp | Mem (GB) | AP | Config | Download |
---|---|---|---|---|---|---|---|---|
YOLOX-tiny | 416 | 8xb32 | Yes | Yes | 5.3 | 52.8 | config | model | log |
YOLOX-s | 640 | 8xb32 | Yes | Yes | 10.7 | 63.7 | config | model | log |
YOLOX-m | 640 | 8xb32 | Yes | Yes | 19.2 | 69.3 | config | model | log |
YOLOX-l | 640 | 8xb32 | Yes | Yes | 30.3 | 71.1 | config | model | log |
Citation
If this project benefits your work, please kindly consider citing the original papers:
@inproceedings{maji2022yolo,
title={YOLO-Pose: Enhancing YOLO for Multi Person Pose Estimation Using Object Keypoint Similarity Loss},
author={Maji, Debapriya and Nagori, Soyeb and Mathew, Manu and Poddar, Deepak},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={2637--2646},
year={2022}
}
@article{yolox2021,
title={{YOLOX}: Exceeding YOLO Series in 2021},
author={Ge, Zheng and Liu, Songtao and Wang, Feng and Li, Zeming and Sun, Jian},
journal={arXiv preprint arXiv:2107.08430},
year={2021}
}
Additionally, please cite our work as well:
@misc{mmpose2020,
title={OpenMMLab Pose Estimation Toolbox and Benchmark},
author={MMPose Contributors},
howpublished = {\url{https://github.com/open-mmlab/mmpose}},
year={2020}
}