Skip to content

Latest commit

 

History

History
73 lines (52 loc) · 3.62 KB

README.md

File metadata and controls

73 lines (52 loc) · 3.62 KB

DeepHeartBeat

The deep heart beat model architecture by Fabian Laumer, Gabriel Fringeli, Alina Dubatovka, Laura Manduchi, Joachim M. Buhmann

Introduction

This repository contains the accompanying code to our paper DeepHeartBeat: Latent trajectory learning of cardiac cycles using cardiac ultrasounds, which presents a novel autoencoder-based framework for learning human interpretable representations of cardiac cycles from cardiac ultrasound data.

Available models

We provide the pre-trained TensorFlow models used in the experiments of our paper, which includes:

The models can be loaded in the following way:

from utils import *

# EchoNet-Dynmaic
model = load_echonet_dynamic_model(i) # with i in [0, 1, 2, 3, 4]

# PhysioNet
model = load_physionet_model()

If you are interested in the model architectures and training procedures used for fitting either data type, you may consider the model definitions contained in models/.

Experiments

The folder experiments/ contains all the code required to reproduce the experiments of the paper. In order to be able to run the experiments you need to place the EchoNet-Dynamic data in the path data/EchoNet-Dynamic/ and the PhysioNet data in the path data/physionet.org/.

The project contains the following experiments:

Echocardiograms

  • experiments/train_echo.py: Fits five DeepHeartBeat models to the EchoNet-Dynamic echogram dataset and saves the model weights in trained_models/.
  • experiments/eval_echo.py: Evaluation of the DeepHeartBeat models trained in experiments/train_echo.py. This includes heart rate detection, semantic alignment, and the prediction of the ejection fraction of the left ventricle.
  • experiments/rnmf_heart_rates.py: Heart rate detection for the EchoNet-Dynamic echocardiograms using Rank-2 Robust Non-negative Matrix Factorisation (RNMF).

Single Lead ECG

  • experiments/train_ecg.py: Fits a single DeepHeartBeat model to the PhysioNet single lead ECG dataset and saves the model weights in trained_models/.
  • experiments/eval_ecg.py: Evaluation of the DeepHeartBeat model trained in experiments/train_ecg.py. This includes anomaly detection (noise detection) and atrial fibrillation (AF) detection.

Usage

To run any of the experiments you can use the following command:

$ python run.py [EXPERIMENT NAME]

For example to trun the Echo evaluation you may invoke

$ python run.py eval_echo

If you think this code was helpful to you, please consider citing:

@InProceedings{pmlr-v136-laumer20a,
title = "DeepHeartBeat: Latent trajectory learning of cardiac cycles using cardiac ultrasounds",
author = "Laumer, Fabian and Fringeli, Gabriel and Dubatovka, Alina and Manduchi, Laura and Buhmann, Joachim M.",
booktitle = "Proceedings of the Machine Learning for Health NeurIPS Workshop",
pages = "194--212",
year = "2020",
editor = "Emily Alsentzer and Matthew B. A. McDermott and Fabian Falck and Suproteem K. Sarkar and Subhrajit Roy and Stephanie L. Hyland",
volume = "136",
series = "Proceedings of Machine Learning Research",
month = "11 Dec",
publisher = "PMLR",
pdf = "http://proceedings.mlr.press/v136/laumer20a/laumer20a.pdf",
url = "http://proceedings.mlr.press/v136/laumer20a.html"
}