Personal tools

Real-Time ECG Contractions Classification

From iis-projects

Revision as of 09:35, 23 February 2018 by Rovereg (talk | contribs) (Introduction)
Jump to: navigation, search
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-patoent variability, different recording conditions and patient clinical conditions makes automation of this task challenging. For this reason, ECG monitoring is currently limited to short-time scales (minutes to hours) in well controlled environments and setups. However, 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 notices with normal ECG acquistitions, as the time scale is very short. As a result, many potential diseases can't be early-detected due to these limitations.

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!

Status: Available

Looking for interested master students (Semester or Master Project)
Supervision: Fabian Schuiki, Florian Zaruba

Character

20% Theory and Algorithms
50% Implementation (HDL or C/C++ coding)
30% Verification and Testing

Prerequisites

If the focus shall be on hardware:

VLSI I
VLSI II (recommended)
VHDL/SystemVerilog

If the focus shall be on software:

Knowledge in Machine Learning, or willingness to acquire such (DNN, LSTM/GRU)
C/C++

Professor

Luca Benini

References

[1] http://iis-projects.ee.ethz.ch/index.php/PULP
[2] http://www.hybridmemorycube.org/
[3] https://www.amd.com/Documents/High-Bandwidth-Memory-HBM.pdf
[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