AI system for detecting fish diseases from video/photo

Disease outbreaks are noticed only after mortality — time and part of the stock are lost irrevocably. We develop a turnkey AI system for detecting fish diseases from video and photo: it highlights problematic individuals during filming. Let's discuss the task — we'll come back with an estimate and a plan.
Frequently Asked Questions

Fish disease detection by video: where accuracy is lost

Disease in a cage is most often noticed by a rounds worker — with their eyes, from a boat or a platform.

Manual cage inspections happen once every few days, some individuals stay in the water column and in the shade, and at an early stage external signs are barely distinguishable from injury, a reaction to feed, or a temperature change.

As a result, the first cases are recorded when mortality has already spread through the entire stock, and early disease detection turns into dealing with the aftermath.

A camera by itself does not cure this. The frame stream from a cage is degraded by glare from the surface, water blooms, side light, and dense stocking, where individuals overlap each other.

A model trained on clean images loses accuracy on such footage, and diseased individuals make up a fraction of a percent in the frame — the rare class degrades first, and the error shifts toward misses.

Here a miss is more expensive than a false alarm: an extra signal costs one visit, while an unnoticed one costs weeks of treatment.

Reaction delay is the main cost. Between the first clinical sign and the treatment decision, several days pass, and in dense stocking, infection during this time covers the cage and moves to neighboring ones.

Then come treatments after an outbreak, quarantine restrictions, fish withdrawn from sale, and stock losses that are no longer counted in heads but in tons.

Therefore, fish disease detection by video is not “install a camera and turn on recognition,” but building a path from frame to decision: stabilize the footage, collect annotations under real cage conditions, set the trigger threshold according to the cost of a miss, and deliver the signal to a person who can act the same day, not on the next inspection round. Let’s break down how this is covered.

What video monitoring delivers: effect in measurable indicators

In aquaculture monitoring, fish disease detection by video delivers an effect visible in reports, not in a presentation: every model observation is recorded with camera, time, and cage number, so indicators are comparable with previous periods by the same rules.

  • Reaction speed. Inspection rounds gave a snapshot once per shift, while the camera watches continuously: the first deviation in behavior enters the report within hours, while the pathology is still local.
  • Share of missed cases. With eyes you manage to assess part of the stock, while automated inspection covers the whole frame. Lethargy, refusal to feed, isolated individuals at the surface stop being lost.
  • Eliminated failure class. An outbreak is recorded from two or three individuals, not from mass mortality: the scenario “noticed when there was nothing left to treat” leaves practice.
  • Volume of manual work. Only disputed frames with low model confidence go to the fish pathologist, not hours of recording — the share of manual review falls, and time goes to complex cases.
  • Reduced mortality. Cage quarantine, feeding adjustments, and treatment are activated before mortality rises; in the report this is visible in the daily mortality curve.

We verify annotation and observation rules against the diagnostic recommendations of World Organisation for Animal Health — the report remains comparable when the fish pathologist changes and during inspections.

We calculate indicators over identical intervals and store the source frames: any number can be traced back to a specific observation and rechecked manually.

Shooting formats and system operating modes

The shooting mode determines what actually enters the frame, and the processing mode determines how quickly you get an answer for each suspicion.

An underwater camera on a rigid mount gives a stable angle and predictable individual scale, but runs into turbidity, fouling on the protective glass, and lack of light at depth.

Above-water shooting is easier to maintain and covers the entire cage area, but glare, ripples, and the water column make some individuals indistinguishable.

Option When it fits Limitations
Underwater camera Enclosed cages, tanks, systems with clear water Turbidity, fouling of optics, requires regular cleaning and lighting
Above-water shooting Open ponds and large cages where the overall picture matters Glare, waves, some fish go to depth and drop out of the sample
Real-time processing A signal is needed at the moment of the event, stream sorting Sensitive to frame quality, produces more false alarms
Batch processing of recordings Night archive, incident review, diagnosis refinement Response delay, requires reserve disk space for recordings

In practice, the modes are combined: real time catches suspicious events and starts recording, while batch review confirms the finding on the full fragment and filters out false positives.

Such a loop removes the main limitation of shooting — the impossibility of getting an ideal frame of every individual.

Implementation stages: from audit to handover into operation

