Forschungsprojekt Medieninformatik Master

Synthetisch generierte Trainingsdaten für neuronale Netze

Für die semantische Bildsegmentierung werden in vielen Anwendungsgebieten künstliche neuronale Netze (KNN) eingesetzt. Um diese Netze für den entsprechenden Kontext zu trainieren, wird eine große Anzahl von Trainingsdaten benötigt. Diese werden meist in sehr aufwändigen Prozessen von Hand klassifiziert (Einzeichnen der benötigten Klassenelemente in die vorhanden Bilddaten) und mit klassischer Bildbearbeitung augmentiert (Vermehrung der Trainingsdaten durch bspw. Spiegelung oder Rotation der Bilder). Somit ist die Herstellung der Trainingsdaten sehr kosten- und zeitintensiv.

In diesem kooperativen Forschungsprojekt mit dem Fraunhofer-Institut für physikalische Messtechnik IPM wird der Anwendungsfall einer Zugfahrt betrachtet. Hierbei wird untersucht, ob es mithilfe einer selbst erstellten 3D-Umgebung möglich ist, Trainingsdaten synthetisch zu erzeugen. In der Forschungsfrage wird außerdem näher betrachtet, welche Auswirkungen eine inhaltliche Augmentation synthetischer Bilddaten auf das Training eines KNNs für semantische Segmentierung im Vergleich zur klassischen Bildaugmentation hat.

Problemstellung

Semantische Bildsegmentierung wird verwendet, um die automatisierte Bilderkennung mit künstlichen neuronalen Netzwerken zu ermöglichen. In diesem Verfahren geht es darum in Testbildern bestimmte Segmente (Bildbereiche, die bestimmte Elemente enthalten) zu erkennen. Ein typischer Anwendungsfall ist das autonome Fahren. Im urbanen Umfeld müssen hier beispielsweise die Straße und die Fahrbahnmarkierungen erkannt werden. In unserem Projektkontext, der Anwendungsfall einer Zugfahrt, müssen dementsprechend die Gleise, Signale, Schilder und Weiteres erkannt werden.

Um ein KNN für ein solches Szenario zu trainieren, werden bestimmte Trainingsdaten benötigt. Zu jedem Trainingsbild muss ein sogenanntes „Annotation“-Bild erstellt werden. Eine sog. „Annotation“ ist das Zuweisen der entsprechenden Klasse an einen Bildbereich. Im klassischen Verfahren werden die Annotations durch das Maskieren der Bildelemente (welches per Hand vorgenommen werden muss) erstellt. Diese speziellen Bilder enthalten also die eingezeichneten Klassen des Originalbildes wie im folgenden Beispiel visualisiert ist:

Originalbild

Annotation-Bild

In unserem Projekt stehen die Farben für folgende Klassen:

Farbe Semantische Klasse
orange Gleis
grün Vegetation
pink Lichtsignal
rot Formsignal
blau Himmel
schwarz unbekannt

Ein „semantic segmentation network“ wird als Form eines (Fully) Convolutional Neural Network (CNN oder FCNN) realisiert. Für einzelne Pixel werden Wahrscheinlichkeiten für die Zugehörigkeit zu einer Klasse ermittelt. Die Klasse mit der höchsten Wahrscheinlichkeit wird dem entsprechenden Pixel zugewiesen. So erfolgt eine gesamte Unterteilung des Bildes in Klassensegmente.

Aus den Anforderungen an ein optimales Training gehen folgende Problemstellungen hervor:

  • Es werden sehr viele Trainingsbilder benötigt, mit welchen das Netzwerk lernt.
  • Annotations müssen per Hand in jedes dieser Trainingsbild eingezeichnet werden.
  • Herstellung der Trainingsdaten für die semantische Segmentierung sind deshalb sehr zeit- und kostenintensiv.

Die Lösung dazu sind synthetisch generierte Trainingsdaten: SynTra

Annotations werden in die synthetischen Bilder automatisiert eingefügt und müssen nicht mehr manuell eingezeichnet werden. Außerdem können so die Trainingsdaten einfacher erweitert werden.

Vorgehensweise

Der Start dieses Projektes war im März 2020. Um uns entsprechend einzuarbeiten sind wir wie folgt vorgegangen:

  1. Sichtung des vorhandenen Materials des IPM
  2. Auseinandersetzung mit dem Thema und Verstehen der Problematiken
  3. Entscheidung für Tools:
    1. Wir modellieren selbst eine 3D Umgebung in Blender
    2. Training mit einer Segmantic Segmentation Netzwerkarchitektur
  4. Projekterweiterung auf ein zweites Semester aufgrund des Projektumfangs
  5. Definition einer Forschungsfrage in einem Nischen-Bereich des Themengebiets “Training eines KNN für semantische Segmentierung”
  6. Erstellung eines Forschungsdesigns und Definition des weiteren Ablaufs

