{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/mhformer-multi-hypothesis-transformer-for-3d","title":"MHFormer: Multi-Hypothesis Transformer for 3D Human Pose Estimation","arxiv_id":"2111.12707","date":"2021-11-24","proceeding":"CVPR 2022 1","authors":["Wenhao Li","Hong Liu","Hao Tang","Pichao Wang","Luc van Gool"],"abstract":"Estimating 3D human poses from monocular videos is a challenging task due to depth ambiguity and self-occlusion. Most existing works attempt to solve both issues by exploiting spatial and temporal relationships. However, those works ignore the fact that it is an inverse problem where multiple feasible solutions (i.e., hypotheses) exist. To relieve this limitation, we propose a Multi-Hypothesis Transformer (MHFormer) that learns spatio-temporal representations of multiple plausible pose hypotheses. In order to effectively model multi-hypothesis dependencies and build strong relationships across hypothesis features, the task is decomposed into three stages: (i) Generate multiple initial hypothesis representations; (ii) Model self-hypothesis communication, merge multiple hypotheses into a single converged representation and then partition it into several diverged hypotheses; (iii) Learn cross-hypothesis communication and aggregate the multi-hypothesis features to synthesize the final 3D pose. Through the above processes, the final representation is enhanced and the synthesized pose is much more accurate. Extensive experiments show that MHFormer achieves state-of-the-art results on two challenging datasets: Human3.6M and MPI-INF-3DHP. Without bells and whistles, its performance surpasses the previous best result by a large margin of 3% on Human3.6M. Code and models are available at \\url{https://github.com/Vegetebird/MHFormer}.","url_abs":"https://arxiv.org/abs/2111.12707v4","url_pdf":"https://arxiv.org/pdf/2111.12707v4.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"mhformer-multi-hypothesis-transformer-for-3d","repo_url":"https://github.com/Vegetebird/MHFormer","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"3d-human-pose-estimation","task_name":"3D Human Pose Estimation"},{"task_slug":"pose-estimation","task_name":"Pose Estimation"}],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"transformer","method_name":"Transformer"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/3d-human-pose-estimation-on-human36m","task":"3D Human Pose Estimation","dataset":"Human3.6M","model":"MHFormer","rank_in_archive_order":27,"of":88,"metrics":{"Average MPJPE (mm)":"43","Multi-View or Monocular":"Monocular","Using 2D ground-truth joints":"No"},"uses_additional_data":false},{"leaderboard":"/sota/3d-human-pose-estimation-on-mpi-inf-3dhp","task":"3D Human Pose Estimation","dataset":"MPI-INF-3DHP","model":"MHFormer","rank_in_archive_order":25,"of":108,"metrics":{"AUC":"63.3","MPJPE":"58","PCK":"93.8"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2111.12707","atlas_url":"https://app.syntology.ai/?focus=2111.12707","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2111.12707"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Vegetebird/MHFormer","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":4,"unverified":6},"by_repo_kind":{"official":{"samples":10,"ran":4,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"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"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"f3a0f7cf8690505f","entry":"coco_h36m","repo":"Vegetebird/MHFormer","repo_kind":"official","path":"demo/lib/preprocess.py","file_url":"https://github.com/Vegetebird/MHFormer/blob/HEAD/demo/lib/preprocess.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f3a0f7cf8690505f"}},{"code_sha256_prefix":"85be84dc21eb6ce3","entry":"h36m_coco_format","repo":"Vegetebird/MHFormer","repo_kind":"official","path":"demo/lib/preprocess.py","file_url":"https://github.com/Vegetebird/MHFormer/blob/HEAD/demo/lib/preprocess.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"85be84dc21eb6ce3"}},{"code_sha256_prefix":"b9f70678ddc9add2","entry":"revise_kpts","repo":"Vegetebird/MHFormer","repo_kind":"official","path":"demo/lib/preprocess.py","file_url":"https://github.com/Vegetebird/MHFormer/blob/HEAD/demo/lib/preprocess.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b9f70678ddc9add2"}},{"code_sha256_prefix":"091700eabe2e929a","entry":"show2Dpose","repo":"Vegetebird/MHFormer","repo_kind":"official","path":"demo/vis.py","file_url":"https://github.com/Vegetebird/MHFormer/blob/HEAD/demo/vis.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"091700eabe2e929a"}},{"code_sha256_prefix":"0892bc8406224611","entry":"camera_to_world","repo":"Vegetebird/MHFormer","repo_kind":"official","path":"common/camera.py","file_url":"https://github.com/Vegetebird/MHFormer/blob/HEAD/common/camera.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0892bc8406224611"}},{"code_sha256_prefix":"ec58bab810b80366","entry":"deterministic_random","repo":"Vegetebird/MHFormer","repo_kind":"official","path":"common/utils.py","file_url":"https://github.com/Vegetebird/MHFormer/blob/HEAD/common/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ec58bab810b80366"}},{"code_sha256_prefix":"c5148aea3c7b76b6","entry":"mpjpe_cal","repo":"Vegetebird/MHFormer","repo_kind":"official","path":"common/utils.py","file_url":"https://github.com/Vegetebird/MHFormer/blob/HEAD/common/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c5148aea3c7b76b6"}},{"code_sha256_prefix":"82baf6aa4fb040a1","entry":"normalize_screen_coordinates","repo":"Vegetebird/MHFormer","repo_kind":"official","path":"common/camera.py","file_url":"https://github.com/Vegetebird/MHFormer/blob/HEAD/common/camera.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"82baf6aa4fb040a1"}},{"code_sha256_prefix":"d8222b9b5b8b97c9","entry":"test_calculation","repo":"Vegetebird/MHFormer","repo_kind":"official","path":"common/utils.py","file_url":"https://github.com/Vegetebird/MHFormer/blob/HEAD/common/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d8222b9b5b8b97c9"}},{"code_sha256_prefix":"32eca53ede0ea499","entry":"world_to_camera","repo":"Vegetebird/MHFormer","repo_kind":"official","path":"common/camera.py","file_url":"https://github.com/Vegetebird/MHFormer/blob/HEAD/common/camera.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"32eca53ede0ea499"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}