fahrzeugtechnik header

Offenes Extrapolation-API für Tracking-/Objekterkennungsmodule

Mit Hilfe des Extrapolation-API ist es jetzt möglich objektspezifische Tracking Module zu integrieren, um beim Wechsel auf das nächste Bild, im aktuellen Bild bereits markierte Objekte, automatisch mit hoher Genauigkeit wieder ein zu fügen. Es sind bei gut zu verfolgenden Objekten deshalb nur noch geringe Nachkorrekturen nötig. 

Philosys übernimmt auf Wunsch auch die Anpassung von kundeneignen Trackingalgorithmen an das Extrapolation-API

Standard Tracker für die Extrapolation

Als separat zu lizensierendes Feature gibt es einen allgemeinen Tracker für Objekte. Dieser funktioniert für viele geschlossene Objektemarkierungen (Rechteck, geschlossenes Polygon) und guter Bildqualität ganz gut. Man kann ihn im begrenzten Umfang noch über Parametereinstellungen individuell optimieren.

Natürlich entwickelt Philosys auf Wunsch seiner Kunden auch gerne Tracker für spezielle Einsatzzwecke um die nötigen Änderungen während der Annotation auf ein Minimum zu reduzieren.

Kombination von Extrapolation und Interpolation

Ein weiteres Feature das die Annotation deutlich beschleunigt, ist die neue Kombination aus Extrapolation und Interpolation. Bisher ging man bei der normalen Extrapolation immer von einem Bild zum nächsten. Das vorher aktive Objekt wird dabei vom aktuellen Bild in das nächste Bild entweder als Kopie oder mit linearer Extrapolation übernommen. Man muss also jedes einzelne Bild nacheinander bearbeiten.

Mit der in Version 2 eingeführten Interpolation muss man nur den Anfang und das Ende der Sichtbarkeit des Objekts markieren. Dazwischen sind nur an den Stellen zusätzliche Keyframes eingefügt werden, an denen größere Abweichungen vorhanden sind. Dieses Einfügen geht einfach dadurch dass man das interpolierte Objekt an den richtigen Platz schiebt und die Größe korrigiert. So braucht man bei relativ gleichmäßigem Bewegungsverlauf, nicht sehr viele Stützpunkte einfügen und erreicht doch eine gute Genauigkeit der Markierung. Zusätzlich ergibt sich der Vorteil, dass wesentlich weniger Daten verarbeitet werden müssen. In Version 2 werden zu Kompatibilität trotzdem auch die interpolierten Daten für jedes Bild abgespeichert.

In Version 3 können jetzt beide Verfahren kombiniert werden. Der Annotator markiert dazu ein Objekt das gerade sichtbar wird, mit dem entsprechenden geometrischen Objekt und markiert dieses auch als Startbild für die Interpolation. Wird der für diese Funktion eingestellte Tastenkombination (SHIFT+rechts, SHIFT+links) benutzt, so springt der LE eine einstellbare Zahl von Bilder vor und setzt dort mit dem ausgewählten Extrapolationsmodus  automatisch das neue Objekt wieder ein. Wenn ein geeigneter Tracker benutzt wird, so braucht die Position des Objekts überhaupt nicht oder nur gering nachkorrigiert werden. Der Interpolationsstatus für das vorhergehende und das aktuelle Bild wir so gesetzt, dass man bei optimalem Tracking, für die Lebensdauer des Objekts nur die definierte Tastenkombination drücken muss. Nur wenn das Objekt verschwindet muss man das Ende des ganzen Interpolationsbereichs noch anpassen.

Natürlich sollte man spätestens wenn man alle Objekte markiert hat noch mal einen Kontrollgang durch die ganze Szene machen, um eventuelle Abweichungen noch zu korrigieren. Die Schrittweite ist frei einstellbar. Bei geringem Nicken des Fahrzeugs ist in Verbindung mit dem Tracker durchaus eine Schrittweite von 10 Bildern möglich. Eine Schrittweite von 3 funktioniert dagegen meistens ganz gut. Sollte nach den ersten Schritten festgestellt werden, dass die Schrittweite nicht passt, so kann diese problemlos nachkorrigiert werden. 

Bei einer Schrittweite von 3 braucht man sich in einem Durchgang schon nur noch 1/3 der Bilder gegenüber der regulären Extrapolation ansehen, bei 10 Bildern sogar nur noch 1/10. Gegenüber der reinen Interpolation kann diese Kombination dann ihre Vorteile ausspielen wenn die Objekte in der Szene sehr viele Richtungswechsel haben und/oder das Fahrzeug stark nickt.

Extrapolation mit mehreren Objekten gleichzeitig

Um bei vielen zu annotierenden Objekten in der Szene die Zahl der Durchgänge durch die Szene zu reduzieren, ist es jetzt auch möglich nicht nur das gerade aktive Objekt zu extrapolieren, sondern auch zusätzlich für die den AutoAdd markierte Objekte. So ist es theoretisch möglich alle in der Szene auftauchende Objekte oder nur Objekte gleichen Typs, in einem Durchgang zu annotieren. Natürlich ist das besonders sinnvoll zusammen mit der oben beschrieben Kombination aus Extrapolation und Interpolation, und der Nutzung eines Trackers.

