1. Account erstellen

Edge Impulse ist eine webbasierte Anwendung. Um Edge Impulse nutzen zu können, muss vorerst ein Account erstellt werde. Für unsere Zwecke ist ein kostenloser Account ausreichend, welcher über den folgenden Link erstellt werden kann:

https://studio.edgeimpulse.com/signup

2. Erstellen eines neuen Projektes

Nach der Anmeldung erscheint die Startseite. Hier sind die Projekte zu sehen, welche schon erstellt und bearbeitet wurden. Außerdem kann hier ein neues Projekt angelegt werden. Dafür muss die Schaltfläche „Create new project“ angeklickt werden:


Quelle: BBS2 Wolfsburg

Nun kann das Projekt benannt werden. Die vorausgewählten Einstellungen können beibehalten und die Erstellung des Projektes bestätigt werden, indem die grüne Schaltfläche „Create new project“ am Ende angeklickt wird.

Nun Öffnet sich das Dashboard des Projektes. Hier können einige genauere Anleitungen gefunden werden und weitere Einstellungen vorgenommen werden. Die voreingestellten Werte, die auf dem Dashboard erscheinen, müssen nicht weiter angepasst werden:


Quelle: BBS2 Wolfsburg

3.  Gerät verbinden, um Fotos aufzunehmen

Um das Modell mit Daten zu versorgen, gibt es zwei Möglichkeiten. Es können entweder schon vorhandene Daten hochgeladen oder eine Kamera verbunden werden, mit der die Bilder aufgenommen werden. In dieser Anleitung werden die Bilder mit Hilfe einer Handy Kamera aufgenommen.

Um das Handy als Gerät hinzuzufügen, muss der Punkt „Devices“ ausgewählt werden. Anschließend wird auf die Schaltfläche „+ Connect a new device“ geklickt:


Quelle: BBS2 Wolfsburg

Es öffnet sich ein Fenster, in dem sich für eine Möglichkeit der Verbindung entschieden werden kann. Da die Kamera des Handys benutzt werden soll, wird der QR-Code mit dem Handy gescannt:

Quelle: BBS2 Wolfsburg

Ist das Gerät erfolgreich verbunden erscheint es in der Liste „Your devices“.

Nun öffnet sich eine Internetseite, über welche die Fotos aufgenommen werden können. Zuerst muss die Art der zu sammelnden Daten ausgewählt werden. In diesem Fall „Images“. Anschließend muss die Kamera freigegeben werden.

4. Daten sammeln

Der Datensatz steht unter dem Menüpunkt „Data acquisition“ zur Verfügung.  Wenn schon bestehende Daten genutzt werden sollen, können diese mit Hilfe der Schaltfläche „+ Add data“ hochgeladen werden:


Quelle: BBS2 Wolfsburg

Über das verbundene Gerät können jetzt auch Daten hochgeladen werden. Hierfür wird die Kamera auf das gewünschte Objekt gerichtet und mit der Schaltfläche „Capture“ ein Bild aufgenommen, welches automatisch dem Projekt hinzugefügt wird:


Quelle: BBS2 Wolfsburg

Es sollten möglichst viele Bilder aufgenommen werden (am besten >500Stk.). Achten Auf eine vielfältige Variation ist zu achten. Das bedeutet: verschiedene Hintergründe, Perspektiven, Belichtungsgrade, Entfernungen zum Objekt, und Bilder, auf denen die Objekte einzeln, nur teilweise und auch gemeinsam zu sehen sind.

5. Daten labeln

Um die KI anzulernen, müssen die Bilder, welche gesammelt wurden, „gelabelt“ werden. Das bedeutet, dass alle Objekte, die auf den Bildern zu erkennen sind, gekennzeichnet werden. Um in diesen Bereich zu gelangen, muss die Schaltfläche „Labeling queue“ angeklickt werden:


Quelle: BBS2 Wolfsburg

In dem Bereich werden alle Daten nacheinander angezeigt. Mit Hilfe der Maus kann nun ein Kasten um das Objekt gezogen werden. Diesem Kasten wird dann ein Name gegeben, welcher dem Objekt zugeordnet wird:

Hinweis: Auf Leer- und Sonderzeichen sollte verzichtet werden, da diese von der Arduino IDE nicht korrekt angezeigt werden können!


Quelle: BBS2 Wolfsburg

Am Ende der Seite befindet sich die Schaltfläche „Save labels“. Diese sorgt dafür, dass die erstellten Labels für das jeweilige Bild gespeichert werden. Anschließen wird automatisch das nächste Bild geladen.

Sollten anschließend die Labels geändert werden, wird im „Dataset“ das gewünschte Bild ausgewählt. Über die drei Punkte ist der Menüpunkt „Edit labels“ erreichbar.

Mit Hilfe der drei Punkte können auch Daten gelöscht werden. Dies ist beispielweise sinnvoll, wenn die Qualität des Bildes schlecht ist.

