У великих молочних фермах на 1000+ голів ветеринар не встигає оглянути кожну корову щодня. Втрата одного дня при маститі — падіння надою на 10–15%, а несвоєчасне осіменіння — пусті дні та значні збитки. Ми розробляємо AI-системи під ключ: склеюємо дані з вушних датчиків, румен-болусів, молокомірів та відео, видаємо алерти за 24–48 годин до клінічних проявів. Наш досвід — 10+ проєктів в Україні та СНД, середнє зниження падежу — 15–20%. Автоматичне виявлення охоти в 2 рази ефективніше візуального спостереження: точність досягає 95% проти 60%. Використовуємо машинне навчання для поведінкового аналізу худоби та IoT-пристрої для збору даних.
Які проблеми вирішує AI-моніторинг?
Три ключові задачі, які закриває система:
-
Пропущена охота — кожна охота триває 12–18 годин, візуально її помічають у 60% випадків. Система аналізує активність і румінацію з інтервалом 2 хвилини та видає алерт за 4–6 годин до завершення вікна осіменіння.
-
Субклінічний мастит — електропровідність молока зростає за 24–48 годин до появи згустків. Чутливість 85% при специфічності 90%.
-
SARA (субклінічний ацидоз рубця) — pH рубця падає нижче 5.8 на 3+ години, знижуючи продуктивність на 15%. Аналіз часових рядів з румен-болуса виявляє ризик за 1–2 дні.
Як детектувати охоту з точністю 95%?
Алгоритм за активністю та румінацією:
import pandas as pd
import numpy as np
from scipy.signal import find_peaks
def detect_estrus(animal_id: str, sensor_data: pd.DataFrame,
baseline_days: int = 21) -> dict:
"""
Охота у ВРХ: різке зростання активності + зниження румінації
Цикл ~21 день — патерн періодичний
"""
recent = sensor_data[sensor_data['animal_id'] == animal_id].tail(baseline_days * 24)
activity_baseline = recent['activity_count'].quantile(0.5)
rumination_baseline = recent['rumination_time'].quantile(0.5)
current_24h = sensor_data[
sensor_data['animal_id'] == animal_id
].tail(12)
activity_ratio = current_24h['activity_count'].mean() / (activity_baseline + 1e-9)
rumination_ratio = current_24h['rumination_time'].mean() / (rumination_baseline + 1e-9)
estrus_score = activity_ratio * (2 - rumination_ratio)
prev_cycle_score = check_previous_cycle(animal_id, sensor_data, days_back=21)
return {
'animal_id': animal_id,
'estrus_score': float(estrus_score),
'estrus_detected': estrus_score > 2.5,
'confidence': 'high' if prev_cycle_score > 2.0 else 'medium',
'recommended_action': 'insemination_window_12-18h' if estrus_score > 2.5 else None
}
Чому румінація — ключовий індикатор здоров'я?
Рання детекція маститу:
def mastitis_risk_score(milking_data: pd.DataFrame, animal_id: str) -> float:
"""
Мастит → запалення → зростання іонів Na+, Cl- → зростання електропровідності
"""
today_milking = milking_data[
(milking_data['animal_id'] == animal_id) &
(milking_data['date'] == milking_data['date'].max())
]
if today_milking.empty:
return 0.0
quarters = ['LF', 'RF', 'LR', 'RR']
conductivities = {q: today_milking[f'conductivity_{q}'].mean()
for q in quarters if f'conductivity_{q}' in today_milking.columns}
if len(conductivities) < 2:
return 0.0
mean_cond = np.mean(list(conductivities.values()))
max_deviation = max(abs(v - mean_cond) for v in conductivities.values())
relative_deviation = max_deviation / (mean_cond + 1e-9)
yield_deviation = check_yield_drop(animal_id, milking_data, today_milking)
risk_score = 0.6 * (relative_deviation / 0.1) + 0.4 * yield_deviation
return min(1.0, risk_score)
Додаткові ознаки маститу: підвищення температури молока в квартеті (+0.5°C), флокуляція, зниження надою, зміна поведінки.
Як крок за кроком налаштувати детекцію маститу?
- Збір еталонних даних: мінімум 500 доїнь без патології для кожної корови.
- Обчислення baseline електропровідності по кожному квартету з урахуванням стадії лактації.
- Налаштування порогів спрацювання: чутливість 85% при специфічності 90%.
- Валідація на історичних даних: мінімум 50 підтверджених випадків маститу.
- A/B тест на 10% поголів'я перед повним деплоєм.
Що дає моніторинг SARA?
Субклінічний ацидоз рубця (SARA) — зниження pH < 5.8 більше 3 годин:
def detect_sara_risk(rumen_bolus_data: pd.DataFrame, animal_id: str) -> dict:
"""
Дані від rumen bolus SmaXtec оновлюються кожні 10 хвилин
"""
today_data = rumen_bolus_data[
(rumen_bolus_data['animal_id'] == animal_id) &
(rumen_bolus_data['date'] == pd.Timestamp.today().date())
]
low_ph_minutes = len(today_data[today_data['rumen_pH'] < 5.8]) * 10
avg_ph = today_data['rumen_pH'].mean() if not today_data.empty else 6.5
rumination_today = today_data['rumen_motility'].mean() if not today_data.empty else 1.0
sara_risk = 'high' if low_ph_minutes > 180 else (
'medium' if low_ph_minutes > 60 else 'low'
)
return {
'animal_id': animal_id,
'low_ph_hours': round(low_ph_minutes / 60, 1),
'avg_ph': round(avg_ph, 2),
'sara_risk': sara_risk,
'action': 'adjust_roughage_ratio' if sara_risk == 'high' else None
}
Моніторинг SARA дозволяє точне годування: при виявленні ризику система рекомендує змінити співвідношення грубих кормів. Впровадження знижує витрати на ветобслуговування та підвищує продуктивність стада.
Як інтегрувати систему з існуючим ПЗ?
Ми підтримуємо REST API для передачі подій у DairyComp 305, Lely T4C, DeLaval ALPRO, а також у Herd monitoring software. Інтеграція займає 1-2 дні. Дані передаються в реальному часі: події охоти, ризики захворювань, вагові показники.
Як ми впроваджуємо систему: кейс
На фермі з 2000 голів ВРХ ми встановили вушні акселерометри SCR та румен-болуси SmaXtec. За перший тиждень зібрали ~1.5 млн записів активності та 200 тис. замірів pH. Через 3 тижні моделі досягли 92% чутливості по охоті та 90% по SARA. Порівняйте: візуальний метод дає 60% охоти, а ручний аналіз pH — поодинокі заміри. Автоматизація в 1.5 рази скоротила витрати на ветслужбу.
Як ми вирішували проблему дрейфу сенсорів?
На етапі калібрування ми зіткнулися з дрейфом сенсорів: через 3 місяці роботи деякі акселерометри починали завищувати активність. Рішення — автоматична перекалібровка кожні 2 тижні на основі середніх показників по групі. Це підвищило стабільність детекції маститу з 82% до 90%.| Метод | Точність детекції охоти | Витрати часу |
|---|---|---|
| Візуальне спостереження | 60-70% | 2-3 години/день |
| Акселерометр + AI | 95% | 5 хвилин/день |
| Комбінація датчиків | 98% | 2-3 хвилини/день |
Етапи проєкту та терміни
| Етап | Термін | Що входить |
|---|---|---|
| Аналітика та проєктування | 5–7 днів | Аудит ферми, підбір датчиків, архітектура ML-пайплайну |
| Інтеграція сенсорів | 1–2 тижні | Налаштування шлюзів, збір еталонних даних, калібрування |
| Розробка моделей | 2–4 тижні | Детекція охоти, маститу, SARA — baseline + fine-tuning |
| Дашборд та алерти | 1–2 тижні | Веб-інтерфейс, Telegram-бот, експорт у DairyComp |
| Тестування та деплой | 1 тиждень | A/B тест на 10% поголів'я, оптимізація latency |
Що входить у роботу
- Архітектурна документація та опис API
- Навчання персоналу (2 дні очно або онлайн)
- 30 днів пострелізної технічної підтримки
- Гарантія на моделі — 6 місяців (безкоштовні оновлення при зміні стада)
- Адаптація під існуючу інфраструктуру (DairyComp 305, Lely T4C, DeLaval ALPRO)
Залиште заявку — ми оцінимо вашу ферму за 2 дні та запропонуємо архітектуру. Зв'яжіться з нами, щоб обговорити проєкт. Отримайте консультацію по вашому стаду та дізнайтесь, як AI-моніторинг може знизити падіж та підвищити надої.







