BEVFormer Camera 3D Detection
BEVFormer turns six camera views into one bird's-eye map by letting each map cell ask the right image pixels for evidence.
Why Does This Exist?
Cameras are cheap and dense but each view is flat. Lifting six surround views into 3D by depth guessing smears far objects. Stereo vision needs overlap, which surround cameras lack. BEVFormer (2022) avoids explicit depth: it keeps a learnable bird's-eye grid and lets each grid cell pull evidence from the image views through attention, with past grids carried forward for motion.
This page covers the BEV query mechanism. Pure LiDAR voxel methods like SECOND are the alternative when depth accuracy matters most.
Think of It Like This
Six security monitors and one floor plan
Six guards watch six monitors while you hold a floor plan of the shop. You point at one square of the plan and ask each guard only about the pixels that show that square. Then you update the plan square and move to the next one, remembering last minute's plan too.
BEV cells are floor squares, cameras are monitors, and attention is the pointing. The analogy stops at geometry: the pointing uses calibrated projection, not hand waving.
How It Actually Works
The BEV grid has by queries covering m, so each cell spans m. Each query first attends to the previous BEV grid (temporal self-attention), then samples points per camera view through deformable cross-attention. Projection maps a 3D reference point to pixel per camera; points outside a view are skipped.
Worked example
A query at cell means m in ego coordinates. With reference heights m, the front camera projection lands near , , in a image. The query samples 4 offsets around each, weights them , and updates its feature from to . After the head, the cell emits car score with box center m.
Watch Out For
Stale history smearing fast motion
Carrying the full past BEV grid with ego-motion error above m drags boxes behind moving cars. The symptom is velocity underestimated by m/s. Re-align history with exact ego pose before temporal attention.
Reference heights missing low curbs
Sampling only m skips a m curb entirely. Add a m reference so ground-level evidence reaches the query.
The Quick Version
- BEVFormer keeps one bird's-eye query grid fed by all cameras through attention.
- Temporal attention carries the past grid forward for velocity and occlusion.
- No explicit depth map is built; projection picks the pixels per query.
- Do not use it where centimeter depth matters; LiDAR still wins there.
- A grid at m cells covers highway range without per-pixel depth.