fahrzeugtechnik header

Unterschleissheim, 22.07.2020 – Philosys Ground Truth Annotator 2020 - Semantic Segmentation 2D/3D

Ground Truth Annotator 2020 wird 2D/3D Sematische Segmentierung mit Objektfiltern in einer gemeinsamen Oberfläche unterstützen.

Einführung

Für die Entwicklung und den Test von Algorithmen für Fahrerassistenzsysteme und das Autonome Fahren wird das Semantische Segmentierung immer wichtiger. Maschinelles Lernen (ML) und die Validierung von KI Algorithmen sind ein zentrales Thema im Automobil Bereich.

Ground Truth Annotator (GA) unterstützt mit dem SegmentationProvider schon seit mehreren Jahren die Semantische Segmentierung von 2D Bildern und Sequenzen. Das Plugin erlaubt die Semantische Segmentierung nach einer einzelne Kategorie, ohne Instanzen in einem Kamerabild, aber auch mehreren Kamerabildern pro Frame. Damit kann ein kompletter Surround View gelabeled werden.

Das Ergebnis für jedes Pixel wird als base64 codiertes PNG Bild mit Farbtabelle gespeichert, kann aber auch als regouläres PNG Bild exportiert werden. Damit kann das Ergebnis sehr einfach für ML und Validierung verwendet werden.

Der SegmentationProvider wird nicht mehr weiter entwickelt, ist aber immer noch für alte Projekte verfügbar.

3D Semantic Segmentation

Auch die 3D Semantische Segmentierung, bei der jeder Punkt von LiDAR Punktwolken klassifiziert werden, gewinnt immer mehr an Bedeutung. GA hat diese schon bisher für Spezialprojekte unter Verwendung des  Generic Object Detector (GOD) unterstützt. Dabei wird die Punktwolke mit Hilfe von gelabelten Filterobjekten zerlegt und den eingeschlossenen Punkten die jeweilige Klasse zugeordnet. Die Verwendung von Filterobjekten hat dabei den Vorteil dass auch Sequenzen mit Hilfe der Interpolation effizient segmentiert werden können.

Um den Labelprozess noch effizienter zu gestalten, wurde für GA 2020 das neue SemanticSegmentation3D Plugin entwickelt. Durch die dynamische Ermittlung des Ergebnisses der Segmentierung, hat der Labeler eine sofortige Rückmeldung.

Semantische Segmentierung Integration 2D/3D

Die Bedienung der 2D- und 3D-Semantischen Segmentierung wurd in ein gemeinsames GUI integriert. Vorlage war dabei das übersichtliche und einfach bedienbare GUI des SegmentationProviders. Das SegmentationGUI übernimmt jetzt die Steuerung der beiden Plugins SemanticSegmentation2D und SemanticSegmentation3D, welche die eigentlichen Funktionen implementieren.

GA2020 SS2D3D GUI

Das Segmentieren beginnt mit einer leeren Segmentliste. In Abhängingkeit von der Konfiguration haben einzelne Kategoriewerte entweder mehrere Instanzen oder auch nicht. Nach der Erzeugung eines neuen Segments mit einem ausgewählten Kategoriewert kann mit dem Labeling in 2D oder 3D begonnen werden.

Eine neue Instanz für einen Kategoriewert wird mit "New Instance" erstellt. Dazu gibt es noch die Möglichkeit den Kategoriewert für eine Instanz zu ändern, oder eine Instanz zu löschen.

Der Zustand der wird im interen Objektbaum gespeichert. Jede Instanz wird dabei von einem Objekt repräsentiert, und kann daher wenn nötig auch mit dem ObjectView betrachtet werden. In der Regel reicht jedoch die Bedienung über das SemanticSegmentationGUI.

Das Labelobjekt ist die gemeinsame Komponente von 2D und 3D Semantischer Segmentierung. Wird mit 2D gestartet, ist das Labeln des dazugehörende 3D Objekts so einfach wie das Selektieren des Objektes im 2D Bild, wechseln in die 3D Ansicht, und das Labeln in 3D mit der aktuellen Auswahl. Am Ende haben haben die correspondierenden Objekte in 2D/3D den gleichen Kategoriewert und Instanznummer.

Semantic Segmentation 2D

Hinweis: Der im nachfolgenden Beispiel genannte Datensatz hat nur eine Kamera nach Vorne. Deshalb umfasst die Segmentierung nur einen Teil der Szene.

