fahrzeugtechnik header

Die durch ADAS zu erfassende Umgebungen werden immer komplexer und erfordern es deshalb das komplette Umfeld eines Fahrzeugs zu erfassen. Dazu reicht die herkömmliche Methode mit Markierung der Objekte auf einem Videobild nicht mehr aus und ist auch viel zu aufwändig. Deshalb wurde der Philosys Label Editor so erweitert, dass vom Annotator mit Hilfe von Referenzdatenquellen Objekte neu erzeugt, oder auch  bereits vor generierte Objekte bestätigt oder modifiziert werden können.

LEV4 teilt sich auf die die Basis und mehrere separat zu lizenzierender Optionen. Die Basis enthält derzeit die folgenden neuen Features und Verbesserungen:

  • Sperrung der Winkel eines Polygons
  • Erweiterung der Bedienung des Polygons
  • Globale Manipulation von goemetrischen Objekten
  • Durchreichen von Mediasamples an einen Extrapolator
  • Tagging von Objekten für die selektive Anzeige
  • Speicherung verwendeter externer Daten in der Label Datei
  • Performance Verbesserungen im Umfeld der Verarbeitung und Darstellung von externen Daten
  • Window Manager zur Darstellung mehrer Video Streams (derzeit nur in Verbindung mit 3D)

Die folgenden Optionen werden unterstützt:

  • StdTracker (war bereits in LEV3 verfügbar)
  • VideoView3D
  • Odometrie (2D/3D)

In den folgenden Abschnitten werden einzelne Neuerungen kurz beschrieben.

Sperrung Polygonwinkel

Damit ist es möglich bei einem Polygon gezielt Winkel zu sperren, so dass damit Objekte mit fester Geometrie definiert werden können. Dies erlaubt es dann einmal die Basistypen nach zu bilden, aber auch ganz neue Objektformen zu definieren. Der Nutzer kann damit weitgehend selbst zur Validierung passende Objekte definieren.

Speicherung externer Daten

Bisher war es bei der Nutzung von externen Daten nötig bei jedem Laden einer DAT Datei einen neuen Datenscan durch zu führen. Dies je nach Komplexität des Filtergraphen sehr zeitaufwändig. Jetzt besteht die Möglichkeit, die Daten die für das Annotieren genutzt wurden, mit in die Label Datei abzuspeichern. Beim Laden eines Projekts werden vorhandene externe Daten aus der Label Datei gelesen, was wesentlich schneller ist als ein kompletter Scan. Dies führt in der Bearbeitung zu einem erheblichen Zeitgewinn. Zusätzlich können die externen Daten dann auch leichter in einem Postprocessing genutzt werden.

Performance externe Daten

Externe Daten werden als XML verarbeitet. Die Interpretation ist sehr aufwändig und bereitet dann Probleme bei der Verarbeitung in Echtzeit. Um die Verarbeitung zu beschleunigen wurde der gesamte Pfad optimiert und soweit als möglich auf Multi-Threading umgestellt. Damit ist der Ablauf beim Abspielen von Szenen deutlich flüssiger und auch der Scan läuft schneller ab.

Window Manager

Bisher gibt es mit dem VideoView Service im Label Editor nur die Möglichkeit eine Videoquelle gleichzeitig auf dem Bildschirm darzustellen. Dies reicht aus wenn immer nur auf einem Videokanal annotiert wird. Wenn man weitere Videoquellen darstellen wollte, konnte man dies über zusätzliche ADTF Videodisplays erreichen. Diese Methode ist aber umständlich zu handhaben. Des weiteren gibt es bisher die Möglichkeit den sogenannten Multistream-Modus zu verwenden um zwischen verschiedenen Videoquellen umzuschalten. Dieser Modus ist aber nur dazu gedacht, dass bei Kameras die unterschiedliche Belichtungen erzeugen, zwischen den verschiedenen Bildern umgeschaltet werden kann, und unterliegt deshalb Einschränkungen bei der Nutzung

Mit dem neuen Window Manager kann über die Strukturdatei das Layout für verschiedene Videofenster definiert werden. Dies ist sehr flexibel möglich. Es kann auch ein Fenster mit Reitern definiert werden, bei dem dann ebenfalls zwischen verschiedenen Quellen umgeschaltet werden kann.

Der Window Manager ist derzeit für die Nutzung mit dem neuen 3D Viewer optimiert. Ob die Funktionalität auch auf den aktuellen VideoView Service zurück portiert wird steht noch nicht fest.

Großes Bild

 

Option: VideoView3D

Die Unterstützung der 3D Annotation ist der Schwerpunkt in Version 4. Zu diesem Zweck wurde die bisherige Videodarstellung komplett umgestaltet. Für die 3D Annotation gibt es den neuen VideoView3D Provider. Dieser basiert auf Open Scene Graph (OSG) und ermöglichst es 3D Szenarien auf einfache Art und Weise zu erstellen, darzustellen und zu manipulieren.

Das Umfeld des Fahrzeugs wird als 3D Szene modelliert. Die Modellierung erfolgt in Weltkoordinaten und nicht mehr wie bei der 2D Annotation über Pixel auf den Videobildern. Damit hat man genaue Informationen wo sich welches Objekt im Raum befindet. Dafür gibt es auch eine Schnittstelle für die Kamerakalibrationsdaten.