3D Umgebung in Blender - aktueller Stand

Im anschließenden Video ist eine Zugfahrt durch unsere 3D Umgebung zu sehen. Wir haben versucht diese möglichst realistisch zu dem zu Beginn gezeigten Originalbild sowie 3 weiteren zu entwickeln.. In dem Video ist auch erkennbar, dass die Annotations (Zuweisung der Klassen an Bildbereiche) direkt in Blender erfolgen und somit nicht mehr von Hand nachträglich eingefügt werden müssen. Die Strecke hat eine theoretische Länge von 4,7 km.




Netzwerk - aktueller Stand

Das Netzwerk welches für die Tests der augmentierten Daten eingesetzt wird, sollte performant sein und Ergebnisse liefern, welche mit den aktuellen State-of-the-Art Architekturen zumindest annähernd vergleichbar sind. Welche Architektur dabei genutzt wird ist noch nicht festgelegt, da dies auch mit der zur Verfügung stehenden Hardware abgestimmt sein muss. Erste Tests haben wir aus Performancegründe auf dem AdapNet durchgeführt, für den kommenden Trainingsprozess soll aber nach Möglichkeit Googles DeepLab in der aktuellen Version zum Einsatz kommen. Eventuell könnten auch mehrere Netzwerk-Architekturen genutzt werden, um eine bessere Vergleichbarkeit der Ergebnisse zu erzielen. Wir nutzen hierbei Tensorflow Implementierungen der Netzwerke, da diese für die meisten Netzwerk-Architekturen verfügbar sind und Erfahrungen mit Tensorflow unter unseren Teammitgliedern bereits vorhanden ist.

Wissenschaftliche Fragestellung

Aufgrund von der Recherchearbeit konnten wir im Projektverlauf in dem Bereich der Augmentation von synthetischen Trainingsdaten eine wissenschaftliche Fragestellung formulieren:

“Welche Auswirkungen hat inhaltliche Augmentation synthetischer Bilddaten
auf das Training eines KNN für semantische Segmentierung
im Vergleich zu klassischer Bilddatenaugmentation?”

Die Augmentation von Trainingsdaten meint die Erweiterung der Originaldaten durch eine zusätzliche Veränderung der Bilder. Im klassischen Augmentationsverfahren werden die originalen Bilder durch Bildbearbeitung verändert wie zum Beispiel durch die Rotation oder Spiegelung eines Bildes. In unserem Projekt möchten wir die Datenerweiterung durch eine inhaltliche Änderung in Blender untersuchen.

Im Folgenden werden wir mit dem Begriff "Augmentationsarten", die Unterscheidung in die klassische und die inhaltliche Augmentation bezeichnen.

Forschungsdesign

Um die Forschungsfrage bestmöglich zu beantworten, haben wir ein Forschungsdesign festgelegt, in welchem wir definieren, wie wir unsere Forschung betreiben wollen. Die wichtigsten Fragen, die wir uns hierbei gestellt haben, sind:

  • Welche Datensets benötigen wir?
  • Wie definieren wir Augmentationskategorien?
  • Wie unterscheiden wir die Augmentationsstärke?
  • Wie ist der Ablauf unserer Forschungsarbeit?
  • Worauf müssen wir achten, um die Vergleichbarkeit und Schlussfolgerung zur Realität zu wahren?

1 Benötigte Datensets

In diesem Projekt ist es für uns wichtig festzulegen, welche Datensets wir benötigen. Ein Datenset besteht aus einem Set unterschiedlicher Bilder. Für das Training sowie für die Evaluierung werden unterschiedliche Datensets benötigt.

Für das Training benötigen wir zwei verschiedene, rein aus synthetischen Daten bestehende Sets: eines, welches Augmentationen aus der klassischen Methode beinhaltet und ein Zweites, welches Augmentationen aus der inhaltlichen Methode (direkt aus Blender) beinhaltet.

Um die Ergebnisse während des Trainings zu überprüfen, wird ein sogenanntes Validierungsdatenset benötigt. Dieses sollte für unseren Projekterfolg am besten nur aus Realdaten bestehen (welche wir zu Anfang des Projekts von unserem Projektpartner, dem IPM, erhalten haben). Für die Entscheidung, welche Daten wir hierzu verwenden können, mussten wir durch einen Trainingstestlauf ausprobieren, ob wir auf Realdaten überhaupt sinnvolle Ergebnisse erzielen können. Mehr Information ist dazu unter 4 Ablauf - Station 1 zu finden

