Note: This project has already been in development before the hackathon, in particular, data collection and initial data pre-processing was done before the hackathon.


In today’s world, we observe an ever-increasing digitization of most areas of our lives. Every day we make use of online services such as mobile banking or email communication, and we do not hesitate to keep our personal information on our devices or cloud storage. Unfortunately, the digital era has also paved the way for a series of new attacks and exploits, including unauthorized access to our personal data and devices by adversaries.

There has been a recent shift of interest towards the field of biometric authentication, which proves the identity of the user using their biological characteristics. This research focuses on one such characteristic – electrocardiogram (ECG) signals. The end goal of this project is to create a practical system for authenticating users based on the electrical activity of their hearts, as captured by a modern consumer-oriented ECG device.


For this project, I used a dataset of ECG signals, that I previously collected from over 50 participants, and made available for pre-processing. During the hackathon, I designed an algorithm that automatically detects the heart beats in the ECG and breaks it up into small windows, known as enrolment templates. Deep neural network was subsequently used to match these templates with the users of the authentication system. For 45 participants, the neural network achieves a validation accuracy of 85%, which is comparable to performance achieved in published research papers in the recent years.

How I built it

The project is built using numpy, scipy and keras libraries. First, signal processing is used to design the algorithm for ECG signal peak detection. Fast Fourier Transform is used to convert the ECG signal from the time domain into the frequency domain, used to design the spectogram of the signal. A fully-connected neural network with 3 hidden layers is used for template classification.

Built With

Share this project: