AI Fish Disease Detection via Video and Photo

We design and deploy artificial intelligence systems: from prototype to production-ready solutions. Our team combines expertise in machine learning, data engineering and MLOps to make AI work not in the lab, but in real business.
Showing 1 of 1 servicesAll 1566 services
AI Fish Disease Detection via Video and Photo
Medium
~2-4 weeks
FAQ
AI Development Areas
AI Solution Development Stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1212
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    852
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1041
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    822

ИИ-детекция болезней рыб по видео и фото

Ихтиопатолог, осматривающий партию рыбы, может за день проверить 200–500 особей. CV-система, обрабатывающая видеопоток с конвейера, проверяет 10 000+ штук в час и фиксирует каждый выявленный признак с привязкой к ID особи.

Болезни и их визуальные признаки

Каждое заболевание имеет специфические визуальные маркеры:

Болезнь Визуальные признаки Детектируемость
Лох (Saprolegnia) Белые/серые ватообразные наросты Высокая
Фурункулёз Язвы, опухоли под чешуёй Средняя
Хлоропикс Белые точки на плавниках и теле Высокая
VHS (геморрагическая септицемия) Петехии, пучеглазие, бледные жабры Средняя
Жаберная гниль Побеление жаберных лепестков Требует крупного плана
SRS (Piscirickettsia) Тёмные пятна, апатия Низкая (только поведение)

Architecture детектора

Двухэтапная схема:

Этап 1: Детекция отдельной рыбы — YOLOv8-seg выделяет каждую особь в кадре. Это необходимо для разделения перекрывающихся рыб и нормализации кропов перед классификацией.

Этап 2: Классификация патологий — на кропе отдельной рыбы работает multi-label классификатор. Multi-label важен: у одной особи могут быть одновременно язвы и экзофтальм.

from ultralytics import YOLO
import torch
from torchvision import models, transforms

# Детектор рыб
fish_detector = YOLO('fish_detector_yolov8m.pt')

# Классификатор патологий (multi-label)
disease_classifier = models.efficientnet_b3(pretrained=False)
disease_classifier.classifier[1] = torch.nn.Linear(
    disease_classifier.classifier[1].in_features,
    num_diseases  # например 12 классов болезней
)

def analyze_fish(frame):
    # Детекция рыб
    detections = fish_detector(frame, conf=0.5)[0]
    results = []
    for box in detections.boxes:
        crop = frame[int(box.xyxy[0,1]):int(box.xyxy[0,3]),
                     int(box.xyxy[0,0]):int(box.xyxy[0,2])]
        # Классификация патологий
        tensor = preprocess(crop).unsqueeze(0).cuda()
        with torch.no_grad():
            logits = disease_classifier(tensor)
            diseases = torch.sigmoid(logits) > 0.5  # multi-label
        results.append({'box': box.xyxy[0], 'diseases': diseases})
    return results

Жабры: отдельная задача

Жаберные патологии не видны снаружи без специального осмотра. Для конвейерных линий первичной обработки: автоматизированный захват изображения жаберной крышки в открытом положении + специализированный классификатор.

Классификация состояния жабр по цвету и текстуре: здоровые (тёмно-красные, упругие) / бледные (анемия, возможно кислородное голодание) / побелевшие (бактериальная жаберная болезнь) / коричневые (метгемоглобинемия от нитритов). CNN на кропах жабр: accuracy 0.88 на 4 классах.

Калибровка под вид и размер рыбы

Каждый вид имеет свою нормальную пигментацию и анатомию. Лосось-атлантик, форель, тилапия — разные baseline. Fine-tuning или отдельные головы классификатора для каждого вида.

Размер рыбы тоже важен: малек 5–10г и товарная рыба 2–5кг — разные ракурсы и разрешение деталей на снимке. Добавляем нормализацию по размеру через estimated body length.

Сроки

Базовая система детекции (видеопоток, 5–8 болезней): 8–12 недель. Расширенный модуль с жаберным анализом и несколькими видами рыб: 14–20 недель. Стоимость рассчитывается индивидуально.