Nach der erfolgreicher Installation des Labelingtool Lite, wie im vorherigen Artikel beschrieben, folgt jetzt eine kleine Einführung wie am besten die Bilder erstellt werden und das Labeltool Lite konfiguriert wird. Wichtig für das weitere folgen der Anleitung bis zum Training der neuronalen Netzse sind die Bilder die mit Labeln versehen werden sollen. Sie werden lernen wie Klassen definiert werden die die Informationen in den Bildern unterteilen. Diese Klassen müssen vorab definiert und im Labeltool Lite hinterlegt werden. Damit das alles ohne Probleme klappt habe ich wieder Schritt für Schritt im folgenden Artikel das Vorgehen beschrieben. Weiter wird auch auf ein paar Eigenheiten des Labeltool Lites eingegangen damit die Bedienung leichter und vorallem ohne Probleme klappt. Dazu habe ich den einen oder anderen Hinweis einfließen lassen. So sollte es Ihnen leicht fallen gute Trainingsdaten mit dem Labeltool Lite für das Training der neuronalen Netze zu erstellen.
Trainingsdaten erstellen
Wichtig bei den Trainingsdaten ist, dass diese so gut wie möglich die fachlichen Anforderungen wiederspiegeln. Nur so kann erfolgreich ein neuronales Netz trainiert werden das zufriedenstellende Ergebnisse liefert. Das bedeutet das bereits beim Erstellen der Trainingsbilder Überlegungen getroffen werden müssen wie die Trainingsbilder aufgezeichnet werden müssen. Mehr dazu werde ich im folgenden Absatz erläutern.
In diesem Abschnitt geht es darum wie am besten Bilder für das Training eines neuronalen Netzes aufgenommen und mit Labeln versehen werden. Gleich zu Beginn der eigenen AI Anwendung sollten Sie sich Gedanken darüber machen wie die Trainingsbilder erstellt werden. Denn der große Aufwand jeder AI Anwendung steckt immer noch in der Erstellung der Trainingsdaten und das beginnt in unserem Fall der No-Code AI Pipleine damit Trainingsbilder zu sammeln oder selber zu erstellen. Hat man die Möglichkeit automatisiert Trainingsbilder von einem Objekt aufzuzeichnen dann würde ich folgendes Vorgehen Emfpehlen:
- Die Trainingsbilder in einer sehr hohen Auflösung aufzeichnen.
- Denn die Auflösung der Bilder kann später automatisiert skaliert also reduziert werden.
- Der vorteil die Bilder mit einer sehr hohen Auflösung aufzunemen liegt darin, dass man auch Jahre später die Chance hat diese Bilder für andere Anwendungsfälle weiter zu verwenden.
- Die Biler sollten in Farbe aufgezeichnet werden.
- Sollte für das Training des neuronalen Netzes und später für die geplante Anwendung z. B. Monochrome Bilder ausreichen so können die in Farbe aufgezeichneten Biler in einem zusätzlichen Durchlauf in andere Farbräume umgewandelt werden.
- Die Bilder direkt sinnvoll bennen.
- Ein guter Name ist ein beschreibender Name wie das aufgenommene Objekt heißt bzw. was es darstellt mit einer laufenden Nummer.
- Automatische Dateinamen der Kamera wie DCM102003 führen zu viele Probleme in der späteren Verwendung dieser Bilder durch Menschen.
Trainingsdaten vorbereiten
Gerne möchte ich Sie jetzt in meine Erfahrungen und Gedanken mitnehmen wie am besten die Trainingsdaten vorbereitet werden können. Das TechOffice Munich von BMW bietet hier auch OpenSource Lösungen an wie das „“ aber dazu möchte ich dann in einem separaten Beitrag mehr schreiben.
- Die Auflösung der Trainingsbilder richtig wählen.
- Die Bilder sollten sich an der typischen Auflösung des später im Training ausgewählten vortrainierte neuronalen Netzes orientieren.
- Eine typische Auflösung wäre 1024×800 Pixel die als Eingangsbild von dem vortrainierten neuronalen Netz erwartet wird.
- Nutzt die eigene AI Anwendung später monochrome Bilder so sollten diese auch jetzt in diesen Farbraum vor dem Training und Labeling umgewandelt werden.
- Die Größe der Bilddateien
- Auch ist es möglich die Kompression der Bilder die für das Training verwendet werden ziemlich hoch zu stellen. So wird Platz im Speicher der Grafikkarte eingespart und das Training läuft schneller.
- Hier gilt es aber auszuprobieren welche Einstellungen die besten Ergebnisse liefern. So einfach ist das häufig dann doch nicht das Optimum zwischen Ressourcen sparen und Qualität des neuronalen Netzes heraus zu holen
Mit diesen Vorschlägen und Gedanken sind Sie gut vorbereitet mit dem Labeling der Bilder zu starten. Denn wir müssen ja auch einmal anfangen um überhaupt Erfahrungen sammeln zu können.
Labeltool Lite – Bilder einspielen
Dem Labeltool Lite müssen zunächst einmal die Bilder bekannt gemacht werden. Da ich bereits für einen internen Wettbewerb bei BMW viele Bilder erstellt hatte bietet es sich an diese Bilder jetzt auch in dieser Anleitung weiter zu verwenden. Mit diesem Datensatz werden Sie ein einfaches neuronales Netz trainieren können das die Objekte also in diesem Fall kleinen Figuren auf den Test-Bildern wieder erkennen wird. Das Ziel ist es ja erst einmal zu verstehen wie alles funktioniert und vor allem ein Erfolgserlebnis zu haben. Sind Sie sich dann sicher das alles geht dann starten Sie mit ihren eigenen Bildern und werden mit Sicherheit ein viel breiteres neuronales Netz trainieren das deutlich besser ihre Objekte erkennen wird.
Die Bilder die wir in der weiteren Anleitung verwenden werden können über den folgenden Pfad als ZIP-Datei herunter geladen werden. Diese ZIP Datei enthält noch nicht die fertigen Labels. Diese müssen Sie jetzt mit dem Labeltool Lite selber um die kleinen Figuren herum setzen.
Download: https://www.ai-box.eu/smurf_training_data_small.zip
Nach dem Sie ZIP-Datei herunter geladen haben muss diese noch entpackt werden. Nach dem entpacken liegt bei ihnen auf dem Rechner ein Ordner mit dem Namen smurf_data in dem die Bildern abgelegt sind. Diesen Ordner smurf_data mit den Bildern kopieren Sie an die folgende Stelle innerhalb des Labeltool Lite. So kann das Labeltool Lite auf die Bilder zugreifen.
Pfad: ~/BMW-Labeltool-Lite/data/training-data/
Nach dem Sie den Ordner kopiert haben öffnen Sie bitte die objectclasses.json Datei die in dem Ordner mit den Bildern liegt. Wie der Dateiname objectclasses.json schon erahnen läßt werden hier die Klassen definiert der Objekte die im Bild mit Labeln versehen werden sollen.
Pfad: ~/BMW-Labeltool-Lite/data/training-data/smurf_data/
Wenn Sie die objectclasses.json Datei geöffnet haben, dann sehen Sie die Klassen bzw. die Informationen die Sie später als Label im Labeltool Lite auswählen können wenn Sie die Bilder mit Labeln versehen werden. Die folgende Abbildung zeigt den Aufbau der Konfigurationsdatei objectclasses.json.
No Code AI Pipeline objectclasses smurf
Damit der neu angelegte Ordner smurf_data mit den Bildern auch im Labeltool Lite ausgewählt werden kann muss noch die topics.json Datei angepasst werden. In dieser Konfigurationsdatei werden die Ordner mit den Bilder verwaltet bzw. dem Labeltool Lite bekannt gemacht die mit Labeln versehen werden sollen. Die topics.json Datei liegt im folgenden Pfad des installierten Labeltool Lite.
Pfad: ~/BMW-Labeltool-Lite/data/training-data
Der Aufbau der Datei ist sehr strukturiert und kommt ein neuer Eintrag also Ordner mit Bildern hinzu kopieren Sie einfach den vorhergehenden Eintrag und passen diesen entsprechend von der ID, dem Namen sowie Pfad an. Achten Sie bitte darauf auch das Komma zwischen vorherigen und neuen Eintrag zu setzen wie dies in folgender Abbildung zu sehen ist.
No Code AI Pipeline topics json
Jetzt ist alles vorbereitet und Sie können mit den Labeln der Bilder im Labeltool Lite starten. Dazu starten Sie das Labeltool Lite mit dem folgenden Befehl.
Befehl: sudo docker-compose up
Das Labeltool Lite wäre nach dem es gestartet ist über die folgende URL <IP-Adresse>:8081 über das Netzwerk aufrufbar. Denn bei der Installation des Labeltool Lite wurde die IP-Adresse des Rechners in der Installationsdatei hinterlegt auf dem das Labeltool Lite installiert ist.
Im jetzt folgenden Beitrag wird Schritt für Schritt erklärt wie das Labeltool Lite bedient wird.
Artikelübersicht - Wie setze ich die AI Pipeline auf:
AI Pipeline - Vorstellung der AnleitungAI Pipeline - Die No-Code AI Pipeline ein Überblick
AI Pipeline - Die drei Bestandteile der No-Code AI Pipeline
AI Pipeline - Grundlagen zum Thema AI 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 der Trainingsdaten
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 - Inference 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 Download
AI Pipeline - Bilder und Video Anonymization API
Ich weiss, es ist noch im Aufbau. Aber hier ist ein Broken Link: https://www.ai-box.eu/smurf_training_data_small.zip
Freue mich drauf, die ganze Serie auszuprobieren. Danke für die viele Arbeit!
Hi Dennis,
vielen Dank für den Hinweis, ich habe die URLs angepasst so das diese wieder gehen.
Ich bin gespannt wie gut Du durch die kleine Anleitung durch kommst und freue mich natürlich über Feedback.
Viele Grüße,
Maker