Zu viele Objekte gleichzeitig sollten es jedoch nicht sein, denn wie die bisherige Erfahrung zeigt, erfordert eine hohe Konzentration und Disziplin wirklich in jedem Bild alle relevanten Objekte zu verfolgen, und dann auch konsequent nach zu korrigieren. Hier muss jeder Annotator seine optimale Zahl selbst finden. Hier ist es auch besonders wichtig, dass mindestens in einem weiteren Durchlauf noch mal alle Objekte kontrolliert werden.

Interpolation von zeitabhängigen Attributen ohne geometrisches Objekt

Bisher war es so, dass die Interpolation nur für zeit-abhängige Attribute verwendet werden konnte, wenn in dem entsprechenden Unterbaum auch ein geometrisches Objekt definiert war. Deshalb sind bei Unterbäumen ohne geometrisches Objekt, z.B. wenn man Attribute zum Ego ablegt, grundsätzlich dann für jedes Bild reale Daten vorhanden, auch wenn es nur wenige Veränderungen des Attributwerts in der Szene gibt.

Zwar kann man die Einschränkung, dass keine Interpolation in solchen Unterbäumen ohne geometrisches Objekt möglich ist, dadurch umgehen dass man einfach ein Dummyobjekt erzeugt und nach dem Erzeugen eines neuen Labelbaums jeweils am Anfang und Ende der Szene ein Start- und Endframe setzt, dies ist aber umständlich.

Jetzt ist es so, dass wenn ein solcher Unterbaum in der Strukturdatei für Interpolation markiert ist, automatisch auch ohne geometrisches Objekt ein Start- und Endframe erzeugt wird, so dass das Verhalten wie ohne Interpolation ist. Es ist sogar noch einfacher da der Annotator solche Unterbäume nicht erst manuell erzeugen muss.

Durch die Nutzung dieses Features wird die Bearbeitung solcher Attribute erheblich beschleunigt und auch der interne Hauptspeicherbedarf deutlich reduziert. Zusammen mit dem im folgenden Kapitel beschriebenen Feature "Speicherung der interpolierten Daten kann unterdrückt werden" ist wegen des geringeren Speicherbedarfs auch das Laden/Speichern schneller.

Speicherung der interpolierten Daten kann unterdrückt werden

Da bei komplexen Szenen mit vielen Objekten große Datenmengen anfallen, gibt es bei Nutzung der Interpolation jetzt die Möglichkeit nur noch die Daten an Keyframes abzuspeichern. Die Nutzer der Annotationsdaten müssen dann selbst interpolieren, was aber in der Regel nur ein geringer Aufwand ist.

Der Vorteil ist, dass das Laden und Speichern der Annotationsdaten durch den Label Editor bei sehr großen Dateien erheblich beschleunigt wird.

Definition von Farben, Tooltipps, ...

Jetzt können für jeden Attributewert (enum) individuelle Farben für den InspectorView festgelegt werden. Desweiteren können dann auch geometrische Objekte entsprechend des Zustands eines beliebigen Attributwertes mit der gleichen Farbe versehen werden.

Auch kann für jedes Objekt ein Tooltipp definiert werden, der angezeigt wird wenn man die Maus über einen Objektnamen im ObjectView oder InspectorView bewegt.

Diese Features erleichtern die Einarbeitung und machen die Bedienung intuitiver. Das spart zusätzlich Zeit während der Annotation.

Sonstige Änderungen

Neben den oben genannten Features wurden noch eine Vielzahl kleiner Verbesserungen vorgenommen:

  • Performanceverbesserungen (InspectorView, Label-XML laden, Extrapolation, ...).
  • Objekt IDs werden im InspectorView vor dem Pfadnamen des Attributs angezeigt.
  • Scene kann beliebigen Namen in der Strukturdatei haben.
  • Toolbar-Elemente können jetzt beweglich gemacht und dann verschoben werden.
  • Fehlermeldungen bei fehlerhaften Objektdefinitionen auf dem Console-Fenster.
  • Zusätzliche Fehlermeldungen beim Laden von DAT-Dateien.

Was kommt noch in Version 3?

Hier ist eine unverbindliche Liste weiterer bereits in Entwicklung befindlicher und geplanter Erweiterungen:

  • Verwendung von gemultiplexten Datenströmen.
  • Unterstützung von Polygonen mit Splines als Verbindung zwischen Punkten.

Es können auch Ihre Erweiterungswünsche noch berücksichtigt werden. Kontaktieren Sie uns doch einfach.

Die Freigabe Philosys Label Editor Version 3 ist derzeit für das 4. Quartal 2013 geplant.

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. 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 Assistenzsystemen 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.