Farmers get a diagnosis from a phone photo in seconds, offline, instead of waiting days for a vet.
A custom image classifier covering six-plus common poultry diseases, running on the device so it works where there is no signal.
- Fixed scope · 6 weeks
- 2024
- Agriculture
- Computer vision, Mobile

The situation
Smallholder poultry farmers could not reach a vet quickly enough to matter. By the time a diagnosis arrived, a flock could already be lost, and the difference between acting on day one and day four was the difference between a treatable outbreak and a write-off.
The constraint that shaped everything: the people who needed this were standing in a shed on a low-end Android phone, frequently with no usable data connection.
What we built
A classifier trained on a curated, annotated dataset of healthy and diseased birds, optimised until it ran on the device rather than in a datacentre, wrapped in an app that does one thing — take a photo, get a likely diagnosis and a recommended next step.


What we deliberately left out
No cloud inference. The obvious architecture was an API call. It was also useless in a shed with no signal, so the model was shrunk until it ran locally instead.
No treatment prescribing. The app names a likely condition and tells the farmer what to do next, including when that is "call a vet now." It does not prescribe.
No account system in v1. Nothing to sign up for. Removing the login removed the largest reason people abandoned the app in testing.
The result
Predictions were validated against vet diagnoses before release. The app runs offline on low-end Android hardware, which is precisely where the problem is.
Built with
- Python
- TensorFlow
- TFLite
- Flutter
Have something like this?
Tell me what the problem is on a 30-minute call. If it's a fit, discovery starts with a written scope and a fixed number — not an estimate that moves.