IoU & NMS simulator
Run Non-Maximum Suppression by hand on six detections. Change the thresholds and watch boxes survive or get suppressed — with the full step-by-step log.
Predict first
Commit to a guess before you touch anything. Being wrong here is how it sticks.
Box A = (0, 0, 10, 10), Box B = (5, 0, 15, 10). IoU? (2 dp)
Experiment
Move the controls and watch the outputs. Goals tick off automatically when you reach them.
Run NMS yourself
Solid = kept · dashed = suppressed · faded = below the confidence threshold
| # | NMS step |
|---|---|
| 1 | Keep A (car, 0.95) — highest remaining |
| 2 | Suppress C: IoU with A = 0.65 > 0.50 |
| 3 | Suppress B: IoU with A = 0.66 > 0.50 |
| 4 | Keep D (person, 0.91) — highest remaining |
| 5 | Suppress E: IoU with D = 0.62 > 0.50 |
| 6 | Keep F (dog, 0.22) — highest remaining |
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| A | — | 0.66 | 0.65 | 0.00 | 0.00 | 0.00 |
| B | 0.66 | — | 0.43 | 0.00 | 0.00 | 0.00 |
| C | 0.65 | 0.43 | — | 0.00 | 0.00 | 0.00 |
| D | 0.00 | 0.00 | 0.00 | — | 0.62 | 0.00 |
| E | 0.00 | 0.00 | 0.00 | 0.62 | — | 0.00 |
| F | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | — |
Explain it
Put what you saw into words. This is what the exam will ask you to do.
Define IoU and explain NMS step by step.
Code it
Write real code against real data. Python and SQL run right here in your browser and hidden tests check your work; the AI reviews it like an examiner.
Intersection over Union
Write iou(a, b) for boxes given as (x1, y1, x2, y2) with x2 > x1 and y2 > y1.
Return 0.0 when boxes don't overlap.
Challenge
Fixed variations, a new problem every day, and unlimited AI challenges built from your current settings.
Horizontal Strip Overlap IoU
Box A = (0, 0, 10, 10) and Box B = (5, 0, 15, 10) in (x1, y1, x2, y2) form. What is their IoU? (2 decimals)