6. Impulse erstellen

Wenn alle Bilder mit Labels versehen wurden, wird ein Impulse erstellt. Ein Impulse entspricht einem KI-Modell, wobei Impulse die Bezeichnung von Edge Impulse darstellt.

In dem Verzeichnis auf der linken Seite befindet sich der Menüpunkt „Impulse design“. Durch einen Klick auf diesen Menüpunkt, erscheint das Menü von „Create Impulse“. Hier befinden sich drei Blöcke.

Der erste Block „Image data“ ist bereits ausgefüllt. Hier befinden sich die Daten, die sich auf die vorher aufgenommenen Bilder beziehen. Definiert werden die Höhe und Breite des Bildes und die Art, wie das Bild zugeschnitten wird, um den Anforderungen zu entsprechen. Die Daten können einfach übernommen werden.

Daneben befindet sich die Schaltfläche „Add processing block“. Nach dem Klick auf diese Fläche, öffnet sich ein Fenster, in dem der passende Block für die Bildverarbeitung ausgewählt werden muss. Es befindet sich nur ein vorgefertigter Block in der Liste, welcher mit der Fläche „Add“ hinzugefügt werden kann:


Quelle: BBS2 Wolfsburg

Jetzt muss noch ein „Learning block“ hinzugefügt werden. Dafür wird die Fläche „Add learning block“ angeklickt und es erscheint eine Liste mit verschiedenen Auswahlmöglichkeiten. Für diese Zwecke wird der Block „Object detection“ ausgewählt und mit „Add“ hinzugefügt:


Quelle: BBS2 Wolfsburg

Schließlich wird die Auswahl aller Blöcke mit „Save Impulse“ gespeichert. Der Punkt, welcher sich neben „Create Impulse“ befindet, färbt sich nach erfolgreicher Sicherung grün:


Quelle: BBS2 Wolfsburg

Als nächster Unterpunkt folgt „Image“. Hier muss der Parameter „Color depth“ zu „Garyscale“ geändert werden. Anschließend wird die Auswahl mit „Save parameters“ gespeichert:


Quelle: BBS2 Wolfsburg

Nach kurzer Zeit folgt eine Weiterleitung zum „Training set“. Ein Klick auf die Fläche „Generate features“ startet das erste Training der KI. Dies kann einen Moment dauern:


Quelle: BBS2 Wolfsburg

Anschließend erscheint in dem Fenster „Feature explorer“ eine Grafik zur Objekterkennung. Je weniger Überschneidungen die einzelnen Objekte aufweisen, desto besser ist die Unterscheidung seitens der KI. Der Punkt neben „Image“ färbt sich danach grün:


Quelle: BBS2 Wolfsburg

Es kann nun zu dem Menüpunkt „Object detection“ fortgefahren werden. Dieser Menüpunkt baut das eigentliche Modell. Die „Neural Network settings“ bleiben bestehen. Es muss darauf geachtet werden, dass FOMO (Faster Objects, More Objects) als Modell ausgewählt ist. Letztlich wird mit einem Klick auf „Start training“ das Training gestartet. Dies dauert wieder einen Moment:


Quelle: BBS2 Wolfsburg

Im Output kann die Genauigkeit des Modells noch einmal abgelesen werden. Hierfür wird eine Wahrheitstabelle („Confusion Matrix“) abgebildet, die die Trefferquote der KI zeigt. Ist das Training abgeschlossen, färbt sich auch der letzte Punkt grün. Jetzt können wir aus dem Modell eine Arduino Bibliothek erstellen:


Quelle: BBS2 Wolfsburg

7. Arduino Bibliothek erstellen

Um das Modell in Arduino IDE nutzen zu können, wird aus dem Modell eine Bibliothek extra für Arduino erstellt. Hierzu wird der Menüpunkt „Deployment“ ausgewählt. Die sich davor befindenden Menüpunkte können bei Bedarf selbständig durchlaufen werden und dienen dazu, das Modell weiter zu detaillieren.

Unter „Search deployment Options“ kann die Arduino Library gefunden und mit einem Klick ausgewählt werden:


Quelle: BBS2 Wolfsburg

Der Enable Compiler sollte vorher schon korrekt ausgewählt sein. Es wird der „Quantized(int8)“ Compiler genutzt. Schließlich befindet sich am Ende der Seite die Fläche „Build“, welche bei anklicken den Vorgang zur Erstellung der Bibliothek startet:


Quelle: BBS2 Wolfsburg

Zuletzt wird automatisch eine ZIP-Datei heruntergeladen, welche die Bibliothek beinhaltet. Wie diese richtig eingebunden wird und wie man sie dann schließlich mit dem ESP32-CAM nutzt, wird im nächsten Artikel veranschaulicht.

Unser KI-Modell findet ihr hier:

https://www.xplore-dna.net/mod/resource/view.php?id=11468&forceview=1