The problem
Activity recognition from wearables sounds solved until you look at raw
accelerometer data. A tri-axial accelerometer on a smartwatch produces a
violent, noisy signal: high-frequency motion artifacts, orientation shifts every
time the wrist rotates, and baseline drift. Telling "walking" from "running" from
"standing still" in real time, on a small model, with sub-20ms inference, is a
genuinely hard signal processing problem before it is a machine learning
problem.
I built a motion inference suite to work through this properly: not just one
model, but four architectures trained and compared side by side β a 1D CNN, a
simple RNN, an LSTM, and a CNN-LSTM hybrid β with a live workbench for
watching them classify streaming sensor data.
Why 1D CNN + LSTM
Accelerometer data is a multivariate time series: three channels (x, y, z) sampled
at 50 Hz. The two architectures that matter most for this kind of data do
complementary jobs.
The 1D CNN handles local feature extraction.β¦