← the room

BirdLense

live·YOLO + ByteTrack · BirdNET · Raspberry Pi · Docker

A Raspberry Pi in the yard records what visits the bird feeder, works out what it was from the video and the audio, and writes it down. Everything shown below is one day at one feeder — the numbers are its own.

Two stages, not one big model

A binary detector decides whether there is a bird at all, and only then does a species classifier run. On a Pi that is the difference between keeping up with the camera and not. ByteTrack sits on top so one visit is one bird, not forty frames of separate sightings.

It listens as well as looks

BirdNET-Analyzer runs on the USB mic, so a bird calling from the tree behind the feeder is still recorded. Vision and audio are two independent votes on what was there, which is the point of having both.

Nothing leaves the yard

Detection, classification, storage and the web UI all run on the device, in Docker. The cloud is opt-in and used for exactly two things: the weather, and an optional Gemini call that writes the day up in a paragraph.

device
raspberry pi
vision
yolo + bytetrack
audio
birdnet-analyzer
data
stays on the pi
A recorded clip of a northern cardinal on a feeder rail, with a tracking box labelled "#1 Northern Cardinal (Adult Male)" and an 88% confidence chip.
One recording. The box is the tracker holding an identity across the clip; the label and the 88% are the classifier. Tracks and spectrogram are toggles.
BirdLense's dashboard: unique species, total visits, mean visit duration, busiest hour, recording time, weather, and an hourly activity chart.
A day at the feeder — 9 species, 107 visits, mean visit 87 seconds, busiest at 9 AM. Detections are plotted against temperature, because they correlate.
A 24-hour polar activity chart and a species distribution donut listing house sparrow, squirrel, house finch, pileated woodpecker, northern cardinal and others.
The same day by species and by hour. The squirrel is not a misdetection — it is a class, because something eating the seed is worth counting either way.