/OMNI

Provides Open Source biosignal Deep Learning models for robust monitoring of neonate breathing and cardiac health along with a well documented wearable edge implementation guide.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

OMNI (Open Source Monitoring of Neonates and Infants)

Software Requirements

Run sh requirements.sh in a virtual environment in order to download the required libraries.

Hardware Requirements (Edge implementation)

Edge HW block diag

Components needed:

  1. OpenBCI Ganglion kit

    Open source biosignal acquisition hardware for research grade biosignal acquisition

  2. Raspberry Pi 4

  3. Rasberry Pi 4 cooling case

  4. Shirt using conductive textile electrodes [1$ for 1 electrode]

Wearable ECG electrodes --> OpenBCI Ganglion ---(Bluetooth)---> Raspberry Pi 4

System Configuration

  • Ubuntu 16.04
  • Nvidia 1080Ti - (Required for training the model)

Train a model to extract R peaks and Heart Rate from ECG waveform.

Train a model to extract Breathing Rate from ECG waveform.

Model Inference

OMNI OpenBCI Pi Inference

Edge inference of ECG R-peak detection and Respiration extraction using Raspberry Pi 4 using ECG (OpenBCI Ganglion).

Hardware Design

Wearable ECG electrodes --> OpenBCI Ganglion ---(Bluetooth)---> Raspberry Pi 4

Software Design

OpenBCI client ----(LSL)---> Python -> PyTorch inference --> Breathing Rate, Heart Rate

Installation instruction

Install PyTorch on Raspberry Pi 4:

  1. Install PyTorch dependicies sudo apt install libopenblas-dev libblas-dev m4 cmake cython python3-yaml libatlas-base-dev
  2. Increase swap file memory to 1600, Edit variable CONF_SWAPSIZE in /etc/dphys-swapfile
  3. Reset environmental variables like ONNX_ML Instructions
  4. Download PyTorch package compiled for Armv7 (torch-1.1.0-cp37-cp37m-linux_armv7l.whl)
  5. Install using the command sudo pip3 install torch-1.1.0-cp37-cp37m-linux_armv7l.whl in the same directory

Refer here for troubleshooting

Install OpenBCI Ganglion client on Raspberry Pi 4:

  1. Clone OpenBCI_Python repo git clone htps://github.com/OpenBCI/OpenBCI_Python.git
  2. Install the following requisites python packages using pip3 install pylsl, python-osc, six, socketIO-client, websocket-client, Yapsy, xmldict, bluepy
  3. Open folder OpenBCI_Python and run
    sudo python3 user.py --board ganglion -a streamer_lsl to open a lab streaming layer stream of sensor data from the ganglion

Instructions to run to perform real time breathing rate/ heart rate inference using OpenBCI data

  1. Run the lsl streamer script to get data to the inference script sudo python3 user.py --board ganglion -a streamer_lsl
  2. Run the visualization and edge inference code on the pi using python3 lsl_openbci.py

Sample Predictions

image

image Above is an example prediction for noisy real time ECG data obtained using the edge inference model. The beat predictions are represented as blue markers on the ECG.