{"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/3d-shape-reconstruction-from-2d-images-with","title":"3D Shape Reconstruction from 2D Images with Disentangled Attribute Flow","arxiv_id":"2203.15190","date":"2022-03-29","proceeding":"CVPR 2022 1","authors":["Xin Wen","Junsheng Zhou","Yu-Shen Liu","Zhen Dong","Zhizhong Han"],"abstract":"Reconstructing 3D shape from a single 2D image is a challenging task, which needs to estimate the detailed 3D structures based on the semantic attributes from 2D image. So far, most of the previous methods still struggle to extract semantic attributes for 3D reconstruction task. Since the semantic attributes of a single image are usually implicit and entangled with each other, it is still challenging to reconstruct 3D shape with detailed semantic structures represented by the input image. To address this problem, we propose 3DAttriFlow to disentangle and extract semantic attributes through different semantic levels in the input images. These disentangled semantic attributes will be integrated into the 3D shape reconstruction process, which can provide definite guidance to the reconstruction of specific attribute on 3D shape. As a result, the 3D decoder can explicitly capture high-level semantic features at the bottom of the network, and utilize low-level features at the top of the network, which allows to reconstruct more accurate 3D shapes. Note that the explicit disentangling is learned without extra labels, where the only supervision used in our training is the input image and its corresponding 3D shape. Our comprehensive experiments on ShapeNet dataset demonstrate that 3DAttriFlow outperforms the state-of-the-art shape reconstruction methods, and we also validate its generalization ability on shape completion task.","url_abs":"https://arxiv.org/abs/2203.15190v1","url_pdf":"https://arxiv.org/pdf/2203.15190v1.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":"3d-shape-reconstruction-from-2d-images-with","repo_url":"https://github.com/junshengzhou/3dattriflow","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"3d-reconstruction","task_name":"3D Reconstruction"},{"task_slug":"3d-shape-reconstruction","task_name":"3D Shape Reconstruction"},{"task_slug":"attribute","task_name":"Attribute"},{"task_slug":"decoder","task_name":"Decoder"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2203.15190","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2203.15190"}},"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/junshengzhou/3dattriflow","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/junshengzhou/3DAttriFlow","reach":{"status":"ok","spdx":"MIT"}}],"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":0,"samples":[{"code_sha256_prefix":"3d8c4704eae22d1f","entry":"get_spherepoints","repo":"junshengzhou/3DAttriFlow","repo_kind":"official","path":"utils/model_utils.py","file_url":"https://github.com/junshengzhou/3DAttriFlow/blob/HEAD/utils/model_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":"3d8c4704eae22d1f"}},{"code_sha256_prefix":"c7176d76f2f34d81","entry":"pc_normalize","repo":"junshengzhou/3DAttriFlow","repo_kind":"official","path":"utils/model_utils.py","file_url":"https://github.com/junshengzhou/3DAttriFlow/blob/HEAD/utils/model_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":"c7176d76f2f34d81"}},{"code_sha256_prefix":"1240ac70ff56f0c6","entry":"position_encoding","repo":"junshengzhou/3DAttriFlow","repo_kind":"official","path":"utils/model_utils.py","file_url":"https://github.com/junshengzhou/3DAttriFlow/blob/HEAD/utils/model_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":"1240ac70ff56f0c6"}},{"code_sha256_prefix":"c2c9b5765d504a2a","entry":"setFolders","repo":"junshengzhou/3DAttriFlow","repo_kind":"official","path":"train_pc.py","file_url":"https://github.com/junshengzhou/3DAttriFlow/blob/HEAD/train_pc.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":"c2c9b5765d504a2a"}},{"code_sha256_prefix":"6e52323809b0e8a4","entry":"setFolders","repo":"junshengzhou/3DAttriFlow","repo_kind":"official","path":"train_svr.py","file_url":"https://github.com/junshengzhou/3DAttriFlow/blob/HEAD/train_svr.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":"6e52323809b0e8a4"}},{"code_sha256_prefix":"46f620de04f39ed7","entry":"val","repo":"junshengzhou/3DAttriFlow","repo_kind":"official","path":"train_svr.py","file_url":"https://github.com/junshengzhou/3DAttriFlow/blob/HEAD/train_svr.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":"46f620de04f39ed7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}