Papers › HigherHRNet: Scale-Aware Representation Learning for Bottom-Up Human Pose Estimation

HigherHRNet: Scale-Aware Representation Learning for Bottom-Up Human Pose Estimation

27 Aug 2019CVPR 2020 6arXiv:1908.10357archive 2025-07-28

Bowen Cheng, Bin Xiao, Jingdong Wang, Honghui Shi, Thomas S. Huang, Lei Zhang

Bottom-up human pose estimation methods have difficulties in predicting the correct pose for small persons due to challenges in scale variation. In this paper, we present HigherHRNet: a novel bottom-up human pose estimation method for learning scale-aware representations using high-resolution feature pyramids. Equipped with multi-resolution supervision for training and multi-resolution aggregation for inference, the proposed approach is able to solve the scale variation challenge in bottom-up multi-person pose estimation and localize keypoints more precisely, especially for small person. The feature pyramid in HigherHRNet consists of feature map outputs from HRNet and upsampled higher-resolution outputs through a transposed convolution. HigherHRNet outperforms the previous best bottom-up method by 2.5% AP for medium person on COCO test-dev, showing its effectiveness in handling scale variation. Furthermore, HigherHRNet achieves new state-of-the-art result on COCO test-dev (70.5% AP) without using refinement or other post-processing techniques, surpassing all existing bottom-up methods. HigherHRNet even surpasses all top-down methods on CrowdPose test (67.6% AP), suggesting its robustness in crowded scene. The code and models are available at https://github.com/HRNet/Higher-HRNet-Human-Pose-Estimation.

PaperPDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="1908.10357")

Code

Syntology Ran 5 of 27 code samples harvested from 7 repositories linked to this paper; 22 have no recorded run. Of those that ran: 1 ran · our draft was wrong; 3 ran · fixture could not drive it; 1 ran with no contract checked.

By repository: official repository: 5 samples from 1 repository, 1 ran; community (archive-listed): 22 samples from 6 repositories, 4 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

19 repositories listed; official and paper-mentioned ones first.

HRNet/Higher-HRNet-Human-Pose-Estimation officialmentioned in papermentioned on GitHubpytorchMIT report
AlongRide/Py3torch_HigherHRNet mentioned on GitHubpytorchMIT report
Darius-Liesis/HRNet-works mentioned on GitHubpytorchMIT report
LiuShenLan/HRNet mentioned on GitHubpytorch report
abhi1kumar/hrnet_pose_single_gpu mentioned on GitHubpytorchMIT report
anshky/HR-NET mentioned on GitHubpytorchMIT report
baoshengyu/deep-high-resolution-net.pytorch mentioned on GitHubpytorchMIT report
ducongju/HRNet mentioned on GitHubpytorchMIT report
gox-ai/hrnet-pose-api mentioned on GitHubpytorchMIT report
laowang666888/HRNET mentioned on GitHubpytorchMIT report
sdll/hrnet-pose-estimation mentioned on GitHubpytorchMIT report
visionNoob/hrnet_pytorch mentioned on GitHubpytorch report
wsjzha/deep-high-resolution-net.pytorch mentioned on GitHubpytorch report
xn1997/HigherHRnet mentioned on GitHubpytorchMIT report
open-mmlab/mmpose pytorchApache-2.0 report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

27 samples harvested; 5 ran; 0 honoured the contract we drafted; 22 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

1ran · our draft was wrong
3ran · fixture could not drive it
1ran
22unverified

Licence: 0 of the 27 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 7 repositories linked to this paper, official or community; each sample names its own and says which. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

