perception, hardware
A camera does not return a range. It returns a picture, and distance has to be inferred.
Hold one finger in front of your face and close one eye, then the other. The finger jumps. That tiny shift is disparity, and a brain uses it, plus object size and motion, to guess depth. A camera stack is doing a machine version of the same trick.
A single still frame is ambiguous. A truck far away and a toy truck nearby can occupy the same number of pixels. So vision systems lean on extra clues: how an object grows from frame to frame, how it lines up across overlapping cameras, how it sits on the ground plane, and how large similar objects usually are.
The finger jumps.
None of those clues is a tape measure. Each can be wrong in a specific way. A reflection can look like a second object. A hill can break the ground-plane assumption. A rare vehicle shape can break the size assumption. That is why camera depth is described as an estimate, not a pulse time.
The useful question is not whether the estimate is perfect. It is whether it is stable enough, often enough, for the next modules to plan. Teams that skip lidar are betting that those cues, trained across a huge mix of scenes, beat a sparser set of exact ranges. The next few posts are about the scenes where those cues get noisy.