Personal tools

Difference between revisions of "Real-Time ECG Contractions Classification"

From iis-projects

Jump to: navigation, search
 
(28 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[File:GPU with HBM.jpg|thumb|AMD Fiji GPU package with GPU, HBM memory and interposer]]
+
[[Category:Biomedical System on Chips]]
 +
[[File:ecg_task.png|thumb|ECG Task]]
  
 
==Introduction==
 
==Introduction==
 +
ECG (electrocardiography) is the process of recording the heart-generated electrical activity over a period of time using skin-placed electrodes.
 +
A well defined sequence of atrial and ventricles contractions allow the blood to be pumped in the circulatory systems, essential to enable many physiological functions as well as life. Such recorded electrical activity reflects the underlying contractions of the heart and have well defined taxonomy (according to shapes, peaks, timing, etc), allowing to detect and label heart diseases.
  
Machine Learning is the current hot topic of the Big Data hype. Large companies such as Google and Microsoft pour substantial resources into research of its various aspects. At the algorithmic front siginificant advances have been made in the previous years, with new shapes and techniques for networks and new forms of Stochastic Gradient Descent making an appearance. The regular structure of the calculation involved has favoured the development and research into hardware accelerators. However, focus has mainly been on the inference part, i.e. given an input finding the output of a network. Training of such networks has received little attention with respect to hardware acceleration. Based on the [[PULP]] [1] platform we have developed the streaming co-processor "NeuroStream" that helps to fill this gap. Together with a RISC-V processor core for control, multiple such NeuroStreams form a computation cluster ("NeuroCluster"). Since training of neural networks is very data-intensive, we envision multiple of these clusters to be integrated inside modern DRAM Hybrid Memory Cubes [2], or in close proximity to High Bandwidth Memory [3].
+
Nowadays, ECG interpretation relies on eye inspection by trained medical doctors, with expensive and time-consuming manual analysis. Patient-to-patient variability, different recording conditions and settings and patient clinical conditions makes the automation of this task very challenging.  
 +
For this reason the ECG monitoring is currently limited to short-time scales (minutes to hours) in well controlled environments and setups (clinics, expensive devices).  
  
[[File:NeuroStream Arch.png|thumb|NeuroStream Architecture]]
+
Even though current ECG exams works well if there is already the suspect of a heart disease going on, this prevents to detect outliers in the ECG, i.e., abnormal contractions that rarely happens and the chances to observe them under clinical ECG are very low.
[[File:NeuroSoC Arch.png|thumb|NeuroCluster and NeuroSoC Architecture]]
+
Similarly, drifting over time of ECG parameters may not be noticed with normal ECG acquisitions, as the time scale is very short.
 +
As a result, many potential diseases can't be early-detected due to these limitations. Technology advancement in hardware design and in data-driven algorithms give a hope providing tools to change ECG detection, from expensive non-routine exams, to cheap daily monitoring.
  
 
==Short Description==
 
==Short Description==
  
Your mission, should you choose to accept it, is to join our research into such near-memory computing either from the hardware or software side. The NeuroStream co-processor has been verified to perform the correct operations on a very small scale. However, to be a convincing solution to the problems it tries to tackle, and to further verify that it actually works and is up to the task, a larger scale implementation is needed. The IIS has access to a small number of interconnected FPGA computing nodes [4] through a joint research project with Microsoft. This thesis offers the opportunity to either adapt the existing NeuroStream/NeruoCluster HDL code to the FPGAs and develop a communication scheme among them, then squeeze as many NeuroClusters onto one FPGA as possible. Or you can dig into the software side, leveraging the compute capabilities of NeuroStream to implement the layers of common Deep Neural Networks (e.g. GoogLeNet [5]) or Recurrent Neural Networks [6,7]. The project is very flexible and we can tailor it to your personal preferences and skills!
+
Your mission, should you choose to accept it, is to join our active research into biomedical system design. The approach is to used state-of-the-art machine learning algorithms to classify different ECG contractions. Particular emphasis will be devoted to detect outliers in the ECG, which usually are not even noticed by the patient, but by which are known to anticipated important disease if not timely cured [1]. Given the constrained conditions under which we operate, i.e, wearable devices, energy-efficiency is of paramount importance.  
  
