{"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/estimating-generic-3d-room-structures-from-2d-1","title":"Estimating Generic 3D Room Structures from 2D Annotations","arxiv_id":"2306.09077","date":"2023-06-15","proceeding":"NeurIPS 2023 11","authors":["Denys Rozumnyi","Stefan Popov","Kevis-Kokitsi Maninis","Matthias Nießner","Vittorio Ferrari"],"abstract":"Indoor rooms are among the most common use cases in 3D scene understanding. Current state-of-the-art methods for this task are driven by large annotated datasets. Room layouts are especially important, consisting of structural elements in 3D, such as wall, floor, and ceiling. However, they are difficult to annotate, especially on pure RGB video. We propose a novel method to produce generic 3D room layouts just from 2D segmentation masks, which are easy to annotate for humans. Based on these 2D annotations, we automatically reconstruct 3D plane equations for the structural elements and their spatial extent in the scene, and connect adjacent elements at the appropriate contact edges. We annotate and publicly release 2246 3D room layouts on the RealEstate10k dataset, containing YouTube videos. We demonstrate the high quality of these 3D layouts annotations with extensive experiments.","url_abs":"https://arxiv.org/abs/2306.09077v2","url_pdf":"https://arxiv.org/pdf/2306.09077v2.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":"estimating-generic-3d-room-structures-from-2d-1","repo_url":"https://github.com/google-research/cad-estate","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"scene-understanding","task_name":"Scene Understanding"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2306.09077","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2306.09077"}},"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":"deterministic:regex_extraction","url":"https://github.com/google-research/cad-estate","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":16},"by_repo_kind":{"official":{"samples":16,"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":"f9d82894484b3056","entry":"cleanup_mesh","repo":"google-research/cad-estate","repo_kind":"official","path":"src/cad_estate/preprocess_shapenet.py","file_url":"https://github.com/google-research/cad-estate/blob/HEAD/src/cad_estate/preprocess_shapenet.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":"f9d82894484b3056"}},{"code_sha256_prefix":"70f357123101d253","entry":"dynamic_tile","repo":"google-research/cad-estate","repo_kind":"official","path":"src/cad_estate/misc_util.py","file_url":"https://github.com/google-research/cad-estate/blob/HEAD/src/cad_estate/misc_util.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":"70f357123101d253"}},{"code_sha256_prefix":"c49a409b1a2325dd","entry":"extract_frames","repo":"google-research/cad-estate","repo_kind":"official","path":"src/cad_estate/download_and_extract_frames.py","file_url":"https://github.com/google-research/cad-estate/blob/HEAD/src/cad_estate/download_and_extract_frames.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":"c49a409b1a2325dd"}},{"code_sha256_prefix":"352183e677e9d289","entry":"flag","repo":"google-research/cad-estate","repo_kind":"official","path":"src/cad_estate/structured_arg_parser.py","file_url":"https://github.com/google-research/cad-estate/blob/HEAD/src/cad_estate/structured_arg_parser.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":"352183e677e9d289"}},{"code_sha256_prefix":"13f3c8515abfa828","entry":"get_video_timestamps","repo":"google-research/cad-estate","repo_kind":"official","path":"src/cad_estate/download_and_extract_frames.py","file_url":"https://github.com/google-research/cad-estate/blob/HEAD/src/cad_estate/download_and_extract_frames.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":"13f3c8515abfa828"}},{"code_sha256_prefix":"12fa8cabb41ac50e","entry":"image_as_url","repo":"google-research/cad-estate","repo_kind":"official","path":"src/cad_estate/debug_helpers.py","file_url":"https://github.com/google-research/cad-estate/blob/HEAD/src/cad_estate/debug_helpers.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":"12fa8cabb41ac50e"}},{"code_sha256_prefix":"dee07c87d05f3ba5","entry":"is_gs_path","repo":"google-research/cad-estate","repo_kind":"official","path":"src/cad_estate/file_system.py","file_url":"https://github.com/google-research/cad-estate/blob/HEAD/src/cad_estate/file_system.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":"dee07c87d05f3ba5"}},{"code_sha256_prefix":"161e78d5c7b81197","entry":"parse_flags","repo":"google-research/cad-estate","repo_kind":"official","path":"src/cad_estate/structured_arg_parser.py","file_url":"https://github.com/google-research/cad-estate/blob/HEAD/src/cad_estate/structured_arg_parser.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":"161e78d5c7b81197"}},{"code_sha256_prefix":"da6018191f25fd4d","entry":"parse_gs_path","repo":"google-research/cad-estate","repo_kind":"official","path":"src/cad_estate/file_system.py","file_url":"https://github.com/google-research/cad-estate/blob/HEAD/src/cad_estate/file_system.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":"da6018191f25fd4d"}},{"code_sha256_prefix":"745563abe59e906b","entry":"print_tensor","repo":"google-research/cad-estate","repo_kind":"official","path":"src/cad_estate/debug_helpers.py","file_url":"https://github.com/google-research/cad-estate/blob/HEAD/src/cad_estate/debug_helpers.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":"745563abe59e906b"}},{"code_sha256_prefix":"50613b962b653ebf","entry":"rotate","repo":"google-research/cad-estate","repo_kind":"official","path":"src/cad_estate/transformations.py","file_url":"https://github.com/google-research/cad-estate/blob/HEAD/src/cad_estate/transformations.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":"50613b962b653ebf"}},{"code_sha256_prefix":"57c009b467f56087","entry":"scale","repo":"google-research/cad-estate","repo_kind":"official","path":"src/cad_estate/transformations.py","file_url":"https://github.com/google-research/cad-estate/blob/HEAD/src/cad_estate/transformations.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":"57c009b467f56087"}},{"code_sha256_prefix":"8b307f8cd05e69cc","entry":"splitall","repo":"google-research/cad-estate","repo_kind":"official","path":"src/cad_estate/file_system.py","file_url":"https://github.com/google-research/cad-estate/blob/HEAD/src/cad_estate/file_system.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":"8b307f8cd05e69cc"}},{"code_sha256_prefix":"55312f64e6858bd9","entry":"to_hwc_rgb8","repo":"google-research/cad-estate","repo_kind":"official","path":"src/cad_estate/debug_helpers.py","file_url":"https://github.com/google-research/cad-estate/blob/HEAD/src/cad_estate/debug_helpers.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":"55312f64e6858bd9"}},{"code_sha256_prefix":"e46b54e1c9c212b1","entry":"to_tensor","repo":"google-research/cad-estate","repo_kind":"official","path":"src/cad_estate/misc_util.py","file_url":"https://github.com/google-research/cad-estate/blob/HEAD/src/cad_estate/misc_util.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":"e46b54e1c9c212b1"}},{"code_sha256_prefix":"3d5abafbebad6155","entry":"translate","repo":"google-research/cad-estate","repo_kind":"official","path":"src/cad_estate/transformations.py","file_url":"https://github.com/google-research/cad-estate/blob/HEAD/src/cad_estate/transformations.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":"3d5abafbebad6155"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}