Skip to content
AI.info

Computer vision

Point Clouds and Three-Dimensional Perception

Explore point-cloud representations, voxelization, permutation invariance, local neighborhoods, 3D detection, registration, and sensor-specific failure modes.

By the end you can

Example

The same street recorded as four different data structures

A lidar scan can be stored as XYZ points, projected into a range image, accumulated into voxels, or rendered into camera views; each representation makes some operations easier and discards or quantizes other structure.

The thing being stored is the same object every time. The nuScenes lidar returns up to 1.4 million points per second at 20 rotations per second — roughly 70,000 points in a single sweep — and the routes below are different answers to the question of what shape that sweep should take in memory.

The choice is not merely a file format: it defines neighborhood, resolution, memory, and invariance.

  • Raw points: Preserve sample coordinates but arrive unordered and unevenly spaced.
  • Voxels: Create a regular 3D grid while introducing quantization and empty-space cost.
  • Range image: Preserves sensor scan order and supports 2D operations, but depends on viewpoint.
  • Bird's-eye view: Simplifies ground-plane reasoning while compressing vertical structure.
  • Multi-view projection: Reuses image models but must combine visibility across views.

Visual

Representation choices for 3D perception

Each route encodes a different inductive bias about space and computation.

The first route is not an aspiration. PointNet gets permutation invariance out of a single symmetric function — max pooling over per-point features. Reorder the input rows and the output is identical by construction, not by training. Qi and Su, with two co-authors, published it at CVPR in 2017.

The price of that austerity is measurable. ModelNet40 holds 12,311 CAD models in 40 categories, split 9,843 train and 2,468 test. PointNet scores 89.2% overall accuracy on it, and 86.2% average-class accuracy.

The same design is what makes the representation tolerant of missing samples: “As to missing points, when there are 50% points missing, the accuracy only drops by 2.4% and 3.8% w.r.t. furthest and random input sampling.” Throw away half the cloud and the model barely moves.

Those figures survive an independent tabulation. A later survey of deep learning on 3D point clouds, in IEEE Transactions on Pattern Analysis and Machine Intelligence, lists PointNet at the same 89.2% OA and 86.2% mAcc on ModelNet40, at 3.48M parameters, and gives ModelNet40 as 12,311 samples, 40 classes, 9,843 training and 2,468 test, synthetic mesh. Two groups, the same numbers.

FigureHierarchy · 5 levels
  • Point sets

    Process coordinates and attributes while respecting permutation invariance.

    • Local point hierarchies

      Group neighborhoods at increasing spatial scales.

      • Voxels or sparse grids

        Quantize space into cells suited to convolution or sparse operations.

        • Range or panoramic images

          Project sensor rays to a regular angular grid.

          • Fused image and 3D features

            Combine appearance with metric geometry under calibration.

Point density is a property of the sensor and scene

Lidar samples become sparser with distance. They can be blocked by foreground surfaces. Reflectivity, incidence angle, weather, and multi-path effects also change returns.

The sensor sheet makes the sparsity concrete. The nuScenes lidar is specified as “Spinning, 32 beams, 20Hz capture frequency, 360° horizontal FOV, −30° to 10° vertical FOV, ≤ 70m range, ±2cm accuracy, up to 1.4M points per second.” Spread 32 beams over a vertical span that narrow and the gap between beams widens with every metre of range. The same car at 10 metres and at 60 comes back as very different numbers of points. One sensor, one sweep.

What that thinning costs a detector has been measured, with the model and the scenes held fixed. On the Waymo Open Dataset, PointPillars scores 63.3 vehicle 3D AP (LEVEL_1) on the 150-scene hidden test set. That single number is an average: 82.3 for objects at 0–30 m, 59.2 at 30–50 m, and 35.7 at 50 m and beyond.

The collapse is not an artefact of one implementation. Seven authors at MIT and Google Research re-implemented the detector in 2020 and reproduced it on the validation set with their own numbers: 54.25 vehicle 3D mAP overall, 76.31 at 0–30 m, 48.08 at 30–50 m, 24.21 at 50 m–Inf.

The benchmark writes the same fact into its difficulty tiers, and it counts points to do it: “Next, we assign LEVEL 2 to examples where either the labeler annotates as hard or if the example has ≤ 5 LiDAR points.” Not occlusion. Not object size. Five returns or fewer.

A network trained on dense nearby objects may fail on the same class at long range; density augmentation and range slices should reflect the real acquisition process.

Figure

Why a distant pedestrian is crossed by one or two scan lines, and why the benchmark matches on centre distance rather than overlap.

One detector, one hidden test set: 82.3 vehicle AP inside thirty metres and 35.7 beyond fifty.

Comparison

Registration, detection, and segmentation solve different spatial problems

Shared representations do not make these tasks interchangeable. Registration aligns scans or shapes in a common coordinate system and returns a rigid or deformable transform. 3D detection returns object classes with position, size and orientation, and degrades on sparse distant objects. Point segmentation returns per-point categories and depends on sampling density. Surface reconstruction returns a mesh, an occupancy field or an implicit field, and must assume a topology it cannot observe.