Nach der Trainingsphase wird für die Evaluierung ein Testdatenset benötigt, welches dem Netzwerk gänzlich unbekannte Daten enthält.


2 Augmentationskategorien

Für die Untersuchung, welche Augmentationsart (klassisch oder inhaltlich) welche Auswirkungen auf das Training eines Netzwerks hat, müssen wir in beiden Arten vergleichbare Augmentationskategorien festlegen. Hierzu haben wir uns für 11 Kategorien entschieden, welche in beiden Arten ähnlich umsetzbar sind. Bei der Auswahl der Kategorien war uns vorallem wichtig, dass Kategorien gewählt werden, welche die Vorteile der inhaltlichen Augmentation vorweisen.

Hier zu folgendes Bildbeispiel:


3 Augmentationsstärke

Um das KNN optimal zu trainieren, müssen wir die optimalen Einstellungsparameter finden. Deshalb gilt es nun auch noch die Augmentationsstärke, mit welcher das Netzwerk am besten trainiert werden kann, herauszufinden. Dazu müssen wir verschiedene Datensets mit unterschiedlicher Augmentationsstärken anlegen, das KNN trainieren und anhand der Ausgabewerte überprüfen, welche Einstellung am besten funktioniert hat.

Mit "Augmentationsstärke" ist gemeint, wie stark die Augmentation im Vergleich zum Originalbild das neue Bild verändert. Hierzu ein Beispiel zu der Kategorie "Beleuchtung - heller":

Hier stellt sich nun die Frage: wie unterscheiden wir technisch die Stärke einer Augmentation? Dazu bedienen wir uns folgender Metrik:

LPIPS (VGG): Learned Perceptual Image Patch Similarity

Diese Metrik berechnet die Änderung eines Bildes über ein Netzwerk.

Zur Optimierung der Parameter gehört außerdem noch festzulegen, in welcher Häufigkeit Augmentationen verwendet werden. Damit ist gemeint, wie oft wird ein Originalbild augmentiert? Aktuell haben wir hier einen Wert von 5 (einzelnen, nicht übereinander gelegten) Augmentationen pro Originalbild festgelegt. Welche Augmentation jeweils verwendet wird, wird per Zufall ausgewählt.


4 Ablauf der Forschungsarbeit

Die zuvor beschriebenen Überlegungen und Entscheidungen müssen nun in einem bestimmten Ablauf durchgeführt werden.

Update zu Station 1: wir konnten bereits durch einen ersten Testlauf ein positives Ergebnis erreichen. Das Training mit rein synthetischen Daten war auf einem Validierungsdatensatz mit reinen Realdaten erfolgreich! Das bedeutet für unser Projekt, dass wir für weitere Trainings Realdaten zur Validierung und so ebenfalls zur Evaluierung verwenden können. Somit können wir in unserer Veröffentlichung den Bezug zu realen Bilddaten herstellen.

Unser Fahrplan und aktuelle Herausforderungen

Durch die Erweiterung des Projekts in das nächste Semester können wir nun die Projektplanung semesterübergreifend planen:

Im aktuellen Projektstand existieren noch Herausforderungen, welche als nächstes behandelt werden müssen:

  • Fehlende Rechenleistung für das Training sowie Rendering
    • Hochschulrechner sind gerade in Planung
    • Corona-bedingte Schwierigkeiten bzgl. Präsenz in Laboren
  • Probleme beim Export der Annotations aus Blender
    • Farbunterschiede in Annotations müssen behoben werden

Außerdem müssen wir Erfahrungen bzgl. des Trainings, Einstellungen und Ergebnisauswertungen sammeln!

Das Team - Medieninformatik Master 1. Semester

Innerhalb unsere Projektteams gibt es unterschiedliche Aufgabenverteilungen, welche aus den Vorerfahrungen der Zuständigen hervorgehen:

Ron: 3D world building und Generierung der Inhaltlichen Augmentierungen
Kontakt: ron.marvin.metzger@hs-furtwangen.de

Simon: Einrichten des neuronalen Netzwerks und Durchführung, Überwachen und Dokumentieren der Trainingsläufe.
Kontakt: s.loeffler@hs-furtwangen.de

Joshua: Recherche, Einrichtung und Umsetzung der klassischen Augmentationsmethode und des Annotation-Renderings in Blender
Kontakt: joshua.michael.ganter@hs-furtwangen.de

Katharina: Recherche, Unterstützung beim Modelling, Testen von Unterscheidungsmetriken, Projektplanung und Projektdokumentation, Vorbereitungen Tag der Medien und Kolloquium
Kontakt: katharina.ussling@hs-furtwangen.de

Katharina Ußling

Joshua Ganter

Ron Metzger

Simon Löffler

Impressum | Copyright @ Projekt SynTra