{"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/decomposing-3d-scenes-into-objects-via","title":"Decomposing 3D Scenes into Objects via Unsupervised Volume Segmentation","arxiv_id":"2104.01148","date":"2021-04-02","proceeding":null,"authors":["Karl Stelzner","Kristian Kersting","Adam R. Kosiorek"],"abstract":"We present ObSuRF, a method which turns a single image of a scene into a 3D model represented as a set of Neural Radiance Fields (NeRFs), with each NeRF corresponding to a different object. A single forward pass of an encoder network outputs a set of latent vectors describing the objects in the scene. These vectors are used independently to condition a NeRF decoder, defining the geometry and appearance of each object. We make learning more computationally efficient by deriving a novel loss, which allows training NeRFs on RGB-D inputs without explicit ray marching. After confirming that the model performs equal or better than state of the art on three 2D image segmentation benchmarks, we apply it to two multi-object 3D datasets: A multiview version of CLEVR, and a novel dataset in which scenes are populated by ShapeNet models. We find that after training ObSuRF on RGB-D views of training scenes, it is capable of not only recovering the 3D geometry of a scene depicted in a single input image, but also to segment it into objects, despite receiving no supervision in that regard.","url_abs":"https://arxiv.org/abs/2104.01148v1","url_pdf":"https://arxiv.org/pdf/2104.01148v1.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":"decomposing-3d-scenes-into-objects-via","repo_url":"https://github.com/stelzner/obsurf","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"3d-geometry","task_name":"3D geometry"},{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"image-segmentation","task_name":"Image Segmentation"},{"task_slug":"nerf","task_name":"NeRF"},{"task_slug":"object","task_name":"Object"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2104.01148","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2104.01148"}},"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/stelzner/obsurf","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":2,"unverified":11},"by_repo_kind":{"official":{"samples":13,"ran":2,"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":"0072de07b144b152","entry":"compute_iou","repo":"stelzner/obsurf","repo_kind":"official","path":"obsurf/common.py","file_url":"https://github.com/stelzner/obsurf/blob/HEAD/obsurf/common.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":"0072de07b144b152"}},{"code_sha256_prefix":"e39d881796e8d67e","entry":"is_url","repo":"stelzner/obsurf","repo_kind":"official","path":"obsurf/checkpoints.py","file_url":"https://github.com/stelzner/obsurf/blob/HEAD/obsurf/checkpoints.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":"e39d881796e8d67e"}},{"code_sha256_prefix":"fbdaf8f5728d098b","entry":"build_grid","repo":"stelzner/obsurf","repo_kind":"official","path":"obsurf/layers.py","file_url":"https://github.com/stelzner/obsurf/blob/HEAD/obsurf/layers.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":"fbdaf8f5728d098b"}},{"code_sha256_prefix":"2929fe2070f69fee","entry":"check_nan","repo":"stelzner/obsurf","repo_kind":"official","path":"obsurf/common.py","file_url":"https://github.com/stelzner/obsurf/blob/HEAD/obsurf/common.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":"2929fe2070f69fee"}},{"code_sha256_prefix":"c2fc3eee80f2258b","entry":"collect_imports","repo":"stelzner/obsurf","repo_kind":"official","path":"obsurf/config.py","file_url":"https://github.com/stelzner/obsurf/blob/HEAD/obsurf/config.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":"c2fc3eee80f2258b"}},{"code_sha256_prefix":"76939363c12c55c6","entry":"compute_adjusted_rand_index","repo":"stelzner/obsurf","repo_kind":"official","path":"obsurf/common.py","file_url":"https://github.com/stelzner/obsurf/blob/HEAD/obsurf/common.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":"76939363c12c55c6"}},{"code_sha256_prefix":"1102d4dd638f02d8","entry":"compute_overshoot","repo":"stelzner/obsurf","repo_kind":"official","path":"obsurf/model/representations.py","file_url":"https://github.com/stelzner/obsurf/blob/HEAD/obsurf/model/representations.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":"1102d4dd638f02d8"}},{"code_sha256_prefix":"bfc7cc4e1b6bcaac","entry":"extra_points","repo":"stelzner/obsurf","repo_kind":"official","path":"obsurf/data.py","file_url":"https://github.com/stelzner/obsurf/blob/HEAD/obsurf/data.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":"bfc7cc4e1b6bcaac"}},{"code_sha256_prefix":"8957caa92117bc09","entry":"get_prior","repo":"stelzner/obsurf","repo_kind":"official","path":"obsurf/model/config.py","file_url":"https://github.com/stelzner/obsurf/blob/HEAD/obsurf/model/config.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":"8957caa92117bc09"}},{"code_sha256_prefix":"5343fa5ff6e12f28","entry":"load_config","repo":"stelzner/obsurf","repo_kind":"official","path":"obsurf/config.py","file_url":"https://github.com/stelzner/obsurf/blob/HEAD/obsurf/config.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":"5343fa5ff6e12f28"}},{"code_sha256_prefix":"b2298205b9673fe5","entry":"make_custom_resnet","repo":"stelzner/obsurf","repo_kind":"official","path":"obsurf/encoder.py","file_url":"https://github.com/stelzner/obsurf/blob/HEAD/obsurf/encoder.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":"b2298205b9673fe5"}},{"code_sha256_prefix":"81fab84438061f33","entry":"subsample_clevr","repo":"stelzner/obsurf","repo_kind":"official","path":"obsurf/data.py","file_url":"https://github.com/stelzner/obsurf/blob/HEAD/obsurf/data.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":"81fab84438061f33"}},{"code_sha256_prefix":"e356ea6299306471","entry":"subsample_clevr_batched","repo":"stelzner/obsurf","repo_kind":"official","path":"obsurf/data.py","file_url":"https://github.com/stelzner/obsurf/blob/HEAD/obsurf/data.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":"e356ea6299306471"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}