13.6. Edge Impulse

Edge Impulse ist eine durchgängige Plattform zum Erstellen von Machine-Learning-Modellen, die auf Mikrocontrollern laufen: Daten erfassen und labeln, ein Modell im Browser entwerfen und trainieren und es so optimieren, dass es auf ein in Kilobyte gemessenes Gerät passt. Die Bereitstellung erfolgt direkt auf OpenMV – mit wenigen Klicks wird aus einem trainierten Modell eine Reihe von Dateien, die auf der Kamera ausführbar sind. Die Dokumentation von Edge Impulse geht auf jeden Schritt detaillierter ein.

13.6.1. Daten einlesen

Ein Modell liefert die besten Ergebnisse bei genau der Art von Bildern, mit der es trainiert wurde. Erfassen Sie den Datensatz daher mit der Kamera, die ihn später ausführen wird. Der Datensatz-Editor der IDE ist genau dafür gemacht – erstellen Sie Klassenordner, erfassen Sie gelabelte Bilder aus dem Live-Framebuffer und laden Sie den Datensatz dann über das Untermenü Export direkt in ein Edge-Impulse-Projekt hoch (melden Sie sich dort zuvor bei Ihrem Konto an). Ab diesem Punkt arbeiten Sie in Edge Impulse Studio.

Siehe auch

Die OpenMV-Cam-Einrichtungsanleitung von Edge Impulse zum Installieren der Werkzeuge und Anschließen der Kamera.

13.6.2. Training

Das Training findet vollständig im Browser statt: Entwerfen Sie einen Impulse (die Blöcke für Eingabe, Verarbeitung und Lernen), trainieren Sie ihn und prüfen Sie die Genauigkeit anhand der zurückgehaltenen Testdaten.

Zwei Modelltypen eignen sich für die Kamera. Ein Bildklassifikator gibt eine Liste von Klassenwerten aus, die Sie direkt aus der Ausgabe des Modells ablesen – ohne Nachbearbeitung. FOMO, ein schneller, für Mikrocontroller entworfener Objektdetektor, benötigt einen Dekodierschritt, und die Kamera bringt dafür einen Postprozessor mit (ml.postprocessing.edgeimpulse), sodass auch diese Modelle ohne zusätzlichen Code laufen.

13.6.3. Bereitstellung auf der Kamera

Öffnen Sie nach Abschluss des Trainings die Seite Deployment des Projekts, wählen Sie das Ziel OpenMV Library und klicken Sie auf Build. Der Download ist eine ZIP-Datei, die das trainierte Modell (trained.tflite), seine Labels (labels.txt) und ein Beispielskript enthält. Das Modell ist ganzzahlig quantisiert. Edge Impulse behandelt dies und die Alternative mit benutzerdefinierter Firmware in seiner Anleitung zur Ausführung auf OpenMV.

Fügen Sie die .tflite-Datei der Kamera mit dem ROMFS-Editor der IDE hinzu, der sie für die NPU des Boards konvertiert, sofern eine vorhanden ist, und laden Sie sie in einem Skript mit ml.Model. Modelle laufen auch vom Flash-Laufwerk der Kamera – kopieren Sie die Dateien dorthin und richten Sie ml.Model auf den Pfad aus – aber ROMFS ist der bessere Speicherort: Modelle dort werden direkt aus dem Flash ausgeführt, ohne eine Kopie im RAM.

Siehe auch

Das Kapitel über maschinelles Lernen zum Ausführen von Modellen mit dem ml-Modul – Laden, die Inferenz-Pipeline und das Dekodieren der Ausgabe.