13.1.16. Der Model Zoo und die NPU-Konvertierung

Die IDE wird mit einer Bibliothek vortrainierter Machine-Learning-Modelle ausgeliefert – Gesichtserkennung, Personenerkennung, Objekterkennung, Posenschätzung und mehr – die über die Ressourcen-Updates der IDE aktuell gehalten wird. Tools → Machine Vision → Open Model Zoo durchsucht sie: Wähle ein Modell, um seine Beschreibungsseite neben dem Dateibaum zu sehen, und setze den Filter, um die Liste auf Modelle einzugrenzen, die zu deinem Board passen.

Der Model-Zoo-Browser: links der Modellbaum mit einem ausgewählten Modell, rechts seine Beschreibungsseite und unten das Kontrollkästchen zum Filtern nach Board-Typ

Der Model-Zoo-Browser mit einem ausgewählten Modell und geöffneter Beschreibungsseite.

Wähle ein Modell, und die IDE kopiert es ausführbereit heraus: Sie konvertiert das Modell für den NPU-Beschleuniger des Zielboards, wenn das Board einen besitzt, kopiert die passende Labels-Datei daneben und setzt als Ziel standardmäßig das Laufwerk der verbundenen Kamera. Von dort aus ist die Skriptseite nur noch einen ml.Model-Konstruktoraufruf entfernt. Derselbe Browser ist auch aus dem ROMFS-Editor erreichbar, der das bessere Ziel für Modelle auf Boards mit ROMFS ist – Modelle im ROMFS werden direkt aus dem Flash ausgeführt, ohne eine RAM-Kopie.

13.1.16.1. Andere Modelle konvertieren

Tools → Machine Vision → Convert Model for NPU führt dieselbe Konvertierung an einem Modell von irgendwoher sonst durch – einem mit Edge Impulse oder Roboflow trainierten, aus einem Trainings-Framework exportierten oder heruntergeladenen. Boards mit NPU haben jeweils einen Hersteller-Compiler, den die IDE mitliefert und ansteuert: Ethos-U-NPUs verwenden Vela, und ST-Neural-ART-NPUs verwenden ST Edge AI. Das Werkzeug übernimmt das Zielboard von der verbundenen Kamera (oder fragt nach, wenn keine verbunden ist) und nimmt die Modelldatei von dir entgegen. Ein bereits konvertiertes Modell wird erkannt und einfach kopiert, und wenn das ausgewählte Board keine NPU hat, sagt das Werkzeug dies und überspringt die Konvertierung – ein unkonvertiertes Modell läuft auf diesen Boards dennoch, auf der CPU.

Auf NPU-Boards ist die Konvertierung nicht optional: Im besten Fall fällt ein unkonvertiertes Modell auf die CPU zurück und läuft um ein Vielfaches langsamer, und auf manchen Boards läuft es überhaupt nicht. Der ROMFS-Editor und der Model Zoo wenden die Konvertierung automatisch an; dieser Menüeintrag existiert für Modelle, die auf anderen Wegen eintreffen.

Siehe auch

Das Kapitel über maschinelles Lernen für das Ausführen von Modellen mit dem ml-Modul und das Trainieren eigener Modelle.