===Status: Available ===
+
The starting point is the VivoSoC platform, a system on chip capable to acquire and process ECG signals. An open-source labelled ECG dataset is available online ready to be used [2][3].
: Looking for interested master students (Semester or Master Project)
+
 
: Supervision: [[:User:Fschuiki | Fabian Schuiki]], [[:User:Zarubaf|Florian Zaruba]]
+
The task includes the following main sub-points:
 +
<ul><li> Understand the ECG basics and interpret the dataset.</li>
 +
<li>  Develop (high-level Phython or Matlab) a supervised-learning classification algorithm to classify the ECG contractions. </li>
 +
<li>  Map the algorithm in the VivoSoC hardware (C-programming PULP).</li>
 +
<li>  Conduct in-vivo experiments to validate the method with a realistic setting.</li></ul>
 +
 
 +
The task is anyway flexible and it will be adapted the student skills and will.
 +
 
 +
 
 +
===Status: Completed ===
 +
: Semester Project in Fall 2018 (Sumu Zhao, sem18h16)
 +
: Supervised by: [[:User:Glaserf | Florian Glaser]], [[:User:xiaywang|Xiaying Wang]]
 
<!--
 
<!--
 
===Status: Completed ===
 
===Status: Completed ===
Line 27: Line 43:
  
 
===Character===
 
===Character===
: 20% Theory and Algorithms
+
: 40% Theory and Algorithms
: 50% Implementation (HDL or C/C++ coding)
+
: 40% Implementation (C coding)
: 30% Verification and Testing
+
: 20% Verification and Testing
  
 
===Prerequisites===
 
===Prerequisites===
If the focus shall be on hardware:
+
: Knowledge in Machine Learning, from  preprocessing, feature extraction, classifier, supervised-learning
: VLSI I
+
: Embedded system programming
: VLSI II (''recommended'')
+
: Basic analog / ADC / sampling theory hands-on knowledge.
: VHDL/SystemVerilog
 
 
 
If the focus shall be on software:
 
: Knowledge in Machine Learning, or willingness to acquire such (DNN, LSTM/GRU)
 
 
: C/C++
 
: C/C++
  
 
===Professor===
 
===Professor===
 
