Acquis d'apprentissage visés
- Analyser les données issues de l’IoT en intégrant les spécificités de l’analyse de données en bordure (edge analytics)
- Appliquer les paradigmes de programmation et communication spécifiques à l’embarqué et à l’IoT
- Concevoir des infrastructures et solutions de service adaptées pour les objets connectés
Prérequis
- Bases de programmation Python et C/C++
- Notions de probabilités et statistiques (S5-S6)
- IOT701 : Systèmes Embarqués et Temps Réel (co-requis)
Programme
- Module 1 — Collecte et préparation des données IoT (CM : 1h, TD : 1h, TP : 2h)
- Spécificités des données IoT : séries temporelles, données capteurs multi-axes, échantillonnage, bruit
- Stratégies de collecte : labellisation sur le terrain, protocoles d’acquisition reproductibles
- Prétraitement : nettoyage, normalisation, fenêtrage, augmentation de données
- Gestion des déséquilibres de classes et des conditions de terrain variables
- TP : Collecte de données accéléromètre/gyroscope sur ESP32, labellisation et exploration avec Python/Pandas
- Module 2 — Entraînement de modèles pour l’embarqué (CM : 1.5h, TD : 1.5h, TP : 2h)
- Introduction au TinyML : contraintes mémoire, calcul et énergie
- TensorFlow Lite for Microcontrollers : architecture, quantification (int8, float16), conversion de modèles
- Edge Impulse Studio : création de projet, import de données, design d’impulsion (DSP + classification)
- Architectures adaptées : CNN 1D pour séries temporelles, anomaly detection, transfer learning léger
- Compromis précision / taille du modèle / latence d’inférence
- TP : Entraînement d’un modèle de reconnaissance de gestes sur Edge Impulse, export TFLite
- Module 3 — Déploiement et inférence embarquée (CM : 1h, TD : 1h, TP : 2h)
- Déploiement de modèles TFLite sur microcontrôleur (ESP32, Arduino Nano 33 BLE)
- Intégration dans une boucle temps réel : acquisition → prétraitement → inférence → action
- Optimisation mémoire : arena sizing, opérateur resolver, modèle flatbuffer
- Mesure des performances embarquées : latence, consommation mémoire RAM/Flash, consommation énergétique
- TP : Déploiement du modèle sur cible, mesure de latence et consommation mémoire
- Module 4 — Validation terrain et robustesse (CM : 0.5h, TD : 0.5h, TP : 2h)
- Problématiques de robustesse en conditions réelles : drift capteur, variations environnementales, vieillissement
- Validation terrain vs validation en laboratoire : protocoles de test, métriques de performance en situation
- Data drift et concept drift : détection et stratégies de mise à jour (retraining, feedback loop)
- Boucle de retour terrain → réentraînement : collecte incrémentale, versioning des données et modèles
- Considérations éthiques et de fiabilité pour les décisions automatisées en bordure
- TP : Validation du modèle en conditions réelles, analyse des erreurs, proposition d’améliorations, itération
Modalités d'évaluation
Contrôles continus et évaluation des TPs (pipeline complet déployé sur cible).
Bibliographie
Pete Warden & Daniel Situnayake — TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers — O’Reilly, 2020 Vijay Janapa Reddi et al. — Widening Access to Applied Machine Learning with TinyML — Harvard, 2021 Documentation Edge Impulse — docs.edgeimpulse.com Documentation TensorFlow Lite for Microcontrollers — tensorflow.org/lite/microcontrollers
Supports
Diaporamas, notebooks Jupyter, plateforme Edge Impulse, cartes ESP32/Arduino Nano 33 BLE Sense, fiches de travaux pratiques.