Papers › Self-positioning Point-based Transformer for Point Cloud Understanding

Self-positioning Point-based Transformer for Point Cloud Understanding

29 Mar 2023CVPR 2023 1arXiv:2303.16450archive 2025-07-28

Jinyoung Park, Sanghyeok Lee, Sihyeon Kim, Yunyang Xiong, Hyunwoo J. Kim

Transformers have shown superior performance on various computer vision tasks with their capabilities to capture long-range dependencies. Despite the success, it is challenging to directly apply Transformers on point clouds due to their quadratic cost in the number of points. In this paper, we present a Self-Positioning point-based Transformer (SPoTr), which is designed to capture both local and global shape contexts with reduced complexity. Specifically, this architecture consists of local self-attention and self-positioning point-based global cross-attention. The self-positioning points, adaptively located based on the input shape, consider both spatial and semantic information with disentangled attention to improve expressive power. With the self-positioning points, we propose a novel global cross-attention mechanism for point clouds, which improves the scalability of global self-attention by allowing the attention module to compute attention weights with only a small set of self-positioning points. Experiments show the effectiveness of SPoTr on three point cloud tasks such as shape classification, part segmentation, and scene segmentation. In particular, our proposed model achieves an accuracy gain of 2.6% over the previous best models on shape classification with ScanObjectNN. We also provide qualitative analyses to demonstrate the interpretability of self-positioning points. The code of SPoTr is available at https://github.com/mlvlab/SPoTr.

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="2303.16450")

Code

Syntology Ran 1 of 12 code samples harvested from 1 repository linked to this paper; 11 have no recorded run. Of those that ran: 1 ran · honoured contract.

By repository: official repository: 12 samples 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.

mlvlab/spotr officialmentioned in paperpytorchMIT 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

12 samples harvested; 1 ran; 1 honoured the contract we drafted; 11 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
11unverified

Licence: 0 of the 12 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 mlvlab/SPoTr. “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.

pc_normalize mlvlab/SPoTr/openpoints/dataset/modelnet/modelnet40_normal_resampled_loader.py official repository ran · honoured contract fingerprinted MIT (permissive) · 4783fbece52f500e · report
concat_collate_fn mlvlab/SPoTr/openpoints/dataset/build.py official repository unverified MIT (permissive) · 65c970f35976128a · report
download_url mlvlab/SPoTr/openpoints/dataset/data_util.py official repository unverified MIT (permissive) · 556e417290a6e1fd · report
farthest_point_sample mlvlab/SPoTr/openpoints/dataset/modelnet/modelnet40_normal_resampled_loader.py official repository unverified MIT (permissive) · f80066a00e7156a2 · report
fnv_hash_vec mlvlab/SPoTr/openpoints/dataset/data_util.py official repository unverified MIT (permissive) · 0086c892bd1df796 · report
get_aggregation_features mlvlab/SPoTr/openpoints/models/backbone/spotr.py official repository unverified MIT (permissive) · ed384fad1a088993 · report
get_reduction_fn mlvlab/SPoTr/openpoints/models/backbone/spotr.py official repository unverified MIT (permissive) · 6729ad5f41f9545e · report
is_model mlvlab/SPoTr/openpoints/models/registry.py official repository unverified MIT (permissive) · cd2a47ded9dd84cf · report
list_models mlvlab/SPoTr/openpoints/models/registry.py official repository unverified MIT (permissive) · d14a6ca5ff9d530e · report
new_attention mlvlab/SPoTr/openpoints/models/backbone/spotr.py official repository unverified MIT (permissive) · c62867eb0317c297 · report
ravel_hash_vec mlvlab/SPoTr/openpoints/dataset/data_util.py official repository unverified MIT (permissive) · afdc8ad15d9098b8 · report
register_model mlvlab/SPoTr/openpoints/models/registry.py official repository unverified MIT (permissive) · e13039fb1c347452 · report

Tasks

3D Part Segmentation3D Point Cloud ClassificationScene SegmentationSemantic SegmentationSupervised Only 3D Point Cloud Classification

Results from the paper archive 2025-07-28

TaskDatasetModelMetricValueRank at snapshotLeaderboardReport
3D Part Segmentation ShapeNet-Part SPoTr Class Average IoU 85.4 #4 of 67 Archive leaderboard report
3D Part Segmentation ShapeNet-Part SPoTr Instance Average IoU 87.2 #4 of 67 Archive leaderboard report
3D Point Cloud Classification ScanObjectNN SPoTr Mean Accuracy 86.8 #34 of 77 Archive leaderboard report
3D Point Cloud Classification ScanObjectNN SPoTr Overall Accuracy 88.6 #34 of 77 Archive leaderboard report
Semantic Segmentation S3DIS Area5 SPoTr Number of params N/A #30 of 61 Archive leaderboard report
Semantic Segmentation S3DIS Area5 SPoTr mAcc 76.4 #30 of 61 Archive leaderboard report
Semantic Segmentation S3DIS Area5 SPoTr mIoU 70.8 #30 of 61 Archive leaderboard report
Semantic Segmentation S3DIS Area5 SPoTr oAcc 90.7 #30 of 61 Archive leaderboard report
Supervised Only 3D Point Cloud Classification ScanObjectNN SPoTr GFLOPs 10.8 #4 of 12 Archive leaderboard report
Supervised Only 3D Point Cloud Classification ScanObjectNN SPoTr Number of params (M) 1.7 #4 of 12 Archive leaderboard report
Supervised Only 3D Point Cloud Classification ScanObjectNN SPoTr Overall Accuracy (PB_T50_RS) 88.6 #4 of 12 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 EncodingsAdamAttentionBPEDense ConnectionsDropoutLabel SmoothingLayer NormalizationLinear LayerMulti-Head AttentionPosition-Wise Feed-Forward LayerResidual ConnectionSoftmaxTransformer

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