Roboter-Autos mit dem Raspberry Pi

Roboter Autos mit dem Raspberry Pi - 2019

Die BMW-Tensorflow-Object-Detection-Training-GUI ist bereits auf ihrem Rechner installiert und Sie haben die umfangreiche Anleitung erfolgreich gemeistert. Jetzt folgt die Erklärung wie Sie die Training Suite das erste Mal ausführen. Auch werde ich auf ein paar Optimierungen eingehen damit die Trainingsdaten aus dem Labeltool Lite direkt in der Trainings Suite für das Training der neuronalen Netze zur Verfügung stehen. Der Anwender muss nur noch seine fachlichen Anforderung verkörpert durch die zuvor erstellen Trainingsdaten den vortrainierten neuronalen Netzen beibringen. So ist es möglich hervorragende Ergebnisse zu erzielen ohne AI Profi zu sein oder viele Ressourcen in Hardware, Energie, Trainingsdaten und speziellem AI Wissen stecken zu müssen.

Training Suite ausführen

Nach dem alles Konfiguriert wurde und die Images gebaut wurden ist es an der Zeit die Training Suite das erste Mal auszuführen. Dabei wird wieder zwischen dem Befehl für die GPU und CPU Version unterschieden. Daher nachfolgend wieder die beiden unterschiedlichen Aufrufe.

GPU Version starten

Befehl: sudo docker-compose -f run_gpu.yml up

CPU Version starten

Befehl: sudo docker-compose -f run_cpu.yml up

Die Ausgabe im Terminal Fenster sollte jetzt wie in nachfolgender Abbildung für die Training Suite in der GPU Version aussehen

No Code AI Pipeline start training suite gpu

No Code AI Pipeline start training suite gpu

Jetzt ist die Training Suite gestartet und kann über die IP Adresse des Rechners gefolgt vom Port <IP Adresse>:<Port> geöffnet werden.

Beispiel URL: 192.168.2.174:4200

Im Browser (bitte immer den Chrome Browser verwenden) ist jetzt die Training Suite zu sehen und sollte wie folgt aussehen

Hinweis: Port

Der Port über dem das Frontend der Training Suite erreichbar ist kann in der run_gpu.yml  bzw. run_cpu.yml ebenfalls angepasst werden. Die Änderung muss dann in Zeile 21 im Abschnitt ports vorgenommen werden.

Noch sind nicht alle Parameter gesetzt damit die AI Pipeline als solches übergreifend zwischen Labeltool Lite und Training Suite funktioniert. Als letzter Punkt muss noch manuell eine Anpassung des Ablageort der Trainingsdaten am Labeltool Lite vorgenommen werden. Andernfalls stehen keine Daten für das Training der neuronalen Netze in der Training Suite automatisch nach dem Labeln zur Verfügung.

Ablageort der Trainingsdaten in der Training Suite

Damit die Bilder die im Labeltool Lite mit Labeln versehen werden auch in der Training Suite für das Training der neuronalen Netze automatisch verfügbar sind müssen diese Bilder und ihre Labels im folgenden Ziel-Pfad liegen. Denn genau in diesem Pfad prüft die Trainings Suite ob Trainingsbilder vorhanden sind oder eben nicht.

Ziel-Pfad: /home/<username>/BMW-Tensorflow-Object-Detection-Training-GUI/datasets

Daher müssen jetzt einmal die Bilder aus dem Labeltool Lite in die Training Suite kopiert werden. Die Bilder und ihre Labels liegen aktuell noch im Labeltool Lite im nachfolgenden Dateipfad.

Quell-Pfad: /home/<username>/BMW-Labeltool-Lite/data/training-data

Kopieren Sie jetzt die Ordner mit den Bildern die im genannten Quell-Pfad (Labeltool Lite) liegen in den Ziel-Pfad (Training Suite). Dazu können Sie z. B. den Midnight Commander verwenden.

Trainingsdaten Management Labeltool Lite

Damit zukünftig das Kopieren der Trainingsdaten aus dem Labteltool Lite heraus in die Training Suite entfällt und vorallem auch damit das die Trainingsdaten nicht doppelt auf dem Rechner gehalten werden müssen sollte der Pfad zu den Trainingsdaten im Labeltool Lite  jetzt einmal angepasst werden. So entsteht eine durchgängige AI Pipeline mit einem einzigen Anlageort für die Trainingsdaten innerhalb der Training Suite.

Hinweis: Ablageort der Bilder

Meine Erfahrung hat gezeigt wenn ca. 435 Nutzer das Labeltool Lite nutzen kommen große Mengen an Trainingsdaten zusammen. Daher wäre für die Ablage der Bilder je nach Grad der Nutzung der No-Code AI Pipeline ein Laufwerk mit großer Kapazität und schnellen Lesezugriff sehr zu empfehlen. Denn nur so kann später die Training Suite effizient mit den Trainingsdaten beim Training der neuronalen Netze versorgt werden. Auf die Konfiguration des Ablageortes für die Bilder bzw. Trainingsdaten wird nachfolgend noch genauer eingegangen.

In der nachfolgender Abbildung ist genau dieses Management der Trainingsdaten über einen zentralen Ablageort dargestellt. Das Labeltool Lite auf der linken Seite des Bildes teilt sich mit der Training Suite auf der rechten Seite des Bildes die gleiche Datenbasis. Der Unterschied ist, dass das Labeltool Lite auch schreibend auf den Ordner zugreift um die Labels der Bilder dort ablegen zu können. Die Training Suite greift lediglich lesen auf den Ordner mit den Bildern und Labeln zu für das Training der neuronalen Netze.

No Code AI Pipeline training data management

No Code AI Pipeline training data management

Damit das Labeltool Lite den neuen Ablageort der innerhalb der Training Suite liegt kennt muss dieser Pfad dorthin noch im Labeltool Lite hinterlegt werden. Dazu muss die Konfigurationsdatei docker-compose.yml des Labeltool Lite angepasst werden.

Jetzt hinterlegen Sie den Pfad für in dem die Trainingsdaten liegen in der Datei docker-compose.yml. Die Konfigurationsdatei liegt im folgenden Pfad und Sie können diese z. B. mit dem Texteditor Nano im Terminal Fenster öffnen.

Pfad: /home/<username>/BMW-Labeltool-Lite/docker-compose.yml

Der Befehl um die docker-compose.yml Datei im Terminal Fenster mit dem Texteditor NANO zu öffnen lautet wie folgt.

Befehl: nano ~/BMW-Labeltool-Lite/docker-compose.yml

Die Training Suite wurde wie im vorheringen Abschnitt beschrieben in den Ordner /home/<username>/BMW-BMW-Tensorflow-Object-Detection-Training-GUI/ herunter geladen. In diesem Pfad der Training Suite gibt es den Unterordner mit dem Namen datasets. In diesem Ordner liegen jetzt und zukünftig die Bilder also die Trainingsdaten die für das Training der neuronalen Netze benötigt werden. Auch werden hier alle Bilder zukünftig abgelegt die mit Labeln aus dem Labeltool Lite versehen werden sollen.

Daher muss dieser Pfad in der docker-compose.yml Datei des Labeltool Lite hinterlegt werden damit das Labeltool-Lite und die Training Suite zusammen sich diese Ordner teilen.

Damit lautet der anzupassende Pfad in der docker-compose.yml zu den Trainingsdaten wie folgt.

Pfad: /home/<username>/BMW-Tensorflow-Object-Detection-Training-GUI/datasets

Jetzt wird dieser Pfad der auf die Trainingsdaten verweist wie im Abschnitt volumes der docker-compose.yml Datei hinterlegt. In der nachfolgender Abbildung in der Zeile 14 ist genau die Anpassung zu sehen die Sie vorzunehmen haben. Der Platzhalter <username> muss durch den von Ihnen verwendeten Usernamen ersetzt werden damit der Pfad auch wirklich gültig ist.

No Code AI Pipeline path training data

No Code AI Pipeline path training data

Ist der Pfad zu den Bildern wie beschrieben in der docker-compose.yml Datei des Labelttol Lite hinterlegt teilen sich das Labeltool Lite und die Training Suite dieselbe Datenbasis für das Labeln der Bilder und für das Trainieren der neuronalen Netze.

