Die BMW Tensorflow Object Detection Training GUI ist das Herzstück der No-Code AI Pipeline. Sie ist die Antwort die Komplexität des Trainings von neuronalen Netzen vor dem Anwender zu kapseln und das Training von neuronalen Netzen so einfach wie irgendwie möglich zu gestalten. Der Anwender kann wenn er mag mit ein paar wenigen Mausklicks sein eigenes neuronales Netz trainieren. Dank der vielen verfügbaren vortrainierten neuronalen Netze aus dem Tensorflow Model Zoo werden in kürzester Zeit sehr gute Ergenisse auch mit wenigen Trainingsdaten möglich. Allerdings ist die Konfiguration und anschließende Installation der Training Suite umfangreich und bedarf ihrer vollen Aufmerksamkeit damit keine Fehler passieren.

Mit der BMW-Tensorflow-Object-Detection-Training-GUI, nachfolgend kurz als Training Suite bezeichnet, erhalten Sie eine dem aktuellen Stand der Technik entsprechende Lösung für das Training von neuronalen Netzen. Innerhalb der Training Suite steht eine kleine Auswahl an bereits vortrainierter neuronaler Netze zur Verfügung die aus dem TensorFlow Model Zoo stammen. Mit diesen bereits erprobten und vortrainierten neuronalen Netzen können Sie durch deren Verwendung viel Zeit und Energie einsparen. Daher eignen sich diese Netze sehr gut um als Ausgangspunkt für die eigene fachliche Anforderung genutzt zu werden. Eine Übersicht über die verschiedenen vortrainierten neuronalen Netze die im TensorFlow Model Zoo angeboten werden können Sie sich über die nachfolgende URL im Detail ansehen.

URL Model Zoo: https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf2_detection_zoo.md

Mit diesem Wissen im Kopf und welches Netz für welchen fachlichen Zweck gut geeignet ist können Sie dann die eigenen neuronalen Netze trainieren.

Hinweis: Zeitaufwand

Die Zeit die für die Installation der Training Suite wie nachfolgende beschrieben wird ca. 1 Stunde benötigt. Die meiste Zeit davon nimmt der Installationsprozess in Anspruch um die notwendigen Daten aus dem Internet herunter zu laden. In dieser Zeit können Sie parallel etwas anderes machen wie einen frischen Kaffee trinken.

NVIDIA Docker Unterstützung installieren

Es muss noch die NVIDIA Docker Toolkit installiert werden, damit das Build der Training Suite im nächsten Schritt unter Docker ohne Probleme funktioniert und die Training Suite gestartet werden kann.

Eine Beschreibung wie Sie die Installation durchführen ist unter der folgenden URL zu finden und idealerweise folgen Sie dieser.

URL: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit

Nach der erfolgreichen Installation des NVIDIA Docker Toolkit testen Sie bitte ob die Installation geklappt hat mit dem folgenden Befehl.

Befehl: sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi

Beim ersten Ausführen des Befehls werden noch einige hundert MB an Dateien wie Images herunter geladen die NVIDIA Docker für seine Funktion benötigt.

Anschließend sollte die Anzeige wie nachfolgende in Abbildung gezeigt aussehen. Erscheint eine Ausgabe in dieser Form war die Installation von NVIDIA Docker erfolgreich.

No Code AI Pipeline NVIDIA SMI output

No Code AI Pipeline NVIDIA SMI output

Bitte starten Sie jetzt den Rechner neu.

Befehl: sudo reboot

Herunterladen der Software und Prüfungen ausführen

Mit dem folgenden Befehl wird jetzt das Repository der Tensorflow Object Detection Training GUI herunter geladen.

Das Repository liegt unter der folgenden URL auf dem GitHub Account des BMW InnovationsLab bzw. TechOffices Munich. Sie können die URL öffnen um sich über die Software zu informieren.

URL: https://github.com/BMW-InnovationLab/BMW-TensorFlow-Training-GUI

Zurück im Terminal Fenster an ihrem Ubuntu System führen Sie jetzt den folgenden Befehl aus um dieses Repository herunter zu laden.

Befehl: git clone https://github.com/BMW-InnovationLab/BMW-TensorFlow-Training-GUI.git

