AI-система виявлення хвороб риб за відео та фото
Іхтіопатолог може перевірити 200–500 риб на день. Система детекції хвороб риб на основі CV обробляє 10 000+ особин на годину та фіксує кожен виявлений ознаку з прив'язкою до ID особини. Ми будуємо такі системи під ключ для рибницьких господарств у сфері аквакультури. Наш стек — YOLOv8, EfficientNet, PyTorch. За 5 років ми впровадили рішення для 12 видів риб, включаючи атлантичного лосося, форель та тиляпію.
Чому CV-система ефективніша за іхтіопатолога?
Людина втомлюється, пропускає до 30% хворих особин при інтенсивній роботі. CV-модель працює 24/7 без втрати концентрації. Крім того, система фіксує точні координати кожного дефекту, що дозволяє відстежувати динаміку здоров'я популяції. Ми підтверджуємо це на практиці: після впровадження нашої системи клієнти знижують смертність на 15–20% за рахунок раннього виявлення спалахів.
Хвороби та їх візуальні ознаки
Кожне захворювання має специфічні візуальні маркери:
| Хвороба | Візуальні ознаки | Детектованість |
|---|---|---|
| Лох (Saprolegnia) | Білі/сірі ватоподібні нарости | Висока |
| Фурункульоз | Виразки, пухлини під лускою | Середня |
| Хлорофікс | Білі точки на плавцях та тілі | Висока |
| VHS (геморагічна септицемія) | Петехії, пучеглазія, бліді зябра | Середня |
| Зяброва гниль | Побіління зябрових пелюсток | Вимагає крупного плану |
| SRS (Piscirickettsia) | Темні плями, апатія | Низька (лише поведінка) |
Архітектура детектора
Двоетапна схема:
Етап 1: Детекція окремої риби — YOLOv8-seg виділяє кожну особину в кадрі. Це необхідно для розділення риб, що перекриваються, та нормалізації кропів перед класифікацією.
Етап 2: Класифікація патологій — на кропі окремої риби працює мультилейбл класифікатор. 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 місяців.







