{"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/planarrecon-real-time-3d-plane-detection-and-1","title":"PlanarRecon: Real-time 3D Plane Detection and Reconstruction from Posed Monocular Videos","arxiv_id":"2206.07710","date":"2022-06-15","proceeding":"CVPR 2022 1","authors":["Yiming Xie","Matheus Gadelha","Fengting Yang","Xiaowei Zhou","Huaizu Jiang"],"abstract":"We present PlanarRecon -- a novel framework for globally coherent detection and reconstruction of 3D planes from a posed monocular video. Unlike previous works that detect planes in 2D from a single image, PlanarRecon incrementally detects planes in 3D for each video fragment, which consists of a set of key frames, from a volumetric representation of the scene using neural networks. A learning-based tracking and fusion module is designed to merge planes from previous fragments to form a coherent global plane reconstruction. Such design allows PlanarRecon to integrate observations from multiple views within each fragment and temporal information across different ones, resulting in an accurate and coherent reconstruction of the scene abstraction with low-polygonal geometry. Experiments show that the proposed approach achieves state-of-the-art performances on the ScanNet dataset while being real-time.","url_abs":"https://arxiv.org/abs/2206.07710v1","url_pdf":"https://arxiv.org/pdf/2206.07710v1.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":"planarrecon-real-time-3d-plane-detection-and-1","repo_url":"https://github.com/neu-vi/PlanarRecon","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"3d-plane-detection","task_name":"3D Plane Detection"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2206.07710","atlas_url":"https://app.syntology.ai/?focus=2206.07710","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2206.07710"}},"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/neu-vi/PlanarRecon","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_fixture":1,"ran_draft_wrong":4,"ran":2},"by_repo_kind":{"official":{"samples":7,"ran":7,"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":"928f0db3e1d697de","entry":"MLP","repo":"neu-vi/PlanarRecon","repo_kind":"official","path":"models/matching.py","file_url":"https://github.com/neu-vi/PlanarRecon/blob/HEAD/models/matching.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"928f0db3e1d697de"}},{"code_sha256_prefix":"70702edb93d9116a","entry":"attention","repo":"neu-vi/PlanarRecon","repo_kind":"official","path":"models/matching.py","file_url":"https://github.com/neu-vi/PlanarRecon/blob/HEAD/models/matching.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"70702edb93d9116a"}},{"code_sha256_prefix":"921420df51c0bc69","entry":"collate_fn","repo":"neu-vi/PlanarRecon","repo_kind":"official","path":"datasets/collate_fn.py","file_url":"https://github.com/neu-vi/PlanarRecon/blob/HEAD/datasets/collate_fn.py","link_basis":"harvester_set","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":"921420df51c0bc69"}},{"code_sha256_prefix":"c717f70478b91095","entry":"log_sinkhorn_iterations","repo":"neu-vi/PlanarRecon","repo_kind":"official","path":"models/matching.py","file_url":"https://github.com/neu-vi/PlanarRecon/blob/HEAD/models/matching.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c717f70478b91095"}},{"code_sha256_prefix":"a76fc7fb6958f97c","entry":"make_nograd_func","repo":"neu-vi/PlanarRecon","repo_kind":"official","path":"utils.py","file_url":"https://github.com/neu-vi/PlanarRecon/blob/HEAD/utils.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a76fc7fb6958f97c"}},{"code_sha256_prefix":"b62bec09ceeaca79","entry":"make_recursive_func","repo":"neu-vi/PlanarRecon","repo_kind":"official","path":"utils.py","file_url":"https://github.com/neu-vi/PlanarRecon/blob/HEAD/utils.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b62bec09ceeaca79"}},{"code_sha256_prefix":"25616096f605f638","entry":"tensor2float","repo":"neu-vi/PlanarRecon","repo_kind":"official","path":"utils.py","file_url":"https://github.com/neu-vi/PlanarRecon/blob/HEAD/utils.py","link_basis":"harvester_set","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":"25616096f605f638"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}