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 месяца.







