In Annotation Projekten kann es sinnvoll sein, bei manchen Anwendungsfällen nicht nur ausschließlich ein Objekt zu markieren, sondern mehr Aufwand in den Detailgrad zu investieren und Punkte von größerer Interesse zusetzen, sogenannte Keypoints.
Keypoints können beispielsweise die Ecken eines Objektes oder besonderes wichtige Merkmale wie die Augen in einem Gesicht sein. Durch diese Markanten Stellen lassen sich die Objekte in einem Bild genauer Identifizieren und sogar etwas über bestimmte Eigenschaft sagen. In einem Gesicht eines Menschen lässt zum Beispiel die Mimik und Gestik erkennen.
Das Markieren eines Objektes mit Keypoints lässt sich auf unterschiedliche weise bewerkstelligen. Einige Methoden auf die wir näher eingehen, sind dabei:
- Zusammenhängende Keypoints durch Punktlinien
- Generierte Keypoints durch Formen
- Manuelle und generierte Keypoints für die 3D Annotation
Zusammenhängende Keypoints durch Punktlinien
Durch das Labeln eines Objektes durch zusammenhängende Linien wird dem System signalisiert, dass die Keypoints in einer festgelegten Anordnung wichtig sind. Wie im Bild unten zu sehn ist, wird die Augenpartie immer durch X zusammenhängende Keypoints beschrieben. Dabei ist die Lage und die Relation der Keypoints zueinander wichtig. Jeder wichtige Punkt erhält eine eigene eindeutige ID, sodass bei der Erkennungsphase dieser eindeutig zugewiesen werden kann.
Durch den Annotation Vorgang mit Hilfe zusammenhängender Linien wird dieser Vorgang stark vereinfacht. Der Mensch, welcher das System anlernt, erkennt beim Markieren, dass gewisse Strukturen zusammenhängen. Dabei ist es wichtig, das die Polygone Linie immer aus den selben Keypoints besteht. Bei dieser Variante entscheidet also der Mensch selbst, welche markanten Punkte im Objekt wichtig sind.
Dieses Verfahren eignet sich besonders bei Aufgaben, bei denen es wichtig ist, Sie untereinander zu unterscheiden, z.B.:
- Erkennung und Deutung von Gesichtern
- Marker Erkennung
- Erkennung von Dokumenten
- Schrifterkennung
Generierte Keypoints durch Formen
Das Erzeugen von Stützpunkten anhand zuvor definierter geometrischer Formen bietet den Vorteil, dass die Objekte im Bild durch wesentlich weniger Aufwand gelabelt werden können. Diese Variante bietet sich beispielsweise zum Erkennen von Linien und Verläufen an. Hierbei ist es wichtig zu beachten, dass es sich bei den Keypoints um jeweils die selbe Klasse handelt. So sind zum Beispiel alle Keypoints entlang einer Kante vom selben Klassentyp. Dabei spielt die Relation der Stützpunkte zueinander eine untergeordnete Rolle.
Um diese Punkte auf eine einfache Art und Weise zu erstellen, bietet es sich an, diese dynamisch und automatisch zu erstellen. Durch eine zuvor angefertigt Form lassen sich auf dessen Verlauf die Keypoints gleichmäßig verteilen. So erhält das anzulernende System ein optimal verteilte Ansammlung von Trainingsdaten. In der Erkennungsphase kann dann anhand der erkannten Stützpunkte die gewünschte Struktur errechnet und ausgegeben werden. Ein weiterer Vorteil: Es müssen nicht zwangsläufig alle Stützpunkte zum Erkennen einer Form erkannt werden.
Gleichmäßig verteilte Keypoints vom selben Klassentyp eignen sich besonders für die Anwendungsfälle:
- Erkennung von Kantenverläufen
- Erkennung von Straßenverläufen
- Flächenerkennung
- Erkennung von Formen wie Kreise und Ellipsen
Manuelle und generierte Keypoints für 3D Annotation
Die 3D Annotation muss nicht zwangsläufig mit einer 3D Ansicht realisiert werde. Durch 2D Stützpunkte, welche in Bild als Keypoints vorliegen, und den entsprechenden 3D Punkten in einer 3D Vorlage, z.B. im CAD Format, lässt sich mittels Reprojektion die Lage des Objektes ermitteln. Dabei erhält man durch Rotations und Translations Daten eine entsprechende Transformationsmatrix. Voraussetzung hierbei ist ein kalibriertes Kamerasystem. Wie auch bei den Keypoints auf den Punktlinien handelt es sich bei dieser Variante ebenfalls um eindeutig zugewiesene Stützpunkte mit einer einzigartigen Klasse. Somit lässt sich das Matching zwischen 2D und 3D Koordinate leichte nachvollziehen.
Für das Markieren eines 3D Objektes muss dieses zuvor mit den relevanten Keypoints versehen werden. Dies kann manuell oder automisch geschehen. Eine Manuelle vergabe eignet sich häufig, wenn es für den Menschen einfacher sein soll, die Daten per Hand zu markieren. Z.b. könnten die Ecken eines Objektes verwendet werden. Eine Automatische Erkennung bietet sich an, wenn das Objekt weniger eindeutige Merkmale ausweist. In diesem Fall werden sehr viele Stützpunkte ermittelt, sodass im Zweifel später nicht alle benötigt werden. Algorithmen, die automatisch Keypoints ermitteln verwenden häufig sogenannten Eigenwerte. Es gibt jedoch auch andere Algorithmen wie beispielsweiße „Orb-Detect“.
Die Erkennung von 3D Objekten im Raum ist vor allem sinnvoll bei:
- Greifen von Objekten durch Roboter
- Abstandsermittlung
- Augmented Reality Anwendungen