Der Windowmanager von GA erlaubt eine sehr flexible Konfiguration der Oberfläche. Das folgende Bild zeigt ein Beispiel für die 2D Semantische Segmentierung.

GA2020 SS2D3D 2D View

Diese Konfiguration enthält alle nötigen Informationen für ein kombiniertes 2D/3D Projekt. Es sind möglich den Status aller Objekte zu kontrollieren.

An der linken Seite befinden sich das SegmentationGUI und die PointCloudOptions. Oben in der Mitte befindet sich der Arbeitsbereich für die 2D Semantische Segmentierung. Dort können auch die Werkzeuge zum Labeln ausgewählt werden.

Darunter befindet sich eine Anzeige der segmentierten Punktwolke aus der Sicht des LiDAR.

Auf der rechten Seite sieht man noch eine Ansicht von oben auf die segmentierte Punktwolke mit den Filterobjekten.

Natürlich kann man die Ansichten auf die Punktwolke auch weglassen, wenn man mehr Bildschirmfläche für das Labeln nutzen möchte.

Die Miniaturbilder am oberen Rand erlauben das schnelle Umschalten zwischen Ansichten mit der rechten Maustaste.

Semantic Segmentation 3D

Das folgende Bild zeigt ein Konfiguration für das 3D Semantische Segmentierung.

GA2020 SS2D3D 3D View

Die Mitte enthält hier eine Ansicht von oben mit den Filterobjekten. Auf der rechten Seite befinden sich Seitenansichten für die aktuell ausgewählten Objekte. Damit können Objekte in der Vertikalen verschoben und in der Größe verändert werden.

Zur Erleichterung und Beschleunigung kann auch GOD genutzt werden. Dazu müssen entsprechende Aktionen definiert werden, wie z,B. erzeugen der Objekthülle, ermitteln der niedrigsten vertikalen Position, und ermitteln der Objekthöhe.

Ergebnis

GA2020 SS2D3D 2D View result

GA2020 SS2D3D 3D View front

GA2020 SS2D3D 3D View result

Zusammenfassung

  • Unterstützung für 2D/3D Semantische Segmentierung
  • Gemeinsame Bedienoberfläche für bessere Nutzbarkeit und ein konsistentes Labeling
  • Verwenung gleicher Instanznummern für 2D und 3D
  • Filterobjekte für die einfache und wiederholbare Segmentierung
  • Filterobjekte können mit dem Generic Object Detector erzeugt und manipuliert werdne
  • Punktwolke kann gefiltert und nach verschiedenen Kriterien eingefärbt werden
  • Filterobjekte können mit Interpolation für Sequencen genutzt werden
  • Window Manger erlabut eine flexible und einfache Konfiguration der Benutzeroberfläche
  • Projekt kann sehr flexibel and Kundenbedürfnisse angepasst werden.

In Summe erlauben diese Features eine effiziente Semantische Segmentierung.

Weitere Informationen

YouTube Videos

Philosys Ground Truth Annotator 2020 Preview

Ground Truth Annotator vs. Label Editor

Philosys Ground Truth Annotator

Philosys Ground Truth Annotators 2018

Philosys Label Editor Version 6 - Release 6.3.2

Philosys Label Editor Version 6 - Release 6.2

Philosys Label Editor Version 6 - Release 6.1

Philosys Label Editor Version 6 - Semantische Segmentierung

Philosys Label Editor Version 6 - Release 6.0

Philosys Label Editor Version 5 - Release 5.1

Philosys Label Editor Version 4 - Release 4.3

Philosys Label Editor Version 4 - Release 4.2

Philosys Label Editor Version 4 - Snapshots

Why 3D labeling?

 

Der Philosys Label Editor und der Philosys Ground Truth Annotator werden bei der Entwicklung unterschiedlichster Assistenzsysteme (ADAS) und Autonomer Systeme (AD) zur Gewinnung von Ground-Truth Daten eingesetzt. Dabei werden die Objekte in der Szene manuell und/oder automatisch markiert und mit detaillierten Attributen versehen (Ground Truth Annotation/Labeling). Angefangen von Fahrzeugen aller Art, Fahrbahnbegrenzungen, Verkehrszeichen, bis hin zu Fußgängern und Wildtieren wird das Ground Truth erfasst. Das Ergebnis wird in HIL/SIL-Tests zur ADAS-Validierung bzw. Absicherung der von den Algorithmen erkannten Objekte, und für die Generierung von Referenzdaten für Deep Neural Networks (DNN) und deren Validierung genutzt.

 

