TL;DR
- Point clouds are unordered sets without connectivity, with uneven density and missing parts. Tasks: classification () and segmentation ().
- Projection-based (multi-view 2D CNNs) and voxel-based (3D CNNs) approaches lose geometric information. Point-based networks consume the points directly and need permutation invariance, a variable number of points, and locality awareness.
- PointNet: a shared per-point MLP , a symmetric pooling and an MLP : . T-Nets undo rotations; segmentation concatenates local and global features.
- PointNet++ adds locality: farthest point sampling, grouping neighbors, a PointNet per group, stacked into a hierarchy; feature propagation by interpolation for segmentation.
- Point Transformer: vector attention over kNN neighborhoods with a relative positional encoding .
flowchart LR
A["PointNet<br/>permutation invariance"] --> B["PointNet++<br/>locality"] --> C["Point Transformer<br/>vector attention"]
Exam relevance
Block D of the study plan: point-based learning is multiple-choice material (PointNet: why max pooling, permutation invariance; PointNet++: FPS and grouping; scalar vs. vector attention).
Recap: Point Clouds
Slides 2-3
- Unordered sets of points in 3D space:
- often represented as an array (an implicit, meaningless order)
- no explicit connectivity
- often captured in an image-like manner from sensors (LiDAR) → uneven density, incomplete


Three Families of Approaches
Slides 4-8
Projection-based: render the point cloud from multiple views, extract features with 2D CNNs, pool over the views and predict the class (Multi-View CNN, Su et al., ICCV 2015; RotationNet, Kanezaki et al., CVPR 2018).
- ✗ geometric information inside the point cloud is collapsed
- ✗ the sparsity of point clouds is under-utilized
- ✗ the choice of views heavily influences the performance
Voxel-based: discretize the point cloud into an occupancy voxel grid and run 3D convolutions (VoxNet, Maturana et al., IROS 2015). Octrees for better memory management (OctNet, Riegler et al., CVPR 2017), sparse convolutions that are only evaluated at occupied voxels.
- ✗ loss of geometric details due to quantization, unless the resolution (and memory) is very high


Point-based networks
A network that directly consumes points. Desired properties:
- permutation invariance
- a variable number of points
- locality awareness (reasoning about local neighborhoods)
PointNet
Permutation Invariance
Slides 9-12
Can we get permutation invariance by sorting the points in a canonical order (e.g. lexicographically by coordinates)?
Answer tiny perturbation (e.g. ) can give a drastically different order. In high dimensions there is no ordering that is stable w.r.t. point perturbations. A network on ordered points would be very sensitive to the slightest change.
No. A
Symmetric (permutation-invariant) function
Examples: pooling, or (applied per channel, ). Note: this also allows a variable number of input points.
From Symmetric Functions to PointNet
Slides 13-15
Per-point transformations: if is symmetric, then so is
Applying the same function to each point is permutation-equivariant. This is not expressive enough yet.
Feature transformations: if is symmetric, then so is
Vanilla PointNet
Intuitively: (a) process the points independently, (b) pool, (c) process the global feature.
Trap
The shared per-point MLP alone is only equivariant. The symmetric pooling makes the network invariant. Mean is also symmetric.
Classification PointNet
Slide 16
- Start with an point cloud.
- A shared MLP (64, 64) maps every point to a 64-dim vector → . “Shared” means every point is processed by the same MLP with the same weights.
- Another shared MLP (64, 128, 1024) → , one feature vector per point.
- Max pooling → one global feature of size 1024.
- An MLP (512, 256, ) → output scores (classes).
With max pooling, isn't only a single point relevant for the global feature?
Answer channel-wise: each of the 1024 channels can take its maximum from a different point.
No. Max pooling is done
Trap
“mlp(64, 64)” are two layers: (weights ), then . Both are applied independently to each of the points, so there is no dimension mismatch.
Rotation Invariance: T-Nets
Slides 17-18
If we rotate the object, we expect the same output from the network. PointNet uses mini-PointNets (T-Nets) that predict a (input) and a (feature) transformation matrix. They help to overcome rotation dependence by “undoing” rotations. The feature transform is regularized to stay close to orthogonal:
T-Net regularization
: the predicted feature transformation matrix.
Trap
T-Nets help, but they don’t guarantee rotation invariance. They don’t break permutation invariance.
Segmentation with PointNet
Slides 19-22
PointNet produces point-wise local features () and a global feature (1024). For segmentation we need both: concatenate the global feature to every point’s local feature (), and process point-wise with shared MLPs (512, 256, 128) and (128, ) → scores.
- Part segmentation: works on partial and complete inputs (table, mug, motorbike, …).
- Semantic segmentation: additional features can be attached to the points, e.g. 9-dim input: , RGB, and the normalized location in the room.


