{"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/deep-3d-portrait-from-a-single-image","title":"Deep 3D Portrait from a Single Image","arxiv_id":"2004.11598","date":"2020-04-24","proceeding":"CVPR 2020 6","authors":["Sicheng Xu","Jiaolong Yang","Dong Chen","Fang Wen","Yu Deng","Yunde Jia","Xin Tong"],"abstract":"In this paper, we present a learning-based approach for recovering the 3D geometry of human head from a single portrait image. Our method is learned in an unsupervised manner without any ground-truth 3D data. We represent the head geometry with a parametric 3D face model together with a depth map for other head regions including hair and ear. A two-step geometry learning scheme is proposed to learn 3D head reconstruction from in-the-wild face images, where we first learn face shape on single images using self-reconstruction and then learn hair and ear geometry using pairs of images in a stereo-matching fashion. The second step is based on the output of the first to not only improve the accuracy but also ensure the consistency of overall head geometry. We evaluate the accuracy of our method both in 3D and with pose manipulation tasks on 2D images. We alter pose based on the recovered geometry and apply a refinement network trained with adversarial learning to ameliorate the reprojected images and translate them to the real image domain. Extensive evaluations and comparison with previous methods show that our new method can produce high-fidelity 3D head geometry and head pose manipulation results.","url_abs":"https://arxiv.org/abs/2004.11598v1","url_pdf":"https://arxiv.org/pdf/2004.11598v1.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":"deep-3d-portrait-from-a-single-image","repo_url":"https://github.com/sicxu/Deep3dPortrait","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"3d-geometry","task_name":"3D geometry"},{"task_slug":"face-model","task_name":"Face Model"},{"task_slug":"stereo-matching-1","task_name":"Stereo Matching"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2004.11598","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2004.11598"}},"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/sicxu/Deep3dPortrait","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":20},"by_repo_kind":{"official":{"samples":20,"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":"d536967c5e11597f","entry":"POS","repo":"sicxu/Deep3dPortrait","repo_kind":"official","path":"utils/preprocess.py","file_url":"https://github.com/sicxu/Deep3dPortrait/blob/HEAD/utils/preprocess.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":"d536967c5e11597f"}},{"code_sha256_prefix":"b8786d0b13aac98a","entry":"compute_center2d","repo":"sicxu/Deep3dPortrait","repo_kind":"official","path":"utils/recon_face.py","file_url":"https://github.com/sicxu/Deep3dPortrait/blob/HEAD/utils/recon_face.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":"b8786d0b13aac98a"}},{"code_sha256_prefix":"173d710f02251597","entry":"compute_faceshape","repo":"sicxu/Deep3dPortrait","repo_kind":"official","path":"utils/recon_face.py","file_url":"https://github.com/sicxu/Deep3dPortrait/blob/HEAD/utils/recon_face.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":"173d710f02251597"}},{"code_sha256_prefix":"ee2db1eb19e754a4","entry":"create_renderer_graph","repo":"sicxu/Deep3dPortrait","repo_kind":"official","path":"utils/create_renderer.py","file_url":"https://github.com/sicxu/Deep3dPortrait/blob/HEAD/utils/create_renderer.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":"ee2db1eb19e754a4"}},{"code_sha256_prefix":"2d2887e9b1122741","entry":"crop","repo":"sicxu/Deep3dPortrait","repo_kind":"official","path":"utils/preprocess.py","file_url":"https://github.com/sicxu/Deep3dPortrait/blob/HEAD/utils/preprocess.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":"2d2887e9b1122741"}},{"code_sha256_prefix":"662a487c04c13418","entry":"dis","repo":"sicxu/Deep3dPortrait","repo_kind":"official","path":"utils/construct_triangles.py","file_url":"https://github.com/sicxu/Deep3dPortrait/blob/HEAD/utils/construct_triangles.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":"662a487c04c13418"}},{"code_sha256_prefix":"3e66aac74b1c38fc","entry":"filter_tri","repo":"sicxu/Deep3dPortrait","repo_kind":"official","path":"utils/construct_triangles.py","file_url":"https://github.com/sicxu/Deep3dPortrait/blob/HEAD/utils/construct_triangles.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":"3e66aac74b1c38fc"}},{"code_sha256_prefix":"7414f4cae46cefe7","entry":"get_face_texture","repo":"sicxu/Deep3dPortrait","repo_kind":"official","path":"utils/recon_depth.py","file_url":"https://github.com/sicxu/Deep3dPortrait/blob/HEAD/utils/recon_depth.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":"7414f4cae46cefe7"}},{"code_sha256_prefix":"2ecc1190b44eddf2","entry":"get_pixel_value","repo":"sicxu/Deep3dPortrait","repo_kind":"official","path":"utils/recon_depth.py","file_url":"https://github.com/sicxu/Deep3dPortrait/blob/HEAD/utils/recon_depth.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":"2ecc1190b44eddf2"}},{"code_sha256_prefix":"4dc075fcf7407b8a","entry":"img_padding","repo":"sicxu/Deep3dPortrait","repo_kind":"official","path":"utils/preprocess.py","file_url":"https://github.com/sicxu/Deep3dPortrait/blob/HEAD/utils/preprocess.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":"4dc075fcf7407b8a"}},{"code_sha256_prefix":"2bc9452d367e1171","entry":"load_center3d","repo":"sicxu/Deep3dPortrait","repo_kind":"official","path":"utils/loader.py","file_url":"https://github.com/sicxu/Deep3dPortrait/blob/HEAD/utils/loader.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":"2bc9452d367e1171"}},{"code_sha256_prefix":"86e1f9d5e618f721","entry":"load_data","repo":"sicxu/Deep3dPortrait","repo_kind":"official","path":"utils/loader.py","file_url":"https://github.com/sicxu/Deep3dPortrait/blob/HEAD/utils/loader.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":"86e1f9d5e618f721"}},{"code_sha256_prefix":"6a71686037b8bd23","entry":"load_depthrecon_graph","repo":"sicxu/Deep3dPortrait","repo_kind":"official","path":"step3_get_head_geometry.py","file_url":"https://github.com/sicxu/Deep3dPortrait/blob/HEAD/step3_get_head_geometry.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":"6a71686037b8bd23"}},{"code_sha256_prefix":"371d5b83a5979e45","entry":"load_facerecon_graph","repo":"sicxu/Deep3dPortrait","repo_kind":"official","path":"step1_recon_3d_face.py","file_url":"https://github.com/sicxu/Deep3dPortrait/blob/HEAD/step1_recon_3d_face.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":"371d5b83a5979e45"}},{"code_sha256_prefix":"204c417df51f29c1","entry":"load_lm3d","repo":"sicxu/Deep3dPortrait","repo_kind":"official","path":"utils/loader.py","file_url":"https://github.com/sicxu/Deep3dPortrait/blob/HEAD/utils/loader.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":"204c417df51f29c1"}},{"code_sha256_prefix":"8710be7e4f7fa644","entry":"realign","repo":"sicxu/Deep3dPortrait","repo_kind":"official","path":"restore_from_crop.py","file_url":"https://github.com/sicxu/Deep3dPortrait/blob/HEAD/restore_from_crop.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":"8710be7e4f7fa644"}},{"code_sha256_prefix":"ac5ba15755d66d5b","entry":"remove_small_area","repo":"sicxu/Deep3dPortrait","repo_kind":"official","path":"utils/construct_triangles.py","file_url":"https://github.com/sicxu/Deep3dPortrait/blob/HEAD/utils/construct_triangles.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":"ac5ba15755d66d5b"}},{"code_sha256_prefix":"c1c8a3a93c9755a8","entry":"split_coeff","repo":"sicxu/Deep3dPortrait","repo_kind":"official","path":"utils/recon_face.py","file_url":"https://github.com/sicxu/Deep3dPortrait/blob/HEAD/utils/recon_face.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":"c1c8a3a93c9755a8"}},{"code_sha256_prefix":"45db1a35605cd38f","entry":"split_data","repo":"sicxu/Deep3dPortrait","repo_kind":"official","path":"utils/recon_depth.py","file_url":"https://github.com/sicxu/Deep3dPortrait/blob/HEAD/utils/recon_depth.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":"45db1a35605cd38f"}},{"code_sha256_prefix":"41c5386a01f254ab","entry":"split_segmask","repo":"sicxu/Deep3dPortrait","repo_kind":"official","path":"utils/face_parsing.py","file_url":"https://github.com/sicxu/Deep3dPortrait/blob/HEAD/utils/face_parsing.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":"41c5386a01f254ab"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}