Normal 0 21 false false false DE X-NONE X-NONE

Ende 2012 wird der neue Philosys Label Editor Version 2 erscheinen. Dieser enthält eine Vielzahl von neuen Features, die nicht nur den Prozess der Annotation beschleunigen, sondern auch neue Anwendungsgebiete erschließen.

  • Integration externer Referenzdaten
  • Interpolation
  • Geometrisches Objekt Polygon
  • Projektmodus

Die folgenden Kapitel geben eine Übersicht über die Funktionalität und Anwendung der neuen Funktionen.

Integration externer Referenzdaten

Zur Validierung komplexerer Assistenzsysteme werden neben der reinen Position des Objektes auf dem Videobild, und einfachen durch den Annotator aus dem Videobild zu bestimmender Attributen, oft auch Daten benötigt, die aus anderen Quellen als dem Videobild kommen. Dies sind neben bestimmten CAN-Daten für das eigene Fahrzeug, oft auch Daten von Sensoren, die nur in den Fahrzeugen für die Aufzeichnung verbaut werden. Dies können unter anderem z. B. objektbildende Laserscanner sein. Diese erkennen wie das zu testende Assistenzsystem ebenfalls Objekte und können eine Reihe von nützlichen Daten, wie die Entfernung zum jeweiligen Objekt, relative Geschwindigkeit, usw., bereitstellen.

Interessant sind hier die Daten die der Annotator nicht so einfach selbst bestimmen kann, wie die Entfernung zum Objekt und dessen relative Geschwindigkeit. Anstatt diese Referenzdaten alle manuell von der Laserscanner Software in die Annotationsdaten zu übernehmen, bietet es sich hier an diese Aufgabe direkt mit Hilfe des Labeleditors zu erledigen.

Notwenig ist dazu dass die Sensordaten zeitsynchron zusammen mit den Videodaten aufgezeichnet werden. Die Umwandlung der Sensordaten in das Format das der Philosys Labeleditor versteht, erfolgt dann mit Hilfe eines neu zu erstellenden Decoder-Filters, der in Filtergraph, der das Video für den Labeleditor aufbereitet, integriert wird. Die Schnittstelle des Labeleditors für externe Referenzdaten ist XML. Diese Daten sind im Prinzip genauso aufgebaut wie das Ergebnis der Annotation, die Labeldaten. Sie müssen auch wie die Labeldaten in der Strukturdatei beschrieben werden.

Wurde die Struktur der externen Referenzdaten beschrieben, und von dem Filter die gewünschten Referenzdaten in dieses Format konvertiert, dann kann der Philosys Labeleditor diese Daten im Detail im ObjectView darstellen. Wenn in den Daten auch geometrische Objekte vorhanden sind, dann werden diese auch im VideoView angezeigt. Es gibt dann einmal die Möglichkeit bestimmte in der Strukturdefinition beschriebene Datenelemente einfach in ein gerade aktives Annotationsobjekt für das aktuelle Frame zu übernehmen. Oder aber man kann einen Link zwischen Referenzobjekt und Annotationsobjekt herstellen, womit dann die entsprechenden Datenelemente für alle Frames in denen das Referenzobjekt und das Annotationsobjekt existieren, übernommen werden. Dies reduziert den Aufwand für die Übernahme erheblich. Das Feature funktioniert auch zusammen mit der Interpolation. Existieren Referenzdaten zu einem interpolierten Frame so werden die Referenzdaten verwendet, so dass die Genauigkeit der Referenzdaten erhalten bleibt.

Dieses neue Feature ist der Einstig in die 3D-Annotation für Videodaten mit dem Philosys Labeleditor. Dabei kann so wie bisher das jeweilige Objekt vom Annotator auf dem Bild markiert, zusätzlich können aber noch die Entfernung und andere relevante Daten mit Hilfe der Referenzdaten automatisch gesetzt werden.

Durch die offene Schnittstelle kann der Kunde den nötigen Filter für die Wandlung der Referenzdaten in XML selbst implementieren. Er kann aber auch die Erfahrung von Philosys nutzen und den Decoder-Filter von Philosys erstellen lassen.

Interpolation

Das Annotieren ist ein zeitaufwendiger Prozess. Der Zeitaufwand pro Videominute kann je nach Komplexität mehr als das Hundertfache der Videolaufzeit betragen. Durch das Feature vorhandene Daten jeweils in das nächste Bild zu übernehmen, und die Position geometrischer Objekte dabei auch noch zu Extrapolieren, beschleunigt schon der bisherige Philosys Label Editor das Annotieren gegenüber herkömmlichen Verfahren erheblich.