Nach dem das Repository erfolgreich heruntergeladen wurde müssen eine Reihe von Befehle ausgeführt werden um Tensorflow Object Detection Training GUI komplett zu installieren. Bitte führen Sie alle jetzt folgenden Befehle in der vorgegebenen Reihenfolge aus.

Befehl: cd BMW-TensorFlow-Training-GUI

Jetzt muss zur Absicherung einer erfolgreichen Installation noch geprüft werden ob Docker und Docker-Compose wie in dem voran gegangenen Artikel beschriebe auch richtig installiert wurden.

Prüfen ob docker-ce bereits installiert ist:

Befehl: docker --version

Sollte keine Docker Version gefunden werden dann muss der Installationsprozess aus dem Artikel AI Pipeline – Software Installation der No-Code AI Pipeline nachgeholt werden.

Mit dem nachfolgenden Befehl prüfen Sie ob docker-compose bereits installiert ist:

Befehl: docker-compose --version

Sollte keine Docker-Compose Version gefunden werden dann muss der Installationsprozess aus dem Artikel AI Pipeline – Software Installation der No-Code AI Pipeline nachgeholt werden.

Mit dem nachfolgenden Befehl prüfen Sie ob docker-compose bereits installiert ist:

Befehl: dpkg -l | grep nvidia-docker

Jetzt erfolgt noch die Prüfung ob die Nvidia CUDA 11.2 Version installiert ist. Die Installation von NVIDIA CUDA 11.2 wurde in dem Artikel AI Pipeline – Software Installation der No-Code AI Pipeline im Detail beschriebe.

Befehl: nvidia-smi

Wenn die Prüfung ins Leere läuft also kein Ergebnis liefert dann muss noch die NVIDIA CUDA 11.2 Version wie beschrieben installiert werden.

Jetzt sollte alles soweit installiert sein das es mit der Konfiguration der Training Suite weiter gehen kann

Training Suite – Konfiguration

Die Training Suite unterstützt die zwei Welten CPU und GPU. Je nach dem über welche Hardware Sie verfügen müssen Sie sich für eine dieser Welten entscheiden. Ich gehe wie ziemlich früh in dieser Anleitung erwähnt davon aus, dass eine NVIDIA GPU in dem Zielrechner verbaut ist. Das bedeutet also falls keine NVIDIA GPU in ihrem Rechner vorhanden ist dann muss die CPU Installation ausgewählt werden. Wenn aber eine GPU vorhanden ist dann sollte die GPU Version der Installation der Training Suite gewählt werden.

Mit dem folgenden Befehl werden verschiedene Konfigurationen der Training Suite bereits vor der Installation über ein einfaches Text Menü festgelegt. Entsprechend der getroffenen Auswahl wird anschließend die Installation ausgeführt. Damit das kleine Text-Menü angezeigt wird führen Sie bitte den folgenden Befehl im Terminal Fenster aus.

Befehl: chmod +x setup_solution_parameters.sh && source setup_solution_parameters.sh

Ist in dem Rechner eine GPU verbaut die für das Training der neuronalen Netze eingesetzt werden soll so muss die Option 1 getroffen werden. Soll die CPU verwendet werden dann ist die Option 2 zu wählen. Das beschriebene Menü ist in nachfolgender Abbildung zu sehen.

No Code AI Pipeline Trainings GUI installation selection gpu

No Code AI Pipeline Trainings GUI installation selection gpu

Nach dem der Typ der Installation festgelegt wurde (1 oder 2) geht es weiter in der geführten Auswahl der verschiedenen Optionen.

Im nächsten Schritt muss die Netzwerkkarte gewählt werden über die die Training Suite im Netzwerk erreichbar sein soll. Die verschiedenen Optionen sind Beispielhaft in nachfolgender Abbildung zu sehen.

No Code AI Pipeline Trainings GUI installation selection network

No Code AI Pipeline Trainings GUI installation selection network

In Firmennetzwerken häufig relevant aber nicht in privaten Netzwerken ist das Setzen eines Proxy über den die Kommunikation erfolgt. Das kann mit der Option wie in nachfolgender Abbildung gezeigt vorgenommen werden. Ich habe auf das Setzen eines Proxy in meinem Setup verzichtet.

No Code AI Pipeline Trainings GUI installation selection proxy

