У великих молочних фермах на 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-моніторинг може знизити падіж та підвищити надої.







