{"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/a-simple-baseline-for-efficient-hand-mesh","title":"A Simple Baseline for Efficient Hand Mesh Reconstruction","arxiv_id":"2403.01813","date":"2024-03-04","proceeding":"CVPR 2024 1","authors":["Zhishan Zhou","Shihao. zhou","Zhi Lv","Minqiang Zou","Yao Tang","Jiajun Liang"],"abstract":"3D hand pose estimation has found broad application in areas such as gesture recognition and human-machine interaction tasks. As performance improves, the complexity of the systems also increases, which can limit the comparative analysis and practical implementation of these methods. In this paper, we propose a simple yet effective baseline that not only surpasses state-of-the-art (SOTA) methods but also demonstrates computational efficiency. To establish this baseline, we abstract existing work into two components: a token generator and a mesh regressor, and then examine their core structures. A core structure, in this context, is one that fulfills intrinsic functions, brings about significant improvements, and achieves excellent performance without unnecessary complexities. Our proposed approach is decoupled from any modifications to the backbone, making it adaptable to any modern models. Our method outperforms existing solutions, achieving state-of-the-art (SOTA) results across multiple datasets. On the FreiHAND dataset, our approach produced a PA-MPJPE of 5.7mm and a PA-MPVPE of 6.0mm. Similarly, on the Dexycb dataset, we observed a PA-MPJPE of 5.5mm and a PA-MPVPE of 5.0mm. As for performance speed, our method reached up to 33 frames per second (fps) when using HRNet and up to 70 fps when employing FastViT-MA36","url_abs":"https://arxiv.org/abs/2403.01813v1","url_pdf":"https://arxiv.org/pdf/2403.01813v1.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":"a-simple-baseline-for-efficient-hand-mesh","repo_url":"https://github.com/patiencefromzhou/simplehand","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"3d-hand-pose-estimation","task_name":"3D Hand Pose Estimation"},{"task_slug":"computational-efficiency","task_name":"Computational Efficiency"},{"task_slug":"gesture-recognition","task_name":"Gesture Recognition"},{"task_slug":"hand-pose-estimation","task_name":"Hand Pose Estimation"},{"task_slug":"pose-estimation","task_name":"Pose Estimation"}],"methods":[{"method_slug":"batch-normalization","method_name":"Batch Normalization"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"hrnet","method_name":"HRNet"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"residual-connection","method_name":"Residual Connection"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/3d-hand-pose-estimation-on-dexycb","task":"3D Hand Pose Estimation","dataset":"DexYCB","model":"SimpleHand","rank_in_archive_order":3,"of":11,"metrics":{"Average MPJPE (mm)":"12.4","MPVPE":"12.1","PA-MPVPE":"5.5","PA-VAUC":"-","Procrustes-Aligned MPJPE":"5.5","VAUC":"-"},"uses_additional_data":false},{"leaderboard":"/sota/3d-hand-pose-estimation-on-freihand","task":"3D Hand Pose Estimation","dataset":"FreiHAND","model":"Zhou et al.","rank_in_archive_order":7,"of":33,"metrics":{"PA-F@15mm":"0.986","PA-F@5mm":"0.772","PA-MPJPE":"5.7","PA-MPVPE":"6.0"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2403.01813","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2403.01813"}},"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/patiencefromzhou/simplehand","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":1,"unverified":14},"by_repo_kind":{"listed":{"samples":15,"ran":1,"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":"38a4447a0132916a","entry":"align_w_scale","repo":"patiencefromzhou/simplehand","repo_kind":"listed","path":"infer_to_json.py","file_url":"https://github.com/patiencefromzhou/simplehand/blob/HEAD/infer_to_json.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"38a4447a0132916a"}},{"code_sha256_prefix":"e75bcdbf04de72fc","entry":"build_position_encoding","repo":"patiencefromzhou/simplehand","repo_kind":"listed","path":"models/position_embedding.py","file_url":"https://github.com/patiencefromzhou/simplehand/blob/HEAD/models/position_embedding.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":"e75bcdbf04de72fc"}},{"code_sha256_prefix":"815a62ae24a7fc21","entry":"get_fingertip","repo":"patiencefromzhou/simplehand","repo_kind":"listed","path":"models/losses.py","file_url":"https://github.com/patiencefromzhou/simplehand/blob/HEAD/models/losses.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":"815a62ae24a7fc21"}},{"code_sha256_prefix":"0bf60765ad37025b","entry":"get_points_bbox","repo":"patiencefromzhou/simplehand","repo_kind":"listed","path":"kp_preprocess.py","file_url":"https://github.com/patiencefromzhou/simplehand/blob/HEAD/kp_preprocess.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":"0bf60765ad37025b"}},{"code_sha256_prefix":"389ba32a8050a643","entry":"get_points_center_scale","repo":"patiencefromzhou/simplehand","repo_kind":"listed","path":"kp_preprocess.py","file_url":"https://github.com/patiencefromzhou/simplehand/blob/HEAD/kp_preprocess.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":"389ba32a8050a643"}},{"code_sha256_prefix":"07fc37b1ec3cad9d","entry":"keypoint_auc","repo":"patiencefromzhou/simplehand","repo_kind":"listed","path":"eval_utils.py","file_url":"https://github.com/patiencefromzhou/simplehand/blob/HEAD/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":"07fc37b1ec3cad9d"}},{"code_sha256_prefix":"13917732e49d58d9","entry":"keypoint_pck_accuracy","repo":"patiencefromzhou/simplehand","repo_kind":"listed","path":"eval_utils.py","file_url":"https://github.com/patiencefromzhou/simplehand/blob/HEAD/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":"13917732e49d58d9"}},{"code_sha256_prefix":"0799d9a300d22e21","entry":"lbs","repo":"patiencefromzhou/simplehand","repo_kind":"listed","path":"models/mano_torch.py","file_url":"https://github.com/patiencefromzhou/simplehand/blob/HEAD/models/mano_torch.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":"0799d9a300d22e21"}},{"code_sha256_prefix":"f97abd9a3ca74542","entry":"load_mano_params_c","repo":"patiencefromzhou/simplehand","repo_kind":"listed","path":"models/losses.py","file_url":"https://github.com/patiencefromzhou/simplehand/blob/HEAD/models/losses.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":"f97abd9a3ca74542"}},{"code_sha256_prefix":"1513953f7add59bd","entry":"pose_pck_accuracy","repo":"patiencefromzhou/simplehand","repo_kind":"listed","path":"eval_utils.py","file_url":"https://github.com/patiencefromzhou/simplehand/blob/HEAD/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":"1513953f7add59bd"}},{"code_sha256_prefix":"22857b95dac1ddca","entry":"preprocess","repo":"patiencefromzhou/simplehand","repo_kind":"listed","path":"kp_preprocess.py","file_url":"https://github.com/patiencefromzhou/simplehand/blob/HEAD/kp_preprocess.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":"22857b95dac1ddca"}},{"code_sha256_prefix":"6169d0071af029b3","entry":"project_k","repo":"patiencefromzhou/simplehand","repo_kind":"listed","path":"models/losses.py","file_url":"https://github.com/patiencefromzhou/simplehand/blob/HEAD/models/losses.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":"6169d0071af029b3"}},{"code_sha256_prefix":"ed3e5078d9be2fe8","entry":"read_info","repo":"patiencefromzhou/simplehand","repo_kind":"listed","path":"dataset.py","file_url":"https://github.com/patiencefromzhou/simplehand/blob/HEAD/dataset.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":"ed3e5078d9be2fe8"}},{"code_sha256_prefix":"1f941eb6db919207","entry":"remap_uv","repo":"patiencefromzhou/simplehand","repo_kind":"listed","path":"models/modules.py","file_url":"https://github.com/patiencefromzhou/simplehand/blob/HEAD/models/modules.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":"1f941eb6db919207"}},{"code_sha256_prefix":"f60c90a51b7481f7","entry":"vertices2landmarks","repo":"patiencefromzhou/simplehand","repo_kind":"listed","path":"models/mano_torch.py","file_url":"https://github.com/patiencefromzhou/simplehand/blob/HEAD/models/mano_torch.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":"f60c90a51b7481f7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}