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.