The first of these has the oldest documented failure. A controlled comparison of ICP variants, run at Stanford in 2001, included a test scene the authors call the incised plane. Rusinkiewicz and Levoy write of it: “This is a difficult scene for ICP, and most variants do not converge to the correct alignment, even given the small relative rotation in this starting position.” In that scene, they found, “the closest-point algorithms were the only ones that converged to the correct solution”. Almost everything else got stuck.

The deeper problem is that a locally optimal method cannot report its own failure. Go-ICP, in 2016, states that ICP “is also known for its susceptibility to the problem of local minima”, and that “there is no reliable way to tell whether or not it is trapped in a local minimum”. Removing that uncertainty cost its authors a branch-and-bound search over SE(3), an exhaustive search of the whole pose space. With it they report 100% correct registration on all 2,000 randomly-initialised bunny and dragon tasks, every rotation error under 2 degrees. That is the price of a guarantee that local iteration cannot give.

FigureComparison · 4 columns

Registration

Aligns scans or shapes in a common coordinate system.

  • Output: rigid or deformable transform
  • Needs correspondence or overlap
  • Failure: local minima and symmetry
  • Use: mapping or comparison

3D detection

Finds object classes and oriented 3D boxes.

  • Output: position, size, orientation
  • Needs class and geometry
  • Failure: sparse distant objects
  • Use: driving and robotics

Point segmentation

Assigns semantic or instance labels to points.

  • Output: per-point categories
  • Depends on sampling density
  • Failure: incomplete surfaces
  • Use: scene understanding

Surface reconstruction

Estimates continuous geometry from samples.

  • Output: mesh, occupancy, or implicit field
  • Needs topology assumptions
  • Failure: holes and hallucinated surfaces
  • Use: modeling and measurement

Analogy

A sculpture described by scattered pins

A sculpture is described by placing pins on its visible surfaces. More pins reveal shape, but hidden sides remain unknown and distant areas receive fewer samples.

A pin records a position, while some sensors also record intensity, timing, or multiple returns. Sparsity, visibility, and the need to infer neighborhoods are what the pins capture.

What the missing pins cost has been measured. ScanObjectNN rebuilt point-cloud classification in 2019 on 2,902 real scanned objects in 15 categories — about 15,000 once the perturbation variants are counted — rather than on clean CAD meshes. The same PointNet that scores 89.2% on synthetic ModelNet40 scores 68.2% on the hardest real-scan variant, PB_T50_RS. Train it on ModelNet40 and test it on the real scans and it scores 31.1%. Its authors put the result in one line: “We found that existing methods were successful with synthetic data but failed on realistic data.”

A second group found the same gap on a model of its own. Five authors at Princeton re-trained the architectures in 2021, over 4 runs × 10 evaluations. SimpleView reaches 93.0 ± 0.4 on ModelNet40 but 40.5 ± 1.4 when trained there and tested on ScanObjectNN, with PointNet reproducing at 89.2 ± 0.9. The clean number describes the pins a designer chose to place. The other two describe the pins a scanner actually got.

The same object classes, scanned instead of modelled: 89.2% becomes 68.2%, and 31.1% for a model that has never seen a scan.

Key idea

A coordinate-frame error can look like a moving world

Combining scans requires timestamps, poses, and transforms between sensor, vehicle, and world frames; a sign error or stale pose can create ghost objects and smeared maps.

The two failures are not the same size, and the difference has been measured. nuScenes-C corrupts the benchmark systematically, one fault at a time. Simulated ego-motion-compensation error takes TransFusion from 66.38 to 9.01 mAP and CenterPoint from 59.28 to 11.02. Temporal misalignment costs TransFusion 22.7 mAP, 66.38 down to 43.65. Noise in the calibration matrices — spatial misalignment — costs BEVFusion 68.45 → 68.39 and TransFusion 66.38 → 66.22. Dong and Kang, with seven co-authors, summarise it in 2023: “motion-level corruptions are the most threatening ones that lead to significant performance drop of all models”.

A separately built benchmark reaches the same ranking. A stuck, delayed lidar stream cuts CenterPoint from 56.8 to 26.1 mAP and TransFusion from 66.9 to 33.4, while spatial misalignment of the camera-to-world matrix leaves TransFusion at 66.5. Two teams, two corruption suites, one verdict: time hurts far more than calibration.

Read that as a priority rather than as absolution for calibration. The perturbation those benchmarks inject is small. With 1°–3° of misalignment the independent MultiCorrupt benchmark leaves TransFusion only 0.685 of its clean NDS, worse than the 0.777 it keeps under temporal misalignment.

Validate transforms with static fixtures and motion sequences; treat synchronization and localization uncertainty as part of the perception system.

Ego-motion-compensation error takes TransFusion from 66.38 mAP to 9.01; jittered calibration takes it to 66.22.

Steps

Evaluate 3D perception by geometry and acquisition condition

Use range-aware and coordinate-aware evidence.

The density-and-coverage audit comes first, and weather belongs inside it with a figure attached rather than in a list of confounders. The Seeing Through Fog dataset paired 10,000 km of driving in Germany, Sweden, Denmark and Finland with controlled fog-chamber recordings. The chamber gives the physical limit: “On the other hand, active lidar sensors are highly degraded by scattering media as fog, snow or rain, limiting the maximal perceivable distance at fog densities below 50 m to 25 m”. That is the sensor losing range to physics, before any model sees a point.

