FAST Corner Detector
FAST checks a ring of pixels around each candidate and calls it a corner when a long unbroken arc looks clearly brighter or darker.
Why Does This Exist?
Harris and Shi-Tomasi convolve gradients everywhere, which costs too much on phones and robots. Real time tracking needs hundreds of corners per frame at camera rate. FAST trades gradient math for direct brightness comparisons.
It tests pixels on a Bresenham circle of radius 3, so 16 samples around each candidate. The early reject uses only four compass points, which kills most non-corners fast. Learn the corner idea in corner and keypoint detection, then use FAST when speed matters.
Think of It Like This
Checking a clock face
Look at a clock and compare each hour mark to the center cap. If nine hours in a row are clearly lighter than the cap, you sit on a bright corner. If they are darker, you sit on a dark corner. Four quick glances at 12, 3, 6, and 9 already rule out most faces.
The analogy stops at thresholds: clocks have fixed paint, while FAST uses a brightness margin you must pick for your sensor noise.
How It Actually Works
For center pixel with intensity and threshold , label each ring pixel as brighter when , darker when , else similar. The classic FAST-12 rule calls a corner when contiguous ring pixels share the brighter label or share the darker label.
Worked numbers
Say and . Brighter means at least , darker means at most . A ring with consecutive values has bright pixels in a row, so FAST fires. Change the first three to and no -long run survives, so it rejects.
Speed comes from the decision tree: test pixels , , , first. Fewer than three of those four pass, and the candidate dies without reading the rest. Survivors get non-maximum suppression on a corner strength score.
FAST has no orientation, no scale handling, and no descriptor. That is why ORB builds a pyramid plus orientation on top of it.
Watch Out For
Threshold tuned on clean images
A small on noisy video fires on grain. A large on soft lenses misses real corners. Retune when exposure, gain, or blur changes, and always keep non-maximum suppression on.
Expecting matches from points alone
FAST outputs locations only. Two FAST point sets cannot match without descriptors. Pair it with BRIEF or ORB before you attempt feature matching.
The Quick Version
- FAST samples 16 ring pixels around each candidate center.
- FAST-12 fires on 12 contiguous pixels all brighter or all darker than center plus margin.
- Four compass tests reject most candidates early, which makes it very fast.
- No orientation, scale, or descriptor comes out of the box.
- Use it inside ORB or a tracking front end, not as a standalone matcher.