AI-система мониторинга физической формы по данным датчиков
Носимые устройства — Whoop, Oura Ring, Garmin, Apple Watch — непрерывно собирают биометрические данные. AI-система превращает этот поток сырых данных в actionable insights: оценку готовности к тренировке, восстановления и долгосрочного прогресса.
Данные с носимых устройств
Сердечно-сосудистые метрики:
- HR (Heart Rate): покоя, максимальный, зоны нагрузки
- HRV (Heart Rate Variability): RMSSD, SDNN — ключевой индикатор вегетативной нервной системы
- SpO2 (насыщение крови кислородом): 95-100% норма
Активность и движение:
- Steps, calories, active minutes
- Gyroscope + accelerometer: тип движения (ходьба, бег, велосипед)
- GPS трек (на тренировке)
Сон:
- Стадии: REM, Deep, Light sleep
- Общая продолжительность
- Sleep efficiency (time asleep / time in bed)
- Sleep consistency (регулярность времени сна/подъёма)
Температура кожи:
- Deviation from personal baseline: индикатор болезни (повышение), ovulation (женщины)
Recovery Score модель
def calculate_recovery_score(hrv_today, hrv_baseline,
sleep_quality, sleep_duration,
resting_hr, resting_hr_baseline):
"""
Composite recovery score: 0-100
"""
# HRV score: нормализованное отклонение от персонального baseline
hrv_score = min(1.0, hrv_today / hrv_baseline)
# Sleep score: качество и продолжительность
sleep_score = (sleep_quality * 0.5 + min(1.0, sleep_duration / 8.0) * 0.5)
# HR score: тахикардия покоя = снижение восстановления
hr_score = max(0, 1.0 - (resting_hr - resting_hr_baseline) / resting_hr_baseline)
# Взвешенный composite
recovery = hrv_score * 0.5 + sleep_score * 0.35 + hr_score * 0.15
return recovery * 100
Система Whoop использует похожую методологию. Recovery < 33% = красный (лёгкая активность), 34-66% = жёлтый (умеренная), 67%+ = зелёный (интенсивная тренировка).
Персональный физиологический базис
Individual baseline vs. population norms: Ключевой принцип — сравнение с собственным базисом, не с "нормой" по популяции:
class PersonalBaseline:
def __init__(self, lookback_days=30, percentile=50):
self.lookback = lookback_days
self.percentile = percentile
def fit(self, history):
self.hrv_baseline = np.percentile(history['hrv'], self.percentile)
self.hr_baseline = np.percentile(history['resting_hr'], self.percentile)
self.sleep_baseline = np.percentile(history['sleep_hours'], self.percentile)
return self
def deviation(self, today):
return {
'hrv_dev': (today['hrv'] - self.hrv_baseline) / self.hrv_baseline,
'hr_dev': (today['resting_hr'] - self.hr_baseline) / self.hr_baseline,
'sleep_dev': (today['sleep_hours'] - self.sleep_baseline) / self.sleep_baseline
}
Прогноз спортивных результатов
Fitness-Fatigue модель (Banister):
Performance(t) = Fitness(t) - Fatigue(t)
Fitness(t) = Σ TSS(i) × exp(-(t-i)/τ_fitness), τ=45 дней
Fatigue(t) = Σ TSS(i) × exp(-(t-i)/τ_fatigue), τ=15 дней
ML-улучшение: τ_fitness и τ_fatigue — персональные параметры, оцениваются из данных с помощью нелинейной оптимизации (scipy.optimize) по история тренировок и результатов тестов.
Peak performance timing: При наличии соревнования → планируем tapering (снижение нагрузки) так, чтобы fatigue снизилась, а fitness сохранилась. Модель подбирает оптимальный schedule.
Early Illness Detection
Sick day prediction:
def illness_risk_score(temp_deviation, hrv_drop, hr_elevation, symptom_report):
"""
Повышение температуры кожи + падение HRV + тахикардия покоя
= ранний признак инфекционного заболевания
"""
if temp_deviation > 0.5 and hrv_drop < -0.2 and hr_elevation > 5:
return 0.8 # высокий риск
return 0.1
Исследования (Garmin/Stanford COVID study, 2020) показывают: носимые обнаруживали COVID за 0-2 дня до появления симптомов у 63% участников через изменение HRV и RHR.
Долгосрочный прогресс
VO2max estimation:
- Из данных HR и скорости при беге: Firstbeat-методология
- Валидность: ±3-5 мл/(кг·мин) vs. лабораторный тест
Training Load Progression: Визуализация динамики тренировочной нагрузки на 12-52 недели. Периодизация: видны ли плановые фазы накопления и разгрузки?
Adaptation tracking: При одинаковой нагрузке снижение HR = адаптация (рост fitness). Тренд resting HR и HRV за сезон — объективный маркер физиологического прогресса.
Интеграция и API
Device APIs:
- Garmin Health API, Garmin Connect API
- Whoop Developer API
- Apple HealthKit (iOS)
- Google Health Connect (Android)
- Polar API, Suunto API
Aggregation platforms: Terra API, Wearipedia — унифицированный доступ к данным разных устройств.
Персональный дашборд: веб + мобильное приложение. Ежедневные рекомендации, weekly summary, долгосрочные тренды.
Сроки: интеграция с 2-3 device API + recovery score + дашборд — 6-8 недель. Personalized fitness-fatigue модель + illness detection + trend analytics — 3-4 месяца.







