Skip to content

kushagrabhushan/Enosium-Track-2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Enosium-Track-2

Ballistocardiogram Time Series Data Analysis

Predicting heartrate, breathrate and movements from ballistocardiogram data

The problem it solves:

Ballistocardiogram is a sensor that detects body motion generated by the pumping of blood at each cardiac cycle. The project primarily aims at interpreting the raw BCG signals generated by bed-based sensors. The signals can be used to detect various vitals like heart rate and breath rate. BCG sensors can be made inexpensively using piezoelectric material and they can be layered under the bed. Presently, electrocardiography is used in hospitals to detect heart rates and it requires direct contact with the patient. However, BCG sensors under the bed will be able to detect heart rates without any external contact with the patient.
It can also be used to detect movements on the bed i.e. if the patient is still, doing mild movements, heavy movements, etc.
The best use of this project would be to monitor someone’s vital signs while they are asleep, a system can be setup to alert when the patient’s vitals are out of bound or abnormal movements are detected.
Apart from hospitals, due to the low cost of sensors in comparison to electrocardiograms and spirometers, they can also be employed for monitoring sleep healthy people on a daily basis.

Challenges we ran into:

During the course of the project, we faced quite a few challenges. We were able to overcome some of them, while the others remained unsolved. Some of the challenges are listed below:-

  1. For starters, we tried using Fast Fourier Transform. It is an algorithm that computes the Discrete Fourier Transform (DFT) of a sequence, or its inverse (IDFT). In Fourier Analysis we basically convert a signal from its original domain (usually time or space) to a representation in the frequency domain and the other way round. We failed to successfully implement it as we were unable to effectively interpret the results which were present in the frequency domain.
  2. We also tried using the Butterworth filter in our project. It is a type of signal processing filter which is designed to have a frequency response that is as flat as possible in the range of frequencies and wavelengths that can be passed through a filter. We again failed to make use of this filter while making our project.
  3. The next huge problem that we faced was due to the size of the dataset provided. The training dataset that was provided was way too small. It only contained data of 6 patients which effectively meant 8 data points each for heart rates and breath rates and 240 for movements, per patient. Similarly, the data for the unix timestamps of the J-peak occurrence was also small which ultimately resulted in poor training of our model.
  4. Furthermore, the entire project was based on medical data. For us, it was a big challenge to understand. We had to first read about the terms mentioned and only then were we able to start off with the actual model training or you can say the “machine learning” part.
  5. Another hurdle was understanding and interpreting the Ballistocardiograph. Understanding how it was related to heart rates, breath rates and movements of the patient was a tiresome job in itself.
  6. As far as the models that were used in the project are concerned, we came across a really useful one. We ended up actually using it. It’s called Long Short - Term Memory (LSTM). It is an artificial Recurrent Neural Network (RNN) architecture highly used in the field of Deep Learning. Reading and understanding the working and the architecture was another huge task but we managed to do it somehow. It proved to be really helpful in the formation of our final solution.

Technologies we used

Python, PyTorch, NumPy, Pandas, Matplotlib, Machine Learning, Deep Learning, RNN, LSTM

About

Time Series Analysis for BCG Data

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published