{"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/corenet-coherent-3d-scene-reconstruction-from","title":"CoReNet: Coherent 3D scene reconstruction from a single RGB image","arxiv_id":"2004.12989","date":"2020-04-27","proceeding":"ECCV 2020 8","authors":["Stefan Popov","Pablo Bauszat","Vittorio Ferrari"],"abstract":"Advances in deep learning techniques have allowed recent work to reconstruct the shape of a single object given only one RBG image as input. Building on common encoder-decoder architectures for this task, we propose three extensions: (1) ray-traced skip connections that propagate local 2D information to the output 3D volume in a physically correct manner; (2) a hybrid 3D volume representation that enables building translation equivariant models, while at the same time encoding fine object details without an excessive memory footprint; (3) a reconstruction loss tailored to capture overall object geometry. Furthermore, we adapt our model to address the harder task of reconstructing multiple objects from a single image. We reconstruct all objects jointly in one pass, producing a coherent reconstruction, where all objects live in a single consistent 3D coordinate frame relative to the camera and they do not intersect in 3D space. We also handle occlusions and resolve them by hallucinating the missing object parts in the 3D volume. We validate the impact of our contributions experimentally both on synthetic data from ShapeNet as well as real images from Pix3D. Our method improves over the state-of-the-art single-object methods on both datasets. Finally, we evaluate performance quantitatively on multiple object reconstruction with synthetic scenes assembled from ShapeNet objects.","url_abs":"https://arxiv.org/abs/2004.12989v2","url_pdf":"https://arxiv.org/pdf/2004.12989v2.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":"corenet-coherent-3d-scene-reconstruction-from","repo_url":"https://github.com/google-research/corenet","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"corenet-coherent-3d-scene-reconstruction-from","repo_url":"https://github.com/ActiveVisionLab/ray-onet","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"3d-scene-reconstruction","task_name":"3D Scene Reconstruction"},{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"object","task_name":"Object"},{"task_slug":"object-reconstruction","task_name":"Object Reconstruction"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2004.12989","atlas_url":"https://app.syntology.ai/?focus=2004.12989","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2004.12989"}},"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/google-research/corenet","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ActiveVisionLab/ray-onet","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":6,"unverified":7},"by_repo_kind":{"official":{"samples":13,"ran":6,"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":"a5d01e7c869d2709","entry":"dynamic_tile","repo":"google-research/corenet","repo_kind":"official","path":"src/corenet/misc_util.py","file_url":"https://github.com/google-research/corenet/blob/HEAD/src/corenet/misc_util.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a5d01e7c869d2709"}},{"code_sha256_prefix":"804c188255bfaba2","entry":"flag","repo":"google-research/corenet","repo_kind":"official","path":"src/corenet/cmd_line_flags.py","file_url":"https://github.com/google-research/corenet/blob/HEAD/src/corenet/cmd_line_flags.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"804c188255bfaba2"}},{"code_sha256_prefix":"8c9fd1a495470a13","entry":"get_node_name","repo":"google-research/corenet","repo_kind":"official","path":"src/corenet/distributed.py","file_url":"https://github.com/google-research/corenet/blob/HEAD/src/corenet/distributed.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8c9fd1a495470a13"}},{"code_sha256_prefix":"c6eb2e8508f55530","entry":"parse_template_mapping","repo":"google-research/corenet","repo_kind":"official","path":"src/corenet/configuration.py","file_url":"https://github.com/google-research/corenet/blob/HEAD/src/corenet/configuration.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c6eb2e8508f55530"}},{"code_sha256_prefix":"b2b477cdb750bc2e","entry":"safe_div","repo":"google-research/corenet","repo_kind":"official","path":"src/corenet/misc_util.py","file_url":"https://github.com/google-research/corenet/blob/HEAD/src/corenet/misc_util.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b2b477cdb750bc2e"}},{"code_sha256_prefix":"6a696c208af7bf1b","entry":"to_tensor","repo":"google-research/corenet","repo_kind":"official","path":"src/corenet/misc_util.py","file_url":"https://github.com/google-research/corenet/blob/HEAD/src/corenet/misc_util.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6a696c208af7bf1b"}},{"code_sha256_prefix":"6d011553084806dd","entry":"gather","repo":"google-research/corenet","repo_kind":"official","path":"src/corenet/distributed.py","file_url":"https://github.com/google-research/corenet/blob/HEAD/src/corenet/distributed.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6d011553084806dd"}},{"code_sha256_prefix":"85bd6f4985225c82","entry":"get_worker_range","repo":"google-research/corenet","repo_kind":"official","path":"src/corenet/distributed.py","file_url":"https://github.com/google-research/corenet/blob/HEAD/src/corenet/distributed.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"85bd6f4985225c82"}},{"code_sha256_prefix":"dee07c87d05f3ba5","entry":"is_gs_path","repo":"google-research/corenet","repo_kind":"official","path":"src/corenet/file_system.py","file_url":"https://github.com/google-research/corenet/blob/HEAD/src/corenet/file_system.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"dee07c87d05f3ba5"}},{"code_sha256_prefix":"d1f8b069d9e8a4ca","entry":"parse_flags","repo":"google-research/corenet","repo_kind":"official","path":"src/corenet/cmd_line_flags.py","file_url":"https://github.com/google-research/corenet/blob/HEAD/src/corenet/cmd_line_flags.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d1f8b069d9e8a4ca"}},{"code_sha256_prefix":"da6018191f25fd4d","entry":"parse_gs_path","repo":"google-research/corenet","repo_kind":"official","path":"src/corenet/file_system.py","file_url":"https://github.com/google-research/corenet/blob/HEAD/src/corenet/file_system.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"da6018191f25fd4d"}},{"code_sha256_prefix":"745563abe59e906b","entry":"print_tensor","repo":"google-research/corenet","repo_kind":"official","path":"src/corenet/debug_helpers.py","file_url":"https://github.com/google-research/corenet/blob/HEAD/src/corenet/debug_helpers.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"745563abe59e906b"}},{"code_sha256_prefix":"8b307f8cd05e69cc","entry":"splitall","repo":"google-research/corenet","repo_kind":"official","path":"src/corenet/file_system.py","file_url":"https://github.com/google-research/corenet/blob/HEAD/src/corenet/file_system.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8b307f8cd05e69cc"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}