{"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/camerahmr-aligning-people-with-perspective","title":"CameraHMR: Aligning People with Perspective","arxiv_id":"2411.08128","date":"2024-11-12","proceeding":null,"authors":["Priyanka Patel","Michael J. Black"],"abstract":"We address the challenge of accurate 3D human pose and shape estimation from monocular images. The key to accuracy and robustness lies in high-quality training data. Existing training datasets containing real images with pseudo ground truth (pGT) use SMPLify to fit SMPL to sparse 2D joint locations, assuming a simplified camera with default intrinsics. We make two contributions that improve pGT accuracy. First, to estimate camera intrinsics, we develop a field-of-view prediction model (HumanFoV) trained on a dataset of images containing people. We use the estimated intrinsics to enhance the 4D-Humans dataset by incorporating a full perspective camera model during SMPLify fitting. Second, 2D joints provide limited constraints on 3D body shape, resulting in average-looking bodies. To address this, we use the BEDLAM dataset to train a dense surface keypoint detector. We apply this detector to the 4D-Humans dataset and modify SMPLify to fit the detected keypoints, resulting in significantly more realistic body shapes. Finally, we upgrade the HMR2.0 architecture to include the estimated camera parameters. We iterate model training and SMPLify fitting initialized with the previously trained model. This leads to more accurate pGT and a new model, CameraHMR, with state-of-the-art accuracy. Code and pGT are available for research purposes.","url_abs":"https://arxiv.org/abs/2411.08128v1","url_pdf":"https://arxiv.org/pdf/2411.08128v1.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":"camerahmr-aligning-people-with-perspective","repo_url":"https://github.com/pixelite1201/CameraHMR/tree/master/CameraHMR_demo","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"camerahmr-aligning-people-with-perspective","repo_url":"https://github.com/pixelite1201/CameraHMR","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"3d-human-pose-and-shape-estimation","task_name":"3D human pose and shape estimation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2411.08128","atlas_url":"https://app.syntology.ai/?focus=2411.08128","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2411.08128"}},"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/pixelite1201/CameraHMR","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/pixelite1201/CameraHMR/tree/master/CameraHMR_demo","reach":null}],"summary":{"unverified":6},"by_repo_kind":{"official":{"samples":6,"ran":0,"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":6,"samples":[{"code_sha256_prefix":"e0393d93ee149a1e","entry":"get_transform","repo":"pixelite1201/CameraHMR","repo_kind":"official","path":"CamSMPLify/losses.py","file_url":"https://github.com/pixelite1201/CameraHMR/blob/HEAD/CamSMPLify/losses.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e0393d93ee149a1e"}},{"code_sha256_prefix":"9c5298e006aa455e","entry":"j2d_processing","repo":"pixelite1201/CameraHMR","repo_kind":"official","path":"CamSMPLify/losses.py","file_url":"https://github.com/pixelite1201/CameraHMR/blob/HEAD/CamSMPLify/losses.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9c5298e006aa455e"}},{"code_sha256_prefix":"a6c0c288f6eefec6","entry":"scale_and_translation_transform_batch","repo":"pixelite1201/CameraHMR","repo_kind":"official","path":"core/camerahmr_trainer_smpl.py","file_url":"https://github.com/pixelite1201/CameraHMR/blob/HEAD/core/camerahmr_trainer_smpl.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a6c0c288f6eefec6"}},{"code_sha256_prefix":"8910e3bdbd983551","entry":"split2face_feet_hand_parts","repo":"pixelite1201/CameraHMR","repo_kind":"official","path":"core/vertex_ids.py","file_url":"https://github.com/pixelite1201/CameraHMR/blob/HEAD/core/vertex_ids.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8910e3bdbd983551"}},{"code_sha256_prefix":"9e3ea7b58eeaca15","entry":"to_tensor","repo":"pixelite1201/CameraHMR","repo_kind":"official","path":"core/vertex_ids.py","file_url":"https://github.com/pixelite1201/CameraHMR/blob/HEAD/core/vertex_ids.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9e3ea7b58eeaca15"}},{"code_sha256_prefix":"9551593dc52cc5d5","entry":"transform","repo":"pixelite1201/CameraHMR","repo_kind":"official","path":"CamSMPLify/losses.py","file_url":"https://github.com/pixelite1201/CameraHMR/blob/HEAD/CamSMPLify/losses.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9551593dc52cc5d5"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}