One detector does real linear algebra at every pixel. The other just compares 16 numbers on a circle. Hover to watch Harris's eigenvalues fight it out live, peek inside FAST's actual pixel ring, then put both through a genuine frame-rate stress test.
Shift the window, measure the change
Flat region: shifting it any direction barely changes what's inside. Edge: shifting along it changes nothing, across it changes everything. Corner: every direction changes it.
Harris corner (neon green ring)FAST keypoint (electric cyan dot)Discarded by NMS (faded red)
Ready.
Live Explanation
Loading…
Block size
3×3
Sensitivity k
0.04
Hover anywhere on the image — no need to click. The graph below plots λ₁ vs λ₂ live at your cursor, leaving a fading trail.
Harris space: λ₁ vs λ₂
Threshold V
25
Non-Max Suppression ON
Turn NMS off to see the raw flood of overlapping candidates FAST finds before cleanup. Hover near any cyan dot to light up its actual 16-pixel ring below.
The 16-pixel Bresenham ring
A drone is flying an obstacle course and needs corners tracked every single frame. Budget: keep up with the target FPS or the mission fails.
Target FPS
30
FAST thresh.
30
Achieved FPS
—
Stable streak
0
🛰 VISUAL ODOMETRY STABLE — MISSION CLEAR
Rigour vs speed▾
Harris: the honest test
Full gradient covariance and an eigen-decomposition at every pixel — mathematically grounded, expensive, accurate. This lab measures its real cost, not a simulated one.
FAST: the shortcut that works
No gradients, no eigenvalues — just "are N contiguous pixels on a circle all brighter or all darker than the middle?" A blunter test, but fast enough to run every frame on cheap hardware.
NMS is not optional
Both detectors respond strongly across a whole neighbourhood near a real corner, not just one pixel — without non-max suppression you get a cluster of near-duplicate detections instead of one clean point.
Predict, then verify
In the Embedded Robotics challenge, you set the target FPS very high (45) and pick Harris. What's the most likely outcome?