{"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/see-you-soon-decoupled-iterative-refinement","title":"Decoupled Iterative Refinement Framework for Interacting Hands Reconstruction from a Single RGB Image","arxiv_id":"2302.02410","date":"2023-02-05","proceeding":"ICCV 2023 1","authors":["Pengfei Ren","Chao Wen","Xiaozheng Zheng","Zhou Xue","Haifeng Sun","Qi Qi","Jingyu Wang","Jianxin Liao"],"abstract":"Reconstructing interacting hands from a single RGB image is a very challenging task. On the one hand, severe mutual occlusion and similar local appearance between two hands confuse the extraction of visual features, resulting in the misalignment of estimated hand meshes and the image. On the other hand, there are complex spatial relationship between interacting hands, which significantly increases the solution space of hand poses and increases the difficulty of network learning. In this paper, we propose a decoupled iterative refinement framework to achieve pixel-alignment hand reconstruction while efficiently modeling the spatial relationship between hands. Specifically, we define two feature spaces with different characteristics, namely 2D visual feature space and 3D joint feature space. First, we obtain joint-wise features from the visual feature map and utilize a graph convolution network and a transformer to perform intra- and inter-hand information interaction in the 3D joint feature space, respectively. Then, we project the joint features with global information back into the 2D visual feature space in an obfuscation-free manner and utilize the 2D convolution for pixel-wise enhancement. By performing multiple alternate enhancements in the two feature spaces, our method can achieve an accurate and robust reconstruction of interacting hands. Our method outperforms all existing two-hand reconstruction methods by a large margin on the InterHand2.6M dataset.","url_abs":"https://arxiv.org/abs/2302.02410v2","url_pdf":"https://arxiv.org/pdf/2302.02410v2.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":"see-you-soon-decoupled-iterative-refinement","repo_url":"https://github.com/pengfeiren96/dir","is_official":1,"mentioned_in_paper":1,"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":"3d-interacting-hand-pose-estimation","task_name":"3D Interacting Hand Pose Estimation"}],"methods":[{"method_slug":"convolution","method_name":"Convolution"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/3d-interacting-hand-pose-estimation-on","task":"3D Interacting Hand Pose Estimation","dataset":"InterHand2.6M","model":"DIR","rank_in_archive_order":4,"of":9,"metrics":{"MPJPE Test":"7.51","MPVPE Test":"7.72","MRRPE Test":"28.98"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2302.02410","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2302.02410"}},"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/pengfeiren96/dir","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/PengfeiRen96/DIR","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":3,"ran_fixture":2,"ran_violates":2,"ran_draft_wrong":1,"unverified":3},"by_repo_kind":{"official":{"samples":11,"ran":8,"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":"c31f0ea4fb88ecdc","entry":"get_trans","repo":"PengfeiRen96/DIR","repo_kind":"official","path":"models/manolayer.py","file_url":"https://github.com/PengfeiRen96/DIR/blob/HEAD/models/manolayer.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c31f0ea4fb88ecdc"}},{"code_sha256_prefix":"d94639b28b2134ff","entry":"iou","repo":"PengfeiRen96/DIR","repo_kind":"official","path":"models/lovasz_loss.py","file_url":"https://github.com/PengfeiRen96/DIR/blob/HEAD/models/lovasz_loss.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d94639b28b2134ff"}},{"code_sha256_prefix":"1211530cd527bd0b","entry":"iou_binary","repo":"PengfeiRen96/DIR","repo_kind":"official","path":"models/lovasz_loss.py","file_url":"https://github.com/PengfeiRen96/DIR/blob/HEAD/models/lovasz_loss.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1211530cd527bd0b"}},{"code_sha256_prefix":"e85b5d21dc5b8382","entry":"lovasz_grad","repo":"PengfeiRen96/DIR","repo_kind":"official","path":"models/lovasz_loss.py","file_url":"https://github.com/PengfeiRen96/DIR/blob/HEAD/models/lovasz_loss.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e85b5d21dc5b8382"}},{"code_sha256_prefix":"aa9c29936dee40a7","entry":"normalize","repo":"PengfeiRen96/DIR","repo_kind":"official","path":"SemGCN/utils.py","file_url":"https://github.com/PengfeiRen96/DIR/blob/HEAD/SemGCN/utils.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"aa9c29936dee40a7"}},{"code_sha256_prefix":"3830b5b96e0ecb42","entry":"rodrigues_batch","repo":"PengfeiRen96/DIR","repo_kind":"official","path":"models/manolayer.py","file_url":"https://github.com/PengfeiRen96/DIR/blob/HEAD/models/manolayer.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":"3830b5b96e0ecb42"}},{"code_sha256_prefix":"bdc1f1dad6d978e7","entry":"sparse_mx_to_torch_sparse_tensor","repo":"PengfeiRen96/DIR","repo_kind":"official","path":"SemGCN/utils.py","file_url":"https://github.com/PengfeiRen96/DIR/blob/HEAD/SemGCN/utils.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bdc1f1dad6d978e7"}},{"code_sha256_prefix":"69bf838cdc7a5c19","entry":"vec2mat","repo":"PengfeiRen96/DIR","repo_kind":"official","path":"models/manolayer.py","file_url":"https://github.com/PengfeiRen96/DIR/blob/HEAD/models/manolayer.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":"69bf838cdc7a5c19"}},{"code_sha256_prefix":"341b55d9901d8be4","entry":"adj_mx_from_edges","repo":"PengfeiRen96/DIR","repo_kind":"official","path":"SemGCN/utils.py","file_url":"https://github.com/PengfeiRen96/DIR/blob/HEAD/SemGCN/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":"341b55d9901d8be4"}},{"code_sha256_prefix":"cb4d572ce42dcb08","entry":"cut_img","repo":"PengfeiRen96/DIR","repo_kind":"official","path":"dataset/dataset_utils.py","file_url":"https://github.com/PengfeiRen96/DIR/blob/HEAD/dataset/dataset_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":"cb4d572ce42dcb08"}},{"code_sha256_prefix":"76299cb7b64c2844","entry":"get_rotation_mat","repo":"PengfeiRen96/DIR","repo_kind":"official","path":"dataset/dataset_utils.py","file_url":"https://github.com/PengfeiRen96/DIR/blob/HEAD/dataset/dataset_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":"76299cb7b64c2844"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}