No Code AI Pipeline Trainings GUI installation selection proxy

Hier noch von der Bezeichnung etwas irre führend aber mit dem jetzt folgenden Menü werden die vortrainierten neuronalen Netze aus dem Tensorflow Model Zoo ausgewählt. Die jetzt ausgewählten neuronalen Netze bilden später die Basis auf der das Training des eigenen Netz gestartet wird. Das spart Ihnen viele Stunden Trainingszeit ein und führt mit wenige Aufwand im Sinne von Trainingsdaten, Zeit und Energie zu sehr guten Ergebnissen. Ich empfehle immer alle Netze herunter zu laden um die maximale Flexibilität zu haben.

Daher empfehle ich, wenn es die Internetanbindung und Speicherplatz zulassen, die Option select_all auszuwählen. Allerdings dauert das Herunterladen aller gewählten neuronalen Netze dann je nach Internetanbindung 1 ½ Stunden. Denn jedes gewählte Netz ist zwischen 200 MB und 450 MB groß.

Daher für den Beginn je nach Internetanbindung und Zeit doch lieber ein paar ausgewählte Netze auswählen und diese installieren lassen.

Meine Empfehlung wären die folgenden Netze initial herunter laden zu lassen, da diese sehr gut mit den Beispielbilddaten dieser Anleitung funktioniert haben:

  • faster_rcnn_resnet50_v1_1024x1024
  • faster_rcnn_resnet50_v1_800x1333
  • faster_rcnn_resnet101_v1_1024x1024
  • faster_rcnn_resnet101_v1_800x1333
  • ssd_resnet_50_v1_fpn_1024x1024
  • ssd_resnet_101_v1_fpn_1024x1024
  • ssd_resnet_152_v1_fpn_1024x1024
No Code AI Pipeline Trainings GUI installation selection network

No Code AI Pipeline Trainings GUI installation selection network

Mit dem Abschluss der Auswahl der vortrainierten neuronalen Netze folgt jetzt die Installation der Training Suite. Währende der Installation der Training Suite werden einige GB an Images und weiteren Komponenten über das Internet herunter geladen.

Tensorflow Training Suite – Installieren

Nach dem die Installation mit dem kleinen Text basierten Menü soweit vorbereitet wurde und ein paar Prüfungen durchgeführt wurden ob alles passt ist jetzt der Zeitpunkt gekommen die Training Suite zu installieren. Da es wie im vorherigen Abschnitt erklärt die zwei Versionen CPU und GPU bei der Installation zu beachten gibt werden nachfolgend die Befehle für jede dieser Varianten aufgeführt.

GPU Installation

Wird die Docker Umgebung das erste Mal für die GPU Unterstützung gebaut dann ist der folgende Befehl zu nehmen.

Befehl: sudo docker-compose -f build_gpu.yml build

Wurde die Umgebung bereits schon einmal für Verwendung von GPUs gebaut und soll erneut als Docker Container gebaut werden dann ist der nachfolgende Befehl zu nehmen.

Befehl: sudo docker-compose -f build_gpu.yml build --no-cache

Dieser Befehl mit der Erweiterung um den Paramter –no-cache hat sich bewährt um eventuelle Probleme zu vermeiden wenn an den Konfigurationsdateien etwas verändert wurde und sichergestellt werden muss das diese Änderungen auch wirklich in den Docker Container übernommen werden.

CPU Installation

Wird der Umgebung das erste Mal für die CPU Unterstützung gebaut dann ist der folgende Befehl zu nehmen.

Befehl sudo docker-compose -f build_cpu.yml build

Wurde die Umgebung bereits schon einmal für CPU gebaut dann ist der nachfolgende Befehl zu nehmen.

Befehl: sudo docker-compose -f build_cpu.yml build --no-cache

Dieser Befehl mit der Erweiterung um den Paramter –no-cache hat sich bewährt um eventuelle Probleme zu vermeiden wenn an den Konfigurationsdateien etwas verändert wurde und sichergestellt werden muss das diese Änderungen auch wirklich in den Docker Container übernommen werden.

Jetzt ist die Training Suite erfolgreich installiert und kann das erste Mal ausgeführt werden. Dazu mehr im folgenden Artikel.


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 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