Derzeit werden zur Annotation Box-Objekte, Polylines/Polygone und Punkte unterstützt, die man entweder selbst in der Szene platzieren kann, oder aber mit anderen Methoden bereits vor generierte Objekte (Laserscanner, Radar, ...) nutzen, als korrekt bestätigen oder gegebenenfalls manipulieren kann. Für das Polygon3D werden auch punkt-spezifische Attribute unterstützt. Die Möglichkeit der Ableitung von anderen Objektdefinitionen macht die Nutzung flexibler.

Natürlich können auch die Originaldaten von Laserscannern als Overlay eingeblendet werden, um die manuelle Annotation zu unterstützen.

Dadurch dass OSG verwendet wird, ist es einfach möglich die verschieden Ansichten auf die Szene durch die Kameras zu integrieren. Man kann aber auch durch entsprechende Projektion einen sogenannten Top View der Szene erstellen. Damit erhält man eine aus den verschiedenen Kameras errechnete Sicht aus der Vogelperspektive.

Da für die 3DAnnotation es sowieso sinnvoll ist einen Top View zu verwenden, haben wir entschieden diesen schon direkt im Label Editor anzubieten. Dies erspart den Kunden eine eigene Implementierung nur zum Zweck der Annotation. Zusätzlich einblendbare Overlays unterstützen die Annotation.

Option: Odometrie

Bei ADAS Funktionen, die mit statischen Objekten arbeiten, war es bisher nötig die statischen Objekt in jedem Videobild zu annotieren. Dies wurde alelnfalls durch die Nutzung der Interpolation oder des Trackings etwas erleichtert.  Da man aber gerade für solche Funktionen gerne mit der Position relativ zum eigenen Fahrzeug arbeiten möchte, ist es notwendig die Umgebung des Fahrzeugs nicht mher auf Pixelebene auf dem Videobild zu erfassen, sondern mit relativen Weltkoordinaten. Die Umgebung wird dann mit Referenzdatenquellen wie Lidar, Radar, Ultraschall, ... abgetastet und diese Daten dann zur Annotation verwendet. Typischerweise erfolgt dies dann mit einem TopView der Szene, in den die Referenzdaten eingezeichnet sind. Die sichtbaren Objekte werden dann wie bisher mit einem Marker annotiert. Da sich aber wegen der Eigenbewegung die Szene ständig ändert, muss auch hier in jedem Schritt annotiert werden, obwohl sich die anderen Objekte nicht bewegen.

Hier setzt die neue Option Odometrie an. Diese erlaubt es Objekte als stationär zu behandeln, d.h. man annotiert diese in der Regel nur ein einziges Mal in der Szene. Damit das funktioniert, muss die Eigenbewegung des Fahrzeugs heraus gerechnet werden und dann mit absoluten Weltkoordinaten, bezogen auf irgendeinen Fixpunkt in der Szene, annotiert werden. Zu diesem Zweck hat LEV4 eine Odometrieschnittstelle über die externen Datenschnittstelel implementiert. Zu jedem Annotationsbild muss die passende Odometrie in Form eine 4x4 Transformationsmatrix geliefert werden. Diese wird benutzt die Eigenbewegung zu eliminieren, so dass intern für stationäre Objekte absolute Koordinaten gespeichert sind. Für die Darstellung der Objekt in der Annotationsansicht müssen dann diese Daten zusätzlich auf die Videobilder umgerechnet werden. Bei 3D Annotation macht das Open Scene Graph zusammen mit der Kamerakalibration automatisch, bei 2D muss zusätzlich eine 4x4 Transformationsmatrix von ego-relativen Koordinaten auf Pixel im Bild erfolgen.

Das Ergebnis ist, dass statische Objekte nur ein einziges Mal annotiert werden müssen. Natürlich können die Daten sowohl absolut, als auch ego-relativ in die Label Datei exportiert werden, so dass die Validierung mit dem Koordinatensystem der ECU erfolgen kann.

 

Gerne entwickelt Philosys im Rahmen von kundenfinanzierten Projekten auch weitere neue Features für die Version 4. Damit diese mit eingeplant werden können sollten sich Interessenten baldmöglichst melden.

Einige weitere Erweiterung sind noch geplant oder sind teilweise sogar schon für Tests im Release 4.2 enthalten:

  • Unterstützung von mehreren gleichzeitig angezeigten Point Clouds
  • Unterstützung stationärer Point Clouds unter Berücksichtigung der Odometrie
  • Unterstützung unterschiedlicher Point Cloud Formate (XYZ, XYZI, XYZRGB, XYZRGBA, XYZrgba)
  • Interpolation aller zur Darstellung benötigten Daten auf einen Referenzzeitpunkt
  • uvw.

Philosys stellt laufend Releases mit bereits implementierter Teilfunktionalität bereit, so dass Interessenten schon frühzeitig mit der Nutzung beginnen können.

 

Der Philosys Label Editor wird bei der Entwicklung unterschiedlichster Assistenzsysteme (Advanced Driver Assistance System / ADAS) zur Gewinnung von Ground-Truth-Daten eingesetzt. Dabei werden die verschiedensten Objekte markiert und mit detaillierten Attributen versehen (Annotation), angefangen von Fahrzeugen aller Art, Fahrbahnbegrenzungen, Verkehrszeichen, bis hin zu Fußgängern und Wildtieren. Die erfassten Daten werden in HIL/SIL-Tests zur Validierung der von Fahrerassistenzsystemen erkannten Objekte verwendet.

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.