Unterschleißheim, 01.02.2016 - Philosys Label Editor Version 5.1.
Philosys liefert seit diesem Jahr das Release 5.1 des Label Editors mit viele neuen Features aus. Eine Liste aller Features kann man hier herunter laden.
Die durch ADAS und autonome Fahrzeuge zu erfassende Umgebungen werden immer komplexer und erfordern es deshalb das komplette Umfeld eines Fahrzeugs zu erfassen (Umfeldmodell). Dazu reicht die herkömmliche Methode mit Markierung der Objekte (Annotation, Labeling) auf einem Videobild für die Erzeugung von Ground-Truth Daten 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.
Schon seit Version 4 unterstützt der Philosys Label Editor die 3D Annotation, die insbesondere für die Validierung von Umfeldmodellen genutzt werden kann, die durch Sensordatenfusion erzeugt wurden. Die Erfassung des kompletten Fahrzeugumfelds ist der Schlüssel für zukünftige ADAS und autonome Fahrzeuge.
Hier erfahren Sie warum 3D Labeling so wichtig ist.
Neue Features in Version 5
- Unterstützung der ADTF 3DSceneDisplay Mixin-Schnittstelle
- Mesh Objekt
- Object Detector Interface
- Generic Object Detector
Eine Übersicht der Video3D Provider Features finden Sie hier.
Mixin-Schnittstelle
Eine ganze Reihe von Kunden haben schon Software für die 3D-Darstellung zusammen mit dem EB Assist/ADTF 3DSceneDisplay entwickelt und möchten die gleiche Darstellung auch im Philosys Label Editor nutzen. Dies war bisher nur sehr eingeschränkt durch Rendering der 3D-Scene als Videobild möglich. Für das EB Assist/ADTF 3DSceneDisplay werden sogenannte Mixins benutzt um Daten in einem EB Assist ADTF Mediasample in einer 3D-Scene in einem Fenster darzustellen. Darüber hinaus kann auch mit dargestellten Objekten interagiert werden.
Für LEV5 wurde jetzt eine weitgehend kompatible Implementierung der mixin-Schnittstelle realisiert. Vorhandene Mixins können je nach Komplexität einfach ohne oder nur minimalen Änderungen für den LEV5 neu übersetzt und dann für die Darstellung von Daten benutzt werden. Natürlich funktioniert auch der Window Manager weiterhin, so dass man im Gegensatz zum EB Assist/ADTF 3DScenedisplay die Szene gleichzeitig in verschiedenen Fenstern aus verschiedenen Perspektiven betrachten kann.
Damit ist der Kunde nicht nur in der Lage bereits vorhandene Software ohne großen Aufwand weiter zu nutzten, er hat sogar den Vorteil mehrerer Fenster. Möchte man irgendwelche Daten auch zusammen mit einem Object Detector nutzen, müssen die Daten aber weiterhin auch direkt in LEV5 eingespeist werden.
Damit auch innerhalb von EB Assist/ADTF ohne LEV5 die Vorteile der Darstellung im Video3D Provider genutzt werden können, wurde die 3D-Szenendarstellung des LEV5 in einen getrennten Filter extrahiert. Damit kann das 3DSceneDisplay weitgehend ersetzt werden. Der Mixin Adaper Filter für den Standalone-Betrieb kann als eigenständiges Produkt separat lizenziert werden.
Mesh Objekt
Dieses Objekt wurde speziell für das Labeln von vernetzten Strukturen implementiert. Ein typischer Anwendungsfall sind nebeneinander liegende Parkplätze um Parkassistenzsystem zu validieren. Das folgende Bild zeigt einen typischen Supermarktparkplatz:
Bisher konnten die folgenden Möglichkeiten zur Markierung genutzt werden:
- Polygon3D als einfache Linie
- Polygon3D als geschlossenes Polygon mit 4 Punkten
- Box3D
Obwohl sich die Aufgabe auch mit diesen Objekten lösen lässt ist der Aufwand dazu beträchtlich, da man sehr viele Operationen mit der Maus ausführen muss um die Objekte korrekt zu platzieren. Auch das Setzen von Attributen ist bei gemeinsamen Linien unter Umständen mehrfach nötig. Man braucht das bei Vorhandensein einer Odomety zwar nur einmal pro Szene machen, aber es kostet Zeit und ist fehlerträchtig.
Bei der Entwicklung des Mesh3D Objekts stand die einfache Erzeugung verbunden mit der Minimierung der Benutzeraktionen im Vordergrund. Anstatt irgendeins der oben genannten Objekte komplett an einer bestimmten Position zu erzeugen und es dann den Referenzdaten anzupassen, werden an den relevanten Eck- und Kreuzungspunkten gezielt an der richtigen Position per Mausklick Punkte erzeugt. Die erzeugten Punkte werden dabei automatisch mit Hilfslinien verbunden die Dreiecke bilden.
Die Punkte sind alle im Mesh3D Objekt gespeichert. Die violetten Linien sind nur Hilfslinien und zeigen nur an wo Kanten (edges) erzeugt werden können. Im nächsten Schritt können wiederum durch einfachen Mausklick die relevanten Kanten markiert werden.
Um jetzt auch noch jede dieser eingeschlossenen Flächen als Polygon zur Verfügung zu haben gibt es einen Befehl diese automatisch zu suchen und zu erzeugen.
Auch diesen Flächen können individuelle Eigenschaften zugewiesen werden.
All diese Information ist im Mesh3D Objekt abgespeichert und kann so zur Validierung verwendet werden. Dadurch dass die Darstellung so einfach definiert ist gibt es weitere Möglichkeiten um Erstellung zu optimieren:
- Automatische Erzeugung regelmäßiger Strukturen mit SubDivide Aktion
- Automatische Erzeugung mit Hilfe eines Object Detectors
- Attributeinstellung für viele Punkte, Kanten und Polygone mit einer Aktion
Gerade wenn Parkplätze wie dieser durch sehr gute Referenzdaten markiert ist, kann ein Object Detector eine gute Hilfe bei der Erstellung sein, so dass der Aufwand für den Labler deutlich reduziert wird und Fehlerquellen minimiert werden. Um dies zu evaluieren wurde ein einfacher Algorithmus zur Detection aller Kanten implementiert. Dieser erzeugt aus jeweils einer im Umriss mit wenigen Punkten markierten Parkfläche mit guten Referenzdaten mit wenigen Mausklicks das fertige Mesh3D Objekt.
Dieses Ergebnis braucht dann nur noch geringfügig angepasst werden und erspart so hunderte von Aktionen durch den Annotator.
Object Detector Interface
Das bereits in Version 4 eingeführte Object Detector Interface wurde erweitert und verbessert. Anstatt der Unterstützung nur eine Point Cloud ist jetzt der Zugriff auf alle Point Clouds möglich. Dadurch können für Actionen unterschiedliche Quellen für die Daten verwendet werden. Es kann z.B. mit einer Action aus einer Point Cloud eine neue Point Cloud errechnet und angezeigt werden. Diese errechnete Point Cloud kann dann wieder in einer anderen Action weiter verarbeitet werden.
Desweiteren sorgen zusätzliche Callbacks dafür dass Actionen bei jedem Frame-Wechsel und auch als Nachbearbeitung bei Änderungen an einem Label-Object ausgeführt werden.
Generic Object Detector
Der optional lizenzierbare Generic Object Detector ist ein mit einer einfachen Skriptsprache steuerbares Plugin, mit dem man eine Vielzahl von Operationen auf Point Clouds aber auch auf Videobildern ausführen kann. Er basiert auf der Point Cloud Library und auf OpenCV. Der Befehlsumfang wird laufend für neue Use-Cases erweitert.
Sonstige Änderungen
Es wurde gegenüber LEV4 eine Vielzahl von Detailverbesserungen vor allem in der Bedienung und der Anzeige implementiert. Und natürlich ist er auch schon zu EBAssist/ADTF 2.13 kompatibel.
Weitere Informationen
Philosys Label Editor Version 4 - Snapshots
Philosys Label Editor Version 4 - Release 4.2
Philosys Label Editor Version 4 - Release 4.3
Gerne entwickelt Philosys im Rahmen von kundenfinanzierten Projekten auch weitere neue Features. Bitte melden Sie sich einfach.
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 Objekte in der Szene manuell und automatisch markiert und mit detaillierten Attributen versehen (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/Absicherung der von Fahrerassistenzsystemen erkannten Objekte, und für die Generierung von Referenzdaten für Deep Neural Networks (DNN) und deren Validierung genutzt. Dadurch dass er ein EB Assist/ADTF basiert fügt er sich nahtlos in die EB Assist/ADTF Entwicklungsumgebung für Assistenzsysteme ein.