Scientific Challenge

Welcome to the fourth edition of the Scientific Challenge Competition of the Health Informatics Working Group of the IFMBE.

In this edition of the IFMBE Scientific Challenge, participants are asked to identify individual heart beats from ballistocardiogram (BCG) records of patients and healthy volunteers. The BCG signal is obtained from an electromechanical film (EMFi) attached to the seat of a chair. An electrocardiogram (ECG) signal was acquired simultaneously for reference.

Figure 1: ECG and BCG signals. IJK wave always lags its corresponding QRS wave.

The acquisition of signals from unobtrusive sensors based on EMFi or other technologies would simplify patient care by enabling pervasive or ambient monitoring. These sensors can be installed in chairs, couches, and beds to obtain data without interfering with the patient’s daily activities. Also, their use in emergency waiting rooms would allow on-line triage and more information for clinicians before their physical interaction.

The difficulty in detecting heart beats from BCG comes from the fact that BCG is a very weak signal, produced by the mechanical movement resulting from the heart systolic contraction. The acquisition must have a high sensibility, which makes it more vulnerable to noise. Talking, adjusting on the seat or even people walking in the vicinity can introduce noise in the BCG signal. In this challenge, we invite you to design and test new algorithms for BCG processing. The accurate detection of individual beats can lead to more advanced monitoring, such as arrythmia detection in patients with atrial fibrillation, a commonly underdiagnosed condition that leads in time to more serious health complications.


The database is composed of 4 datasets from different experiments, coming from 2 groups of people: healthy volunteers and patients. The patients were previously diagnosed with AF, waiting for their routine check-up at our local hospital. In the experiment, the subjects were sitting in an EMFi-fitted chair for measuring BCG and wearing 3 ECG electrodes for a 1-derivation ECG record. Both signals were acquired simultaneously. The experiment protocol was approved by the necessary ethics committee and all volunteers agreed to an informed consent. ECG beats were reviewed by a cardiologist and are included for reference in the public dataset.

In order to participate as an individual or a collective team you should first register to the Challenge in order to be able to access the public annotated dataset of ECG and BCG made available for the challenge and to submit your entries to the challenge.

Quick Start

  1. Register using this form.
  2. Download the public data set that you can use to develop your solution and the sample MATLAB and Python entry.
  3. Develop your entry by editing the existing files:
    • Modify the sample entry source code file challenge.m or with your changes and improvements.
    • Run your modified source code file on all the records in the training data set.
  4. Submit your modified compressed entry file for scoring through the Challenge website. The compressed file has to include all the individual results as described in the expected results. Improperly-formatted entries will not be scored.

For those wishing to compete officially, please follow the additional four steps described in the Rules and Deadlines section.

We expect the submission of an overview paper with the best solutions to a prestigious Scientific Journal, co-authored by participants of the challenge and considering the publications and discussions at ICBHI’22.

Rules and Deadlines

In this challenge, we adopt the general rules of the Physionet Competition. The challenge is structured in two phases: the unofficial (Phase I) and the official (Phase II) phases. Participants may submit up to 15 entries over both the unofficial and official phases of the competition (see Table 1). Each participant may receive scores for up to five entries submitted during the unofficial phase and ten entries during the official phase. Unused entries may not be carried over to later phases. Entries that cannot be scored (because of missing components, improper formatting, or excessive run time) are not counted against the entry limits.

All deadlines occur at noon GMT (UTC) on the dates mentioned below. 

All official entries must be received no later than 12:00 GMT on the 18 September 2022. In the interest of fairness to all participants, late entries will not be accepted or scored.

To be eligible you must do all of the following:

  1. Register: you should include the username, email address and team name.
  2. Submit at least one entry that can be scored during Phase I until the defined deadline (12:00 GMT, 15 June 2022). All submissions must be in Matlab or Python 3.x and be self-contained (e.g. if some special open-source and non-standard toolbox or library is needed, then it has to be provided. All commercially available toolboxes from Mathworks for MATLAB R2021a are valid). Please follow the detailed information on data formats, input and output formats provided in the sample files.
  3. Submit an abstract (up to 1 page) describing your approach on the Scientific Challenge to ICBHI’ 22 no later than the 8 September2022.
  4. Submit a full paper describing your work for the Scientific Challenge following the ICBHI’ 22 rules no later than 18 September 2022 using the regular submission system. Include the overall score for at least one Phase I or Phase II entry in your paper. You will be notified if your paper has been accepted by email from ICBHI’22 by 27 September 2022.
  5. Attend ICBHI’22 (November 24-26, 2022) and present your work there (at least one team member must attend ICBHI).

Please do not submit analysis of this year’s Scientific Challenge data to other conferences or journals until after ICBHI’22 has taken place, so the competitors are able to discuss the results in a single forum. We expect the submission of an overview paper with the best solutions to a prestigious Scientific Journal, co-authored by participants of the challenge and taking into account the publications and discussions at ICBHI’22.


In case all the necessary files are included in your entry, and they run as expected, your entry is evaluated and you will receive your provisional scores when the test is complete. An automatic email will be delivered informing you of the results. The evaluation will be made on a weekly basis. If you receive an error message instead, read it carefully and correct the problem(s) before resubmitting.

The overall score for your entry is computed based on the number of detected beat intervals.

Global Score

Description of the Database and expected inputs/outputs

a) Datasets

The dataset is divided in two parts: a public/training set and a private/testing set. The public partition of the database contains 83 records of different length and origin. The test set is unavailable to the public and will remain private for the purpose of scoring. The ECG with annotated beats is provided as a reference only. The algorithm has to be able to process the BCG signal alone (single channel), without references. Healthy volunteers and patients include both female and male subjects, of different weights and ages. The training and test sets have each been divided so that they are two sets of mutually exclusive populations (i.e., no recordings from the same subject/patient are in both training and test sets).

In the second phase, additional records will be made available in the public dataset.

Please note that many recordings are corrupted by various noise sources, such as talking, adjusting position, and moving in general.

Table 1: Different datasets used for the challenge.



Signal length




13.5 min

Healthy volunteers with 2 records each: normal activities and after exercise.



3 min

Patients previously diagnosed with AF (not necessarily presenting AF at the time of measurement)



2 min

Healthy volunteers



1 min

Healthy volunteers

b) Input/output formats

To enter the ICBHI challenge, the participants have to develop an algorithm that is able to read a single BCG signal, providing as output the beat times in ms corresponding to the J point in the IJK wave, as shown in Figure 1, without any user interaction. The algorithm must be implemented in MATLAB or Python 3.x. Each team must upload to the ICBHI challenge website a zip, 7z, rar or tar.gz archive containing the following files:

  1. AUTHORS.txt, a plain text file listing the members of your team who contributed to your code, and their affiliations.
  2. All the required code that is used for the analysis. This set of files must include a file with the name challenge.m or, which is the main entry file of the code and accepts one input: a record name.
  3. Your code should output the file results_RecordName.txt, where RecordName is the name of the recording from training data set that was used for the analysis. Each text file should contain list of beat times, measured in ms (milliseconds), one value per line.

We will run your code on the testing set and compare the contents of the results_RecordName.txt files that are generated with the ground-truth annotations of the health professionals. If everything runs as expected, you will get an email with the score of your submission.

In Phase I (Unofficial) your submissions will be tested on a subset of the testing set, while in Phase II (Official) they will be tested on the whole testing set. Thus, the grade for a specific algorithm may be different in each phase.

You can download the public set, the expected submission files and a sample challenge.m and as reference with required inputs and outputs as zip files.