Heim Der Blog Blog Details

Implementierung von KI und maschinellem Lernen auf MCUs mit geringem Stromverbrauch

March 07 2025
Ampheo

Anfrage

Globaler Lieferant elektronischer Komponenten AMPHEO PTY LTD: Umfangreiches Inventar für One-Stop-Shopping. Einfache Anfragen, schnelle, individuelle Lösungen und Angebote.

SCHNELLE ANFRAGE
ZUR RFQ-LISTE HINZUFÜGEN
Die Implementierung von KI und maschinellem Lernen (ML) auf leistungsschwachen Mikrocontrollern (MCUs) wird dank Fortschritten im Bereich TinyML (maschinelles Lernen auf Edge-Geräten) zunehmend machbar.

Die Implementierung von KI und maschinellem Lernen (ML) auf leistungsschwachen Mikrocontrollern (MCUs) wird dank Fortschritten im Bereich TinyML (maschinelles Lernen auf Edge-Geräten) zunehmend machbar. Leistungsschwache MCUs sind ideal für Anwendungen, bei denen Energieeffizienz, Kosten und Echtzeitverarbeitung entscheidend sind, wie z. B. IoT-Geräte, Wearables und eingebettete Systeme. Nachfolgend finden Sie eine Anleitung zur Implementierung von KI/ML auf leistungsschwachen MCUs:

Implementierung von KI und maschinellem Lernen auf MCUs mit geringem Stromverbrauch - Blog - Ampheo


Wichtige Überlegungen

  1. Hardware-Einschränkungen:

    • Begrenzte Rechenleistung (z. B. ARM Cortex-M-Serie).

    • Begrenzter Speicher (RAM und Flash).

    • Geringer Stromverbrauch.

  2. Modellbeschränkungen:

    • Verwenden Sie schlanke Modelle (z. B. TensorFlow Lite für Mikrocontroller, TinyML).

    • Optimieren Sie Modelle für die Inferenz (nicht für das Training).

  3. Anwendungsfälle:

    • Sensordatenanalyse (z. B. Gestenerkennung, Sprachbefehle).

    • Vorausschauende Wartung (z. B. Anomalieerkennung).

    • Computer Vision (z. B. Objekterkennung mit niedrigauflösenden Bildern).


Schritte zur Implementierung von KI/ML auf leistungsschwachen MCUs

1. Wählen Sie den richtigen MCU

  • Wählen Sie einen MCU mit ausreichenden Ressourcen für Ihre Anwendung:

    • RAM: Mindestens 32 KB für einfache Modelle.

    • Flash: Mindestens 128 KB zum Speichern des Modells und des Codes.

    • Taktrate: 50 MHz oder höher für Echtzeit-Inferenz.

  • Beispiele:

    • STM32-Serie (z. B. STM32F4, STM32H7).

    • ESP32 (mit Wi-Fi/BLE für IoT-Anwendungen).

    • Nordic nRF52-Serie (für ultra-leistungsschwache Anwendungen).

    • Arduino Nano 33 BLE Sense (mit integrierten Sensoren).

2. Wählen Sie ein Framework für maschinelles Lernen

  • TensorFlow Lite für Mikrocontroller (TFLite Micro):

    • Optimiert für die Ausführung von ML-Modellen auf MCUs.

    • Unterstützt Quantisierung zur Reduzierung der Modellgröße.

  • Edge Impulse:

    • End-to-End-Plattform für die Entwicklung und Bereitstellung von TinyML-Modellen.

  • CMSIS-NN:

    • ARM's optimierte Bibliothek für neuronale Netze auf Cortex-M-Prozessoren.

  • uTensor:

    • Leichtgewichtiges ML-Framework für Mikrocontroller.

3. Entwickeln und trainieren Sie das Modell

  • Verwenden Sie ein High-Level-Framework (z. B. TensorFlow, PyTorch), um das Modell auf einem PC oder in der Cloud zu entwerfen und zu trainieren.

  • Optimieren Sie das Modell für MCUs:

    • Verwenden Sie Quantisierung (z. B. 8-Bit-Ganzzahlen statt 32-Bit-Fließkommazahlen).

    • Reduzieren Sie die Modellgröße durch Pruning.

    • Verwenden Sie kleinere Architekturen (z. B. MobileNet, TinyML-spezifische Modelle).

  • Beispiel: Trainieren Sie ein Modell zur Gestenerkennung mit Beschleunigungsmesserdaten.

