A team project classifying four swim strokes: crawl, backstroke, breaststroke, and butterfly
from wrist-worn sensor data, built end to end from a custom Android/Wear OS data collection app to a deployed inference API.
Swimmers were recorded with a Samsung Galaxy Watch 4 in an actual pool, capturing accelerometer, gyroscope, magnetometer, gravity, and linear acceleration at 50–100 Hz. A custom preprocessing pipeline merges the sensor streams, detects individual pool lengths automatically from the motion signal, and windows each lap into fixed-length training sequences. Two classical baselines (logistic regression, random forest) and two deep learning models (1D-CNN, LSTM) were trained and hyperparameter-tuned using subject-based cross-validation, then exported to ONNX for a unified inference interface.
On a held-out swimmer from a different pool, the tuned 1D-CNN performed best overall, but when predictions are aggregated to the lap level via soft voting, every model classifies all four strokes without error, even at half the sampling rate. The project also ships a full Android app (phone + watch) that records a session, uploads it to a prediction API, and displays the recognized stroke per lap.
Team project with Lukas Breiter and Alicia Jaramillo for the Sensor-based Activity Recognition module.