PigeonColumba compressa

Loading YOLOv8n…

The Coop, YOLOv8n: YOLOv8n

Fetching the detector and 500 test photos.

Your life list

Starting the engine…
Bird AP@50
…
1.0 finds every bird, boxed, with no false alarms
AP kept
…
of the native model's AP: the bird's health
Size
…
real bytes, scales included
Compute
…
multiply-adds per photo, live channels only

The bird's species follows how many times smaller the weights are than native (dove from 1.8×, swift from 3.5×, swallow from 7×, hummingbird from 14×). Its health follows AP kept: healthy at 95% of native or more, a skeleton at 60% or less, starving in between.

Recipe

One precision for every weight, and a channel cut for each stage. Every change scores YOLOv8n again: first on 100 photos for a quick estimate, then on all 500.

The controls appear once native YOLOv8n has been scored.

Through YOLOv8n's eyes

Bird photos appear here with YOLOv8n's boxes once the engine has scored them.

Twelve bird photos from the test set. Teal boxes are where the birds really are. Magenta dashed boxes are what YOLOv8n reports with more than 25% confidence. A red border means this recipe finds fewer birds in the photo than native YOLOv8n did.

Everything you've tried

No runs yet: the first one is native YOLOv8n, scored as the page loads.

One row per full 500-photo scoring run, kept in this browser. The highlighted row is the recipe on screen now; the last column is the bird's condition.

How this cage keeps score

YOLOv8n runs here, in a background worker on your graphics chip (TensorFlow.js on WebGL), on the same 500 Open Images photos as Pigeon, at 224 × 224 pixels. A detection counts when its box overlaps a real bird by at least half; the photos without birds count too, as places to raise false alarms. Native AP is measured once as the page loads and every recipe is compared with it. It won't match the COCO scores Ultralytics publishes, which use 640-pixel photos and all 80 classes.

When the weights were exported, the cockpit's PyTorch evaluator scored native YOLOv8n at 0.641 on these photos, INT8 per channel at 0.634 and INT4 per channel at 0.173 (recorded 2026-10-09 with Ultralytics 8.4.174, not measured on this page). Your browser's numbers should land within a few thousandths of these.

Size counts every stored bit: weights at the recipe's precision, one 16-bit number per shared scale, and biases kept at 16 bits. Native is Ultralytics' checkpoint with BatchNorm folded into the convolutions, stored as fp16: 6.30 MB for 3.15 million parameters. Precision never changes compute; only channel cuts do.

YOLOv8n is by Ultralytics, under the AGPL-3.0 license. The photos come from Open Images. The twelve above link to their sources, as do the twenty-four in the specimen drawer on Pigeon's page; every photo's author, source and license are listed in the test set's index (JSON).