4. Konvertieren Sie das Modell für MCUs

  • Konvertieren Sie das trainierte Modell in ein für den MCU kompatibles Format:

    • Für TensorFlow Lite verwenden Sie den TFLite Converter:

      python
       
      import tensorflow as tf
      converter = tf.lite.TFLiteConverter.from_saved_model("model.h5")
      converter.optimizations = [tf.lite.Optimize.DEFAULT]
      tflite_model = converter.convert()
      open("model.tflite", "wb").write(tflite_model)
    • Für Edge Impulse exportieren Sie das Modell als C++-Bibliothek.

5. Bereitstellen des Modells auf dem MCU

  • Integrieren Sie das Modell in die MCU-Firmware:

    • Verwenden Sie den TFLite Micro Interpreter oder das Edge Impulse SDK.

    • Beispielcode für TFLite Micro:

      cpp
       
      #include "tensorflow/lite/micro/all_ops_resolver.h"
      #include "tensorflow/lite/micro/micro_interpreter.h"
      #include "model.h"  // Generiertes TFLite-Modell
      
      const tflite::Model* model = tflite::GetModel(model_tflite);
      static uint8_t tensor_arena[10 * 1024];  // Speicher zuweisen
      
      tflite::MicroInterpreter interpreter(model, tensor_arena, sizeof(tensor_arena));
      interpreter.AllocateTensors();
      
      TfLiteTensor* input = interpreter.input(0);
      TfLiteTensor* output = interpreter.output(0);
      
      // Füllen Sie den Eingabe-Tensor mit Sensordaten
      // Führen Sie die Inferenz aus
      interpreter.Invoke();
      
      // Verarbeiten Sie den Ausgabe-Tensor
  • Optimieren Sie die Speichernutzung und die Inferenzgeschwindigkeit.

6. Sammeln und Vorverarbeiten von Daten

  • Verwenden Sie Sensoren (z. B. Beschleunigungsmesser, Mikrofon, Kamera), um Daten zu sammeln.

  • Vorverarbeiten Sie die Daten auf dem MCU (z. B. Normalisierung, Filterung).

  • Beispiel: Vorverarbeiten Sie Beschleunigungsmesserdaten für die Gestenerkennung.

7. Testen und Optimieren

  • Testen Sie das Modell mit realen Daten.

  • Optimieren Sie den Stromverbrauch und die Inferenzgeschwindigkeit:

    • Verwenden Sie Energiesparmodi im Leerlauf.

    • Reduzieren Sie die Modellgröße weiter, falls erforderlich.


Beispielanwendungen

  1. Spracherkennung:

    • Verwenden Sie ein Mikrofon, um Wake-Wörter oder Befehle zu erkennen.

    • Beispiel: „Hey Siri“ oder „OK Google“ auf leistungsschwachen Geräten.

  2. Gestenerkennung:

    • Verwenden Sie Beschleunigungsmesserdaten, um Gesten zu erkennen.

    • Beispiel: Steuern Sie eine Smartwatch mit Handgesten.

  3. Anomalieerkennung:

    • Überwachen Sie Sensordaten (z. B. Vibration, Temperatur), um Anomalien zu erkennen.

    • Beispiel: Vorausschauende Wartung in industriellen Anlagen.

  4. Computer Vision:

    • Verwenden Sie eine niedrigauflösende Kamera zur Objekterkennung.

    • Beispiel: Erkennen Sie Gesichter oder Objekte in einer Sicherheitskamera.


Tools und Bibliotheken

  1. TensorFlow Lite für Mikrocontroller:

  2. Edge Impulse:

  3. CMSIS-NN:

  4. uTensor:


Herausforderungen

  1. Begrenzte Ressourcen:

    • Modelle müssen klein und effizient sein.

  2. Stromverbrauch:

    • Die Balance zwischen Leistung und Stromverbrauch ist entscheidend.

  3. Datenqualität:

    • Begrenzte Datenerfassungsmöglichkeiten auf MCUs.

  4. Debugging:

    • Das Debuggen von ML-Modellen auf MCUs kann schwierig sein.


Fazit

Die Implementierung von KI/ML auf leistungsschwachen MCUs ist eine leistungsstarke Möglichkeit, Intelligenz in Edge-Geräte zu bringen. Durch die Nutzung von Frameworks wie TensorFlow Lite für Mikrocontroller und Plattformen wie Edge Impulse können Sie schlanke Modelle bereitstellen, die effizient auf ressourcenbeschränkter Hardware laufen. Dies eröffnet Möglichkeiten für innovative Anwendungen in den Bereichen IoT, Wearables und eingebettete Systeme.

 
 
 
 
Ampheo