{"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/spherical-mask-coarse-to-fine-3d-point-cloud","title":"Spherical Mask: Coarse-to-Fine 3D Point Cloud Instance Segmentation with Spherical Representation","arxiv_id":"2312.11269","date":"2023-12-18","proceeding":"CVPR 2024 1","authors":["Sangyun Shin","Kaichen Zhou","Madhu Vankadari","Andrew Markham","Niki Trigoni"],"abstract":"Coarse-to-fine 3D instance segmentation methods show weak performances compared to recent Grouping-based, Kernel-based and Transformer-based methods. We argue that this is due to two limitations: 1) Instance size overestimation by axis-aligned bounding box(AABB) 2) False negative error accumulation from inaccurate box to the refinement phase. In this work, we introduce Spherical Mask, a novel coarse-to-fine approach based on spherical representation, overcoming those two limitations with several benefits. Specifically, our coarse detection estimates each instance with a 3D polygon using a center and radial distance predictions, which avoids excessive size estimation of AABB. To cut the error propagation in the existing coarse-to-fine approaches, we virtually migrate points based on the polygon, allowing all foreground points, including false negatives, to be refined. During inference, the proposal and point migration modules run in parallel and are assembled to form binary masks of instances. We also introduce two margin-based losses for the point migration to enforce corrections for the false positives/negatives and cohesion of foreground points, significantly improving the performance. Experimental results from three datasets, such as ScanNetV2, S3DIS, and STPLS3D, show that our proposed method outperforms existing works, demonstrating the effectiveness of the new instance representation with spherical coordinates. The code is available at: https://github.com/yunshin/SphericalMask","url_abs":"https://arxiv.org/abs/2312.11269v2","url_pdf":"https://arxiv.org/pdf/2312.11269v2.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":"spherical-mask-coarse-to-fine-3d-point-cloud","repo_url":"https://github.com/yunshin/SphericalMask","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"3d-instance-segmentation-1","task_name":"3D Instance Segmentation"},{"task_slug":"instance-segmentation","task_name":"Instance Segmentation"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/3d-instance-segmentation-on-stpls3d","task":"3D Instance Segmentation","dataset":"STPLS3D","model":"Spherical Mask","rank_in_archive_order":4,"of":9,"metrics":{"AP":"52.2","AP50":"68.3"},"uses_additional_data":false},{"leaderboard":"/sota/3d-instance-segmentation-on-scannetv2","task":"3D Instance Segmentation","dataset":"ScanNet(v2)","model":"Spherical Mask","rank_in_archive_order":2,"of":32,"metrics":{"mAP":"61.6","mAP @ 50":"81.2","mAP@25":"87.5"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2312.11269","atlas_url":"https://app.syntology.ai/?focus=2312.11269","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2312.11269"}},"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/yunshin/SphericalMask","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":1,"unverified":3},"by_repo_kind":{"official":{"samples":4,"ran":1,"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":"58907f232b19eed3","entry":"point_indices_from_group","repo":"yunshin/SphericalMask","repo_kind":"official","path":"dataset/scannet200/utils.py","file_url":"https://github.com/yunshin/SphericalMask/blob/HEAD/dataset/scannet200/utils.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":"58907f232b19eed3"}},{"code_sha256_prefix":"51fa2dc6deb89f01","entry":"get_pred_color","repo":"yunshin/SphericalMask","repo_kind":"official","path":"visualization/vis_scannet200.py","file_url":"https://github.com/yunshin/SphericalMask/blob/HEAD/visualization/vis_scannet200.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":"51fa2dc6deb89f01"}},{"code_sha256_prefix":"547702b319e8ae89","entry":"get_pred_color","repo":"yunshin/SphericalMask","repo_kind":"official","path":"visualization/vis_scannetv2.py","file_url":"https://github.com/yunshin/SphericalMask/blob/HEAD/visualization/vis_scannetv2.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":"547702b319e8ae89"}},{"code_sha256_prefix":"f02cb8a890d52050","entry":"read_plymesh","repo":"yunshin/SphericalMask","repo_kind":"official","path":"dataset/scannet200/utils.py","file_url":"https://github.com/yunshin/SphericalMask/blob/HEAD/dataset/scannet200/utils.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":"f02cb8a890d52050"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}