{"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/single-image-piece-wise-planar-3d","title":"Single-Image Piece-wise Planar 3D Reconstruction via Associative Embedding","arxiv_id":"1902.09777","date":"2019-02-26","proceeding":"CVPR 2019 6","authors":["Zehao Yu","Jia Zheng","Dongze Lian","Zihan Zhou","Shenghua Gao"],"abstract":"Single-image piece-wise planar 3D reconstruction aims to simultaneously\nsegment plane instances and recover 3D plane parameters from an image. Most\nrecent approaches leverage convolutional neural networks (CNNs) and achieve\npromising results. However, these methods are limited to detecting a fixed\nnumber of planes with certain learned order. To tackle this problem, we propose\na novel two-stage method based on associative embedding, inspired by its recent\nsuccess in instance segmentation. In the first stage, we train a CNN to map\neach pixel to an embedding space where pixels from the same plane instance have\nsimilar embeddings. Then, the plane instances are obtained by grouping the\nembedding vectors in planar regions via an efficient mean shift clustering\nalgorithm. In the second stage, we estimate the parameter for each plane\ninstance by considering both pixel-level and instance-level consistencies. With\nthe proposed method, we are able to detect an arbitrary number of planes.\nExtensive experiments on public datasets validate the effectiveness and\nefficiency of our method. Furthermore, our method runs at 30 fps at the testing\ntime, thus could facilitate many real-time applications such as visual SLAM and\nhuman-robot interaction. Code is available at\nhttps://github.com/svip-lab/PlanarReconstruction.","url_abs":"http://arxiv.org/abs/1902.09777v3","url_pdf":"http://arxiv.org/pdf/1902.09777v3.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":"single-image-piece-wise-planar-3d","repo_url":"https://github.com/svip-lab/PlanarReconstruction","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"3d-plane-detection","task_name":"3D Plane Detection"},{"task_slug":"3d-reconstruction","task_name":"3D Reconstruction"},{"task_slug":"clustering","task_name":"Clustering"},{"task_slug":"instance-segmentation","task_name":"Instance Segmentation"},{"task_slug":"plane-instance-segmentation","task_name":"Plane Instance Segmentation"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1902.09777","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1902.09777"}},"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/svip-lab/PlanarReconstruction","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":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":"fac5364e2f53c6db","entry":"conv3x3","repo":"svip-lab/PlanarReconstruction","repo_kind":"official","path":"models/resnet_scene.py","file_url":"https://github.com/svip-lab/PlanarReconstruction/blob/HEAD/models/resnet_scene.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fac5364e2f53c6db"}},{"code_sha256_prefix":"098a8251265f82c2","entry":"uint82bin","repo":"svip-lab/PlanarReconstruction","repo_kind":"official","path":"utils/disp.py","file_url":"https://github.com/svip-lab/PlanarReconstruction/blob/HEAD/utils/disp.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"098a8251265f82c2"}},{"code_sha256_prefix":"4897638e90309028","entry":"class_balanced_cross_entropy_loss","repo":"svip-lab/PlanarReconstruction","repo_kind":"official","path":"utils/loss.py","file_url":"https://github.com/svip-lab/PlanarReconstruction/blob/HEAD/utils/loss.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":"4897638e90309028"}},{"code_sha256_prefix":"5af9f13d5c914a5e","entry":"eval_iou","repo":"svip-lab/PlanarReconstruction","repo_kind":"official","path":"utils/metric.py","file_url":"https://github.com/svip-lab/PlanarReconstruction/blob/HEAD/utils/metric.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":"5af9f13d5c914a5e"}},{"code_sha256_prefix":"cdb4d81c2f0e7902","entry":"eval_plane_prediction","repo":"svip-lab/PlanarReconstruction","repo_kind":"official","path":"utils/metric.py","file_url":"https://github.com/svip-lab/PlanarReconstruction/blob/HEAD/utils/metric.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":"cdb4d81c2f0e7902"}},{"code_sha256_prefix":"9c5da1878c2e8f07","entry":"evaluateDepths","repo":"svip-lab/PlanarReconstruction","repo_kind":"official","path":"utils/metric.py","file_url":"https://github.com/svip-lab/PlanarReconstruction/blob/HEAD/utils/metric.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":"9c5da1878c2e8f07"}},{"code_sha256_prefix":"4c9930fc7d869620","entry":"get_coordinate_map","repo":"svip-lab/PlanarReconstruction","repo_kind":"official","path":"modules.py","file_url":"https://github.com/svip-lab/PlanarReconstruction/blob/HEAD/modules.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":"4c9930fc7d869620"}},{"code_sha256_prefix":"33a6e6618eb3fdfe","entry":"hinge_embedding_loss","repo":"svip-lab/PlanarReconstruction","repo_kind":"official","path":"utils/loss.py","file_url":"https://github.com/svip-lab/PlanarReconstruction/blob/HEAD/utils/loss.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":"33a6e6618eb3fdfe"}},{"code_sha256_prefix":"1894a820a796fada","entry":"labelcolormap","repo":"svip-lab/PlanarReconstruction","repo_kind":"official","path":"utils/disp.py","file_url":"https://github.com/svip-lab/PlanarReconstruction/blob/HEAD/utils/disp.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":"1894a820a796fada"}},{"code_sha256_prefix":"63c27e56a1dfdea5","entry":"resnet101","repo":"svip-lab/PlanarReconstruction","repo_kind":"official","path":"models/resnet_scene.py","file_url":"https://github.com/svip-lab/PlanarReconstruction/blob/HEAD/models/resnet_scene.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":"63c27e56a1dfdea5"}},{"code_sha256_prefix":"952dec32fb9a07f1","entry":"resnet50","repo":"svip-lab/PlanarReconstruction","repo_kind":"official","path":"models/resnet_scene.py","file_url":"https://github.com/svip-lab/PlanarReconstruction/blob/HEAD/models/resnet_scene.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":"952dec32fb9a07f1"}},{"code_sha256_prefix":"569e381b0f867f8a","entry":"surface_normal_loss","repo":"svip-lab/PlanarReconstruction","repo_kind":"official","path":"utils/loss.py","file_url":"https://github.com/svip-lab/PlanarReconstruction/blob/HEAD/utils/loss.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":"569e381b0f867f8a"}},{"code_sha256_prefix":"abb972b6e3e2571d","entry":"tensor_to_image","repo":"svip-lab/PlanarReconstruction","repo_kind":"official","path":"utils/disp.py","file_url":"https://github.com/svip-lab/PlanarReconstruction/blob/HEAD/utils/disp.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":"abb972b6e3e2571d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}