TinyML (Tiny Machine Learning) bezeichnet die Ausführung von Machine-Learning-Modellen auf sehr ressourcenbeschränkten Mikrocontrollern – also genau auf der Hardware, mit der wir im Embedded-Bereich täglich arbeiten. Statt Cloud-Servern oder leistungsfähigen Linux-Systemen laufen die Modelle direkt auf einem MCU mit wenigen 10–100 kB RAM und einigen 100 kB Flash.
Das Ziel:
👉 KI-Funktionalität mit minimalem Stromverbrauch, niedriger Latenz und ohne Cloud-Anbindung.
Warum TinyML?
Für klassische Machine-Learning-Anwendungen werden oft Systeme wie ein Raspberry Pi 4 oder leistungsstarke PCs verwendet. In vielen Embedded-Anwendungen ist das jedoch:
- zu teuer
- zu energiehungrig
- zu groß
- nicht echtzeitfähig genug
- oder aus Datenschutzgründen ungeeignet
TinyML bringt ML-Modelle auf typische Mikrocontroller wie:
- ESP32
- STM32F4
- Arduino Nano 33 BLE Sense
Typische Anwendungsfälle
TinyML eignet sich besonders für:
- Keyword-Spotting („Hey Gerät“)
- Vibrationsanalyse (Predictive Maintenance)
- Gestenerkennung mit IMU
- Anomalieerkennung
- Einfache Bildklassifikation (z. B. 96×96 Pixel)
Wie funktioniert TinyML?
Der typische Workflow:
- Datensammlung
Sensordaten aufnehmen (z. B. Beschleunigung, Audio, Temperatur) - Training am PC/Cloud
Das Modell wird nicht auf dem Mikrocontroller trainiert, sondern z. B. mit:- TensorFlow
- Edge Impulse
- Quantisierung & Konvertierung
Das trainierte Modell wird in ein kompaktes Format umgewandelt (meist INT8). - Deployment mit TensorFlow Lite for Microcontrollers
Hier kommt TensorFlow Lite for Microcontrollers ins Spiel.
Es erlaubt die Inferenz auf Systemen mit < 100 kB RAM.
Technische Grundlagen
1. Speicheranforderungen
Ein typisches TinyML-Modell benötigt:
- 10–50 kB Flash
- 2–20 kB RAM
- Keine dynamische Speicherverwaltung
- Keine FPU zwingend erforderlich
2. Quantisierung
Statt 32-bit-Floats werden oft 8-bit-Integer verwendet.
Vorteile:
- 4× weniger Speicher
- Schnellere Inferenz
- Geringerer Stromverbrauch
3. Inferenz statt Training
Wichtig:
Auf dem Mikrocontroller läuft nur die Inferenz, also die Anwendung eines bereits trainierten Modells.
Mini-Praxisbeispiel: LED-Helligkeit per TinyML vorhersagen
Wir erstellen ein extrem einfaches Modell:
Aufgabe:
Das Modell soll lernen:
y = 2x
Später soll der Mikrocontroller einen ADC-Wert einlesen und daraus eine PWM-Helligkeit berechnen – aber nicht per Formel, sondern per TinyML-Modell.
Schritt 1 – Modell in Python trainieren
Schritt 2 – Integration in Mikrocontroller-Projekt
Das .tflite-Modell wird in ein C-Array konvertiert:
xxd -i model.tflite > model_data.cc
Schritt 3 – Inferenz-Code (stark vereinfacht)
Typische Stolperfallen
- Tensor Arena zu klein → HardFault
- Falsche Quantisierung → schlechte Ergebnisse
- Zu große Modelle → Flash voll
- Floating Point ohne FPU → langsam
Welche Boards eignen sich besonders?
Sehr beliebt im TinyML-Bereich:
- Arduino Nano 33 BLE Sense – viele Sensoren integriert
- ESP32-S3 – KI-Beschleunigung
- STM32H7 – viel RAM
Vorteile von TinyML
✅ Keine Cloud nötig
✅ Sehr niedriger Stromverbrauch
✅ Echtzeitfähig
✅ Datenschutzfreundlich
✅ Offline-Betrieb
Grenzen von TinyML
❌ Kein Training auf dem Device
❌ Stark begrenzte Modellgröße
❌ Debugging teils komplex
❌ Nicht geeignet für große CNNs oder LLMs
Fazit
TinyML bringt Machine Learning dorthin, wo klassische KI bisher nicht praktikabel war:
Direkt auf Mikrocontroller.
Gerade für Embedded-Entwickler eröffnet das spannende Möglichkeiten:
- Intelligente Sensoren
- Selbstüberwachende Systeme
- Energieeffiziente Edge-Geräte
Wenn du bereits mit MCUs arbeitest, ist TinyML kein Hype-Thema – sondern die logische Weiterentwicklung moderner Embedded-Systeme.