Skip to main content
3D Deep Learning

3D Deep Learning

The World is 3D

We live in three dimensions, yet most deep learning operates on 2D projections (photographs). This is like trying to understand a building by looking at one photograph — you lose depth, occlusion relationships, and the ability to reason about the object from novel viewpoints. Real-world data is inherently 3D:
  • Autonomous driving: LiDAR sensors produce millions of 3D points per second
  • Robotics: Depth sensors enable grasping and manipulation in physical space
  • Medical imaging: CT and MRI scans are 3D volumes, not flat images
  • AR/VR: Scene reconstruction requires understanding 3D geometry
  • Manufacturing: Quality inspection needs precise 3D measurement
The fundamental challenge of 3D deep learning: different sensors produce different representations (point clouds, voxel grids, meshes), and each representation has different mathematical properties that require different neural network architectures. Choosing the right representation is often more important than choosing the right model.
When starting a 3D deep learning project, let the sensor dictate your architecture. If your data comes from LiDAR (point clouds), start with PointNet++ or a sparse voxel method. If you have depth cameras (organized point clouds / depth images), 2D CNN backbones on the depth map are a surprisingly strong baseline. If you have meshes from CAD software, consider MeshCNN or simply sample points from the surface and use point cloud methods.

3D Representations

Point Clouds

Unordered set of 3D points: {(xi,yi,zi)}i=1N\{(x_i, y_i, z_i)\}_{i=1}^N

Voxels

3D grid of values: VRD×H×WV \in \mathbb{R}^{D \times H \times W}

Meshes

Vertices and faces: (V,F)(V, F)

PointNet

The foundational architecture for point cloud processing. PointNet was the first deep learning model to work directly on raw, unordered point sets. Before PointNet (2017), the standard approach was to voxelize point clouds or render them from multiple viewpoints — both of which lose information. PointNet’s key insight: use a symmetric function (max pooling) to handle the unordered nature of point sets, making the output invariant to the order in which points are fed in:

PointNet++

PointNet++ addresses PointNet’s biggest weakness: it has no notion of local geometry. PointNet++ applies PointNet recursively on increasingly larger local regions, much like how CNNs build features from small patches to large receptive fields. The hierarchy works like a zoom-out: first learn fine-grained local features from small neighborhoods, then learn broader features from larger regions:

3D Convolutions

For voxel and volumetric data, 3D convolutions are the natural extension of 2D convolutions — the same sliding-window approach, just with an extra spatial dimension. The math is identical, but the computational cost scales cubically: a 3D convolution with kernel size kk on a volume of resolution n3n^3 costs O(k3n3)O(k^3 \cdot n^3), compared to O(k2n2)O(k^2 \cdot n^2) for 2D. This cubic scaling is why sparse voxel methods (which only compute on occupied voxels) dominate practical 3D applications.
Dense 3D convolutions are memory-prohibitive for anything beyond about 64x64x64 resolution. A 128x128x128 feature volume with 64 channels and float32 consumes over 8 GB. For real-world 3D tasks (autonomous driving, medical imaging), always use sparse convolution libraries like MinkowskiEngine or TorchSparse, which only compute on non-empty voxels and can handle resolutions of 1000+ along each axis.

Point Transformer

Just as transformers revolutionized NLP and 2D vision, they are making their mark on 3D point clouds. Point Transformer applies self-attention within local neighborhoods of points, allowing each point to dynamically weight the contribution of its neighbors based on both their features and their relative spatial positions. This is strictly more expressive than the fixed aggregation functions in PointNet/PointNet++.

Best Practices


Exercises

Implement MSG (Multi-Scale Grouping) for PointNet++:
Build a simple 3D detection model:
  • Backbone: PointNet++ or VoxelNet
  • Head: 3D bounding box regression
  • Output: (x, y, z, l, w, h, θ)
Implement encoder-decoder for completing partial point clouds:
  • Encoder: PointNet feature extraction
  • Decoder: FoldingNet or MLP-based generation

What’s Next?

Object Detection

YOLO, Faster R-CNN, DETR

Semantic Segmentation

U-Net, DeepLab, panoptic segmentation