Cardiac Abnormality Detection using Machine Learning

Srimanth Tenneti

Srimanth Tenneti

Hyderabad, Telangana

2 0
  • 0 Collaborators

Detection of heart diseases from Cardiac report data is a tedious task that requires multiple medical workers to process it and then doctors analyzing it. So to simplify the analysis we have constructed a simple model that takes in certain parameters and predicts if the patient has heart disease. ...learn more

Project status: Under Development

Internet of Things, Artificial Intelligence

Intel Technologies
DevCloud, Intel NUC, Movidius NCS, OpenVINO, Intel Python

Code Samples [1]

Overview / Usage

Our model is designed to automate the process of cardiac disease detection. The model uses parameters age , gender , chest pain type , ECG report , fasting blood sugar , etc. to predict if the person is suffering with any cardiac disorder.

Normally ECG is used to detect these disorders and our model focuses on improving the detection accuracy using certain other parameters. Using this model the key problem i.e. lack of medical personnel can be solved.

In our country India the doctor to patient ratio is about 1: 1456 against the WHO recommendation 1: 1000. So, to help automate and speed up the process we are using Machine Learning and IOT. This would help reduce the load on the medical workers and help patients get their diagnosis much faster.

Methodology / Approach

Developing all of the solution and a user interface on a windows based platform is much easier compared to other Linux based edge devices. So, for the project we use the Intel NUC 10 Performance Mini PC - NUC10i7FNHJA. This is a robust and a compact platform that offers the power of an Intel i7 CPU along with graphics and great memory.

Our model has a couple of elements :

  1. Data Pre-Processing script
  2. CNN for ECG analysis
  3. Machine Learning Core for predictions
  4. Data Post-Processing script
  5. Report Generation script

The 1st problem was getting data into a uniform format as data was coming from different sources we needed to have a script that gave us data in a specific format so that we could pass it into our model.

The 2st problem was we needed a way to analyze the collected ECG data so we decided to train a CNN and use it to predict if there was something abnormal with the ECG. But initially we faced a problem with the throughput as there was a huge volume of data but the model was not able handle it. So, we used the Intel's Distribution of Open Vino's model optimizer to generate a FP16 quantized model after which we had a significant improvement in the inference throughput. Most of the problems with our CNN were solved very easily as the Open Vino tool kit included very handy tools.

Our ML model is a Decision Tree Model that takes in age , gender , chest pain type and max resting heart rate as input and predicts the body cholesterol level as output.

Coming to the frameworks as I am a Pytorch developer I had to put some extra effort when it came to the CNN. I converted my CNN model into ONNX and then used Open Vino to generate the .bin & .xml files.

The Machine Learning framework is Sklearn and all the data processing scripts are custom scripts we have written according to the data we were getting.

Technologies Used

  1. Intel NUC 10 Performance Mini PC - NUC10i7FNHJA

  2. Intel NCS2

  3. Intel Distribution of Open Vino

  4. Pytorch

  5. ONNX

  6. Sklearn

  7. Pandas

  8. Matplotlib

  9. PySerial

10.Requests

  1. IPython.display

Repository

https://github.com/srimanthtenneti/Cardiac-Abnormality-Detection

Comments (0)