← all projects

Gait Biometrics

Who you are, from how you walk

Identifying and verifying people from the way they walk, using a phone's accelerometer and gyroscope. A feature-based network identified walkers with 90 percent accuracy and verified them at a 3 percent equal error rate; an LSTM on the raw signal verified at 2 percent.

  • Python
  • TensorFlow / Keras
  • LSTM
  • PCA
  • NumPy
  • scikit-learn
github ↗

Problem

Passwords can be shared and faces can be photographed, but the rhythm of someone’s walk is hard to fake and costs nothing to collect from a phone already in their pocket. Built for CS 288 (Biometric Security with AI) at SJSU: can a small network tell ten people apart by their gait, and can it reject impostors?

Approach

  • Signal preparation. Accelerometer and gyroscope combined into a six-channel signal, cut into five-second windows with 50 percent overlap, with z-score outlier clipping and a moving-average filter.
  • Two models. A feedforward network on 78 statistical and frequency features reduced to 10 with PCA, and a stacked LSTM on the raw 250 x 6 windows.
  • Two tasks. Identification (which of ten people is this) and verification (is this the claimed person), scored with accuracy, AUC and equal error rate under five-fold cross-validation.

Result

ModelTaskAccuracyEER
Feature networkIdentification0.90n/a
LSTMIdentification0.57n/a
Feature networkVerification0.980.03
LSTMVerification0.970.02

The handcrafted features won identification by a wide margin; the LSTM underfit on a dataset this small. For verification both separated users cleanly (AUC 0.99).