make_input HRNet/Higher-HRNet-Human-Pose-Estimation/lib/core/loss.py official repository ran MIT (permissive) · cdea90667046c71c · report
aggregate_results HRNet/Higher-HRNet-Human-Pose-Estimation/lib/core/inference.py official repository unverified MIT (permissive) · b2deafbfd7c1f3fc · report
build_dataset HRNet/Higher-HRNet-Human-Pose-Estimation/lib/dataset/build.py official repository unverified MIT (permissive) · 0ff31375e05cb70d · report
make_dataloader HRNet/Higher-HRNet-Human-Pose-Estimation/lib/dataset/build.py official repository unverified MIT (permissive) · df9c22deab975625 · report
make_test_dataloader HRNet/Higher-HRNet-Human-Pose-Estimation/lib/dataset/build.py official repository unverified MIT (permissive) · a4025bf00b852a33 · report
calc_dists abhi1kumar/hrnet_pose_single_gpu/lib/core/evaluate.py community (archive-listed) ran · fixture could not drive it fingerprinted MIT (permissive) · b91b38261b03587d · report
conv3x3 Darius-Liesis/HRNet-works/lib/models/pose_higher_hrnet.py community (archive-listed) ran · our draft was wrong MIT (permissive) · fac5364e2f53c6db · report
dist_acc abhi1kumar/hrnet_pose_single_gpu/lib/core/evaluate.py community (archive-listed) ran · fixture could not drive it fingerprinted MIT (permissive) · 1c2da88027e6e151 · report
get_max_preds abhi1kumar/hrnet_pose_single_gpu/lib/core/inference.py community (archive-listed) ran · fixture could not drive it fingerprinted MIT (permissive) · 55c58ef5f795e3d1 · report
box_to_center_scale anshky/HR-NET/demo/inference.py community (archive-listed) unverified MIT (permissive) · 192666724266ef19 · report
cpu_nms_wrapper abhi1kumar/hrnet_pose_single_gpu/lib/nms/nms.py community (archive-listed) unverified MIT (permissive) · 0bdca114d99f4177 · report
get_max_preds ducongju/HRNet/lib/core/inference.py community (archive-listed) unverified MIT (permissive) · cc7c8978e2671688 · report
get_multi_stage_outputs xn1997/HigherHRnet/lib/core/inference.py community (archive-listed) unverified MIT (permissive) · cbb539b2a4e3ea1a · report
get_multi_stage_outputs111 xn1997/HigherHRnet/lib/core/inference.py community (archive-listed) unverified MIT (permissive) · 7d41c67f85ba1f2c · report
get_outputs xn1997/HigherHRnet/lib/core/inference.py community (archive-listed) unverified MIT (permissive) · 9cf201ffe0770f4a · report
get_person_detection_boxes anshky/HR-NET/demo/inference.py community (archive-listed) unverified MIT (permissive) · 74bb768e238398b0 · report
get_person_detection_boxes ducongju/HRNet/demo/inference.py community (archive-listed) unverified MIT (permissive) · 74695a514c70d509 · report
get_pose_net anshky/HR-NET/lib/models/pose_hrnet.py community (archive-listed) unverified MIT (permissive) · 2534c81208f21998 · report
get_pose_net abhi1kumar/hrnet_pose_single_gpu/lib/models/pose_hrnet.py community (archive-listed) unverified MIT (permissive) · 78015ae361e585ca · report
get_pose_net LiuShenLan/HRNet/lib/models/pose_higher_hrnet.py community (archive-listed) unverified MIT (permissive) · b1587fcc78f6fa72 · report
get_pose_net abhi1kumar/hrnet_pose_single_gpu/lib/models/pose_resnet.py community (archive-listed) unverified MIT (permissive) · 179c4caeed1a0d16 · report
get_pose_net ducongju/HRNet/lib/models/pose_hrnet.py community (archive-listed) unverified MIT (permissive) · 92f669c4ac6961d1 · report
gpu_nms_wrapper abhi1kumar/hrnet_pose_single_gpu/lib/nms/nms.py community (archive-listed) unverified MIT (permissive) · 167b862a31de0adf · report
py_nms_wrapper abhi1kumar/hrnet_pose_single_gpu/lib/nms/nms.py community (archive-listed) unverified MIT (permissive) · 8551f210abffd79e · report
read_image xn1997/HigherHRnet/datasets/bases.py community (archive-listed) unverified MIT (permissive) · d9cb02ac7b2cd953 · report
train_collate_fn xn1997/HigherHRnet/datasets/make_dataloader.py community (archive-listed) unverified MIT (permissive) · 84d4b3637b0b4b2d · report
val_collate_fn xn1997/HigherHRnet/datasets/make_dataloader.py community (archive-listed) unverified MIT (permissive) · 236a60a4db5abeb0 · report

Tasks

2D Human Pose EstimationMulti-Person Pose EstimationPose EstimationPose PredictionRepresentation Learning

Results from the paper archive 2025-07-28

TaskDatasetModelMetricValueRank at snapshotLeaderboardReport
Multi-Person Pose Estimation COCO test-dev HigherHRNet (HR-Net-48) AP 70.5 #6 of 15 Archive leaderboard report
Multi-Person Pose Estimation COCO test-dev HigherHRNet (HR-Net-48) AP50 89.3 #6 of 15 Archive leaderboard report
Multi-Person Pose Estimation COCO test-dev HigherHRNet (HR-Net-48) AP75 77.2 #6 of 15 Archive leaderboard report
Multi-Person Pose Estimation COCO test-dev HigherHRNet (HR-Net-48) APL 75.8 #6 of 15 Archive leaderboard report
Multi-Person Pose Estimation COCO test-dev HigherHRNet (HR-Net-48) APM 66.6 #6 of 15 Archive leaderboard report
Multi-Person Pose Estimation CrowdPose HigherHRNet(HR-Net-48) AP Easy 75.8 #15 of 28 Archive leaderboard report
Multi-Person Pose Estimation CrowdPose HigherHRNet(HR-Net-48) AP Hard 58.9 #15 of 28 Archive leaderboard report
Multi-Person Pose Estimation CrowdPose HigherHRNet(HR-Net-48) AP Medium 68.1 #15 of 28 Archive leaderboard report
Multi-Person Pose Estimation CrowdPose HigherHRNet(HR-Net-48) FPS - #15 of 28 Archive leaderboard report
Multi-Person Pose Estimation CrowdPose HigherHRNet(HR-Net-48) mAP @0.5:0.95 67.6 #15 of 28 Archive leaderboard report
Pose Estimation UAV-Human HigherHRNet mAP 56.5 #2 of 2 Archive leaderboard report

Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.

Methods

Batch NormalizationConvolutionHRNetReLUResidual Connection

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections