Wearable Computing - Reconnaissance d'Activités Humaines par Machine Learning

Introduction

Comment votre smartphone sait-il que vous marchez, courez ou êtes assis ? C'est la question au cœur de mon projet de recherche Wearable Computing, réalisé lors de mon stage à IIT (Illinois Institute of Technology) en 2016.

L'Objectif

Développer un système capable de reconnaître automatiquement les activités humaines (marche, course, position assise, montée d'escaliers...) à partir des données brutes des capteurs de smartphones.

Architecture du Projet

Le projet se compose de trois modules interconnectés :

1. Application Android de Collecte

Une app Android 6.0 qui collecte en temps réel les données de :

  • Accéléromètre : Mesure l'accélération sur 3 axes
  • Gyroscope : Détecte les rotations
  • Magnétomètre : Orientation par rapport au champ magnétique
  • GPS : Position géographique

2. Plateforme Big Data (Spark + Cassandra)

Pour gérer les volumes massifs de données collectées :

  • Apache Spark : Traitement distribué en Scala
  • Apache Cassandra : Stockage NoSQL scalable
  • Interface web pour le monitoring

3. Algorithmes de Labellisation

Le cœur intelligent du système :

  • Extraction de features (moyenne, écart-type, FFT...)
  • Algorithmes de classification (Random Forest, SVM, KNN...)
  • Validation et évaluation des modèles

Comment ça marche ?

Étape 1 : Collecte

Le smartphone enregistre les données des capteurs à haute fréquence (50-100 Hz) pendant que l'utilisateur effectue différentes activités.

Étape 2 : Segmentation

Les données sont découpées en fenêtres temporelles (2-5 secondes) pour l'analyse.

Étape 3 : Feature Engineering

Pour chaque fenêtre, on calcule des caractéristiques statistiques :

  • Moyenne, médiane, écart-type
  • Min, max, amplitude
  • Transformée de Fourier (fréquences dominantes)
  • Corrélation entre axes

Étape 4 : Classification

Un modèle de Machine Learning prédit l'activité basée sur ces features. Les algorithmes testés :

  • Decision Trees : Simples et interprétables
  • Random Forest : Ensemble de trees pour plus de robustesse
  • SVM : Support Vector Machines pour la séparation des classes
  • KNN : Classification par voisinage

Résultats

Les modèles atteignent une précision de 85-95% selon les activités. La marche et la course sont facilement distinguables, tandis que "debout" vs "assis" est plus challenging.

Applications

  • Santé : Suivi d'activité physique
  • Sport : Analyse de performance
  • Médical : Détection de chutes chez les personnes âgées
  • Recherche : Études comportementales

Technologies Utilisées

  • Android SDK (Java)
  • Apache Spark (Scala)
  • Apache Cassandra
  • Algorithmes ML (Java, Python)

Projet de recherche réalisé à IIT.edu (Illinois Institute of Technology) en collaboration avec l'ESIGELEC - Été 2016