# System Requirements This section lists the hardware, software, and network requirements for running the application. ## Host Operating System - Ubuntu 24.04 LTS (recommended and validated). - Ubuntu 22.04 LTS is also supported. - Other recent 64‑bit Linux distributions may work, but are not fully validated. ## Hardware Requirements - **CPU:** - Intel Core Ultra (Meteor Lake) or 12th Gen Intel Core or newer. - x86_64 architecture with support for AVX2. - Recommended: Intel Core Ultra 7 165HL. - **System Memory (RAM):** - Minimum: 16 GB. - Recommended: 32 GB for smoother multi‑model operation and development work. - **Storage:** - Minimum free disk space: 20 GB. - Recommended: 40 GB+ to accommodate Docker images, models, video assets, and logs. - **Graphics / Accelerators:** - Required: Intel integrated GPU supported by Intel® Graphics Compute Runtime. - Optional (recommended for full experience): - Intel Arc Graphics (Meteor Lake iGPU) for detection workloads. - Intel NPU (AI Boost) for action recognition workload. - The host must expose GPU and NPU devices to Docker: - `/dev/dri` (GPU) - `/dev/accel/accel0` (NPU) - If NPU is not available, the action recognition workload automatically falls back to CPU with a "fallback" indicator in the dashboard. ## Software Requirements - **Docker and Container Runtime:** - Docker Engine 24.x or newer. - Docker Compose v2 (integrated as `docker compose`) or compatible compose plugin. - Ability to run containers with: - `pid: host` (for metrics-collector GPU telemetry). - Device mappings for GPU and NPU. - **Python (for helper scripts):** - Python 3.10 or newer (used by `make setup` model download scripts). - Requires `pyyaml` package (`pip install pyyaml`). - Application containers include their own Python runtimes. - **Git and Make:** - `git` for cloning the repository (sparse checkout supported). - `make` to run provided automation targets (e.g., `make setup`, `make run`, `make down`). ## AI Models and Workloads The application uses several AI workloads, each with its own model: - **Person Detection Workload:** - **Model:** person-detect-fp32 (SSD MobileNet v2, custom trained). - **Input:** Video frames (800×992 RGB). - **Output:** Bounding boxes with confidence scores for caretaker presence. - **Target device:** Intel GPU via OpenVINO. - **Patient Detection Workload:** - **Model:** patient-detect-fp32 (SSD MobileNet v2, custom trained). - **Input:** Video frames (800×992 RGB). - **Output:** Bounding boxes with confidence scores for infant presence. - **Target device:** Intel GPU via OpenVINO. - **Latch Detection Workload:** - **Model:** latch-detect-fp32 (SSD MobileNet v2, custom trained). - **Input:** Video frames (800×992 RGB). - **Output:** Bounding boxes for warmer latch clip status. - **Target device:** Intel GPU via OpenVINO. - **rPPG (Remote Photoplethysmography) Workload:** - **Model:** MTTS-CAN (Multi-Task Temporal Shift Convolutional Attention Network), converted from Keras HDF5 to OpenVINO IR. - **Input:** Facial video frames (36×36×6, difference + appearance channels). - **Output:** Pulse and respiration waveforms, heart rate (HR) in BPM, and respiratory rate (RR) in BrPM. - **Target device:** Intel CPU via OpenVINO. - **Action Recognition Workload:** - **Model:** action-recognition-0001-encoder + action-recognition-0001-decoder from Open Model Zoo. - **Input:** Video frames (224×224 RGB), processed in 16-frame sequences. - **Output:** Kinetics-400 classification mapped to 11 NICU-specific activity categories. - **Target device:** Intel NPU via OpenVINO (falls back to CPU if NPU unavailable). ## Network and Proxy - **Network Access:** - Local network connectivity to access the UI (default: `http://localhost:3001`). - Outbound internet access required for initial `make setup` (model and video download). - No network required at runtime — all inference is local. - **Proxy Support (optional):** - If your environment uses HTTP/HTTPS proxies, configure: - `HTTP_PROXY`, `HTTPS_PROXY`, `http_proxy`, `https_proxy` in the shell before running `make`. - The Docker Compose file forwards proxy variables to all containers automatically. ## Permissions - Ability to run Docker as a user in the `docker` group or with `sudo`. - Sufficient permissions to access device nodes for GPU and NPU (typically via membership in groups such as `video` and `render`, or via explicit `devices` configuration in Docker Compose). ## Browser Requirements - Any modern browser (Chrome, Firefox, Edge) with JavaScript enabled. - WebSocket/SSE support required for real-time data streaming.