Health Indices

The Vitals SDK estimates multiple wellness indicators from camera-based measurements. Each metric is derived through computational analysis of optical signal patterns.

Important Disclaimer: Results are AI-estimated wellness indicators and are not a medical diagnosis. These are computational estimations derived from optical signal patterns and are not diagnostic measurements. Always consult a healthcare professional for medical advice.

Heart Rate (BPM)

Heart rate is the number of times the heart beats per minute (BPM), measured by detecting the cardiac pulse in the facial blood flow.

Measurement Method

  • FFT-based frequency domain analysis of rPPG signal
  • Peak detection in time-domain signal for validation
  • SNR gating to ensure reliable detection
  • Window-averaged for stability (default 45 seconds)

Typical Values

  • Resting Adults: 60-100 BPM
  • Athletes: 40-60 BPM
  • During Activity: Can exceed 150 BPM

Accuracy Factors

  • Good lighting and camera quality
  • Minimal subject movement
  • Proper face positioning
  • Stable signal quality (SNR > 10)

Example Output

json
{
  "heartRate": 72.5,
  "confidence": 0.85,
  "unit": "BPM",
  "timestamp": "2024-02-23T10:30:00Z"
}

HRV (RMSSD)

Heart Rate Variability (HRV) measures the variation in time between successive heartbeats, calculated using the Root Mean Square of Successive Differences (RMSSD) method.

Measurement Method

  • Detect R-peaks in cardiac signal
  • Calculate R-R intervals (time between beats)
  • Compute RMSSD: √(Σ(RRᵢ - RRᵢ₊₁)² / (N-1))
  • Window-averaged over measurement period

Typical Values

  • Young Adults: 50-100 ms
  • Adults 30-50: 30-60 ms
  • Adults 50+: 20-40 ms

Interpretation

  • Higher HRV: Generally associated with better cardiovascular health and stress resilience
  • Lower HRV: May indicate stress, fatigue, or cardiovascular issues
  • Varies significantly between individuals

Example Output

json
{
  "hrv": 45.2,
  "method": "RMSSD",
  "confidence": 0.78,
  "unit": "ms",
  "timestamp": "2024-02-23T10:30:00Z"
}

Respiratory Rate (RPM)

Respiratory rate estimates the number of breaths per minute by analyzing respiratory-induced variations in the rPPG signal.

Measurement Method

  • Frequency band isolation (0.1-0.5 Hz, 6-30 breaths/minute)
  • FFT analysis in respiratory frequency range
  • Peak detection for breath-to-breath intervals
  • Window-averaged for stability

Typical Values

  • Resting Adults: 12-20 breaths/minute
  • During Sleep: 12-16 breaths/minute
  • During Exercise: Can exceed 40 breaths/minute

Example Output

json
{
  "respiratoryRate": 16.3,
  "confidence": 0.72,
  "unit": "RPM",
  "timestamp": "2024-02-23T10:30:00Z"
}

Stress Index

The Stress Index is a composite metric derived from heart rate and HRV patterns, indicating the current stress level.

Calculation Method

  • Combines heart rate and HRV measurements
  • Uses established stress assessment algorithms
  • Accounts for individual baselines
  • Scales 0-100 (higher = more stressed)

Interpretation

  • 0-30: Relaxed, low stress
  • 31-60: Normal, moderate stress
  • 61-80: Elevated stress
  • 81-100: High stress

Example Output

json
{
  "stressIndex": 45,
  "level": "moderate",
  "confidence": 0.80,
  "timestamp": "2024-02-23T10:30:00Z"
}

SpO₂ (Oxygen Saturation)

SpO₂ estimates blood oxygen saturation by analyzing the ratio of red to green channel absorption in the rPPG signal.

Measurement Method

  • Analyzes red and green channel AC/DC ratios
  • Compares pulsatile components between channels
  • Applies calibration curves for estimation
  • Requires good lighting and skin exposure

Typical Values

  • Normal: 95-100%
  • Mild Hypoxemia: 90-94%
  • Moderate Hypoxemia: 85-89%
  • Severe Hypoxemia: Below 85%
Note: Camera-based SpO₂ estimation has limitations and should not be used for critical health monitoring. Pulse oximeters provide more accurate SpO₂ measurements.

Example Output

json
{
  "spo2": 97.2,
  "confidence": 0.65,
  "unit": "%",
  "timestamp": "2024-02-23T10:30:00Z"
}

Blood Pressure (AI-Estimated)

Blood pressure is estimated using a combination of classical linear estimation and machine learning refinement with RandomForestRegressor.

