Nach dem Sie jetzt erste Erfahrungen mit der No-Code AI Pipeline gesammelt haben geht es weiter die trainierten Netze für etwas herausfordernde Aufgaben zu nutzen. Wie z. B. Objekte in Videos zu erkennen und diese z. B. unkenntlich zu machen. Daher geht es in diesem Beitrag um die Möglichkeit Bilder und Videos zu anonymisieren. Dazu bietet sich die BMW Anonymization-API an die für solch eine Anforderunge genau das richtige Werkzeug ist. Die Basis mit der Einrichtung der AI Pipeline und vor allem mit der Training Suite ist bereits gelegt und der weitere Schritt das Einrichten der Anonymization-API ist mit all den Erfahrungen schnell gemacht.
Bilder und Video Anonymization
Mit der BMW Anonymization-API ist es möglich mit einem zuvor trainierten neuronale Netz Informationen in Bildern und Videos automatisch zu erkennen und z. B. anschließend unkenntlich zu machen. Die BMW Anonymization-API nutzt dazu die in der Training Suite trainierten neuronalen Netze und die REST API Schnittstelle der Training Suite. so wird auf Basis der bereits trainierten neuronalen Netze Bilder und Videos analysiert, Objekte erkannt und anschließen anonymisieren. So erhält man ein mächtiges Tool an die Hand um Bilder und Videos zu anonymisieren. Die Anleitung hat bis hier her viele der notwendigen Schritte bereits erklärt und die BMW Anonymization-API ist mit ein paar wenigen Schritten auf ihrem Rechner installiert und konfiguriert. Die Nutzung ist dann recht einfach über die zur Verfügung gestellten bereits bekannten SWAGGER API Schnittstelle möglich.
Das Ziel in diesem Kapitel ist es ein Bild und ein Video das jeweils die kleinen Schlümpfe zeigt zu anonymisieren. Das Bildmaterial zeigt die kleinen Figuren stehend auf einem Motherboard wie in der folgenden Abbildung zu sehen ist.
Wie die Installation und Konfiguration der BMW Anonymization-API erfolgt wird im folgenden Abschnitt wieder Schritt für Schritt erklärt.
BMW Anonymization-API – Installation
Zunächst einmal muss die BMW-Anonymization-API aus dem TechOffice Munich GitHub Repository herunter geladen werden.
Dazu bitte den folgenden Befehl im Terminal Fenster z. B. im Homeverzeichnis ausführen.
Befehl: git clone https://github.com/BMW-InnovationLab/BMW-Anonymization-API.git
Dann mit dem folgenden Befehl in das Verzeichnis wechseln.
Befehl: cd BMW-Anonymization-API
Jetzt erfolgt die Installation der BMW-Anonymization-API mit dem nachfolgenden Befehl.
Befehl: sudo docker build -t anonymization_api -f docker/dockerfile .
Nach dem die BMW-Anonymization-API installiert ist kann diese auch schon ausgeführt werden. Dazu bitte den folgenden Befehl ausführen.
Befehl: sudo docker run -itv $(pwd)/src/main:/main -v $(pwd)/jsonFiles:/jsonFiles -p 4444:4343 anonymization_api
Jetzt ist die BMW-Anonymization-API gestartet und kann über die IP Adresse des Rechners gefolgt vom Port <IP Adresse>:<Port> geöffnet werden.
Beispiel URL: 192.168.2.174:4444/docs
Im Browser (bitte immer den Chrome Browser verwenden) ist jetzt die Web-Oberfläche der BMW-Anonymization-API zu sehen.
Zunächst aber müssen noch kleine Konfigurationen vorgenommen werden damit die BMW-Anonymization-API auch wirklich funktioniert und Bilder sowie Videos anonymisieren kann.
BMW Anonymization-API – Konfiguration
Im Browser (bitte immer den Chrome Browser verwenden) ist die SWAGGER API zu sehen wie wir diese bereits schon bei der Training Suite kurz kennengelernt haben.
Wir starten jetzt auch gleich mit der Konfiguration der Anonymization API, so dass diese die Training Suite und die bereits trainierten neuronalen Netze die in der Training Suite liegen finden kann.
Die nachfolgende Abbildung zeigt welche Funktion und Parameter gesetzt werden müssen da die Kommunikation zwischen beiden Tools auch funktioniert.
- Mit der Post Funktion „Set URL“ wird die URL die auf die Training Suite REST API Schnittstelle verweist gesetzt.
- Die URL der Training Suite wird in dem Text Feld eingefügt und setzt sich aus der IP Adresse des Rechners auf dem die Training Suite läuft und den Standard Port 4343 zusammen.
- Jetzt muss nur noch der Execute Button gedrückt werden und die Anonymization API ist mit der Training Suite verbunden.
In einem nächsten Schritt muss der Anonymization API noch das zu verwendende neuronale Netz mitgeteilt werden und welche Klassen also Informationen in welcher Form im Bild bzw. Video wie behandelt werden sollen.
Diese Information erhält man über die GET Funktion „Get Available Methods“ wie in der folgenden Abbildung nach dem folgenden Absatz gezeigt wird.
Hier wird das verfügbare trainierte neuronale Netz mit seinen Klassen aufgeführt sowie mit den Funktionen zur Behandlung der im Bild erkannten Information.
- Zunächst einmal die GET Funktion „Get Available Methods“ ausführen.
- Die jetzt angezeigte Liste enthält alle Informationen die notwendig sind um die Anonymisierung zu Konfigurieren.
Jetzt kennen Sie alle benötigten Informationen um im nächsten Schritt die Konfigurationsdatei anzulegen die die Anonymization API benötigt.
Die hierfür benötigte Konfiguration wird in einer eigenen Datei abgelegt im Installationspfad der Anonymization API zu finden ist.
Pfad: ~/BMW-Anonymization-API/jsonFiles/user_configuratio.json
Diese user_configuratio.json Datei bitte zunächst kopieren, sprechend umbenennen und dann editieren.
- Hier ist die kopierte Datei zu sehen die ich für die Anonymisierung des Zugvideos angelegt habe.
- Hier ist die API Ausgabe der Funktion Get Available Methods zu sehen
- Hier ist die Konfiguration zu sehen die festlegt welche Bilder im Video unkenntlich gemacht werden sollen und wie. Es stehen Drei Typen zur Auswahl wie die Boxen aussehen sollen die über zu anonymisierenden Informationen gelegt werden sollen.
- Blackening
- Pixelating
- Blurring
Jetzt ist alles soweit in der Konfigurationsdatei hinterlegt das im nächsten Schritt das Video anonymisiert werden kann.
BMW Anonymization-API – Bilder und Videos anonymisieren
Nach dem die einzelnen Konfigurationen vorgenommen wurden und die Training Suite hochgefahren ist kann das erste Bild oder Video bereits anonymisiert werden. Dazu kann einmal die Post Funktion „Anonymize“ für das anonymisieren von Bildern aufgerufen werden oder wie in der folgenden Abbildung gezeigt die Post Funktion „Anonymize Video“ zum anonymisieren von Videos aufgerufen werden. Die einzelnen notwendigen Parametrisierungen müssen noch in der Funktion selber vorgenommen werden wie das laden der zuvor erstellen Konfigurationsdatei und das Laden des Bildes oder Video welches anonymisiert werden soll.
Bilder für das Testen der Anonymisierungsfunktion sind über die folgende URL online verfügbar.
URL: AI Pipeline – Trainingsdaten Download
Das kleine Beispielvideo in seiner originalen Fassung ist über die folgende URL online verfügbar und kann ebenfalls anonymisiert werden.
URL: AI Pipeline – Trainingsdaten Download
Die nachfolgende Abbildung zeigt Schritt für Schritt die einzelnen Eingaben der Konfigurationsparameter.
- Zunächst einmal die Post Funktion „Anonymize Video“ ausführen.
- Die Konfigurationsdatei im dafür vorgesehenen Feld laden.
- Das Video laden das anonymisiert werden soll.
- Den Anonymisierungsprozess des Videos durch drücken des Execute Buttons starten.
Jetzt startet der Prozess der Anonymisierung des Videos. Da das Video in seine Einzelbilder zerlegt wird benötigt der Prozess einmal ein schnelles Laufwerk und dauert einfach abhängig von der Länge des Videos seine Zeit.
Wenn das Video fertig erstellt ist erscheint eine entsprechende Meldung auf der Weboberfläche.
Das fertige Video wird im Dateisystem im folgenden Pfad des Installationsverzeichnisses der Anonymization API abgelegt.
Pfad: ~/BMW-Anonymization-API/src/main/anonymized_video/
Das Ergebnis des kleinen Videos sieht bei mir wie folgt aus. Allerdings ist der Screenshot der nach dem Video folgenden Abbildung von einem Frame im Video erstellt bei dem die Anonymisierung sehr gut geklappt hatte.
Das kleine Beispielvideo welches auf Basis des trainierten neuronalen Netzes anonymisiert wurde ist über die folgende URL online verfügbar.
URL: https://www.ai-box.eu/smurf_video_anonymized.mp4
Sehr schön zu erkennen sind auch die unterschiedlichen Typen der Unkenntlichmachung über die Boundingboxen im Video. Auch ist ein Fehler zu sehen vor dem Raben mit der Truhe. Hier wurde die Verriegelung des PCIx Slots mit einer Boundingbox unkenntlich gemacht.
Da das Trainingsmaterial für das neuronale Netz die Figuren nur aus einem einzigen Winkel zeigen klappt das Erkennen der Figuren im Video aus unterschiedlichen Winkeln nicht sonderlich gut. Daher sind gute Trainingsdaten so wichtig und Wertvoll in diesem ganzen Prozess des Trainings von neuronalen Netzen. Die Daten stellen den eigentlichen Wert da.
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
Hallo, ich habe ihre Anleitung befolgt und bekomme im letzten Schritt leider immer folgende Meldung im Terminal: bash <(wget -qO-…
Hi Dennis, vielen Dank für den Hinweis, ich habe die URLs angepasst so das diese wieder gehen. Ich bin gespannt…
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…