The aim of this project is to design a systematic method of analyzing the Electrocardiogram (ECG) from patients and displaying the types of disorders. It is designed to wirelessly interface the holter for ECG signal extracion and to process and classify the obtained data for disease diagnosis.
The interface displays the real time ECG graph along with the heartbeat rate and model prediction result. The designed interface for this deployed model logs patients data to a server for further analysis and also provides user with an option to keep note for any remarks they think could be helpful to the heath personnel. Patient details is kept private and only shown when authenticated person uses the website. One can also access the full patient history.
Data preprocessing and training of the different models using SVM classifier, Logistic Regression and CNN.
Models | Train Accuracy | Test Accuracy | Precision | Recall | F1-Score |
---|---|---|---|---|---|
SVM | 98.56% | 96% | 98.59% | 98.56% | 98.57% |
Logistic Regression | 89.05% | 74% | 89.03% | 89.06% | 89.03% |
CNN | 99.8% | 99.67% | 100% | 100% | 100% |
Link to the model training repo.
Saved CNN model in .h5
format
Csv files containing heart signals of a normal person without any underlying heart disease (obtained using holter).
Use of database, processing of the raw ecg signals and use of the saved CNN model to predict the outcomes.
Frontend in reactjs.
To use this project on your machine, simply clone this GitHub repository, install dependencies and launch the program.
git clone https://github.com/eternal-moon/ECG-CNN-React.git
-
Create a virtual enviroment inside the backend directory.
-
Install requirements.txt inside the virtual environment using:
$ pip install -r requirements.txt
-
Run
$ python run.py
$ python getData.py
-
In the main directory run
$ npm start
- React
- Semantic UI
- Python
- Flask
- Mongodb
- Biosppy
- Keras