{"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/unsupervised-learning-of-probably-symmetric","title":"Unsupervised Learning of Probably Symmetric Deformable 3D Objects from Images in the Wild","arxiv_id":"1911.11130","date":"2019-11-25","proceeding":"CVPR 2020 6","authors":["Shangzhe Wu","Christian Rupprecht","Andrea Vedaldi"],"abstract":"We propose a method to learn 3D deformable object categories from raw single-view images, without external supervision. The method is based on an autoencoder that factors each input image into depth, albedo, viewpoint and illumination. In order to disentangle these components without supervision, we use the fact that many object categories have, at least in principle, a symmetric structure. We show that reasoning about illumination allows us to exploit the underlying object symmetry even if the appearance is not symmetric due to shading. Furthermore, we model objects that are probably, but not certainly, symmetric by predicting a symmetry probability map, learned end-to-end with the other components of the model. Our experiments show that this method can recover very accurately the 3D shape of human faces, cat faces and cars from single-view images, without any supervision or a prior shape model. On benchmarks, we demonstrate superior accuracy compared to another method that uses supervision at the level of 2D image correspondences.","url_abs":"https://arxiv.org/abs/1911.11130v2","url_pdf":"https://arxiv.org/pdf/1911.11130v2.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":"unsupervised-learning-of-probably-symmetric","repo_url":"https://github.com/elliottwu/unsup3d","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"object","task_name":"Object"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/1911.11130","atlas_url":"https://app.syntology.ai/?focus=1911.11130","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1911.11130"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/elliottwu/unsup3d","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":11},"by_repo_kind":{"official":{"samples":11,"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":"fa8f0dbdb9969655","entry":"dump_yaml","repo":"elliottwu/unsup3d","repo_kind":"official","path":"unsup3d/utils.py","file_url":"https://github.com/elliottwu/unsup3d/blob/HEAD/unsup3d/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":"fa8f0dbdb9969655"}},{"code_sha256_prefix":"7d8a940bdc2312d1","entry":"export_to_obj_string","repo":"elliottwu/unsup3d","repo_kind":"official","path":"demo/utils.py","file_url":"https://github.com/elliottwu/unsup3d/blob/HEAD/demo/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":"7d8a940bdc2312d1"}},{"code_sha256_prefix":"e49ea94e0987a6e8","entry":"get_data_loaders","repo":"elliottwu/unsup3d","repo_kind":"official","path":"unsup3d/dataloaders.py","file_url":"https://github.com/elliottwu/unsup3d/blob/HEAD/unsup3d/dataloaders.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":"e49ea94e0987a6e8"}},{"code_sha256_prefix":"9a90a24d56749586","entry":"get_grid","repo":"elliottwu/unsup3d","repo_kind":"official","path":"demo/utils.py","file_url":"https://github.com/elliottwu/unsup3d/blob/HEAD/demo/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":"9a90a24d56749586"}},{"code_sha256_prefix":"521cedf170be4833","entry":"is_image_file","repo":"elliottwu/unsup3d","repo_kind":"official","path":"unsup3d/dataloaders.py","file_url":"https://github.com/elliottwu/unsup3d/blob/HEAD/unsup3d/dataloaders.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":"521cedf170be4833"}},{"code_sha256_prefix":"c9d96366dfea8bc9","entry":"load_yaml","repo":"elliottwu/unsup3d","repo_kind":"official","path":"unsup3d/utils.py","file_url":"https://github.com/elliottwu/unsup3d/blob/HEAD/unsup3d/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":"c9d96366dfea8bc9"}},{"code_sha256_prefix":"641352b2fce0b79c","entry":"make_dataset","repo":"elliottwu/unsup3d","repo_kind":"official","path":"unsup3d/dataloaders.py","file_url":"https://github.com/elliottwu/unsup3d/blob/HEAD/unsup3d/dataloaders.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":"641352b2fce0b79c"}},{"code_sha256_prefix":"0c5ab402075cd7d5","entry":"mm_normalize","repo":"elliottwu/unsup3d","repo_kind":"official","path":"unsup3d/renderer/utils.py","file_url":"https://github.com/elliottwu/unsup3d/blob/HEAD/unsup3d/renderer/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":"0c5ab402075cd7d5"}},{"code_sha256_prefix":"93ba7714c2ce3acc","entry":"rand_posneg_range","repo":"elliottwu/unsup3d","repo_kind":"official","path":"unsup3d/renderer/utils.py","file_url":"https://github.com/elliottwu/unsup3d/blob/HEAD/unsup3d/renderer/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":"93ba7714c2ce3acc"}},{"code_sha256_prefix":"17ad8150640684d6","entry":"rand_range","repo":"elliottwu/unsup3d","repo_kind":"official","path":"unsup3d/renderer/utils.py","file_url":"https://github.com/elliottwu/unsup3d/blob/HEAD/unsup3d/renderer/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":"17ad8150640684d6"}},{"code_sha256_prefix":"cb8259004b33f483","entry":"setup_runtime","repo":"elliottwu/unsup3d","repo_kind":"official","path":"unsup3d/utils.py","file_url":"https://github.com/elliottwu/unsup3d/blob/HEAD/unsup3d/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":"cb8259004b33f483"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}