{"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/wham-reconstructing-world-grounded-humans","title":"WHAM: Reconstructing World-grounded Humans with Accurate 3D Motion","arxiv_id":"2312.07531","date":"2023-12-12","proceeding":"CVPR 2024 1","authors":["Soyong Shin","Juyong Kim","Eni Halilaj","Michael J. Black"],"abstract":"The estimation of 3D human motion from video has progressed rapidly but current methods still have several key limitations. First, most methods estimate the human in camera coordinates. Second, prior work on estimating humans in global coordinates often assumes a flat ground plane and produces foot sliding. Third, the most accurate methods rely on computationally expensive optimization pipelines, limiting their use to offline applications. Finally, existing video-based methods are surprisingly less accurate than single-frame methods. We address these limitations with WHAM (World-grounded Humans with Accurate Motion), which accurately and efficiently reconstructs 3D human motion in a global coordinate system from video. WHAM learns to lift 2D keypoint sequences to 3D using motion capture data and fuses this with video features, integrating motion context and visual information. WHAM exploits camera angular velocity estimated from a SLAM method together with human motion to estimate the body's global trajectory. We combine this with a contact-aware trajectory refinement method that lets WHAM capture human motion in diverse conditions, such as climbing stairs. WHAM outperforms all existing 3D human motion recovery methods across multiple in-the-wild benchmarks. Code will be available for research purposes at http://wham.is.tue.mpg.de/","url_abs":"https://arxiv.org/abs/2312.07531v2","url_pdf":"https://arxiv.org/pdf/2312.07531v2.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":"wham-reconstructing-world-grounded-humans","repo_url":"https://github.com/yohanshin/WHAM","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"3d-human-pose-estimation","task_name":"3D Human Pose Estimation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/3d-human-pose-estimation-on-3dpw","task":"3D Human Pose Estimation","dataset":"3DPW","model":"WHAM (ViT)","rank_in_archive_order":2,"of":119,"metrics":{"MPJPE":"57.8","MPVPE":"68.7","PA-MPJPE":"35.9"},"uses_additional_data":false},{"leaderboard":"/sota/3d-human-pose-estimation-on-emdb","task":"3D Human Pose Estimation","dataset":"EMDB","model":"WHAM (ViT)","rank_in_archive_order":2,"of":13,"metrics":{"Average MPJPE (mm)":"79.7","Average MPJPE-PA (mm)":"50.4","Average MVE (mm)":"94.4"},"uses_additional_data":false},{"leaderboard":"/sota/3d-human-pose-estimation-on-rich","task":"3D Human Pose Estimation","dataset":"RICH","model":"WHAM (ViT)","rank_in_archive_order":4,"of":4,"metrics":{"MPJPE":"80","MPVPE":"91.2","PA-MPJPE":"44.3"},"uses_additional_data":false}],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2312.07531","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2312.07531"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+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/yohanshin/WHAM","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":3,"unverified":9},"by_repo_kind":{"listed":{"samples":12,"ran":3,"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":"58d59e9d2a8a0240","entry":"compute_accel","repo":"yohanshin/WHAM","repo_kind":"listed","path":"lib/eval/eval_utils.py","file_url":"https://github.com/yohanshin/WHAM/blob/HEAD/lib/eval/eval_utils.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":"58d59e9d2a8a0240"}},{"code_sha256_prefix":"35c6e596e9bc4bb2","entry":"compute_error_accel","repo":"yohanshin/WHAM","repo_kind":"listed","path":"lib/eval/eval_utils.py","file_url":"https://github.com/yohanshin/WHAM/blob/HEAD/lib/eval/eval_utils.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":"35c6e596e9bc4bb2"}},{"code_sha256_prefix":"8e5bf3cf235ab46d","entry":"compute_error_verts","repo":"yohanshin/WHAM","repo_kind":"listed","path":"lib/eval/eval_utils.py","file_url":"https://github.com/yohanshin/WHAM/blob/HEAD/lib/eval/eval_utils.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":"8e5bf3cf235ab46d"}},{"code_sha256_prefix":"fe7aa89a39f9cc8b","entry":"bool_arg","repo":"yohanshin/WHAM","repo_kind":"listed","path":"configs/config.py","file_url":"https://github.com/yohanshin/WHAM/blob/HEAD/configs/config.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":"fe7aa89a39f9cc8b"}},{"code_sha256_prefix":"e4d2ae7f674acab9","entry":"contact_loss","repo":"yohanshin/WHAM","repo_kind":"listed","path":"lib/core/loss.py","file_url":"https://github.com/yohanshin/WHAM/blob/HEAD/lib/core/loss.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":"e4d2ae7f674acab9"}},{"code_sha256_prefix":"869298cb3b9cfb7e","entry":"extract_cam_param_xml","repo":"yohanshin/WHAM","repo_kind":"listed","path":"lib/data_utils/rich_eval_utils.py","file_url":"https://github.com/yohanshin/WHAM/blob/HEAD/lib/data_utils/rich_eval_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":"869298cb3b9cfb7e"}},{"code_sha256_prefix":"cea0af0de65ed3e1","entry":"full_projected_keypoint_loss","repo":"yohanshin/WHAM","repo_kind":"listed","path":"lib/core/loss.py","file_url":"https://github.com/yohanshin/WHAM/blob/HEAD/lib/core/loss.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":"cea0af0de65ed3e1"}},{"code_sha256_prefix":"2039dbb6edef87be","entry":"get_cfg","repo":"yohanshin/WHAM","repo_kind":"listed","path":"configs/config.py","file_url":"https://github.com/yohanshin/WHAM/blob/HEAD/configs/config.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":"2039dbb6edef87be"}},{"code_sha256_prefix":"d47bdae1805ba57f","entry":"is_dset","repo":"yohanshin/WHAM","repo_kind":"listed","path":"lib/data_utils/emdb_eval_utils.py","file_url":"https://github.com/yohanshin/WHAM/blob/HEAD/lib/data_utils/emdb_eval_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":"d47bdae1805ba57f"}},{"code_sha256_prefix":"f5e1eddc0f7791f2","entry":"load_video","repo":"yohanshin/WHAM","repo_kind":"listed","path":"wham_api.py","file_url":"https://github.com/yohanshin/WHAM/blob/HEAD/wham_api.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":"f5e1eddc0f7791f2"}},{"code_sha256_prefix":"92381a84384aef12","entry":"parse_args","repo":"yohanshin/WHAM","repo_kind":"listed","path":"configs/config.py","file_url":"https://github.com/yohanshin/WHAM/blob/HEAD/configs/config.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":"92381a84384aef12"}},{"code_sha256_prefix":"50063b39bbec654b","entry":"root_loss","repo":"yohanshin/WHAM","repo_kind":"listed","path":"lib/core/loss.py","file_url":"https://github.com/yohanshin/WHAM/blob/HEAD/lib/core/loss.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":"50063b39bbec654b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}