The work order is structured so that each step ends with a verifiable result, and decisions are made based on data from the specific water area, not averaged assumptions. Below is the sequence from the first site visit to handover to the shift.

  1. Water area audit. Engineers record the geometry of tanks and cages, water exchange regime, illumination, stocking density, and areas where disease incidence appeared earlier. The output is a map of observation zones and a list of constraints for the rest of the configuration.

  2. Camera placement plan. We select angles so that individuals do not overlap each other and signs of lesions remain distinguishable. Viewing points are tied to maintenance locations — cleaning the lens does not require stopping the line.

  3. Installation and sensitivity threshold setup. We set the threshold based on the actual video stream: a low one produces a flood of false signals that the shift stops reacting to, a high one misses early stages. We select the balance on annotated fragments and fix it in the configuration.

  4. Validation on control recordings. We run the system on an archive with confirmed diagnoses and on recordings without pathology, and calculate detection completeness and the share of false alarms. This is an acceptance indicator, not a demonstration for show.

  5. Shift training. Operators go over how to read the signal, what to do when it triggers, and how to mark erroneous labels: feedback from the site goes into retraining.

  6. Operating regulations and handover. We fix alarm responses, the frequency of view angle checks, and the model update procedure. We hand over the scheme, configuration, regulations, and inspection log, then provide support according to an agreed schedule.

What we hand over: configurations, schemes, regulations

A project on fish disease detection is valuable not only for the model’s accuracy at acceptance, but for the fact that the customer can develop it without us.

Therefore, we close the launch by handing over artifacts: without them, the system remains a “black box” that breaks at the first change in shooting conditions or change of responsible person. Below is what exactly remains in your hands.

  • System configuration — settings files with confidence threshold, frame processing frequency, rules for merging events into a single case, and a list of ignored zones. They can be changed without editing code: the fish pathologist can raise sensitivity during an outbreak period without stopping detection.
  • Equipment placement schemes — binding cameras and lights to cage, tank, and line numbers, viewing angles, overlap zones, requirements for water and glass cleanliness. From them, a new contractor or your engineer can restore the installation without guesswork.
  • Access policies — roles for tasks: an operator sees only their lines and confirms cases, the fish pathologist receives the full sample, the technologist changes thresholds. A separate item is the action log: who, when, and why canceled a trigger.
  • Technical documentation — description of architecture, data flows, and database fields, a list of disease classes with classification criteria. Plus a “why so” section: which decisions were made and by which observations they were confirmed.
  • Personnel instructions — one page per role: what to do when a trigger occurs, how to confirm or reject an event, where to look in case of a false miss. Designed for a shift employee without experience working with models.
  • Maintenance regulations — frequency of quality checks on the control sample, retraining procedure on new annotated frames, and the criterion at which it is time to intervene. This also includes the procedure for rolling back to the previous model version.
  • Annotations and validation sample — a dataset with a description of annotation rules, so that your specialists can expand it uniformly and metrics remain comparable between versions.

Everything is transferred to your repositories and storage with owner rights — not into the contractor’s closed environment.

If the set seems excessive, we will discuss the task and propose a minimally sufficient set: describe the conditions at your farm, and we will return with an estimate and handover plan.

Case: how mortality on a cage line was cut threefold

At the customer’s cage line, cage inspections were done once a day: an operator went along the line by boat, inspected the net and fish behavior, and took samples. One cage took about an hour, and most of the shift went to obviously healthy fish.

Infection was noticed by external signs on the third or fourth day — part of the stock had already been lost by then.

Annotations were collected together with the farm’s fish pathologist according to the methodological recommendations of World Organisation for Animal Health, so that feature classes matched what the veterinary regulations record as a confirmed case, not a picture convenient for the algorithm.

What was installed

Cameras above the cages and an underwater module on the feeding line, round-the-clock shooting.

The system evaluates a frame every few seconds, filters out turbidity, glare, and algae, and when there is a stable signal across a series of frames, sends the operator a notification with the cage number and time. The operator opens the fragment and confirms or rejects it — both labels go into retraining.

What changed

Reaction time dropped from 3-4 days to 2-3 hours: the signal arrives while the lesion is visible on one or two individuals.

Mortality per grow-out cycle was cut threefold, and continuous inspection was replaced with targeted inspection — the operator goes only to cages with a confirmed signal, and the line is closed twice as fast.

Three points were added to the regulations: checking the signal within two hours, a frame log for each cage, and the threshold after which a cage goes into quarantine.

