{"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-shape-and-pose-with","title":"Unsupervised Learning of Shape and Pose with Differentiable Point Clouds","arxiv_id":"1810.09381","date":"2018-10-22","proceeding":"NeurIPS 2018 12","authors":["Eldar Insafutdinov","Alexey Dosovitskiy"],"abstract":"We address the problem of learning accurate 3D shape and camera pose from a\ncollection of unlabeled category-specific images. We train a convolutional\nnetwork to predict both the shape and the pose from a single image by\nminimizing the reprojection error: given several views of an object, the\nprojections of the predicted shapes to the predicted camera poses should match\nthe provided views. To deal with pose ambiguity, we introduce an ensemble of\npose predictors which we then distill to a single \"student\" model. To allow for\nefficient learning of high-fidelity shapes, we represent the shapes by point\nclouds and devise a formulation allowing for differentiable projection of\nthese. Our experiments show that the distilled ensemble of pose predictors\nlearns to estimate the pose accurately, while the point cloud representation\nallows to predict detailed shape models. The supplementary video can be found\nat https://www.youtube.com/watch?v=LuIGovKeo60","url_abs":"http://arxiv.org/abs/1810.09381v1","url_pdf":"http://arxiv.org/pdf/1810.09381v1.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-shape-and-pose-with","repo_url":"https://github.com/chenchao15/2d_projection_matching","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"unsupervised-learning-of-shape-and-pose-with","repo_url":"https://github.com/eldar/differentiable-point-clouds","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"unsupervised-learning-of-shape-and-pose-with","repo_url":"https://github.com/puhsu/point_clouds","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"3d-pose-estimation","task_name":"3D Pose Estimation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1810.09381","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1810.09381"}},"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/eldar/differentiable-point-clouds","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/chenchao15/2d_projection_matching","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/puhsu/point_clouds","reach":{"status":"ok"}}],"summary":{"unverified":13},"by_repo_kind":{"listed":{"samples":13,"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":"60ee93b1c66fab31","entry":"drc_loss","repo":"eldar/differentiable-point-clouds","repo_kind":"listed","path":"dpc/util/losses.py","file_url":"https://github.com/eldar/differentiable-point-clouds/blob/HEAD/dpc/util/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":"60ee93b1c66fab31"}},{"code_sha256_prefix":"c8f563881aa98dd4","entry":"drc_rgb_loss","repo":"eldar/differentiable-point-clouds","repo_kind":"listed","path":"dpc/util/losses.py","file_url":"https://github.com/eldar/differentiable-point-clouds/blob/HEAD/dpc/util/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":"c8f563881aa98dd4"}},{"code_sha256_prefix":"8df602630b1c437a","entry":"get_dropout_prob","repo":"eldar/differentiable-point-clouds","repo_kind":"listed","path":"dpc/models/model_pc.py","file_url":"https://github.com/eldar/differentiable-point-clouds/blob/HEAD/dpc/models/model_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":"8df602630b1c437a"}},{"code_sha256_prefix":"6e6dd4087fa03641","entry":"get_smooth_sigma","repo":"eldar/differentiable-point-clouds","repo_kind":"listed","path":"dpc/models/model_pc.py","file_url":"https://github.com/eldar/differentiable-point-clouds/blob/HEAD/dpc/models/model_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":"6e6dd4087fa03641"}},{"code_sha256_prefix":"647d04e2eb2ab580","entry":"multi_expand","repo":"eldar/differentiable-point-clouds","repo_kind":"listed","path":"dpc/util/point_cloud.py","file_url":"https://github.com/eldar/differentiable-point-clouds/blob/HEAD/dpc/util/point_cloud.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":"647d04e2eb2ab580"}},{"code_sha256_prefix":"7ce659b80c0f9983","entry":"obj_centened_camera_pos","repo":"eldar/differentiable-point-clouds","repo_kind":"listed","path":"dpc/render/render_point_cloud_blender.py","file_url":"https://github.com/eldar/differentiable-point-clouds/blob/HEAD/dpc/render/render_point_cloud_blender.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":"7ce659b80c0f9983"}},{"code_sha256_prefix":"6181cff74f8613bd","entry":"point_cloud_distance","repo":"eldar/differentiable-point-clouds","repo_kind":"listed","path":"dpc/util/point_cloud_distance.py","file_url":"https://github.com/eldar/differentiable-point-clouds/blob/HEAD/dpc/util/point_cloud_distance.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":"6181cff74f8613bd"}},{"code_sha256_prefix":"1813da43b573bc7b","entry":"pointcloud2voxels","repo":"eldar/differentiable-point-clouds","repo_kind":"listed","path":"dpc/util/point_cloud.py","file_url":"https://github.com/eldar/differentiable-point-clouds/blob/HEAD/dpc/util/point_cloud.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":"1813da43b573bc7b"}},{"code_sha256_prefix":"720152235094b576","entry":"pointcloud2voxels3d_fast","repo":"eldar/differentiable-point-clouds","repo_kind":"listed","path":"dpc/util/point_cloud.py","file_url":"https://github.com/eldar/differentiable-point-clouds/blob/HEAD/dpc/util/point_cloud.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":"720152235094b576"}},{"code_sha256_prefix":"dd16754ef3053ae3","entry":"pool_single_view","repo":"eldar/differentiable-point-clouds","repo_kind":"listed","path":"dpc/models/model_base.py","file_url":"https://github.com/eldar/differentiable-point-clouds/blob/HEAD/dpc/models/model_base.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":"dd16754ef3053ae3"}},{"code_sha256_prefix":"eecdb72ca340d002","entry":"regularization_loss","repo":"eldar/differentiable-point-clouds","repo_kind":"listed","path":"dpc/util/losses.py","file_url":"https://github.com/eldar/differentiable-point-clouds/blob/HEAD/dpc/util/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":"eecdb72ca340d002"}},{"code_sha256_prefix":"5614bddbbf44e931","entry":"tf_repeat_0","repo":"eldar/differentiable-point-clouds","repo_kind":"listed","path":"dpc/models/model_pc.py","file_url":"https://github.com/eldar/differentiable-point-clouds/blob/HEAD/dpc/models/model_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":"5614bddbbf44e931"}},{"code_sha256_prefix":"d3d5b0f87687609f","entry":"voxel2pc","repo":"eldar/differentiable-point-clouds","repo_kind":"listed","path":"dpc/render/render_point_cloud_blender.py","file_url":"https://github.com/eldar/differentiable-point-clouds/blob/HEAD/dpc/render/render_point_cloud_blender.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":"d3d5b0f87687609f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}