{"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/planerecnet-multi-task-learning-with-cross","title":"PlaneRecNet: Multi-Task Learning with Cross-Task Consistency for Piece-Wise Plane Detection and Reconstruction from a Single RGB Image","arxiv_id":"2110.11219","date":"2021-10-21","proceeding":null,"authors":["Yaxu Xie","Fangwen Shu","Jason Rambach","Alain Pagani","Didier Stricker"],"abstract":"Piece-wise 3D planar reconstruction provides holistic scene understanding of man-made environments, especially for indoor scenarios. Most recent approaches focused on improving the segmentation and reconstruction results by introducing advanced network architectures but overlooked the dual characteristics of piece-wise planes as objects and geometric models. Different from other existing approaches, we start from enforcing cross-task consistency for our multi-task convolutional neural network, PlaneRecNet, which integrates a single-stage instance segmentation network for piece-wise planar segmentation and a depth decoder to reconstruct the scene from a single RGB image. To achieve this, we introduce several novel loss functions (geometric constraint) that jointly improve the accuracy of piece-wise planar segmentation and depth estimation. Meanwhile, a novel Plane Prior Attention module is used to guide depth estimation with the awareness of plane instances. Exhaustive experiments are conducted in this work to validate the effectiveness and efficiency of our method.","url_abs":"https://arxiv.org/abs/2110.11219v2","url_pdf":"https://arxiv.org/pdf/2110.11219v2.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":"planerecnet-multi-task-learning-with-cross","repo_url":"https://github.com/eryixie/planerecnet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"planerecnet-multi-task-learning-with-cross","repo_url":"https://github.com/peterfws/structure-plp-slam","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"GPL-3.0"}}],"tasks":[{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"depth-estimation","task_name":"Depth Estimation"},{"task_slug":"instance-segmentation","task_name":"Instance Segmentation"},{"task_slug":"multi-task-learning","task_name":"Multi-Task Learning"},{"task_slug":"scene-understanding","task_name":"Scene Understanding"},{"task_slug":"segmentation","task_name":"Segmentation"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2110.11219","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2110.11219"}},"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/eryixie/planerecnet","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/peterfws/structure-plp-slam","reach":{"status":"ok","spdx":"GPL-3.0"}}],"summary":{"unverified":8},"by_repo_kind":{"official":{"samples":8,"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":"98ff672b9011e1de","entry":"bbox_iou","repo":"eryixie/planerecnet","repo_kind":"official","path":"models/functions/funcs.py","file_url":"https://github.com/eryixie/planerecnet/blob/HEAD/models/functions/funcs.py","link_basis":"harvester_set","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":"98ff672b9011e1de"}},{"code_sha256_prefix":"88364886ebfa0aee","entry":"compute_gradient_map","repo":"eryixie/planerecnet","repo_kind":"official","path":"models/functions/losses.py","file_url":"https://github.com/eryixie/planerecnet/blob/HEAD/models/functions/losses.py","link_basis":"harvester_set","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":"88364886ebfa0aee"}},{"code_sha256_prefix":"87523070b15ff05c","entry":"construct_backbone","repo":"eryixie/planerecnet","repo_kind":"official","path":"models/backbone.py","file_url":"https://github.com/eryixie/planerecnet/blob/HEAD/models/backbone.py","link_basis":"harvester_set","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":"87523070b15ff05c"}},{"code_sha256_prefix":"2b050648fe0422de","entry":"intersect","repo":"eryixie/planerecnet","repo_kind":"official","path":"models/functions/funcs.py","file_url":"https://github.com/eryixie/planerecnet/blob/HEAD/models/functions/funcs.py","link_basis":"harvester_set","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":"2b050648fe0422de"}},{"code_sha256_prefix":"e215e8d436fe5e29","entry":"mask_iou","repo":"eryixie/planerecnet","repo_kind":"official","path":"models/functions/funcs.py","file_url":"https://github.com/eryixie/planerecnet/blob/HEAD/models/functions/funcs.py","link_basis":"harvester_set","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":"e215e8d436fe5e29"}},{"code_sha256_prefix":"5abdae31a5987a25","entry":"mask_nms","repo":"eryixie/planerecnet","repo_kind":"official","path":"models/functions/nms.py","file_url":"https://github.com/eryixie/planerecnet/blob/HEAD/models/functions/nms.py","link_basis":"harvester_set","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":"5abdae31a5987a25"}},{"code_sha256_prefix":"b05bf3266d440dd9","entry":"matrix_nms","repo":"eryixie/planerecnet","repo_kind":"official","path":"models/functions/nms.py","file_url":"https://github.com/eryixie/planerecnet/blob/HEAD/models/functions/nms.py","link_basis":"harvester_set","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":"b05bf3266d440dd9"}},{"code_sha256_prefix":"564680ea0585a610","entry":"point_nms","repo":"eryixie/planerecnet","repo_kind":"official","path":"models/functions/nms.py","file_url":"https://github.com/eryixie/planerecnet/blob/HEAD/models/functions/nms.py","link_basis":"harvester_set","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":"564680ea0585a610"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}