TL;DR

  1. Point clouds are unordered sets without connectivity, with uneven density and missing parts. Tasks: classification () and segmentation ().
  2. 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.
  3. PointNet: a shared per-point MLP , a symmetric pooling and an MLP : . T-Nets undo rotations; segmentation concatenates local and global features.
  4. PointNet++ adds locality: farthest point sampling, grouping neighbors, a PointNet per group, stacked into a hierarchy; feature propagation by interpolation for segmentation.
  5. 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
Point clouds from scans and LiDAR
Slide 2: point clouds
Classification to R^C and segmentation to R^NxC
Slide 3: classification and segmentation

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
Multi-view CNN: rendered views, CNN, view pooling
Slide 4: projection-based
VoxNet: occupancy grid and 3D convolutions
Slide 6: voxel-based

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)?

Cube vertices whose sorted order changes after a tiny perturbation
Slide 10: a tiny perturbation, a drastically different order.

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.

Vanilla PointNet: per-point MLPs, max pooling, MLP
Slide 15: vanilla PointNet.

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

PointNet classification architecture with shared MLPs, max pooling and output scores
Slide 16: vanilla classification PointNet (Qi et al., CVPR 2017). The numbers are hidden layer sizes.
  1. Start with an point cloud.
  2. 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.
  3. Another shared MLP (64, 128, 1024) → , one feature vector per point.
  4. Max pooling → one global feature of size 1024.
  5. An MLP (512, 256, ) → output scores (classes).

With max pooling, isn't only a single point relevant for the global feature?

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.

PointNet with input transform and feature transform T-Nets
Slide 18: T-Nets for the input and feature transforms.

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.

PointNet segmentation network concatenating local and global features to n x 1088
Slide 20: PointNet segmentation network.
  • 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.
Part segmentation results
Slide 21: part segmentation
Semantic segmentation of rooms
Slide 22: semantic segmentation

PointNet++

CNN vs. PointNet: Locality

Slides 23-24

PointNetCNN
per-point features + one global featureprogressively captures features at increasingly large scales
no notion of localitymulti-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

  1. Sampling: sample centroids with iterative farthest point sampling (FPS), better than random.
  2. Grouping: form (potentially overlapping) groups of close points around the centroids.
  3. PointNet: process each group in its local frame (points translated relative to the centroid) with a PointNet.

: centroids, points per group, coordinates, features.

Set abstraction: sampling and grouping, pointnet, repeated
Slide 26: hierarchical point set feature learning.

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.

PointNet++ segmentation with interpolation, unit pointnet and skip links
Slide 29: feature propagation with interpolation and skip links.

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 scores: what is She referring to
Slide 34: attention scores
Value aggregation with attention weights
Slide 35: value aggregation

“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 attentionVector attention
Formula
Weightsone scalar per pair of pointsa vector, same dimension as the value
Aggregationlinear combination of value vectors, all channels weighted the samechannel-wise (per-channel multiplication )
Similaritydot productdifference , 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.)

Scalar attention with dot products vs vector attention with differences and an MLP
Slide 40: scalar vs. vector attention.

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:

  1. vector attention
  2. self-attention over local neighborhoods (the nearest neighbors)
  3. 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.

Point transformer layer: linear query/key/value, positional encoding MLP, aggregation
Slide 41: the point transformer layer.

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.
Point transformer block, transition down and transition up
Slide 42: the building blocks.

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.

Point transformer networks for semantic segmentation and classification
Slide 43: Point Transformer networks.
Semantic segmentation results of Point Transformer on indoor scenes
Slide 44: semantic segmentation results.

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, …
Grouped vector attention and space-filling curves
Slide 45: Point Transformer v2 and v3.

Summary

Slide 47

MethodKey ideaSolves
PointNetshared MLP + symmetric + MLP permutation invariance, variable number of points
PointNet++FPS + grouping + PointNet per group, hierarchicallylocality
Point Transformervector attention over kNN + relative positional encodingexpressive local aggregation

Self-Test

Why don't projection- and voxel-based approaches suffice?

Why doesn't sorting the points give permutation invariance?

Write down the vanilla PointNet and explain why it is permutation invariant.

Does max pooling mean only one point determines the global feature?

What do T-Nets do?

How does PointNet do segmentation?

Describe one set abstraction level of PointNet++.

How does PointNet++ get per-point labels?

What is the difference between scalar and vector attention?

What are the three design choices of the Point Transformer?