The number of treatment applications on the line decreased — some foci were extinguished by changing the diet and isolation before an outbreak. After two cycles, the share of false signals fell to a level at which checks take less than an hour per shift.

How to scale detection from one line to the entire farm

When moving from a pilot area to several lines, the model is not retrained from scratch — the capture scheme changes: the number of control zones, camera placement, and binding an event to a specific line.

One line needs one angle; several lines develop blind spots at transitions between cages, where fish move in a dense flow.

Already installed cameras mostly stay in place: we check the viewing angle, lighting stability, and uniformity of the network stream.

If the frame in the required control zone is comparable to the reference, the camera is connected as is; we change only the position or add lighting where backlight and glare from water interfere.

The computational part scales differently from the optics. One node can handle several streams, but processing latency grows with the number of control zones, so streams are distributed across lines with reserve — a queue on one line should not slow down neighboring ones.

Integration with equipment goes through a gateway: an event with line, zone, and time labels goes into the existing control system, and sensitivity thresholds are configured separately for each line.

A single threshold for the entire farm produces either misses on a calm line or an avalanche of false alarms on an active one.

We launch lines one by one, checking each against the reference area by detection metrics. This shows what caused the discrepancy — lighting, angle, or stocking density — and the next line starts already with these corrections.

Technical concerns: accuracy, false alarms, light

Recognition accuracy is not a single number but a set of metrics by slices: separately by disease classes, separately by shooting conditions.

In turbid water, with weak light, and with fish overlapping in the frame, the result is noticeably worse, so precision and recall are calculated by subgroups — otherwise a weak slice hides behind a good average.

We select the confidence threshold according to the cost of error. A missed disease and a false alarm cost differently, so questionable frames are not silently discarded but go into a separate queue for operator review.

Data quality determines the rest. Frames from video are redundant, so we select them at intervals by scene and separately add borderline cases — defocus, glare, partial overlap.

Annotation is performed by at least two annotators, and disagreements are reviewed: a high share of disputed frames means the class is described ambiguously and the model will learn contradictions.

How does the system behave in turbid water and changing light?

The frame undergoes normalization: white balance, contrast equalization, region-of-interest mask — so that background and reflections do not enter the analysis. The model is trained on footage under the same conditions as at the site, including deliberately bad frames. If quality is below acceptable, the system does not guess but marks the frame as unusable.

Where do false alarms come from?

Most often from similar visual signs: injuries, growths, glare on scales, one fish overlapping another.

We suppress them with two techniques — collecting difficult negative examples into the sample and smoothing the result over time: a single frame is not considered an event, the signal is confirmed by a series. The flow of false alarms falls without loss of sensitivity.

Let’s discuss the task: what is needed to start work

To return with an assessment of the task and an implementation plan, not general considerations, we need a minimum of source data. Below is a list that covers most questions at the start of work; if something is missing, say so directly — we will discuss what to replace it with.

  • Video and photos from your shooting points — several hours of recording, including difficult cases: turbid water, glare, dense stocking, low light.
  • A list of target diseases and confirmed conclusions from a fish pathologist or veterinarian on these materials — they become the reference for training and acceptance.
  • A diagram of shooting points: where cameras are installed, what angles, whether there is power and a communication channel at the site.
  • What should happen with the result: a signal to the operator, an entry in an existing log, or a separate report per shift.
  • The system operating mode — real-time fish disease detection on the stream or analysis of an archive for a past period.
  • Who on the customer side accepts the result and reviews disputed cases — without this, acceptance drags on.
  • Current regulations: how a suspected disease is recorded now and what happens next.

After that, we fix the order of stages: data review, a prototype on your materials with accuracy measurement, a pilot on one line or tank, then implementation and personnel training. Describe the task — we will return with a timeline estimate and work plan.

AI Development Areas

Latest works

  • Development of a web application for FEEDME
    Development of a web application for FEEDME
    1393
  • Development of an online store for the company FURNORO
    Development of an online store for the company FURNORO
    1368
  • B2B Advance company logo design
    B2B Advance company logo design
    815
  • Development of a web application for Enviok
    Development of a web application for Enviok
    1139
  • AIDER company logo development
    AIDER company logo development
    1057
  • CRM development for Chasseurs
    CRM development for Chasseurs
    1152