Measurement Method

  • Linear estimation from PTT-derived features
  • ML refinement using RandomForestRegressor
  • Features include heart rate, HRV, and signal characteristics
  • Requires individual calibration for best accuracy

Typical Values

  • Normal Systolic: 90-120 mmHg
  • Normal Diastolic: 60-80 mmHg
  • Elevated: 120–129 / < 80 mmHg
  • High: ≥130 / ≥80 mmHg
Important: Blood pressure estimates are AI-derived wellness indicators with limited accuracy. These should never be used for medical diagnosis or treatment decisions. Use validated blood pressure monitors for accurate measurements.

Example Output

json
{
  "bloodPressure": {
    "systolic": 118,
    "diastolic": 76,
    "confidence": 0.55,
    "unit": "mmHg",
    "estimated": true,
    "timestamp": "2024-02-23T10:30:00Z"
  }
}

Blood Sugar (AI-Estimated Wellness Metric)

Blood sugar (glucose) is estimated using machine learning models that analyze optical signal patterns and their correlation with glucose levels.

Measurement Method

  • ML-based estimation using RandomForestRegressor
  • Features from rPPG signal characteristics
  • Requires individual calibration and baseline
  • Highly experimental and research-grade

Typical Values (Fasting)

  • Normal: 70-99 mg/dL
  • Prediabetes: 100-125 mg/dL
  • Diabetes: ≥126 mg/dL
Critical Warning: Blood sugar estimation from camera signals is highly experimental and not clinically validated. These estimates have significant error margins and should NEVER be used for diabetes management or medical decisions. Always use FDA-approved glucose meters for blood sugar measurement.

Example Output

json
{
  "bloodSugar": {
    "value": 95,
    "unit": "mg/dL",
    "confidence": 0.40,
    "estimated": true,
    "experimental": true,
    "timestamp": "2024-02-23T10:30:00Z"
  }
}

Signal Quality

Signal quality is a composite metric indicating the reliability of the current measurements.

Quality Factors

  • Signal-to-Noise Ratio (SNR)
  • Usable Frame Ratio
  • Lighting conditions
  • Motion levels
  • Face detection stability

Quality Scale

  • Excellent (0.8-1.0): Highly reliable measurements
  • Good (0.6-0.79): Reliable measurements
  • Fair (0.4-0.59): Acceptable with some uncertainty
  • Poor (<0.4): Low reliability, use with caution

Example Output

json
{
  "signalQuality": 0.78,
  "level": "good",
  "factors": {
    "snr": 12.5,
    "usableFrameRatio": 0.85,
    "lighting": "good",
    "motion": "minimal"
  }
}

Usable Frame Ratio

The ratio of frames that passed quality assessment to total frames processed.

Calculation

javascript
usableFrameRatio = usableFrames / totalFrames

Target Values

  • Excellent: > 0.85
  • Good: 0.70-0.85
  • Adequate: 0.50-0.70
  • Poor: < 0.50

Window Quality Status

Overall assessment of the measurement window quality.

Status Levels

  • Complete: Full window with high quality
  • Partial: Partial window with good quality
  • Insufficient: Not enough usable frames
  • Poor Quality: Low signal quality

Summary Example

json
{
  "sessionId": "session-12345",
  "timestamp": "2024-02-23T10:30:00Z",
  "windowDuration": 45,
  "results": {
    "heartRate": {
      "value": 72.5,
      "unit": "BPM",
      "confidence": 0.85
    },
    "hrv": {
      "value": 45.2,
      "unit": "ms",
      "confidence": 0.78
    },
    "respiratoryRate": {
      "value": 16.3,
      "unit": "RPM",
      "confidence": 0.72
    },
    "stressIndex": {
      "value": 45,
      "level": "moderate",
      "confidence": 0.80
    },
    "spo2": {
      "value": 97.2,
      "unit": "%",
      "confidence": 0.65
    },
    "bloodPressure": {
      "systolic": 118,
      "diastolic": 76,
      "unit": "mmHg",
      "confidence": 0.55,
      "estimated": true
    },
    "bloodSugar": {
      "value": 95,
      "unit": "mg/dL",
      "confidence": 0.40,
      "estimated": true,
      "experimental": true
    }
  },
  "quality": {
    "signalQuality": 0.78,
    "usableFrameRatio": 0.85,
    "windowStatus": "complete",
    "factors": {
      "snr": 12.5,
      "lighting": "good",
      "motion": "minimal"
    }
  }
}
Best Practices: For best results, ensure users are in well-lit environments, positioned consistently, and remain relatively still during measurements. Higher confidence scores indicate more reliable estimates.

Next Steps