PointNet++
CNN vs. PointNet: Locality
Slides 23-24
| PointNet | CNN |
|---|---|
| per-point features + one global feature | progressively captures features at increasingly large scales |
| no notion of locality | multi-resolution hierarchy with increasing receptive fields |
PointNet++ (Qi et al., NeurIPS 2017): a hierarchical network that exploits locality and uses PointNet as its basic block.
Hierarchical Point Set Feature Learning
Slides 25-27
PointNet++ stacks several set abstraction levels. Each level processes a set of points and abstracts it into a new set with fewer elements but more features about the local neighborhood.
Set abstraction level
- Sampling: sample centroids with iterative farthest point sampling (FPS), better than random.
- Grouping: form (potentially overlapping) groups of close points around the centroids.
- PointNet: process each group in its local frame (points translated relative to the centroid) with a PointNet.
: centroids, points per group, coordinates, features.
Intuition
Unlike in CNNs, the receptive fields are data-dependent. Groups may overlap, and the group scale can change from one layer to the next.
Classification: process the points and features of the final abstraction level with a PointNet and fully connected layers.
PointNet++ Segmentation: Feature Propagation
Slides 28-29
Problem: the original point set is subsampled, but we want a label for each original point. We only have features for the subsampled points.
Solution: feature propagation via interpolation. Propagate the features back level by level: interpolate the features of the points at the coordinates of the points (inverse distance weighted average over the nearest neighbors), concatenate them with the skip-linked features from the set abstraction level, and pass them through a “unit PointNet” (like a convolution). Repeat until we are back at the original points.
Summary (Slide 30): some improvement over vanilla PointNet (ModelNet40 accuracy 91.9% with normals vs. 89.2%), but increased complexity and more hyperparameters.
Trap
PointNet++ uses FPS, not random sampling; its groups overlap; there is no voxel grid. It does not replace PointNet, PointNet is its building block.
Transformers for Point Cloud Processing
Refresher: Attention
Slides 31-37
Attention was first used for translation: which source words matter for the next target word?
Query, key, value
Inspired by retrieval systems (e.g. a YouTube search):
- Query: the search query (things I am looking for)
- Keys: the video titles (things I have)
- Values: the videos (things I want to communicate)
Compare the query against the keys and return the values of the best matches.
Attention
Compare the query against the keys to get attention weights:
Aggregate the values proportionally to the attention weights:


“Attention is all you need” (Vaswani et al., 2017) introduced the Transformer; the Vision Transformer applies it to image patches. In NLP and vision we need a positional encoding: numbers added to the tokens to indicate their position, because the tokens themselves carry no position.
Why transformers for point clouds? (Slide 38)
- extremely powerful for NLP and 2D vision
- naturally permutation-invariant (without a positional encoding)
- can process sequences of variable length
→ An ideal choice for point cloud processing.
Scalar vs. Vector Attention
Slides 39-40
| Scalar attention | Vector attention | |
|---|---|---|
| Formula | ||
| Weights | one scalar per pair of points | a vector, same dimension as the value |
| Aggregation | linear combination of value vectors, all channels weighted the same | channel-wise (per-channel multiplication ) |
| Similarity | dot product | difference , mapped by an MLP |
(The scaling by is left out for simplicity. and are the linear maps from a token to its query and key.)
Intuition
Different channels of the value vectors may need to be aggregated differently. With scalar attention that is impossible; vector attention keeps the channel dimension, so each channel can attend differently to the same point. Attention over all points costs .
Point Transformer
Slides 41-44
Point Transformer (Zhao et al., ICCV 2021). Key design choices:
- vector attention
- self-attention over local neighborhoods (the nearest neighbors)
- relative positional encoding via a small MLP
Point Transformer layer
Input: points with features . (linear): query and key; (linear): value; (MLP): attention weights; (MLP): positional encoding.
Why a relative positional encoding?
In NLP, word tokens carry no position, so an absolute positional encoding is added to the tokens. Here every token is a 3D point, so the position is already there. The authors found it helpful to add the relative position to the neighbors, and it is added to both the attention and the value, not to the tokens.
Trap
On Slide 39, denotes the attention weights; on Slide 41, is the linear map that produces the values.
Building blocks (Slide 42):
- Point transformer block: linear → point transformer layer → linear, with a residual connection. Same number of points, new features.
- Transition down (downsample, similar to PointNet++ set abstraction): farthest point sampling, kNN + MLP, local max pooling.
- Transition up (upsample, for segmentation): linear, interpolation, summation with the skip-connected features.
The segmentation network is a U-Net: an encoder of transition-down blocks and a decoder of transition-up blocks. The classification network is the encoder + global average pooling + an MLP.
Extensions
Slides 45-46
- Point Transformer v2 (Wu et al., NeurIPS 2022): in PTv1, the weight encoding layer gets a large number of parameters as the network gets deeper. PTv2 uses grouped vector attention with weights shared over groups of channels (more efficient, less overfitting), and modifies pooling for efficiency.
- Point Transformer v3 (Wu et al., CVPR 2024): serialize the points with space-filling curves, group them into contiguous “patches” for attention. No costly kNN search.
- Many more: OctFormer, PCT (Point Cloud Transformer), Swin3D, Superpoint Transformer, …
Summary
Slide 47
| Method | Key idea | Solves |
|---|---|---|
| PointNet | shared MLP + symmetric + MLP | permutation invariance, variable number of points |
| PointNet++ | FPS + grouping + PointNet per group, hierarchically | locality |
| Point Transformer | vector attention over kNN + relative positional encoding | expressive local aggregation |
Self-Test
Why don't projection- and voxel-based approaches suffice?
Answer
Projection: 3D geometry is collapsed, sparsity is wasted, and the result depends on the chosen views. Voxels: geometric detail is lost by quantization unless the resolution (and memory) is very high.
Why doesn't sorting the points give permutation invariance?
Answer
A tiny perturbation can change the order drastically; no stable ordering exists in high dimensions.
Write down the vanilla PointNet and explain why it is permutation invariant.
Answer with MLPs and . The shared is equivariant; the max is symmetric, so the result doesn't depend on the order. Max pooling also handles a variable number of points.
Does max pooling mean only one point determines the global feature?
Answer
No, it is channel-wise: each channel can come from a different point.
What do T-Nets do?
Answer input transform and a feature transform to undo rotations, regularized with . No guarantee of rotation invariance.
Mini-PointNets predict a
How does PointNet do segmentation?
Answer and processes point-wise with shared MLPs.
It concatenates each point’s local feature (64) with the global feature (1024) to
Describe one set abstraction level of PointNet++.
Answer
Farthest point sampling of centroids, grouping (possibly overlapping) neighbors around them, a PointNet on each group in the local frame of its centroid.
How does PointNet++ get per-point labels?
Answer
Feature propagation: interpolate the features of the subsampled points back to the denser level (inverse distance weights, 3 nearest neighbors), concatenate skip-linked features, apply a unit PointNet, repeat.
What is the difference between scalar and vector attention?
Answer gives a weight vector, multiplied channel-wise with the values.
Scalar: one weight per pair (dot product), all channels weighted the same. Vector:
What are the three design choices of the Point Transformer?
Answer added to the attention and the values.
Vector attention, self-attention over kNN neighborhoods, and a relative positional encoding
Related
- Previous: Lecture 6.1: Neural Fields · Next: Lecture 7: NeRF · Course: Overview
- Concepts: PointNet, Attention, Point Cloud, Voxel Grid
- IF-Nets (Lecture 6.1) are an alternative for point cloud inputs: voxelize, then 3D CNN features. Transformers come back in DUSt3R (Lecture 9).