{"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-autoencoders-for-point-cloud-self","title":"Masked Autoencoders for Point Cloud Self-supervised Learning","arxiv_id":"2203.06604","date":"2022-03-13","proceeding":null,"authors":["Yatian Pang","Wenxiao Wang","Francis E. H. Tay","Wei Liu","Yonghong Tian","Li Yuan"],"abstract":"As a promising scheme of self-supervised learning, masked autoencoding has significantly advanced natural language processing and computer vision. Inspired by this, we propose a neat scheme of masked autoencoders for point cloud self-supervised learning, addressing the challenges posed by point cloud's properties, including leakage of location information and uneven information density. Concretely, we divide the input point cloud into irregular point patches and randomly mask them at a high ratio. Then, a standard Transformer based autoencoder, with an asymmetric design and a shifting mask tokens operation, learns high-level latent features from unmasked point patches, aiming to reconstruct the masked point patches. Extensive experiments show that our approach is efficient during pre-training and generalizes well on various downstream tasks. Specifically, our pre-trained models achieve 85.18% accuracy on ScanObjectNN and 94.04% accuracy on ModelNet40, outperforming all the other self-supervised learning methods. We show with our scheme, a simple architecture entirely based on standard Transformers can surpass dedicated Transformer models from supervised learning. Our approach also advances state-of-the-art accuracies by 1.5%-2.3% in the few-shot object classification. Furthermore, our work inspires the feasibility of applying unified architectures from languages and images to the point cloud.","url_abs":"https://arxiv.org/abs/2203.06604v2","url_pdf":"https://arxiv.org/pdf/2203.06604v2.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-autoencoders-for-point-cloud-self","repo_url":"https://github.com/Pang-Yatian/Point-MAE","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"masked-autoencoders-for-point-cloud-self","repo_url":"https://github.com/liujia99/tpm","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"masked-autoencoders-for-point-cloud-self","repo_url":"https://github.com/lmd0311/pointmamba","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"masked-autoencoders-for-point-cloud-self","repo_url":"https://github.com/vvrpanda/exppoint-mae","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"3d-part-segmentation","task_name":"3D Part Segmentation"},{"task_slug":"3d-point-cloud-classification","task_name":"3D Point Cloud Classification"},{"task_slug":"few-shot-3d-point-cloud-classification","task_name":"Few-Shot 3D Point Cloud Classification"},{"task_slug":"few-shot-learning","task_name":"Few-Shot Learning"},{"task_slug":"point-cloud-segmentation","task_name":"Point Cloud Segmentation"}],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"transformer","method_name":"Transformer"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/3d-point-cloud-classification-on-modelnet40","task":"3D Point Cloud Classification","dataset":"ModelNet40","model":"Point-MAE","rank_in_archive_order":30,"of":111,"metrics":{"Overall Accuracy":"94.0"},"uses_additional_data":true},{"leaderboard":"/sota/3d-point-cloud-classification-on-scanobjectnn","task":"3D Point Cloud Classification","dataset":"ScanObjectNN","model":"Point-MAE","rank_in_archive_order":55,"of":77,"metrics":{"OBJ-BG (OA)":"90.02","OBJ-ONLY (OA)":"88.29","Overall Accuracy":"85.2"},"uses_additional_data":true},{"leaderboard":"/sota/few-shot-3d-point-cloud-classification-on-3","task":"Few-Shot 3D Point Cloud Classification","dataset":"ModelNet40 10-way (10-shot)","model":"Point-MAE","rank_in_archive_order":13,"of":31,"metrics":{"Overall Accuracy":"92.6","Standard Deviation":"4.1"},"uses_additional_data":true},{"leaderboard":"/sota/few-shot-3d-point-cloud-classification-on-4","task":"Few-Shot 3D Point Cloud Classification","dataset":"ModelNet40 10-way (20-shot)","model":"Point-MAE","rank_in_archive_order":16,"of":31,"metrics":{"Overall Accuracy":"95.0","Standard Deviation":"3.0"},"uses_additional_data":true},{"leaderboard":"/sota/few-shot-3d-point-cloud-classification-on-1","task":"Few-Shot 3D Point Cloud Classification","dataset":"ModelNet40 5-way (10-shot)","model":"Point-MAE","rank_in_archive_order":15,"of":30,"metrics":{"Overall Accuracy":"96.3","Standard Deviation":"2.5"},"uses_additional_data":true},{"leaderboard":"/sota/few-shot-3d-point-cloud-classification-on-2","task":"Few-Shot 3D Point Cloud Classification","dataset":"ModelNet40 5-way (20-shot)","model":"Point-MAE","rank_in_archive_order":15,"of":30,"metrics":{"Overall Accuracy":"97.8","Standard Deviation":"1.8"},"uses_additional_data":true},{"leaderboard":"/sota/point-cloud-segmentation-on-pointcloud-c","task":"Point Cloud Segmentation","dataset":"PointCloud-C","model":"PointMAE","rank_in_archive_order":2,"of":11,"metrics":{"mean Corruption Error (mCE)":"0.927"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2203.06604","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2203.06604"}},"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/vvrpanda/exppoint-mae","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/liujia99/tpm","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/lmd0311/pointmamba","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Pang-Yatian/Point-MAE","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_fixture":2,"ran":2,"ran_honours":2,"ran_draft_wrong":1,"unverified":2},"by_repo_kind":{"official":{"samples":4,"ran":2,"repositories":1},"listed":{"samples":5,"ran":5,"repositories":2}},"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":1,"samples":[{"code_sha256_prefix":"449a0265144f6530","entry":"index_points","repo":"liujia99/tpm","repo_kind":"listed","path":"Point-M2AE/models/modules.py","file_url":"https://github.com/liujia99/tpm/blob/HEAD/Point-M2AE/models/modules.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":2,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"449a0265144f6530"}},{"code_sha256_prefix":"2cf22e1fdc72ec7f","entry":"Mask","repo":"vvrpanda/exppoint-mae","repo_kind":"listed","path":"modules.py","file_url":"https://github.com/vvrpanda/exppoint-mae/blob/HEAD/modules.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2cf22e1fdc72ec7f"}},{"code_sha256_prefix":"e609e218822ed309","entry":"load_modelnet_data","repo":"liujia99/tpm","repo_kind":"listed","path":"Point-M2AE/datasets/ModelNetDataset.py","file_url":"https://github.com/liujia99/tpm/blob/HEAD/Point-M2AE/datasets/ModelNetDataset.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":"e609e218822ed309"}},{"code_sha256_prefix":"4783fbece52f500e","entry":"pc_normalize","repo":"Pang-Yatian/Point-MAE","repo_kind":"official","path":"datasets/ModelNetDataset.py","file_url":"https://github.com/Pang-Yatian/Point-MAE/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":"ec413739d406e611","entry":"pc_normalize","repo":"liujia99/tpm","repo_kind":"listed","path":"Point-M2AE/segmentation/pointnet2_utils.py","file_url":"https://github.com/liujia99/tpm/blob/HEAD/Point-M2AE/segmentation/pointnet2_utils.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ec413739d406e611"}},{"code_sha256_prefix":"3bfe172e686075cd","entry":"square_distance","repo":"liujia99/tpm","repo_kind":"listed","path":"Point-M2AE/models/modules.py","file_url":"https://github.com/liujia99/tpm/blob/HEAD/Point-M2AE/models/modules.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3bfe172e686075cd"}},{"code_sha256_prefix":"74c3fe06cea2f553","entry":"square_distance","repo":"Pang-Yatian/Point-MAE","repo_kind":"official","path":"segmentation/pointnet_util.py","file_url":"https://github.com/Pang-Yatian/Point-MAE/blob/HEAD/segmentation/pointnet_util.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"74c3fe06cea2f553"}},{"code_sha256_prefix":"f80066a00e7156a2","entry":"farthest_point_sample","repo":"Pang-Yatian/Point-MAE","repo_kind":"official","path":"datasets/ModelNetDataset.py","file_url":"https://github.com/Pang-Yatian/Point-MAE/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":"b1227ddb721e2999","entry":"timeit","repo":"Pang-Yatian/Point-MAE","repo_kind":"official","path":"segmentation/pointnet_util.py","file_url":"https://github.com/Pang-Yatian/Point-MAE/blob/HEAD/segmentation/pointnet_util.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":"b1227ddb721e2999"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}