1 Labeling for Advanced Driver Assistent Systems (ADAS) and Autonomous Driving (AD) using environmental models
Early assistant systems are based on plain 2D video image processing in order to implement their functionalities. An intermediate result of this processing often is a position and size of function-specific objects in pixels coordinates. For validation this information is compared to a corresponding label provided by an annotator and a KPI is calculated to provide information how good both match.
As ADAS/AD are becoming more and more complex, this plain image processing and object detection is no longer sufficient. Information like position, size and movement of other objects around EGO are getting more and more important. In order to track all these objects environmental models (also called “maps”) are now used to describe the current surroundings of the EGO vehicle. They contain all information available about the current environment. The information used to build up these environmental models/maps is not limited to video images, but information from other sensors like e.g. lidar, radar or ultrasonic, and information from quite different sources like navigation systems, Car-2-X, etc. may be included as well. Eventually the environmental model contains a fusion of all available information, providing the basis for various different ADAS and autonomous driving (AD) functionalities.
Since these environmental models describe the 3D scene surrounding the EGO vehicle, they are typically using a world coordinate system to describe positions of the various objects in the scene. Instead of converting this information to 2D video image coordinates for validation, it is easier and makes more sense to compare the data results directly to validation data based on the same 3D world coordinate system.
LEV4+ provides the functionality to create validation data directly with 3D coordinates and it therefore allows easy comparison between ADAS/AD environmental model and validation data.
2 Labeling reference data
The results of early assistant systems derived from video images where compared to the annotation results derived from the same images. This way errors caused by camera or calibration errors cannot be detected. Also it isn’t possible to validate distance information derived from stereo cameras or other algorithms, because the annotator doesn’t have the ability to derive distance and other dynamic information from 2D video images.
To give better validation results, independent reference data has been introduced, mostly in the form of LiDAR. LiDAR gives a fully independent and highly accurate view on the scene seen by video based ADAS/AD. This gives a much better validation quality and helps annotators to provide validation information like distance and relative speed, that isn’t available otherwise.
LEV2+ supports feeding preprocessed reference data into the annotation process by external data interface, with sophisticated object linking for minimal user intervention.
LEV4+ supports direct display of LiDAR point clouds. The point cloud information can be used for other processing.
LEV5 supports direct display of other reference data through pluggable mixin modules, mostly compatible to EBAssist/ADTF 3DSceneDisplay.
3 Labeling on base of pre-processed reference data
With 2D annotation one can only label object visible in the current video frame. In contrast, reference data like from LiDAR, can be pre-processed by combining data of the whole scene. Objects visible only from one side may be reconstructed in 3D. So the annotator gets a full overview of the scene.
LEV4+ supports display of composite point clouds provided only once in the scene.
4 Labeling multiple camera views
Manual labeling is already time consuming for simple scenes, even if the ADAS is based on a single camera only. It gets even worse when multiple cameras are coming into the play. The video stream from each camera needs to be labeled then, and the labels of the different views need to be associated with each other. This is not only complicated and error prone for annotation, but also complicates validation considerably. With 3D annotation there exists only one object representation for an object, which can be automatically tracked through all camera views.
LEV4+ supports 3D annotation with multiple camera views.
5 Labeling stationary objects
2D annotation in the video images requires labeling of objects in every frame if there is any relative motion between the objects in the scene and EGO vehicle.
3D annotation combined with highly accurate odometric data enables one-time-only annotation of non-moving objects which is valid for the whole scene then. This considerably reduces annotation time for specific functions dealing with non-moving objects.
LEV4+ supports stationary objects
6 Labeling dynamic objects
2D annotation of moving objects is particularly complicated by the continually changing shape of objects in the video image, caused by the perspective projection. Interpolation can only help partially as it cannot take the perspective projection into account, due to missing depth information. Other impacts are pitch and roll of the EGO vehicle caused by corrugations in the road surface, leading to camera shake and thus to an undesired oscillation of the 2D object positions and shapes in the video image.
LEV4+ supports linear interpolation in 3D space to reduce the number of key frames that have to be set.
LEV4+ supports the compensation of camera shake for video images from 3D space if corresponding information is provided as input.
LEV6+ supports object tracking for pointcloud objects.
7 Labeling complex objects
With 2D annotation the usable shapes for object markers are very limited in complexity. With 3D annotation it is possible to use much more complex shapes to represent specific object types, as there is no perspective distortion to deal with. I.e., the mesh3D object can represent complete parts of parking areas easily. This makes labeling complex structures much easier.
LEV5 supports mesh3D objects for complex shapes.
8 Labeling by using object detection
Adjusting the shapes of objects manually with the mouse is time consuming and demanding when high accuracy is required. There are a lots of mouse movements necessary in order to finally match position and shape of the reference object. If the quality of reference data is good enough then automatic object detection enables the creation of object markers with just a few mouse clicks.
LEV5 supports object detection from point clouds and images for initial object creation. An optional programmable generic object detector allows the implementation of complex processing chains from a variety of built-in functions.
The Philosys Label Editor tool is used during development and test of diverse Advanced Driver Assistance Systems (ADAS) for ground-truth-data collection, and analysis of recorded scene data. Various objects are marked and tagged with detailed traits. All kinds of vehicles, lane boundaries, traffic signs as well as pedestrians and wildlife are registered and verified by the assistance system for use during validation. The resulting data can be used for machine learning of Deep Neural Networks (DNNs) and for validation of the results.
The ADTF based Philosys Label Editor is available as of the beginning of 2011. Its many features facilitate the annotation of video scenes. This results in a significant cost reduction for the annotation process.
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.