{"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/humaniflow-ancestor-conditioned-normalising","title":"HuManiFlow: Ancestor-Conditioned Normalising Flows on SO(3) Manifolds for Human Pose and Shape Distribution Estimation","arxiv_id":"2305.06968","date":"2023-05-11","proceeding":"CVPR 2023 1","authors":["Akash Sengupta","Ignas Budvytis","Roberto Cipolla"],"abstract":"Monocular 3D human pose and shape estimation is an ill-posed problem since multiple 3D solutions can explain a 2D image of a subject. Recent approaches predict a probability distribution over plausible 3D pose and shape parameters conditioned on the image. We show that these approaches exhibit a trade-off between three key properties: (i) accuracy - the likelihood of the ground-truth 3D solution under the predicted distribution, (ii) sample-input consistency - the extent to which 3D samples from the predicted distribution match the visible 2D image evidence, and (iii) sample diversity - the range of plausible 3D solutions modelled by the predicted distribution. Our method, HuManiFlow, predicts simultaneously accurate, consistent and diverse distributions. We use the human kinematic tree to factorise full body pose into ancestor-conditioned per-body-part pose distributions in an autoregressive manner. Per-body-part distributions are implemented using normalising flows that respect the manifold structure of SO(3), the Lie group of per-body-part poses. We show that ill-posed, but ubiquitous, 3D point estimate losses reduce sample diversity, and employ only probabilistic training losses. Code is available at: https://github.com/akashsengupta1997/HuManiFlow.","url_abs":"https://arxiv.org/abs/2305.06968v1","url_pdf":"https://arxiv.org/pdf/2305.06968v1.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":"humaniflow-ancestor-conditioned-normalising","repo_url":"https://github.com/akashsengupta1997/humaniflow","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":"3d-human-pose-and-shape-estimation","task_name":"3D human pose and shape estimation"},{"task_slug":"diversity","task_name":"Diversity"},{"task_slug":"multi-hypotheses-3d-human-pose-estimation","task_name":"Multi-Hypotheses 3D Human Pose Estimation"},{"task_slug":"normalising-flows","task_name":"Normalising Flows"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/3d-human-pose-estimation-on-3dpw","task":"3D Human Pose Estimation","dataset":"3DPW","model":"HuManiFlow","rank_in_archive_order":79,"of":119,"metrics":{"MPJPE":"83.9","PA-MPJPE":"53.4"},"uses_additional_data":false},{"leaderboard":"/sota/multi-hypotheses-3d-human-pose-estimation-on-2","task":"Multi-Hypotheses 3D Human Pose Estimation","dataset":"AH36M","model":"HuManiFlow","rank_in_archive_order":10,"of":10,"metrics":{"Best-Hypothesis MPJPE (n = 25)":"-","Best-Hypothesis PMPJPE (n = 25)":"-","H36M PMPJPE (n = 1)":"-","H36M PMPJPE (n = 25)":"-","Most-Likely Hypothesis PMPJPE (n = 1)":"-"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2305.06968","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2305.06968"}},"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/akashsengupta1997/humaniflow","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":3,"unverified":3},"by_repo_kind":{"official":{"samples":6,"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":"d9def42110729a85","entry":"conv1x1","repo":"akashsengupta1997/humaniflow","repo_kind":"official","path":"models/resnet.py","file_url":"https://github.com/akashsengupta1997/humaniflow/blob/HEAD/models/resnet.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d9def42110729a85"}},{"code_sha256_prefix":"160bb14bd76201b4","entry":"conv3x3","repo":"akashsengupta1997/humaniflow","repo_kind":"official","path":"models/resnet.py","file_url":"https://github.com/akashsengupta1997/humaniflow/blob/HEAD/models/resnet.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"160bb14bd76201b4"}},{"code_sha256_prefix":"fac5364e2f53c6db","entry":"conv3x3","repo":"akashsengupta1997/humaniflow","repo_kind":"official","path":"models/pose2D_hrnet.py","file_url":"https://github.com/akashsengupta1997/humaniflow/blob/HEAD/models/pose2D_hrnet.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fac5364e2f53c6db"}},{"code_sha256_prefix":"2534c81208f21998","entry":"get_pose_net","repo":"akashsengupta1997/humaniflow","repo_kind":"official","path":"models/pose2D_hrnet.py","file_url":"https://github.com/akashsengupta1997/humaniflow/blob/HEAD/models/pose2D_hrnet.py","link_basis":"plan_row","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":"2534c81208f21998"}},{"code_sha256_prefix":"b3b1eaa6fe86547f","entry":"immediate_parent_to_all_ancestors","repo":"akashsengupta1997/humaniflow","repo_kind":"official","path":"models/humaniflow_model.py","file_url":"https://github.com/akashsengupta1997/humaniflow/blob/HEAD/models/humaniflow_model.py","link_basis":"first_harvest_node","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":"b3b1eaa6fe86547f"}},{"code_sha256_prefix":"055a5e7106b48fd2","entry":"resnet18","repo":"akashsengupta1997/humaniflow","repo_kind":"official","path":"models/resnet.py","file_url":"https://github.com/akashsengupta1997/humaniflow/blob/HEAD/models/resnet.py","link_basis":"first_harvest_node","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":"055a5e7106b48fd2"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}