{"id":13790571,"url":"https://github.com/ilovepose/DarkPose","last_synced_at":"2025-05-12T09:32:52.092Z","repository":{"id":38310264,"uuid":"218720907","full_name":"ilovepose/DarkPose","owner":"ilovepose","description":"Distribution-Aware Coordinate Representation for Human Pose Estimation","archived":false,"fork":false,"pushed_at":"2024-05-17T18:07:47.000Z","size":336,"stargazers_count":553,"open_issues_count":6,"forks_count":82,"subscribers_count":29,"default_branch":"master","last_synced_at":"2024-11-18T05:38:13.094Z","etag":null,"topics":["coco-dataset","deep-learning","human-pose-estimation","mpii-dataset","mscoco-keypoint"],"latest_commit_sha":null,"homepage":"https://ilovepose.github.io/coco","language":"Cuda","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ilovepose.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-31T08:41:35.000Z","updated_at":"2024-11-02T07:30:41.000Z","dependencies_parsed_at":"2024-11-18T05:31:57.809Z","dependency_job_id":"1ad64957-2510-4dc9-a101-afcecf507467","html_url":"https://github.com/ilovepose/DarkPose","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilovepose%2FDarkPose","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilovepose%2FDarkPose/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilovepose%2FDarkPose/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilovepose%2FDarkPose/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ilovepose","download_url":"https://codeload.github.com/ilovepose/DarkPose/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253709363,"owners_count":21951125,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coco-dataset","deep-learning","human-pose-estimation","mpii-dataset","mscoco-keypoint"],"created_at":"2024-08-03T22:00:46.916Z","updated_at":"2025-05-12T09:32:51.280Z","avatar_url":"https://github.com/ilovepose.png","language":"Cuda","funding_links":[],"categories":["Multi-Person 2D Pose Estimation"],"sub_categories":["2020"],"readme":"# Distribution Aware Coordinate Representation for Human Pose Estimation\n\n\u003cp align=\"center\"\u003e\n\u003cb\u003e\u003ci\u003eServing as a model-agnostic plug-in, DARK significantly improves the performance of a variety of state-of-the-art human pose estimation models! \u003c/i\u003e\u003c/b\u003e\n\u003c/p\u003e\n\n## News\n* \\[2019/10/14\\] DarkPose is now on [ArXiv](https://arxiv.org/abs/1910.06278).\n* \\[2019/10/15\\] [Project page](https://ilovepose.github.io/coco/) is created.\n* \\[2019/10/27\\] DarkPose achieve **76.4** on the COCO test-challenge (**2nd place entry** of COCO Keypoints Challenge ICCV 2019)!\n* \\[2020/02/24\\] DarkPose accepted by CVPR2020.\n* \\[2020/06/17\\] Code is released.\n* \\[2020/08/07\\] [Pretrained models](https://drive.google.com/drive/folders/14kAA1zXuKODYgrRiQmKnVcipbY7RedVV?usp=sharing) are provided.\n\n\n## Introduction\n\u0026ensp; \u0026ensp; This work fills the gap by studying the coordinate representation with a particular focus on the heatmap. We formulate a novel Distribution-Aware coordinate Representation of Keypoint (DARK) method. Serving as a model-agnostic plug-in, DARK significantly improves the performance of a variety of state-of-the-art human pose estimation models!\n\n![Illustrating the architecture of the proposed DARK](/figures/DARK.png)\n\n Our CVPR2019 work Fast Human Pose Estimation can work seamlessly with DARK, which is available at [Github](https://github.com/ilovepose/fast-human-pose-estimation.pytorch)\n\n## Main Results\n\n### Results on COCO val2017 with detector having human AP of 56.4 on COCO val2017 dataset\n| Baseline           | Input size | #Params | GFLOPs |    AP | Ap .5 | AP .75 | AP (M) | AP (L) |    AR |\n|--------------------|------------|---------|--------|-------|-------|--------|--------|--------|-------|\n| Hourglass(4 Blocks)             |  128×96 | 13.0M | 2.7 | 66.2 | 87.6 | 75.1 | 63.8 | 71.4 | 72.8 |\n| **Hourglass(4 Blocks) + DARK**  |  128×96 | 13.0M | 2.7 | 69.6 | 87.8 | 77.0 | 67.0 | 75.4 | 75.7 |\n| Hourglass(8 Blocks)             |  128×96 | 25.1M | 4.9 | 67.6 | 88.3 | 77.4 | 65.2 | 73.0 | 74.0 |\n| **Hourglass(8 Blocks) + DARK**  |  128×96 | 25.1M | 4.9 | 70.8 | 87.9 | 78.3 | 68.3 | 76.4 | 76.6 |\n| SimpleBaseline-R50              |  128×96 | 34.0M | 2.3 | 59.3 | 85.5 | 67.4 | 57.8 | 63.8 | 66.6 |\n| **SimpleBaseline-R50 + DARK**   |  128×96 | 34.0M | 2.3 | 62.6 | 86.1 | 70.4 | 60.4 | 67.9 | 69.5 |\n| SimpleBaseline-R101             |  128×96 | 53.0M | 3.1 | 58.8 | 85.3 | 66.1 | 57.3 | 63.4 | 66.1 |\n| **SimpleBaseline-R101 + DARK**  |  128×96 | 53.0M | 3.1 | 63.2 | 86.2 | 71.1 | 61.2 | 68.5 | 70.0 |\n| SimpleBaseline-R152             |  128×96 | 68.6M | 3.9 | 60.7 | 86.0 | 69.6 | 59.0 | 65.4 | 68.0 |\n| **SimpleBaseline-R152 + DARK**  |  128×96 | 68.6M | 3.9 | 63.1 | 86.2 | 71.6 | 61.3 | 68.1 | 70.0 |\n| HRNet-W32                       |  128×96 | 28.5M | 1.8 | 66.9 | 88.7 | 76.3 | 64.6 | 72.3 | 73.7 |\n| **HRNet-W32 + DARK**            |  128×96 | 28.5M | 1.8 | 70.7 | 88.9 | 78.4 | 67.9 | 76.6 | 76.7 |\n| HRNet-W48                       |  128×96 | 63.6M | 3.6 | 68.0 | 88.9 | 77.4 | 65.7 | 73.7 | 74.7 |\n| **HRNet-W48 + DARK**            |  128×96 | 63.6M | 3.6 | 71.9 | 89.1 | 79.6 | 69.2 | 78.0 | 77.9 |\n| HRNet-W32                       | 256×192 | 28.5M | 7.1 | 74.4 | 90.5 | 81.9 | 70.8 | 81.0 | 79.8 |\n| **HRNet-W32 + DARK**            | 256×192 | 28.5M | 7.1 | 75.6 | 90.5 | 82.1 | 71.8 | 82.8 | 80.8 |\n| HRNet-W32                       | 384×288 | 28.5M | 16.0 | 75.8 | 90.6 | 82.5 | 72.0 | 82.7 | 80.9 |\n| **HRNet-W32 + DARK**            | 384×288 | 28.5M | 16.0 | 76.6 | 90.7 | 82.8 | 72.7 | 83.9 | 81.5 |\n| HRNet-W48                       | 384×288 | 63.6M | 32.9 | 76.3 | 90.8 | 82.9 | 72.3 | 83.4 | 81.2 |\n| **HRNet-W48 + DARK**            | 384×288 | 63.6M | 32.9 | 76.8 | 90.6 | 83.2 | 72.8 | 84.0 | 81.7 |\n\n### Note:\n- Flip test is used.\n- Person detector has person AP of 56.4 on COCO val2017 dataset.\n- GFLOPs is for convolution and linear layers only.\n\n### Results on COCO test-dev2017 with detector having human AP of 60.9 on COCO test-dev2017 dataset\n| Baseline                   | Input size | #Params | GFLOPs |   AP | Ap.5 | AP.75 | AP(M) | AP(L) |   AR |\n|----------------------------|------------|---------|--------|------|------|-------|-------|-------|------|\n| HRNet-W48                  |    384x288 | 63.6M   |   32.9 | 75.5 | 92.5 |  83.3 |  71.9 |  81.5 | 80.5 |\n| **HRNet-W48 + DARK**       |    384x288 | 63.6M   |   32.9 | 76.2 | 92.5 |  83.6 |  72.5 |  82.4 | 81.1 |\n| HRNet-W48\\*                |    384x288 | 63.6M   |   32.9 | 77.0 | 92.7 |  84.5 |  73.4 |  83.1 | 82.0 |\n| **HRNet-W48 + DARK\\***     |    384x288 | 63.6M   |   32.9 | 77.4 | 92.6 |  84.6 |  73.6 |  83.7 | 82.3 |\n| **HRNet-W48 + DARK\\*\\-**   |    384x288 | 63.6M   |   32.9 | 78.2 | 93.5 |  85.5 |  74.4 |  84.2 | 83.5 |\n| **HRNet-W48 + DARK\\*\\-\\+** |    384x288 | 63.6M   |   32.9 | 78.9 | 93.8 |  86.0 |  75.1 |  84.4 | 83.5 |\n\n### Note:\n- Flip test is used.\n- Person detector has person AP of 60.9 on COCO test-dev2017 dataset.\n- GFLOPs is for convolution and linear layers only.\n- \\* means using additional data from [AI challenger](https://challenger.ai/dataset/keypoint) for training.\n- \\- means the detector ensemble with [HTC](https://github.com/open-mmlab/mmdetection) and [SNIPER](https://github.com/mahyarnajibi/SNIPER).\n- \\+ means using model ensemble.\n\n### Results on MPII val\n| PCKh | Baseline             | Head | Shoulder | Elbow | Wrist |  Hip | Knee | Ankle | Mean  |\n|------|----------------------|------|----------|-------|-------|------|------|-------|-------|\n| 0.5  | HRNet_w32            | 97.1 |   95.9   | 90.3  | 86.5  | 89.1 | 87.1 | 83.3  | 90.3  |\n| 0.5  | **HRNet_w32 + DARK** | 97.2 |   95.9   | 91.2  | 86.7  | 89.7 | 86.7 | 84.0  | 90.6  |\n| 0.1  | HRNet_w32            | 51.1 |   42.7   | 42.0  | 41.6  | 17.9 | 29.9 | 31.0  | 37.7  |\n| 0.1  | **HRNet_w32 + DARK** | 55.2 |   47.8   | 47.4  | 45.2  | 20.1 | 33.4 | 35.4  | 42.0  |\n\n### Note:\n- Flip test is used.\n- Input size is 256x256\n- GFLOPs is for convolution and linear layers only.\n\n\n## Quick start\n\n### 1. Preparation\n\n#### 1.1 Prepare the dataset\nFor the MPII dataset, the original annotation files are in matlab format. We have converted them into json format, you also need to download them from [OneDrive](https://1drv.ms/f/s!AhIXJn_J-blW00SqrairNetmeVu4) or [GoogleDrive](https://drive.google.com/drive/folders/1En_VqmStnsXMdldXA6qpqEyDQulnmS3a?usp=sharing).\nExtract them under `{POSE_ROOT}/data`, your directory tree should look like this:   \n```\n${POSE_ROOT}/data/mpii\n├── images\n└── mpii_human_pose_v1_u12_1.mat\n|—— annot\n|   |—— gt_valid.mat\n└── |—— test.json\n    |   |—— train.json\n    |   |—— trainval.json\n    |   |—— valid.json\n    └── images\n        |—— 000001163.jpg\n        |—— 000003072.jpg\n```\n\nFor the COCO dataset, your directory tree should look like this:   \n```\n${POSE_ROOT}/data/coco\n├── annotations\n├── images\n│   ├── test2017\n│   ├── train2017\n│   └── val2017\n└── person_detection_results\n````\n\n### 1.2 Download the pretrained models\n\n[Pretrained models](https://drive.google.com/drive/folders/14kAA1zXuKODYgrRiQmKnVcipbY7RedVV?usp=sharing) are provided.\n\n### 1.3 Prepare the environment\nSetting the parameters in the file `prepare_env.sh` as follows:\n\n```bash\n# DATASET_ROOT=$HOME/datasets\n# COCO_ROOT=${DATASET_ROOT}/MSCOCO\n# MPII_ROOT=${DATASET_ROOT}/MPII\n# MODELS_ROOT=${DATASET_ROOT}/models\n```\n\nThen execute:\n\n```bash\nbash prepare_env.sh\n```\n\nIf you like, you can [**prepare the environment step by step**](https://github.com/leoxiaobin/deep-high-resolution-net.pytorch)\n\n\n\n### Citation\n\nIf you use our code or models in your research, please cite with:\n\n```\n@InProceedings{Zhang_2020_CVPR,\n    author = {Zhang, Feng and Zhu, Xiatian and Dai, Hanbin and Ye, Mao and Zhu, Ce},\n    title = {Distribution-Aware Coordinate Representation for Human Pose Estimation},\n    booktitle = {IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},\n    month = {June},\n    year = {2020}\n}\n```\n\n## Acknowledgement\nThanks for the open-source HRNet\n* [Deep High-Resolution Representation Learning for Human Pose Estimation, Sun, Ke and Xiao, Bin and Liu, Dong and Wang, Jingdong](https://github.com/leoxiaobin/deep-high-resolution-net.pytorch/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filovepose%2FDarkPose","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Filovepose%2FDarkPose","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filovepose%2FDarkPose/lists"}