Skip to content
Protocolzone Protocolzone

Platform to Platform · Government & Civic

Identifying individual animals from live camera feeds

Rangers watch camera feeds and log sightings by hand, so we know an animal was seen but not reliably which animal, or where it has been moving.

This is a government & civic problem we approach through our Platform to Platform service line.

The problem

A protected area has cameras. Rangers and control-room operators watch feeds and log sightings by hand, which means the record is dependent on who was watching, how long they watched, and whether they could tell one animal from another on a night-time frame.

For conservation management the individual matters. Population estimates, territory mapping, human-wildlife conflict response and anti-poaching all depend on knowing which animal, not just that there was one. Manual logging gives you a count of sightings and very little about movement.

The staffing arithmetic is the other half. Continuous feeds from multiple cameras require continuous attention, and most of that attention is spent on frames with nothing in them.

Why it’s hard

Individual identification is a fine-grained problem, not object detection. Detecting that a frame contains a tiger is a solved problem you can buy. Deciding that it is a particular tiger requires reading a stripe pattern, which is a biometric — and it has to be read from whatever angle, distance and lighting the animal chose to walk past the camera at.

Field conditions are hostile to the model, not to the hardware. Partial occlusion behind vegetation, motion blur, infrared night frames with no colour information, rain on the lens, and animals that present a flank for four frames and then nothing. The usable frames per sighting are a small fraction of the frames captured.

The training set is unbalanced by nature. Some individuals are photographed constantly; others have a handful of usable images. A model trained without regard to that will confidently assign the rare animal’s sightings to the common one.

A new animal must be allowed to be unknown. A closed-set classifier always returns its best guess from the individuals it knows. In monitoring, that is worse than no answer: it creates a plausible false record of an animal being somewhere it was not. The system has to be able to say it does not recognise this one.

The model degrades unless something feeds it. Animals age, gain scars, and new individuals arrive. A model delivered as a finished artefact starts losing accuracy the day it is handed over, so the retraining path has to be part of the product rather than a maintenance contract.

The output has to reach a decision-maker in the field. A classification in a log file changes nothing. It has to arrive as a location on a map, in time, to someone with a radio.

How we approach it

Continuous frame extraction, then selection. Frames are extracted from live feeds with FFmpeg and pre-processed with OpenCV. Selecting candidate frames worth running a model against is a substantial part of the throughput saving — most frames contain nothing.

Transfer learning rather than training from zero. The 2018 build started from a pre-trained image recognition model and retrained it on stripe-pattern recognition using over 20,000 labelled tiger images. Starting from a pre-trained base is what makes a project like this feasible on a field dataset rather than an internet-scale one.

A retraining loop wired to operator judgement. Operators validate, tag and correct sightings in the dashboard. Those confirmations and corrections are the training data for incremental retraining, which means every hour an operator spends reviewing improves the model instead of only clearing a queue.

Java microservices for ingestion, processing and retraining. Spring Boot services handle feed ingestion, frame processing, inference and the retraining pipeline as separate concerns, so an inference backlog does not stall ingestion and a retraining job does not stall inference.

A map, not a report. The operator front end is ReactJS with Mapbox for real-time movement tracks, plus dashboards for validation and a reporting module for historical movement and trend analysis. The map is the interface that made the system operationally useful; the accuracy number is what made it credible.

What we would not do. We would not let an automated identification enter an official record unreviewed. We would also not promise individual identification for a species with no stable visual signature — that is a different product, and saying so before the contract is signed is cheaper for everyone.

What it takes

Labelled images per individual, and enough of them. This is the constraint that determines whether individual identification is possible at all. The 2018 project had over 20,000 labelled images to work from.

Camera placement and bandwidth. Identification needs frames where the identifying feature is visible. Camera siting is an ecological and practical decision made by the people who know the terrain, and it affects model accuracy more than model architecture does.

An operator who will validate. The retraining loop is only as good as the review discipline behind it. A system with nobody reviewing is a system whose model is frozen.

A stated decision threshold. What accuracy is sufficient depends on whether the output triggers a patrol, a population estimate or an enforcement action. We ask for that up front because it determines where the confidence cut-off sits and what happens below it.

Where this has been done

This is a shipped reference, published without the client named. In 2018 we delivered a video and image analytics system for tiger identification at a national park, for a state government wildlife authority in India, engaged via an enterprise partner. It identified individual tigers from live camera feeds by stripe pattern, plotted sightings on a GIS map, and retrained continuously from operator input.

Two figures from that project: 96% identification accuracy, and a reduction in surveillance workload of around 70% through automation of frame review.

We have since done further real-time animal detection work in forest environments. We are not publishing detail on it here, so treat this page’s evidence as resting on the 2018 delivery.

The same pipeline — frame extraction, detection, an operator validation queue that retrains the model, and geospatial output — is what we apply to infrastructure and road-defect monitoring from camera feeds.

Position on this page

Evidence

Delivered work

Industry

Government & Civic

Written for

Operations, Head of Product, CTO

Outcome

Individual animals identified from live video by stripe pattern, sightings plotted on a GIS track, and every operator correction fed back into the next model.

Jurisdictions

  • India

Questions we get asked

Straight answers.

How accurate was the identification?
96% identification accuracy on the tiger monitoring system delivered in 2018, trained on over 20,000 labelled images. Accuracy is only meaningful against the decision it supports, so the platform was built so that an operator confirms a match before it becomes an official sighting record.
What happens when the camera sees an animal the model has never been trained on?
It has to be able to return no match rather than the nearest known individual. This is the open-set problem, and it is the difference between a monitoring tool and a system that manufactures sightings. Unmatched detections go into the operator queue as candidates for a new individual.
Does the model improve after handover?
Yes, by design. Operator validation of each sighting is training data. The retraining loop ingests confirmed and corrected identifications so the model improves with use rather than degrading from the day it was delivered.
Does this work for species without individual markings?
Individual identification depends on a stable visual signature — stripe or spot patterns, for example. For species without one, the same pipeline still does species-level detection, counting and movement analysis, but not identification of a specific animal. We say which of the two a project is buying before it starts.

Read next

Related work.

Case studies

Is this your problem?

Bring the constraint that makes your version harder than this one. That is the part worth an hour.