Durch das neue Feature Interpolation wird die Annotationszeit jetzt in Fällen, wo Objekte sich über viele Frames hinweg kaum in ihrer Position verändern, nochmal deutlich verkürzt. Man markiert wie gewohnt am Anfang der Sichtbarkeit das Objekt auf dem Videobild mit einem beliebigen geometrischen Objekt, und setzt dieses über das per rechten Mausklick erscheinende Kontextmenü als Startbild für die Interpolation. Dann geht man zu dem Bild, an dem man das Objekt normalerweise zuletzt markieren würde, markiert dieses und setzt dieses als Endbild für die Interpolation. Jetzt wird für alle Bilder zwischen Start- und Endbild das geometrische Objekt interpoliert. Die anderen Attribute werden automatisch vom Zustand im Startbild übernommen. Gibt es im interpolierten Bereich eine Abweichung, so kann man an der entsprechenden Position einfach durch anklicken und Repositionierung des interpolierten geometrischen Objektes einen neuen Stützpunkt erzeugen. Die Interpolation wird dann automatisch vor und hinter dem Stützpunkt neu berechnet. Idealerweise setzt man einen neuen Stützpunkt dort wo die Abweichung am größten ist. In vielen Fällen reichen dann wenige Stützpunkte für eine hinreichend genaue Übereinstimmung aus.

Derzeit wird linear interpoliert, das kann aber erweitert werden. Denkbar ist auch eine zukünftige Erweiterung mit einem Tracker.

Als Nebeneffekt reduziert sich auch der Hauptspeicherbedarf bei Szenen mit langer Objektsichtbarkeit deutlich. Natürlich werden zur Gewährleistung der Kompatibilität in der Toolkette wie bisher die Daten für alle Bilder geschrieben.

Geometrisches Objekt Polygon

Um auch unregelmäßige Objekte effizient markieren zu können, wird der Philosys Label Editor um das neue geometrische Objekt Polygon erweitert. Das Polygon wird wie die anderen geometrischen Objekte am einfachsten mit der Maus erstellt. Es gibt dabei die Möglichkeit sowohl einen offenen Linienzug oder ein geschlossenes Polygon zu erzeugen. Der Typ kann auch nachträglich geändert werden.

Wie gewohnt kann man das Polygon über das mit der rechten Maustaste erscheinende Kontextmenü in der in der Struktur-XML vordefinierten Form an der Mausposition erzeugen. Danach kann man durch Neupositionierung der Maus und der linken Maustaste weitere Linien an ein offenes Polygon anhängen. Man kann auf Linien weitere Eckpunkte einfügen und natürlich Punkte, Linien und das gesamte Polygon verschieben. Natürlich funktioniert mit dem Polygon auch die hilfreiche Extrapolation beim automatischen Übertrag von einem Bild zum Nächsten.

Mit dem Polygon kann man nicht nur unregelmäßige Objekte markieren, sondern mit seiner offenen Form auch als Linienzug nutzen. Damit ist es z. B. auch möglich Spuren genauer und einfacher zu markieren.

Projektmodus

Der Projektmodus erlaubt es die für die Annotation nötigen Dateien mit einem Befehl zu laden. Dazu packt man den Filtergraph, die Strukturdatei, die DAT-Datei und die Annotationsdatei in ein Verzeichnis. Die Generierung des Inhalts kann dann durch ein entsprechendes Szenenmanagement-system geschehen.

Damit ist es jetzt einfach möglich ohne komplizierte Namenstransformationen mit mehreren Kameras aufgezeichnete Szenen für verschiedene Projekte individuell zu annotieren. Zu dem erleichtert es die Arbeit der Annotatoren und vermeidet fehlerhafte Namen beim Abspeichern der Daten.

 

Der Philosys Label Editor wird bei der Entwicklung unterschiedlichster Assistenzsysteme zur Gewinnung von Ground-Truth-Daten eingesetzt. Dabei werden die verschiedensten Objekte markiert und mit detaillierten Attributen versehen. Angefangen von Fahrzeugen aller Art, Fahrbahnbegrenzungen, Verkehrszeichen, bis hin zu Fußgängern und Wildtieren. Die erfassten Daten werden anschließend zur Verifizierung der von Assistenzsystemen erkannten Objekte verwendet.