В крупных молочных фермах на 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-мониторинг может снизить падёж и повысить удои.







