PointPillars Fast Pillar Detector
Skip 3D cubes and stand pillars on the ground plane. PointPillars runs 2D convolutions on pillars for real-time lidar boxes.
Why Does This Exist?
VoxelNet pays for 3D convolutions even though cars never stack vertically. PointPillars exists to collapse height: it groups points into vertical pillars, encodes each with a mini-PointNet, scatters codes into a bird's-eye-view pseudo image, and detects with fast 2D convolutions. Speed jumps past Hz with small accuracy cost.
Sensing context is LiDAR based; task context is 3D object detection.
Think of It Like This
Counting crowds from a balcony
Judge a plaza crowd by looking straight down and counting heads per floor tile. Nobody stacks, so height adds nothing; tile counts plus shoe colors already find groups.
Pillars are floor tiles and pseudo images are the down view. The analogy stops at overpasses: tiles merge stacked roads while pillars keep max height features to separate them.
How It Actually Works
Pillars of m footprint keep up to points each, augmented with offsets to pillar center and mean. A shared MLP plus max-pool gives one -dim code per pillar, scattered into a pseudo image. A 2D backbone with top-down fusion plus an SSD-style head regresses boxes and heading. Height resolves from pillar codes rather than explicit convolutions.
Worked numbers
A m scene at m gives about pillars, but only hold points ( percent dense). Inference runs near ms ( Hz) versus ms for early VoxelNet, while KITTI moderate car AP moves from to about percent.
Code
def pillar_count(area: float, size: float, dense_frac: float) -> int: total = (area / size) ** 2 # grid cells over square scene return int(total * dense_frac)
print(pillar_count(70.0, 0.16, 0.06)) # -> 11484Watch Out For
Pillaring tall stacks as one cell
Bridges over roads share pillars with cars below, and max-pooling can keep the wrong height. The symptom is boxes floating at deck level. Check height histograms on multi-level scenes and keep explicit features in the code.
The Quick Version
- PointPillars groups points into vertical pillars, not 3D voxels.
- Each pillar encodes to one code scattered into a pseudo image.
- Fast 2D convolutions replace costly 3D ones.
- Pillar m grids run past Hz near percent car AP.
- Height survives through pillar features, not 3D math.
- Stacked roads need extra height care.