A group at ETH Zurich then measured the detection cost on that same data, in 2021. A PV-RCNN trained on the clear-weather split scores 77.05 car 3D AP@0.5 IoU (moderate) on the clear test split, 70.17 on light fog and 46.00 on dense fog. PointPillars scores 74.64 / 68.47 / 35.23. The detector is unchanged. The air is not.

Verifying frames and time comes next, and it is where the corruption benchmarks put by far the largest losses, as the section above quantifies. Transforms, units, timestamps and ego-motion compensation deserve the first hour of a review, not the last.

Matching in three dimensions is a design decision, not a default. nuScenes changed the matching rule rather than the models it evaluates. It defines “a match by thresholding the 2D center distance d on the ground plane instead of intersection over union (IOU)”, because “objects with small footprints, like pedestrians and bikes, if detected with a small translation error, give 0 IOU”. mAP is then averaged “over matching thresholds of D = {0.5, 1, 2, 4} meters and the set of classes C”.

KITTI keeps overlap matching and stratifies its objects instead. Its 3D benchmark “consists of 7481 training images and 7518 test images as well as the corresponding point clouds”. Every annotated object is split into easy, moderate and hard by minimum bounding-box height (40, 25 and 25 px), maximum occlusion level and maximum truncation (15%, 30% and 50%). And “the official KITTI leaderboard is ranked by performance on moderate”. Two benchmarks, two definitions of a hit. The same detector is being asked two different questions.

Slicing by visibility — occluded, truncated, sparse and partially scanned objects reported apart — and testing downstream margins such as mapping drift, collision clearance, volume or localization outcomes close the sequence. A single averaged score hides every one of the gaps above.

FigureProcess · 5 steps
  1. 1. Audit density and coverage

    Measure point count by distance, object size, surface, and weather.

  2. 2. Verify frames and time

    Test transforms, units, timestamps, and ego-motion compensation.

  3. 3. Match in three dimensions

    Use oriented overlap or distance criteria suited to the task.

  4. 4. Slice by visibility

    Separate occluded, truncated, sparse, and partially scanned objects.

  5. 5. Test downstream margins

    Evaluate mapping drift, collision clearance, volume, or localization outcomes.

Camera and lidar fusion can fail before feature fusion begins

Projected image features depend on calibration, synchronization, lens model, rolling shutter, and which surface each sensor observed; a color pixel may correspond to a different moment or depth layer than a lidar point.

Two independent groups have measured which sensor published fusion actually rests on. One of them corrupts a single modality at a time on nuScenes. TransFusion, clean at 66.9 mAP and 70.9 NDS, keeps 65.7 mAP when the camera inputs are corrupted — a robustness ratio of 0.98. Corrupt the lidar instead and it falls to 26.9, a ratio of 0.40.

The paper says so in plain words: “for existing fusion methods, the LiDAR modality is the main modality and the camera modality is auxiliary”. It then describes the limit case: “Especially, in the extreme case where all LiDAR points are missing, current fusion methods fail to predict any objects like the LiDAR-only method.” With the lidar removed entirely the fusion models return 0 mAP and 0 NDS, with every camera still working.

It does not take a total loss. On nuScenes-C, losing only part of the sweep, with all six cameras intact, takes PointPillars from 27.69 to 8.87 mAP, CenterPoint 59.28 → 20.84, FUTR3D 64.17 → 26.32, TransFusion 66.38 → 24.63 and BEVFusion 68.45 → 27.17.

Visualize projected correspondences across the frame and motion range; fusion gains should be compared with single-sensor baselines and sensor-dropout tests. That asymmetry is exactly what a single-modality baseline exposes and what an averaged benchmark number conceals.

Corrupt the cameras and TransFusion keeps 65.7 of its 66.9 mAP; corrupt the lidar and it keeps 26.9.

Example

Questions for a 3D perception review

A convincing point-cloud demo should survive these operational questions, and each of them has a published answer to be compared against.

  • How do point density and detection recall change with distance and object orientation — is there a range table like PointPillars' 82.3 vehicle AP at 0–30 m against 35.7 at 50 m and beyond?
  • Which coordinate frame and timestamp convention does every output use, given that corrupted ego-motion compensation took TransFusion from 66.38 to 9.01 mAP?
  • What happens when lidar, camera, or localization data is delayed or missing — noting that with the lidar gone the published fusion detectors return 0 mAP and 0 NDS while the cameras still work?
  • Are evaluation boxes defined in sensor, vehicle, map, or object coordinates, and is the match rule overlap or centre distance at 0.5, 1, 2 and 4 metres?
  • How are symmetric objects and partial overlaps handled during registration, and has the pipeline been run on a scene like the incised plane, where most ICP variants do not converge?
  • Which surfaces, weather conditions, and sensor artifacts remain out of scope, when dense fog alone takes a clear-trained PV-RCNN from 77.05 to 46.00 car 3D AP?

Key takeaways