The goal of this project is to develop a classifier to keep track of the exercises performed by an athlete during a workout session. In particular, we have considered the following exercises:
The classifier takes as input the data collected by the accelerometer and gyroscope of two identical sensors placed on the right wrist and the right ankle of the athlete. The classification pipeline is the following:
- Data Pre-Processing: The data collected by the samples are aligned through a synchronization logic and filtered through a low-pass filter to reduce the noise. After that, gravity and user acceleration are split. Finally, the sliding window approach (which is the core of the following steps) is implemented by splitting the signals into (overlapping) windows and extracting relevant features associated to them.
- Binary Classification: A binary classifier is used to discriminate between periods of activity and periods of rest.
- Multiclass Classifier: Given a period of activity, the multiclass classifier labels such period with the correct exercise label.
I personally contributed to this project by developing the binary classifier (step 2) and implementing the syncronization logic and the sliding window approach (step 1). Moreover, I also developed an Android app as a result visualization tool (see Proof of Concept). As for the binary classifier, here is an example showing the results achieved (rest in blue and exercise in green).
Project is created with:
- Python 3.9 (classification logic).
- Android Studio and Chaquopy (Android app).
The following video shows a short workout together with the final result of the classification (displayed by the app).