Papers › Point-BERT: Pre-training 3D Point Cloud Transformers with Masked Point Modeling

Point-BERT: Pre-training 3D Point Cloud Transformers with Masked Point Modeling

29 Nov 2021CVPR 2022 1arXiv:2111.14819archive 2025-07-28

Xumin Yu, Lulu Tang, Yongming Rao, Tiejun Huang, Jie zhou, Jiwen Lu

We present Point-BERT, a new paradigm for learning Transformers to generalize the concept of BERT to 3D point cloud. Inspired by BERT, we devise a Masked Point Modeling (MPM) task to pre-train point cloud Transformers. Specifically, we first divide a point cloud into several local point patches, and a point cloud Tokenizer with a discrete Variational AutoEncoder (dVAE) is designed to generate discrete point tokens containing meaningful local information. Then, we randomly mask out some patches of input point clouds and feed them into the backbone Transformers. The pre-training objective is to recover the original point tokens at the masked locations under the supervision of point tokens obtained by the Tokenizer. Extensive experiments demonstrate that the proposed BERT-style pre-training strategy significantly improves the performance of standard point cloud Transformers. Equipped with our pre-training strategy, we show that a pure Transformer architecture attains 93.8% accuracy on ModelNet40 and 83.1% accuracy on the hardest setting of ScanObjectNN, surpassing carefully designed point cloud models with much fewer hand-made designs. We also demonstrate that the representations learned by Point-BERT transfer well to new tasks and domains, where our models largely advance the state-of-the-art of few-shot point cloud classification task. The code and pre-trained models are available at https://github.com/lulutang0608/Point-BERT

PaperPDFConference PDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2111.14819")

Code

Syntology Ran 4 of 6 code samples harvested from 2 repositories linked to this paper; 2 have no recorded run. Of those that ran: 1 ran · honoured contract; 3 ran · fixture could not drive it.

By repository: official repository: 5 samples from 1 repository, 3 ran; community (archive-listed): 1 sample from 1 repository, 1 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

lulutang0608/Point-BERT officialmentioned in papermentioned on GitHubpytorchMIT report
julie-tang00/point-bert mentioned on GitHubpytorch report
lmd0311/pointmamba mentioned on GitHubpytorchApache-2.0 report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

6 samples harvested; 4 ran; 1 honoured the contract we drafted; 2 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

1ran · honoured contract
3ran · fixture could not drive it
2unverified

Licence: 0 of the 6 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 2 repositories linked to this paper, official or community; each sample names its own and says which. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: 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. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

knn_point lulutang0608/Point-BERT/models/dvae.py official repository ran · fixture could not drive it MIT (permissive) · 3fc6f6b239b211f9 · report
pc_normalize lulutang0608/Point-BERT/datasets/ModelNetDataset.py official repository ran · honoured contract fingerprinted MIT (permissive) · 4783fbece52f500e · report
square_distance lulutang0608/Point-BERT/models/dvae.py official repository ran · fixture could not drive it fingerprinted MIT (permissive) · 3bfe172e686075cd · report
concat_all_gather lulutang0608/Point-BERT/models/Point_BERT.py official repository unverified MIT (permissive) · 73cecca9f3575f09 · report
farthest_point_sample lulutang0608/Point-BERT/datasets/ModelNetDataset.py official repository unverified MIT (permissive) · f80066a00e7156a2 · report
evaluate_svm julie-tang00/point-bert/tools/runner_BERT_pretrain.py community (archive-listed) ran · fixture could not drive it fingerprinted MIT (permissive) · 0771dfb62d38a68e · report

Tasks

3D Point Cloud Classification3D Point Cloud Linear ClassificationFew-Shot 3D Point Cloud ClassificationFew-Shot Point Cloud ClassificationPoint Cloud ClassificationPoint Cloud Segmentation

Results from the paper archive 2025-07-28

TaskDatasetModelMetricValueRank at snapshotLeaderboardReport
3D Point Cloud Classification ModelNet40 Point-BERT Overall Accuracy 93.8 #44 of 111 Archive leaderboard report
3D Point Cloud Classification ScanObjectNN Point-BERT OBJ-BG (OA) 87.43 #64 of 77 Archive leaderboard report
3D Point Cloud Classification ScanObjectNN Point-BERT OBJ-ONLY (OA) 88.12 #64 of 77 Archive leaderboard report
3D Point Cloud Classification ScanObjectNN Point-BERT Overall Accuracy 83.1 #64 of 77 Archive leaderboard report
Few-Shot 3D Point Cloud Classification ModelNet40 10-way (10-shot) Point-BERT Overall Accuracy 91.0 #18 of 31 Archive leaderboard report
Few-Shot 3D Point Cloud Classification ModelNet40 10-way (10-shot) Point-BERT Standard Deviation 5.4 #18 of 31 Archive leaderboard report
Few-Shot 3D Point Cloud Classification ModelNet40 10-way (20-shot) Point-BERT Overall Accuracy 92.7 #18 of 31 Archive leaderboard report
Few-Shot 3D Point Cloud Classification ModelNet40 10-way (20-shot) Point-BERT Standard Deviation 5.1 #18 of 31 Archive leaderboard report
Few-Shot 3D Point Cloud Classification ModelNet40 5-way (10-shot) Point-BERT Overall Accuracy 94.6 #17 of 30 Archive leaderboard report
Few-Shot 3D Point Cloud Classification ModelNet40 5-way (10-shot) Point-BERT Standard Deviation 3.1 #17 of 30 Archive leaderboard report
Few-Shot 3D Point Cloud Classification ModelNet40 5-way (20-shot) Point-BERT Overall Accuracy 96.3 #18 of 30 Archive leaderboard report
Few-Shot 3D Point Cloud Classification ModelNet40 5-way (20-shot) Point-BERT Standard Deviation 2.7 #18 of 30 Archive leaderboard report

Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.

Methods

Absolute Position EncodingsAdamAttentionAttention DropoutBERTBPEDense ConnectionsDropoutLabel SmoothingLayer NormalizationLinear LayerLinear Warmup With Linear DecayMulti-Head AttentionPosition-Wise Feed-Forward LayerResidual ConnectionSoftmaxTransformerWeight DecayWordPiece

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections