{"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/fast-and-robust-multi-person-3d-pose","title":"Fast and Robust Multi-Person 3D Pose Estimation from Multiple Views","arxiv_id":"1901.04111","date":"2019-01-14","proceeding":"CVPR 2019 6","authors":["Junting Dong","Wen Jiang","Qi-Xing Huang","Hujun Bao","Xiaowei Zhou"],"abstract":"This paper addresses the problem of 3D pose estimation for multiple people in\na few calibrated camera views. The main challenge of this problem is to find\nthe cross-view correspondences among noisy and incomplete 2D pose predictions.\nMost previous methods address this challenge by directly reasoning in 3D using\na pictorial structure model, which is inefficient due to the huge state space.\nWe propose a fast and robust approach to solve this problem. Our key idea is to\nuse a multi-way matching algorithm to cluster the detected 2D poses in all\nviews. Each resulting cluster encodes 2D poses of the same person across\ndifferent views and consistent correspondences across the keypoints, from which\nthe 3D pose of each person can be effectively inferred. The proposed convex\noptimization based multi-way matching algorithm is efficient and robust against\nmissing and false detections, without knowing the number of people in the\nscene. Moreover, we propose to combine geometric and appearance cues for\ncross-view matching. The proposed approach achieves significant performance\ngains from the state-of-the-art (96.3% vs. 90.6% and 96.9% vs. 88% on the\nCampus and Shelf datasets, respectively), while being efficient for real-time\napplications.","url_abs":"http://arxiv.org/abs/1901.04111v1","url_pdf":"http://arxiv.org/pdf/1901.04111v1.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":"fast-and-robust-multi-person-3d-pose","repo_url":"https://github.com/openxrlab/xrmocap","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"fast-and-robust-multi-person-3d-pose","repo_url":"https://github.com/perfanalytics/pose2sim","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"paper_slug":"fast-and-robust-multi-person-3d-pose","repo_url":"https://github.com/zju3dv/EasyMocap","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"fast-and-robust-multi-person-3d-pose","repo_url":"https://github.com/zju3dv/mvpose","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":null}],"tasks":[{"task_slug":"3d-multi-person-pose-estimation","task_name":"3D Multi-Person Pose Estimation"},{"task_slug":"3d-pose-estimation","task_name":"3D Pose Estimation"},{"task_slug":"pose-estimation","task_name":"Pose Estimation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/3d-multi-person-pose-estimation-on-campus","task":"3D Multi-Person Pose Estimation","dataset":"Campus","model":"MVPose","rank_in_archive_order":13,"of":16,"metrics":{"PCP3D":"96.3"},"uses_additional_data":false},{"leaderboard":"/sota/3d-multi-person-pose-estimation-on-shelf","task":"3D Multi-Person Pose Estimation","dataset":"Shelf","model":"MVPose","rank_in_archive_order":18,"of":27,"metrics":{"PCP3D":"96.9"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/1901.04111","atlas_url":"https://app.syntology.ai/?focus=1901.04111","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1901.04111"}},"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/zju3dv/EasyMocap","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/perfanalytics/pose2sim","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/openxrlab/xrmocap","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/zju3dv/mvpose","reach":null}],"summary":{"ran":13,"ran_violates":1,"ran_draft_wrong":1,"unverified":4},"by_repo_kind":{"listed":{"samples":19,"ran":15,"repositories":2}},"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":"5968d2aed9a18f44","entry":"determine_level","repo":"perfanalytics/pose2sim","repo_kind":"listed","path":"Pose2Sim/Pose2Sim.py","file_url":"https://github.com/perfanalytics/pose2sim/blob/HEAD/Pose2Sim/Pose2Sim.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"5968d2aed9a18f44"}},{"code_sha256_prefix":"51884303c280eb3f","entry":"get_markers_path","repo":"perfanalytics/pose2sim","repo_kind":"listed","path":"Pose2Sim/kinematics.py","file_url":"https://github.com/perfanalytics/pose2sim/blob/HEAD/Pose2Sim/kinematics.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"51884303c280eb3f"}},{"code_sha256_prefix":"1d2337c9c4d8a8f2","entry":"get_max_workers","repo":"perfanalytics/pose2sim","repo_kind":"listed","path":"Pose2Sim/common.py","file_url":"https://github.com/perfanalytics/pose2sim/blob/HEAD/Pose2Sim/common.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"1d2337c9c4d8a8f2"}},{"code_sha256_prefix":"afdc19604ea84caf","entry":"get_model_path","repo":"perfanalytics/pose2sim","repo_kind":"listed","path":"Pose2Sim/kinematics.py","file_url":"https://github.com/perfanalytics/pose2sim/blob/HEAD/Pose2Sim/kinematics.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"afdc19604ea84caf"}},{"code_sha256_prefix":"9f5e9f9adf429fa2","entry":"get_scaling_setup","repo":"perfanalytics/pose2sim","repo_kind":"listed","path":"Pose2Sim/kinematics.py","file_url":"https://github.com/perfanalytics/pose2sim/blob/HEAD/Pose2Sim/kinematics.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"9f5e9f9adf429fa2"}},{"code_sha256_prefix":"414564c9c3cdbac8","entry":"get_smoothing_spline_intermediate_arrays","repo":"perfanalytics/pose2sim","repo_kind":"listed","path":"Pose2Sim/filtering.py","file_url":"https://github.com/perfanalytics/pose2sim/blob/HEAD/Pose2Sim/filtering.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"414564c9c3cdbac8"}},{"code_sha256_prefix":"0dcf9273d4f1954c","entry":"hampel_filter","repo":"perfanalytics/pose2sim","repo_kind":"listed","path":"Pose2Sim/filtering.py","file_url":"https://github.com/perfanalytics/pose2sim/blob/HEAD/Pose2Sim/filtering.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"0dcf9273d4f1954c"}},{"code_sha256_prefix":"45ac922f73ed0050","entry":"indices_of_first_last_non_nan_chunks","repo":"perfanalytics/pose2sim","repo_kind":"listed","path":"Pose2Sim/triangulation.py","file_url":"https://github.com/perfanalytics/pose2sim/blob/HEAD/Pose2Sim/triangulation.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"45ac922f73ed0050"}},{"code_sha256_prefix":"728c82d2ed4d8df5","entry":"is_image_file","repo":"perfanalytics/pose2sim","repo_kind":"listed","path":"Pose2Sim/common.py","file_url":"https://github.com/perfanalytics/pose2sim/blob/HEAD/Pose2Sim/common.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"728c82d2ed4d8df5"}},{"code_sha256_prefix":"ac6857abab524ac7","entry":"is_right","repo":"zju3dv/mvpose","repo_kind":"listed","path":"src/m_utils/evaluate.py","file_url":"https://github.com/zju3dv/mvpose/blob/HEAD/src/m_utils/evaluate.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ac6857abab524ac7"}},{"code_sha256_prefix":"7b1c01d6703e3ce6","entry":"is_video_file","repo":"perfanalytics/pose2sim","repo_kind":"listed","path":"Pose2Sim/common.py","file_url":"https://github.com/perfanalytics/pose2sim/blob/HEAD/Pose2Sim/common.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"7b1c01d6703e3ce6"}},{"code_sha256_prefix":"0637e1b8059b1eed","entry":"numpify","repo":"zju3dv/mvpose","repo_kind":"listed","path":"src/m_utils/evaluate.py","file_url":"https://github.com/zju3dv/mvpose/blob/HEAD/src/m_utils/evaluate.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0637e1b8059b1eed"}},{"code_sha256_prefix":"d785e8aeb6422c48","entry":"one_euro_filter_1d","repo":"perfanalytics/pose2sim","repo_kind":"listed","path":"Pose2Sim/filtering.py","file_url":"https://github.com/perfanalytics/pose2sim/blob/HEAD/Pose2Sim/filtering.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"d785e8aeb6422c48"}},{"code_sha256_prefix":"8b1697fa0742ed3c","entry":"persons_combinations","repo":"perfanalytics/pose2sim","repo_kind":"listed","path":"Pose2Sim/personAssociation.py","file_url":"https://github.com/perfanalytics/pose2sim/blob/HEAD/Pose2Sim/personAssociation.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"8b1697fa0742ed3c"}},{"code_sha256_prefix":"b05140de9b16a9d2","entry":"recursive_update","repo":"perfanalytics/pose2sim","repo_kind":"listed","path":"Pose2Sim/Pose2Sim.py","file_url":"https://github.com/perfanalytics/pose2sim/blob/HEAD/Pose2Sim/Pose2Sim.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"b05140de9b16a9d2"}},{"code_sha256_prefix":"62d5da938b7c82fb","entry":"create_textbox","repo":"perfanalytics/pose2sim","repo_kind":"listed","path":"Pose2Sim/synchronization.py","file_url":"https://github.com/perfanalytics/pose2sim/blob/HEAD/Pose2Sim/synchronization.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"62d5da938b7c82fb"}},{"code_sha256_prefix":"86773419dd277668","entry":"keypoints_ui","repo":"perfanalytics/pose2sim","repo_kind":"listed","path":"Pose2Sim/synchronization.py","file_url":"https://github.com/perfanalytics/pose2sim/blob/HEAD/Pose2Sim/synchronization.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"86773419dd277668"}},{"code_sha256_prefix":"374a6ef6d235197a","entry":"retrieve_right_trc_order","repo":"perfanalytics/pose2sim","repo_kind":"listed","path":"Pose2Sim/triangulation.py","file_url":"https://github.com/perfanalytics/pose2sim/blob/HEAD/Pose2Sim/triangulation.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"374a6ef6d235197a"}},{"code_sha256_prefix":"754bc9064a046c1d","entry":"setup_backend_device","repo":"perfanalytics/pose2sim","repo_kind":"listed","path":"Pose2Sim/poseEstimation.py","file_url":"https://github.com/perfanalytics/pose2sim/blob/HEAD/Pose2Sim/poseEstimation.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"754bc9064a046c1d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}