: [http://www.iis.ee.ethz.ch/people/person-detail.html?persid=194234 Luca Benini]
 
: [http://www.iis.ee.ethz.ch/people/person-detail.html?persid=194234 Luca Benini]
 
 
===References===
 
===References===
: [1] http://iis-projects.ee.ethz.ch/index.php/PULP
+
: [1] B.A.Koplanand et al, “Ventricular Tachycardia and Sudden Cardiac Death,” Elsevier Mayo Clinic Proceedings, vol. 84, no. 3, pp. 289–297, 2009.
: [2] http://www.hybridmemorycube.org/
+
: [2] https://www.physionet.org/physiobank/database/mitdb/
: [3] https://www.amd.com/Documents/High-Bandwidth-Memory-HBM.pdf
+
: [3] https://physionet.org/lightwave/
: [4] https://www.microsoft.com/en-us/research/project/project-catapult/
 
: [5] http://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Szegedy_Going_Deeper_With_2015_CVPR_paper.pdf
 
: [6] http://colah.github.io/posts/2015-08-Understanding-LSTMs/
 
: [7] http://www.wildml.com/2015/10/recurrent-neural-network-tutorial-part-4-implementing-a-grulstm-rnn-with-python-and-theano/
 
  
 
[[#top|↑ top]]
 
[[#top|↑ top]]
[[Category:Acceleration and Transprecision]]
+
 
 
[[Category:Digital]]
 
[[Category:Digital]]
[[Category:Hot]]
+
[[Category:Analog]]
[[Category:Available]]
 
 
[[Category:Semester Thesis]]
 
[[Category:Semester Thesis]]
 
[[Category:Master Thesis]]
 
[[Category:Master Thesis]]
 +
[[Category:Completed]]
 +
[[Category:Glaserf]]
 +
[[Category:Xiaywang]]
 +
[[Category:Rovereg]]
 
[[Category:PULP]]
 
[[Category:PULP]]
[[Category:Fschuiki]]
 
[[Category:Zarubaf]]
 
[[Category:FPGA]]
 
 
[[Category:Software]]
 
[[Category:Software]]
 +
[[Category:Processor]]
 +
[[Category:Biomedical System on Chips]]

Latest revision as of 19:15, 9 March 2020

ECG Task

Introduction

ECG (electrocardiography) is the process of recording the heart-generated electrical activity over a period of time using skin-placed electrodes. A well defined sequence of atrial and ventricles contractions allow the blood to be pumped in the circulatory systems, essential to enable many physiological functions as well as life. Such recorded electrical activity reflects the underlying contractions of the heart and have well defined taxonomy (according to shapes, peaks, timing, etc), allowing to detect and label heart diseases.

Nowadays, ECG interpretation relies on eye inspection by trained medical doctors, with expensive and time-consuming manual analysis. Patient-to-patient variability, different recording conditions and settings and patient clinical conditions makes the automation of this task very challenging. For this reason the ECG monitoring is currently limited to short-time scales (minutes to hours) in well controlled environments and setups (clinics, expensive devices).

Even though current ECG exams works well if there is already the suspect of a heart disease going on, this prevents to detect outliers in the ECG, i.e., abnormal contractions that rarely happens and the chances to observe them under clinical ECG are very low. Similarly, drifting over time of ECG parameters may not be noticed with normal ECG acquisitions, as the time scale is very short. As a result, many potential diseases can't be early-detected due to these limitations. Technology advancement in hardware design and in data-driven algorithms give a hope providing tools to change ECG detection, from expensive non-routine exams, to cheap daily monitoring.

Short Description

Your mission, should you choose to accept it, is to join our active research into biomedical system design. The approach is to used state-of-the-art machine learning algorithms to classify different ECG contractions. Particular emphasis will be devoted to detect outliers in the ECG, which usually are not even noticed by the patient, but by which are known to anticipated important disease if not timely cured [1]. Given the constrained conditions under which we operate, i.e, wearable devices, energy-efficiency is of paramount importance.

The starting point is the VivoSoC platform, a system on chip capable to acquire and process ECG signals. An open-source labelled ECG dataset is available online ready to be used [2][3].

The task includes the following main sub-points:

  • Understand the ECG basics and interpret the dataset.
  • Develop (high-level Phython or Matlab) a supervised-learning classification algorithm to classify the ECG contractions.
  • Map the algorithm in the VivoSoC hardware (C-programming PULP).
  • Conduct in-vivo experiments to validate the method with a realistic setting.

The task is anyway flexible and it will be adapted the student skills and will.


Status: Completed

Semester Project in Fall 2018 (Sumu Zhao, sem18h16)
Supervised by: Florian Glaser, Xiaying Wang

Character

40% Theory and Algorithms
40% Implementation (C coding)
20% Verification and Testing

Prerequisites

Knowledge in Machine Learning, from preprocessing, feature extraction, classifier, supervised-learning
Embedded system programming
Basic analog / ADC / sampling theory hands-on knowledge.
C/C++

Professor

Luca Benini

References

[1] B.A.Koplanand et al, “Ventricular Tachycardia and Sudden Cardiac Death,” Elsevier Mayo Clinic Proceedings, vol. 84, no. 3, pp. 289–297, 2009.
[2] https://www.physionet.org/physiobank/database/mitdb/
[3] https://physionet.org/lightwave/

↑ top