LiteRT für Mikrocontroller wurde zum Ausführen von Modellen für maschinelles Lernen entwickelt auf Mikrocontrollern und anderen Geräten mit nur wenigen Kilobyte Speicher. Die Kernlaufzeit passt in 16 KB auf einen Arm Cortex M3-Prozessor und kann viele einfache Modelle. Es erfordert keine Betriebssystemunterstützung, Standard-C- oder C++- oder die dynamische Speicherzuweisung.
Warum Mikrocontroller wichtig sind
Mikrocontroller sind in der Regel kleine, schwächere Rechengeräte, die in eine Hardware eingebettet sind, die einfache Berechnungen erfordert. Durch den Einsatz von mit winzigen Mikrocontrollern zu lernen, können wir die Intelligenz von Milliarden Geräte, die wir in unserem Leben nutzen, einschließlich Haushaltsgeräten und Internet der Things-Geräte, ohne auf teure Hardware oder zuverlässiges Internet angewiesen zu sein -Verbindungen, die häufig von Bandbreiten- und Stromeinschränkungen abhängig sind. führt zu hoher Latenz. Dies trägt auch zum Schutz der Privatsphäre bei, da keine Daten das Gerät verlässt. Stellen Sie sich intelligente Geräte vor, die sich an Ihren täglichen Ablauf anpassen können. routinemäßigen, intelligenten Industriesensoren, die den Unterschied zwischen Probleme, normalen Betrieb und magisches Spielzeug, das Kindern dabei helfen kann, auf unterhaltsame Weise zu lernen. und reizvolle Möglichkeiten.
Unterstützte Plattformen
LiteRT für Mikrocontroller ist in C++ 17 geschrieben und erfordert 32-Bit- Plattform. Es wurde umfassend mit vielen Prozessoren getestet, die auf der Arm Cortex-M-Serie Architektur und wurde in andere Architekturen übertragen, darunter ESP32: Die ist als Arduino-Bibliothek verfügbar. Es kann auch Projekte für Entwicklungsumgebungen wie Mbed. Es ist Open Source und kann in einem beliebigen C++ 17-Projekt.
Die folgenden Entwicklungs-Boards werden unterstützt:
- Arduino Nano 33 BLE Sense
- SparkFun Edge
- STM32F746 Discovery-Kit
- Adafruit Edge-Abzeichen
- Adafruit LiteRT für Mikrocontroller-Kit
- Adafruit Circuit Playground Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
- Wio-Terminal: ATSAMD51
- Himax WE-I Plus EVB Endpoint AI Development Board
- Synopsys DesignWare ARC EM Software Development Platform
- Sony Spresense
Beispiele ansehen
Jede Beispielanwendung ist aktiviert
GitHub
Sie enthält eine README.md
-Datei, in der erklärt wird, wie sie auf der unterstützten
Plattformen. Einige Beispiele umfassen auch End-to-End-Anleitungen mit einem spezifischen
wie unten angegeben:
- Hello World – Zeigt die absoluten Grundlagen der Verwendung von LiteRT für Mikrocontroller <ph type="x-smartling-placeholder">
- Micro Speech: Nimmt Audio mit einem Mikrofon auf, um die Wörter „Ja“ zu erkennen und „nein“ <ph type="x-smartling-placeholder">
- Personenentdeckung – Erfasst Kameradaten mit einem Bildsensor, um zu erkennen, ob anwesend oder abwesend ist einer Person
Workflow
Die folgenden Schritte sind erforderlich, um ein TensorFlow-Modell in einem Mikrocontroller:
- Modell trainieren:
<ph type="x-smartling-placeholder">
- </ph>
- Generieren Sie ein kleines TensorFlow-Modell, das zu Ihrem Zielgerät passt. enthält unterstützte Vorgänge.
- Konvertieren Sie die Modelle in ein LiteRT-Modell mithilfe der LiteRT-Konverter.
- Konvertieren Sie es in ein C-Byte-Array mithilfe von Standardtools, um sie in einem schreibgeschützter Programmspeicher auf dem Gerät.
- Mit der C++-Bibliothek und dem entsprechenden Prozess Inferenzen auf dem Gerät ausführen die Ergebnisse.
Beschränkungen
LiteRT für Mikrocontroller wurde für die spezifischen Anforderungen von Mikrocontroller-Entwicklung. Wenn Sie leistungsstärkere Geräte (für einem eingebetteten Linux-Gerät wie dem Raspberry Pi), Das LiteRT-Framework lässt sich möglicherweise einfacher integrieren.
Dabei sind folgende Einschränkungen zu beachten:
- Unterstützung für eine begrenzte Teilmenge von TensorFlow-Vorgänge
- Unterstützung für eine begrenzte Anzahl von Geräten
- Low-Level-C++ API, die eine manuelle Arbeitsspeicherverwaltung erfordert
- Training auf dem Gerät wird nicht unterstützt
Nächste Schritte
- Erste Schritte mit Mikrocontrollern, um die Beispielanwendung und lernen, wie die API verwendet wird.
- Machen Sie sich mit der C++-Bibliothek vertraut, um zu erfahren, wie Sie sie in für Ihr eigenes Projekt erstellen.
- Modelle erstellen und konvertieren, um mehr über Training zu erfahren und Umwandeln von Modellen für die Bereitstellung auf Mikrocontrollern.