Trout Identification
In partnership with

Trout Identification

Recognising individual trout by their spot patterns — like fingerprints — without ever touching the fish.

Source code Try the demo Machine LearningComputer Vision Live

Trout are freshwater members of the salmon family, prized for their vivid colours and markings. The Westslope Cutthroat Trout — named for the red-orange slash under its jaw — is native to the cold, clear streams of British Columbia and the northwestern US, and because it is so sensitive to water quality, its health is a barometer for the whole stream.

Every cutthroat carries something remarkable: a pattern of black spots as unique as a fingerprint, and stable for life. Together with Lumax AI, we built a system that reads those spot patterns to recognise individual trout from a photo — no tags, no handling, no stress to the fish.

From a photo to an identity — normalize the trout, extract its spot-pattern keypoints, and match them against a database A photo is straightened and cut out, the trout’s unique spots become keypoints, and those keypoints are matched against a database of known fish.

Why this trout matters

A native species in cold, clear water, the Westslope Cutthroat is woven through the health of its whole stream.

Food-web role

Both predator and prey — it eats insects and smaller fish, and in turn feeds birds, bears and larger fish, helping keep the web in balance.

Indicator species

Sensitive to water quality and habitat, healthy cutthroat populations signal a healthy stream — and warn early when something is wrong.

Culture & habitat

It anchors recreational fishing and local economies, cycles nutrients, and its spawning even helps shape the streambed for other species.

Under pressure

In many areas the Westslope Cutthroat is a species of concern, with populations in decline. Tap each pressure to learn more.

Urban development, farming and logging strip away the streamside habitat and clean water these trout depend on.

Dams, roads and other barriers cut populations off from one another, blocking migration and eroding genetic diversity.

Runoff from farms, industry and towns degrades the water quality these sensitive fish need.

Introduced brook and rainbow trout compete with, hybridise with, and prey on the native cutthroat.

Shifting temperatures and flows warm and reshape the cold, clear streams cutthroat rely on to spawn.

Heavy or unsustainable fishing pressure thins local populations and their genetic diversity.

How the system works

Recognising a trout takes two steps: prepare the photo, then match the spots.

Prepare the photo

Each raw photo is normalized — the fish is cut out from its background and straightened into a standard pose — and its unique spots are extracted as keypoints. Getting this right is what makes the later matching accurate.

Match the spots

The keypoints from a new photo are compared against a database of known trout. A strong enough match returns that individual — and its PIT tag and name; a weak match means it is a fish we have not seen before, ready to be registered.

Conclusion

Reading a trout by its spots turns population monitoring into something fast, repeatable and completely non-invasive — gathering the data researchers need without ever disturbing the fish or their habitat. As pressure on freshwater ecosystems grows, methods like this help track individual trout over time and target conservation where it matters most.

Try the interactive demo

See the model in action right in your browser — try it on the built-in examples or your own data. No install, no setup.

 Open the demo

Want a system like this?

We build conservation technology with partners in the field. Tell us what you're monitoring and we'll tell you what's possible.

In partnership with
Trout Identification
Bear Identification