ИИ-детекция болезней рыб по видео и фото
Ихтиопатолог может проверить 200–500 рыб в день. Система детекции болезней рыб на основе CV обрабатывает 10 000+ особей в час и фиксирует каждый выявленный признак с привязкой к ID особи. Мы строим такие системы под ключ для рыбоводческих хозяйств в сфере аквакультуры. Наш стек — YOLOv8, EfficientNet, PyTorch. За 5 лет мы внедрили решения для 12 видов рыб, включая атлантического лосося, форель и тилапию. Средняя экономия заказчика составляет 2,5 млн руб. в год за счет снижения падежа.
Почему CV-система эффективнее ихтиопатолога?
Человек устаёт, пропускает до 30% больных особей при интенсивной работе. CV-модель работает 24/7 без потери концентрации. Кроме того, система фиксирует точные координаты каждого дефекта, что позволяет отслеживать динамику здоровья популяции. Мы подтверждаем это на практике: после внедрения нашей системы клиенты снижают смертность на 15–20% за счёт раннего выявления вспышек.
Болезни и их визуальные признаки
Каждое заболевание имеет специфические визуальные маркеры:
| Болезнь | Визуальные признаки | Детектируемость |
|---|---|---|
| Лох (Saprolegnia) | Белые/серые ватообразные наросты | Высокая |
| Фурункулёз | Язвы, опухоли под чешуёй | Средняя |
| Хлоропикс | Белые точки на плавниках и теле | Высокая |
| VHS (геморрагическая септицемия) | Петехии, пучеглазие, бледные жабры | Средняя |
| Жаберная гниль | Побеление жаберных лепестков | Требует крупного плана |
| SRS (Piscirickettsia) | Тёмные пятна, апатия | Низкая (только поведение) |
Архитектура детектора
Двухэтапная схема:
Этап 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
Как калибровать модель под конкретный вид рыбы?
Каждый вид имеет свою нормальную пигментацию и анатомию. Лосось-атлантик, форель, тилапия — разные baseline. Мы используем fine-tuning или отдельные головы классификатора для каждого вида. Размер рыбы тоже важен: малёк 5–10 г и товарная рыба 2–5 кг — разные ракурсы и разрешение деталей на снимке. Добавляем нормализацию по размеру через estimated body length.
Жабры: отдельная задача
Жаберные патологии не видны снаружи без специального осмотра. Для конвейерных линий первичной обработки: автоматизированный захват изображения жаберной крышки в открытом положении + специализированный классификатор. Классификация состояния жабр по цвету и текстуре: здоровые (тёмно-красные, упругие) / бледные (анемия, возможно кислородное голодание) / побелевшие (бактериальная жаберная болезнь) / коричневые (метгемоглобинемия от нитритов). CNN на кропах жабр: accuracy 0.88 на 4 классах.
Сравнение ручного осмотра и CV-системы
| Характеристика | Ихтиопатолог | CV-система |
|---|---|---|
| Пропускная способность | 200–500 шт./день | 10 000+ шт./час |
| Работа 24/7 | Нет | Да |
| Документирование | Ручные записи | Автоматический лог с ID |
| Утомляемость | Высокая | Отсутствует |
| Точность при высокой нагрузке | Падает до 70% | Стабильно >95% |
Процесс внедрения
- Анализ производства: изучаем конвейер, освещение, виды рыб (1–2 недели).
- Сбор данных: запись видео с камер заказчика, разметка ихтиопатологом (2–4 недели).
- Разработка модели: тренируем детектор и классификатор на ваших данных (3–6 недель).
- Интеграция: установка ПО на сервер, подключение к АСУ ТП (1–2 недели).
- Тестирование: контрольный прогон на 10 000+ особях, настройка порогов (1–2 недели).
- Обучение персонала: 2–3 дня на площадке, документация.
Дополнительная информация
Опыт: более 50 внедрений в рыбоводческих хозяйствах России и СНГ, 5+ лет на рынке AI для аквакультуры.Что входит в работу
- Готовая модель детекции и классификации (Docker-образ).
- API для интеграции (REST/gRPC).
- Веб-интерфейс для просмотра результатов и экспорта отчётов.
- Документация по эксплуатации и калибровке.
- Гарантия на модель — 6 месяцев бесплатных обновлений при изменении видового состава.
Оценим ваш проект за 2 дня. Свяжитесь с нами для предварительного анализа — пришлёте видео с конвейера, мы вернём прототип результатов детекции.
Сроки
Базовая система детекции (видеопоток, 5–8 болезней): 8–12 недель. Расширенный модуль с жаберным анализом и несколькими видами рыб: 14–20 недель. Стоимость рассчитывается индивидуально.
Инвестиции в систему окупаются за 6–12 месяцев.







