Acquis d'apprentissage visés
- Analyze IoT data by integrating edge analytics (edge computing) specificities
- Apply programming and communication paradigms specific to embedded systems and IoT
- Design infrastructures and service solutions tailored for connected objects
Prérequis
- Python and C/C++ programming basics
- Probability and statistics fundamentals (S5-S6)
- IOT701: Embedded and Real-Time Systems (co-requisite)
Programme
- Module 1 — IoT Data Collection and Preparation (Lecture: 1h, Tutorial: 1h, Lab: 2h)
- Specificities of IoT data: time series, multi-axis sensor data, sampling, noise
- Collection strategies: on-field labeling, reproducible acquisition protocols
- Preprocessing: cleaning, normalization, windowing, data augmentation
- Handling class imbalances and variable field conditions
- Lab: Accelerometer/gyroscope data collection on ESP32, labeling and exploration with Python/Pandas
- Module 2 — Model Training for Embedded Systems (Lecture: 1.5h, Tutorial: 1.5h, Lab: 2h)
- Introduction to TinyML: memory, computation, and energy constraints
- TensorFlow Lite for Microcontrollers: architecture, quantization (int8, float16), model conversion
- Edge Impulse Studio: project creation, data import, impulse design (DSP + classification)
- Suitable architectures: 1D CNN for time series, anomaly detection, lightweight transfer learning
- Trade-offs: accuracy vs. model size vs. inference latency
- Lab: Training a gesture recognition model on Edge Impulse, exporting to TFLite
- Module 3 — Embedded Deployment and Inference (Lecture: 1h, Tutorial: 1h, Lab: 2h)
- Deploying TFLite models on microcontrollers (ESP32, Arduino Nano 33 BLE)
- Integration into a real-time loop: acquisition → preprocessing → inference → action
- Memory optimization: arena sizing, operator resolver, flatbuffer model
- Measuring embedded performance: latency, RAM/Flash memory consumption, energy consumption
- Lab: Deploying the model on target hardware, measuring latency and memory consumption
- Module 4 — Field Validation and Robustness (Lecture: 0.5h, Tutorial: 0.5h, Lab: 2h)
- Robustness challenges in real-world conditions: sensor drift, environmental variations, aging
- Field validation vs. laboratory validation: test protocols, performance metrics in situ
- Data drift and concept drift: detection and update strategies (retraining, feedback loop)
- Field feedback → retraining loop: incremental data collection, data and model versioning
- Ethical and reliability considerations for automated decisions at the edge
- Lab: Validating the model in real-world conditions, analyzing errors, proposing improvements, iterating
Modalités d'évaluation
Continuous assessments and lab work evaluation (complete pipeline deployed on target hardware).
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 Edge Impulse Documentation — docs.edgeimpulse.com TensorFlow Lite for Microcontrollers Documentation — tensorflow.org/lite/microcontrollers
Supports
Slides, Jupyter notebooks, Edge Impulse platform, ESP32/Arduino Nano 33 BLE Sense boards, practical work sheets.