Es kann passieren, dass nach der Anpassung einer Konfiguration wie dem Pfad im vorherigen Fall diese Anpassung nicht übernommen wird und das Labeltool Lite nicht mehr richtig funktioniert. Wenn das passiert dann muss das Labeltool Lite mit dem folgenden build Befehl neu gebaut werden.

Der Befehl der dann in solch einem Fall hilft sieht wie folgt aus.

Befehl: sudo docker-compose build –no-cache

Ein maschinell erstellter und fertig mit Labeln versehender Datensatz der kleinen Figuren ist über den folgenden Link verfügbar. Dieser Datensatz enthält 1750 Bilder hat aber immer noch die Schwäche, dass die Figuren alle nur aus einer Perspektive fotografiert wurden. Dafür zeigt der Datensatz aber die Möglichkeiten wie auf einfache Art und Weise viele tausend Datensätze mehr erzeugt werden können mit den Tools des TechOffice Munich der BMW AG die für ein Training eines neuronalen Netzes verwendet werden können.

      Download URL: https://www.blogyourearth.com/smurf_augment_export.zip

Das soll heißen, dass jetzt zwar mit diesem größeren Datensatz ein besseres neuronales Netz trainiert werden kann aber dieses immer noch sehr eingeschränkt funktioniert.

Auch hier muss ihnen wieder klar werden das nicht die Tools das Wertvolle sind und der daraus aufgebauten AI Pipeline sondern das die Daten die für das Training von neuronalen Netzen verwendet werden können den eigentlichen Wert darstellen. Das bedarf vorallem in Deutschland immer noch einem umdenken.

In in einem weiteren Artiekl wird ein Video anonymisiert mit diesen kleinen Figuren und dort ist zu sehen, dass beim Wechsel der Perspektive das mit diesen Daten trainierte neuronale Netz immer noch Schwächen in der Erkennung hat.

Zusammenfassung und Platzbedarf

Mit dem Abschluss dieses Beotrages ist die Training Suite konfiguriert und installiert. Jetzt sind Sie schon einen ganzen Schritt voran gekommen die No-Code AI Pipeline nutzen zu können. Im nun folgenden Beitrag geht es dann darum einmal die Training Suite zu nutzen vom Training eines neuronalen Netzes bis hin zur Auswertung von Informationen in einem Bild der Vorhersage.

Der bis hier hin gemessene Platzbedarf auf dem Systemlaufwerk für die zusätzlich installierte Software beläuft sich auf ca. 1,5 GB.

Initialer freier Speicher Aktuell freier Speicher Verbrauchter Speicher
20,3 GB 21,8 GB 1,5 GB

Artikelübersicht - Wie setze ich die AI Pipeline auf:

AI Pipeline - Vorstellung der Anleitung
AI Pipeline - Die No-Code AI Pipeline ein Überblick
AI Pipeline - Die No-Code AI Pipeline die Bestandteile
AI Pipeline - Grundlagen zum Thema Hardware
AI Pipeline - Hardware Beispiel-Konfigurationen
AI Pipeline - Software Installation der No-Code AI Pipeline
AI Pipeline - Labeltool Lite - Installation
AI Pipeline - Labeltool Lite - Vorbereitung
AI Pipeline - Labeltool Lite - Bedienung
AI Pipeline - Tensorflow-Object-Detection-Training-GUI - Installation
AI Pipeline - Tensorflow-Object-Detection-Training-GUI - Ausführen
AI Pipeline – Tensorflow-Object-Detection-Training-GUI - Bedienung
AI Pipeline – Tensorflow-Object-Detection-Training-GUI - SWAGGER API testen des neuronalen Netzes
AI Pipeline - AI Image App Einrichten und Bedienen - Teil 1-2
AI Pipeline - AI Image App Einrichten und Bedienen - Teil 2-2
AI Pipeline - Trainingsdaten
AI Pipeline - Anonymization-Api

BlogYourEarth


Ich lebe in Bayern nahe München. In meinem Kopf habe ich immer viele Themen und probiert gerade im Bereich Internet neue Medien viel in meiner Freizeit aus. Ich schreibe an dem Blog da es mir Spaß macht über die Dinge zu berichten die mich begeistern. Ich freue mich über jeden Kommentar, über Anregung aber auch über Fragen.

(Visited 8 times, 1 visits today)