AI Automatic Fish Feeding Optimization System

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 Automatic Fish Feeding Optimization System
Medium
~2-4 weeks
FAQ
AI Development Areas
AI Solution Development Stages
Latest works
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • 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
    823
  • image_logo-aider_0.jpg
    AIDER company logo development
    762
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    848

AI-оптимизация кормления в аквакультуре

Корм составляет 50-70% операционных затрат в аквакультуре. Перекорм — загрязнение воды и потеря денег. Недокорм — замедление роста и стресс рыбы. ML-система, анализирующая поведение рыбы, параметры воды и биомассу, снижает FCR (Feed Conversion Ratio) на 10-20%.

Физиология и факторы аппетита

Факторы, влияющие на потребление корма:

appetite_factors = {
    'water_temperature': 'Q10-зависимость: каждые 10°C удваивают метаболизм',
    'dissolved_oxygen': 'DO < 5 mg/L → стресс, отказ от корма',
    'feeding_time': 'лосось: активность утром/вечером, тилапия — дневная',
    'photoperiod': 'длина светового дня влияет на аппетит',
    'fish_size': 'FCR улучшается с ростом рыбы',
    'health_status': 'заболевания → снижение приёма корма',
    'water_salinity': 'для морских видов',
    'co2_level': 'избыток CO₂ снижает аппетит'
}

FCR (Feed Conversion Ratio): FCR = корм (кг) / прирост биомассы (кг). Норма для лосося: 1.1-1.3. FCR > 1.5 → неэффективное кормление.

Компьютерное зрение для мониторинга поведения рыбы

Визуальная оценка аппетита:

import cv2
import torch
from ultralytics import YOLO

class FishAppetiteMonitor:
    def __init__(self):
        self.yolo = YOLO('yolov8n.pt')

    def analyze_feeding_behavior(self, frame):
        """
        Детекция пеллет (несъеденный корм) и рыбы
        Wasted feed ratio = detected_pellets / total_pellets_dropped
        """
        results = self.yolo(frame)

        pellet_count = sum(1 for r in results[0].boxes
                          if r.cls == PELLET_CLASS)
        fish_activity = self.estimate_fish_activity(results)

        return {
            'uneaten_pellets': pellet_count,
            'fish_activity_score': fish_activity,
            'appetite_index': 1.0 - pellet_count / expected_pellets
        }

    def estimate_fish_activity(self, detection_results):
        """
        Активность рыбы коррелирует с аппетитом:
        высокая активность у поверхности = голодная рыба
        """
        surface_fish = sum(1 for r in detection_results[0].boxes
                          if r.xyxy[0][1] < SURFACE_THRESHOLD)
        total_fish = len(detection_results[0].boxes)
        return surface_fish / (total_fish + 1e-8)

Hydroacoustic мониторинг: Подводные камеры дополняются гидроакустическими сенсорами: шум кормления → прокси для активности потребления.

Адаптивная стратегия кормления

Demand Feeding: Классический подход: fish-actuated feeder — рыба ударяет по маятнику → кормушка срабатывает. ML-система делает это умнее:

def adaptive_feeding_controller(current_appetite_index, water_params,
                                  daily_ration_kg, fed_today_kg):
    """
    Адаптивное кормление:
    - Высокий аппетит → увеличиваем порцию
    - Низкий аппетит → останавливаем раньше
    - Учёт дневного лимита
    """
    remaining_ration = daily_ration_kg - fed_today_kg

    if current_appetite_index < 0.3:
        # Рыба не ест — останавливаем
        return 0
    elif current_appetite_index > 0.8 and remaining_ration > 0:
        # Высокий аппетит — кормим на 110% от плановой порции
        feed_amount = min(remaining_ration, planned_portion * 1.1)
    else:
        # Линейная шкала
        feed_amount = planned_portion * current_appetite_index

    # Температурная коррекция (Q10 модель)
    temp_factor = (current_water_temp / optimal_temp) ** 0.3
    feed_amount *= temp_factor

    return max(0, feed_amount)

Прогнозирование биомассы и роста

Модель роста рыбы:

def thermal_growth_model(biomass_kg, water_temp_c, fcr, feed_per_day_kg):
    """
    Thermal Unit Growth (TUG) модель для лосося
    TUG = Specific Growth Rate / Temperature
    """
    specific_growth_rate = feed_per_day_kg / (fcr * biomass_kg)
    tug = specific_growth_rate / water_temp_c

    # Прогноз через 30/60/90 дней
    future_biomass = biomass_kg
    for day in range(90):
        temp = water_temp_forecast[day]
        sgr = tug * temp
        future_biomass *= (1 + sgr)

    return future_biomass

Acoustic Biomass Estimation: Эхолот-сонар (BioSonics, Simrad EK80): акустическая оценка биомассы без ручного взвешивания. ML-калибровка: акустический backscatter → вес рыбы.

Планирование кормления

Weekly Feed Plan:

def generate_weekly_feed_plan(cage_data, growth_targets, fcr_forecast):
    """
    Недельный план: суточные рационы по дням
    Учёт: температурный прогноз, ожидаемая биомасса, FCR цели
    """
    plan = []
    for day in range(7):
        expected_biomass = forecast_biomass(cage_data, day)
        temp = weather_forecast[day]['water_temp']

        # Оптимальный суточный рацион = feeding_rate% × biomass
        feeding_rate = temperature_adjusted_feeding_rate(temp, fish_size=expected_biomass/cage_data['fish_count'])
        daily_ration = expected_biomass * feeding_rate / 100

        plan.append({
            'date': today + timedelta(days=day),
            'biomass_expected_kg': expected_biomass,
            'daily_ration_kg': daily_ration,
            'n_feedings': 4 if temp > 10 else 2  # меньше кормлений при низкой температуре
        })

    return plan

Интеграция с фермерской системой

Farm Management Software: AquaCloud, Aquabyte, Idronaut: FMS-системы с open API. ML-система пишет рекомендации в FMS, операторы подтверждают или корректируют.

Автоматизированные кормушки: Pentair AES, ICS (Aller Aqua), AKVA Group: подключение по RS-485/Modbus или проприетарный API. ML-сигнал → команда на кормушку.

Алерты и эскалация:

  • DO < 5 mg/L → немедленно остановить кормление + сигнал оператору
  • Температура выходит из допустимого диапазона → корректировка рациона
  • Аномальный FCR > 1.8 → уведомление рыбовода для осмотра

Сроки: подводная камера + YOLO детекция пеллет + адаптивный контроллер кормления + дашборд — 4-5 недель. Прогноз роста, акустическая биомасса, автоматизированные кормушки, FMS интеграция — 2-3 месяца.