{"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/monocular-real-time-hand-shape-and-motion","title":"Monocular Real-time Hand Shape and Motion Capture using Multi-modal Data","arxiv_id":"2003.09572","date":"2020-03-21","proceeding":"CVPR 2020 6","authors":["Yuxiao Zhou","Marc Habermann","Weipeng Xu","Ikhsanul Habibie","Christian Theobalt","Feng Xu"],"abstract":"We present a novel method for monocular hand shape and pose estimation at unprecedented runtime performance of 100fps and at state-of-the-art accuracy. This is enabled by a new learning based architecture designed such that it can make use of all the sources of available hand training data: image data with either 2D or 3D annotations, as well as stand-alone 3D animations without corresponding image data. It features a 3D hand joint detection module and an inverse kinematics module which regresses not only 3D joint positions but also maps them to joint rotations in a single feed-forward pass. This output makes the method more directly usable for applications in computer vision and graphics compared to only regressing 3D joint positions. We demonstrate that our architectural design leads to a significant quantitative and qualitative improvement over the state of the art on several challenging benchmarks. Our model is publicly available for future research.","url_abs":"https://arxiv.org/abs/2003.09572v3","url_pdf":"https://arxiv.org/pdf/2003.09572v3.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":"monocular-real-time-hand-shape-and-motion","repo_url":"https://github.com/CalciferZh/minimal-hand","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"monocular-real-time-hand-shape-and-motion","repo_url":"https://github.com/ut-vision/simhand","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"monocular-real-time-hand-shape-and-motion","repo_url":"https://github.com/vinnik-dmitry07/minimal-hand","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"pose-estimation","task_name":"Pose Estimation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2003.09572","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2003.09572"}},"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/ut-vision/simhand","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/CalciferZh/minimal-hand","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/vinnik-dmitry07/minimal-hand","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":14},"by_repo_kind":{"official":{"samples":9,"ran":0,"repositories":1},"listed":{"samples":5,"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":0,"samples":[{"code_sha256_prefix":"293235daae8170bd","entry":"calculate_auc","repo":"CalciferZh/minimal-hand","repo_kind":"official","path":"plot.py","file_url":"https://github.com/CalciferZh/minimal-hand/blob/HEAD/plot.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":"293235daae8170bd"}},{"code_sha256_prefix":"d62dd73c3d44c857","entry":"conv_bn","repo":"CalciferZh/minimal-hand","repo_kind":"official","path":"network.py","file_url":"https://github.com/CalciferZh/minimal-hand/blob/HEAD/network.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":"d62dd73c3d44c857"}},{"code_sha256_prefix":"25237f9d8ced13f2","entry":"conv_bn","repo":"vinnik-dmitry07/minimal-hand","repo_kind":"listed","path":"network.py","file_url":"https://github.com/vinnik-dmitry07/minimal-hand/blob/HEAD/network.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":"25237f9d8ced13f2"}},{"code_sha256_prefix":"4d2a66359100655a","entry":"conv_bn_relu","repo":"CalciferZh/minimal-hand","repo_kind":"official","path":"network.py","file_url":"https://github.com/CalciferZh/minimal-hand/blob/HEAD/network.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":"4d2a66359100655a"}},{"code_sha256_prefix":"958f62a80012eb81","entry":"conv_bn_relu","repo":"vinnik-dmitry07/minimal-hand","repo_kind":"listed","path":"network.py","file_url":"https://github.com/vinnik-dmitry07/minimal-hand/blob/HEAD/network.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":"958f62a80012eb81"}},{"code_sha256_prefix":"3fcacade2a7a1d62","entry":"filter_nan_inf","repo":"vinnik-dmitry07/minimal-hand","repo_kind":"listed","path":"app1.py","file_url":"https://github.com/vinnik-dmitry07/minimal-hand/blob/HEAD/app1.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":"3fcacade2a7a1d62"}},{"code_sha256_prefix":"81cc19c4bc15b8bd","entry":"imresize","repo":"CalciferZh/minimal-hand","repo_kind":"official","path":"utils.py","file_url":"https://github.com/CalciferZh/minimal-hand/blob/HEAD/utils.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":"81cc19c4bc15b8bd"}},{"code_sha256_prefix":"7561717c5e734f6b","entry":"load_pkl","repo":"CalciferZh/minimal-hand","repo_kind":"official","path":"utils.py","file_url":"https://github.com/CalciferZh/minimal-hand/blob/HEAD/utils.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":"7561717c5e734f6b"}},{"code_sha256_prefix":"98b35e2d80342219","entry":"mano_to_mpii","repo":"CalciferZh/minimal-hand","repo_kind":"official","path":"kinematics.py","file_url":"https://github.com/CalciferZh/minimal-hand/blob/HEAD/kinematics.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":"98b35e2d80342219"}},{"code_sha256_prefix":"91c388aacfa4de3c","entry":"mpii_to_mano","repo":"CalciferZh/minimal-hand","repo_kind":"official","path":"kinematics.py","file_url":"https://github.com/CalciferZh/minimal-hand/blob/HEAD/kinematics.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":"91c388aacfa4de3c"}},{"code_sha256_prefix":"2eeecc7deb1dcb9b","entry":"to_vec","repo":"vinnik-dmitry07/minimal-hand","repo_kind":"listed","path":"app1.py","file_url":"https://github.com/vinnik-dmitry07/minimal-hand/blob/HEAD/app1.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":"2eeecc7deb1dcb9b"}},{"code_sha256_prefix":"b43e0bf3e224c756","entry":"unit_vector","repo":"vinnik-dmitry07/minimal-hand","repo_kind":"listed","path":"app1.py","file_url":"https://github.com/vinnik-dmitry07/minimal-hand/blob/HEAD/app1.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":"b43e0bf3e224c756"}},{"code_sha256_prefix":"06f6fcc9a30c5f4e","entry":"xyz_to_delta","repo":"CalciferZh/minimal-hand","repo_kind":"official","path":"kinematics.py","file_url":"https://github.com/CalciferZh/minimal-hand/blob/HEAD/kinematics.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":"06f6fcc9a30c5f4e"}},{"code_sha256_prefix":"cb6951cec018a217","entry":"zero_padding","repo":"CalciferZh/minimal-hand","repo_kind":"official","path":"network.py","file_url":"https://github.com/CalciferZh/minimal-hand/blob/HEAD/network.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":"cb6951cec018a217"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}