← All workComputer visionlive2026

BroilerVision: computer vision for broiler houses

Runs on free hosting, so the first load can take up to a minute.

Recorded from the live app
On this page
  1. In short
  2. Finding small birds
  3. Counting honestly
  4. Spotting a bird in trouble
  5. The stockperson’s dashboard
  6. Tested without leakage
  7. What it does not do

In short

  • WhatAn overhead camera that counts birds and flags any that stop moving.
  • HowA 1280 px detector, a stillness clock and breed targets.
  • Result82% of birds found, 84% of boxes real, 83 ms a frame on CPU.

My own independent project, built on public data.

Finding small birds

  • 1280 px, whole frameFrom the ceiling a bird is about 33 pixels across.
  • Never scaled downShrunk, that bird would be about 11 pixels.
  • 83 ms a frameFast enough on an ordinary CPU.

From the ceiling a broiler is tiny, so the detector sees the full-size frame.

  • A more accurate tiled version was too slow to ship.
Technical detail

The detector is YOLO11n, exported to int8 ONNX, trained and run at 1280 px on the whole frame. In a 1920 x 1080 frame a bird is about 33 pixels across; scaling the frame down would shrink it to about 11. A tiled variant, where the detector sees roughly 30 birds at a time instead of 225, is more accurate on the same test split but takes 1.2 s per frame, so it is not shipped.

Counting honestly

  • 82% of birds foundMeasured on held-out data.
  • 84% of boxes realThe rest are false detections.
  • A count with a rangeNot a single, falsely precise number.

The count on screen is corrected for both the birds the detector misses and the boxes it invents, and shows its uncertainty.

  • Raw counts are labelled as raw.
Technical detail

Measured on held-out data at confidence 0.2, the detector finds 82% of birds, 84% of its boxes are real, and the counting error is 13 birds (28%). The shown count is corrected by the measured ratio of true birds to predicted boxes on held-out images, with a range from how that ratio varied across crowding levels. Away from the calibrated confidence the raw count is shown and labelled as such.

Spotting a bird in trouble

How BroilerVision spots a bird in troubleWhen a bird stops moving, a stillness clock runs, only while the lights are on. If another bird walks over it, the clock pauses rather than resets. After 120 minutes of stillness (no living bird in the measured data stayed still for more than 91 minutes) the app raises an alert with supporting checks, and counts false alarms openly on screen.A bird stops movingStillness clock runsonly while the lights are onAnother bird walks overthe clock pauses, it does notreset120 minutes stillno living bird was still past 91Alert, with supportingchecksfalse alarms counted on screenHow BroilerVision spots a bird in troubleWhen a bird stops moving, a stillness clock runs, only while the lights are on. If another bird walks over it, the clock pauses rather than resets. After 120 minutes of stillness (no living bird in the measured data stayed still for more than 91 minutes) the app raises an alert with supporting checks, and counts false alarms openly on screen.A bird stopsmovingStillness clockrunsonly while the lightsare onAnother bird walksoverthe clock pauses, itdoes not reset120 minutes stillno living bird wasstill past 91Alert, withsupporting checksfalse alarms countedon screen

Judged by how long a bird stays still, not by how it looks.

A bird that may be dead or unable to get up is found by how long it stays still.

  • No clock in the dark period.
  • A bird that leaves view is dropped, not alarmed.
  • False alarms are shown, not hidden.
Technical detail

Across 93,085 observations in a commercial house of about 30,000 broilers, no living bird stayed completely still for more than 91 minutes. The alert is therefore 120 minutes of stillness while the lights are on, with supporting checks. The clock pauses, not resets, when another bird walks over the resting bird; it is thrown away if the bird disappears from view.

The stockperson’s dashboard

  • Bird countWith its range.
  • HuddlesTight groups of 10 or more birds.
  • Floor heat mapUnevenness and a huddling index.
  • FeedersFound automatically by colour.
  • Flock performanceAgainst Ross 308 breed targets.

One screen for the person walking the house.

Technical detail

Flock performance covers breed targets (Ross 308), stocking density, daily gain and mortality rules: the Red Tractor AH.8.a daily trigger and the Directive 2007/43/EC Annex V line.

Tested without leakage

  • Duplicates removedExact copies out, near-copies grouped.
  • Split by groupNever frame by frame at random.
  • Both figures reportedThe honest one and the inflated one.

Frames from one video look alike, so they never sit on both sides of a test.

Technical detail

Frames from continuous video were split by group, not at random. Exact duplicates were removed, near-duplicates grouped by image fingerprint and recording session, and whole groups split, because the flagship public dataset contains 57 pairs of byte-identical images across its own training and validation split. Training data: PIO (CC BY 4.0), Bern UAS HAFL (CC BY 4.0) and an MIT-licensed overhead pen dataset, all licensed for commercial use. The sample footage is from a public source.

What it does not do

  • Weigh birds from the camera
  • Follow one bird for long
  • Score walking ability
  • Diagnose disease from sound

Each of these was left out on purpose, and the app explains why.

  • A clear boundary is a feature, not a gap.
Try it live ↗Runs on free hosting, so the first load can take up to a minute.

Want to talk about this work? Email me or download my CV.