{"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/masked-surfel-prediction-for-self-supervised","title":"Masked Surfel Prediction for Self-Supervised Point Cloud Learning","arxiv_id":"2207.03111","date":"2022-07-07","proceeding":null,"authors":["Yabin Zhang","Jiehong Lin","Chenhang He","Yongwei Chen","Kui Jia","Lei Zhang"],"abstract":"Masked auto-encoding is a popular and effective self-supervised learning approach to point cloud learning. However, most of the existing methods reconstruct only the masked points and overlook the local geometry information, which is also important to understand the point cloud data. In this work, we make the first attempt, to the best of our knowledge, to consider the local geometry information explicitly into the masked auto-encoding, and propose a novel Masked Surfel Prediction (MaskSurf) method. Specifically, given the input point cloud masked at a high ratio, we learn a transformer-based encoder-decoder network to estimate the underlying masked surfels by simultaneously predicting the surfel positions (i.e., points) and per-surfel orientations (i.e., normals). The predictions of points and normals are supervised by the Chamfer Distance and a newly introduced Position-Indexed Normal Distance in a set-to-set manner. Our MaskSurf is validated on six downstream tasks under three fine-tuning strategies. In particular, MaskSurf outperforms its closest competitor, Point-MAE, by 1.2\\% on the real-world dataset of ScanObjectNN under the OBJ-BG setting, justifying the advantages of masked surfel prediction over masked point cloud reconstruction. Codes will be available at https://github.com/YBZh/MaskSurf.","url_abs":"https://arxiv.org/abs/2207.03111v1","url_pdf":"https://arxiv.org/pdf/2207.03111v1.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":"masked-surfel-prediction-for-self-supervised","repo_url":"https://github.com/ybzh/masksurf","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"point-cloud-reconstruction","task_name":"Point cloud reconstruction"},{"task_slug":"self-supervised-learning","task_name":"Self-Supervised Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2207.03111","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2207.03111"}},"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/ybzh/masksurf","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":1,"ran_honours":1,"unverified":6},"by_repo_kind":{"official":{"samples":8,"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":"ba26afd892405335","entry":"compute_ci95","repo":"ybzh/masksurf","repo_kind":"official","path":"parse_test_res.py","file_url":"https://github.com/ybzh/masksurf/blob/HEAD/parse_test_res.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ba26afd892405335"}},{"code_sha256_prefix":"4783fbece52f500e","entry":"pc_normalize","repo":"ybzh/masksurf","repo_kind":"official","path":"datasets/ModelNetDataset.py","file_url":"https://github.com/ybzh/masksurf/blob/HEAD/datasets/ModelNetDataset.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4783fbece52f500e"}},{"code_sha256_prefix":"f80066a00e7156a2","entry":"farthest_point_sample","repo":"ybzh/masksurf","repo_kind":"official","path":"datasets/ModelNetDataset.py","file_url":"https://github.com/ybzh/masksurf/blob/HEAD/datasets/ModelNetDataset.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":"f80066a00e7156a2"}},{"code_sha256_prefix":"43ec5bfc69add751","entry":"generate_surfel_mesh","repo":"ybzh/masksurf","repo_kind":"official","path":"vis_masksurf.py","file_url":"https://github.com/ybzh/masksurf/blob/HEAD/vis_masksurf.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":"43ec5bfc69add751"}},{"code_sha256_prefix":"263bef2e90f8204e","entry":"map_taxonomy_to_label","repo":"ybzh/masksurf","repo_kind":"official","path":"datasets/ShapeNet55DatasetClass.py","file_url":"https://github.com/ybzh/masksurf/blob/HEAD/datasets/ShapeNet55DatasetClass.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":"263bef2e90f8204e"}},{"code_sha256_prefix":"2de246840a64b9f4","entry":"mesh_normalize","repo":"ybzh/masksurf","repo_kind":"official","path":"point2normal_curve.py","file_url":"https://github.com/ybzh/masksurf/blob/HEAD/point2normal_curve.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":"2de246840a64b9f4"}},{"code_sha256_prefix":"657783f7ef816fa7","entry":"rotation_vector_around_vector","repo":"ybzh/masksurf","repo_kind":"official","path":"vis_masksurf.py","file_url":"https://github.com/ybzh/masksurf/blob/HEAD/vis_masksurf.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":"657783f7ef816fa7"}},{"code_sha256_prefix":"8047c6a3d9f63648","entry":"tri_with_center_and_normal","repo":"ybzh/masksurf","repo_kind":"official","path":"vis_masksurf.py","file_url":"https://github.com/ybzh/masksurf/blob/HEAD/vis_masksurf.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":"8047c6a3d9f63648"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}