Mit unseren Lösungen zur Videoanalyse im Sport entstehen jede Menge Videodateien von Sportlern aus verschiedenen Perspektiven. Das brachte einen unserer Werkstudenten von der Universität Leipzig auf die Idee für seine Masterarbeit: Wäre es möglich, mit den vorhandenen Daten einen Trainingsdatensatz für neuronale Netze zu erstellen, damit eingenommene Posen automatisch erkannt werden können?
Üblicherweise nutzen KIs (Künstliche Intelligenzen) zur 3D-Posen-Extraktion Aufnahmen aus einer oder mehreren Perspektiven, der Algorithmus erkennt dabei die Gelenke, berechnet daraus 3D-Koordinaten und kann so die eingenommene Pose bestimmen. Aktuell gibt es noch zu wenige Trainingsdaten für die KIs, was zu ungenau erkannten Posen und Fehlern führt.
So führt beispielsweise ein Kopfstand zu Problemen in der Berechnung, weil die Ausrichtung des Körpers anders ist, als von Trainingsdaten gelernt – Kopf unten, Beine oben. Ein weiteres Beispiel, das die Algorithmen oft durcheinanderbringt, ist die Verdeckung von Körperteilen. Sind beispielsweise Körperteile von Gegenständen verdeckt (Bsp. Fussball, Luftblasen beim Schwimmen, etc.), kann die KI Gelenke nicht richtig erkennen und es kommt zu einer falsch berechneten Pose.
Trainingsdaten für zuverlässige 3D-Posen-Erkennung
Die Frage lautete daher: Kann man aus den vorhandene Videodaten Trainingsdatensätze erstellen, um die Algorithmen in der 3D-Posen-Erkennung zuverlässig zu trainieren?
Um aus den Videos Trainingsdaten zu erstellen, waren mehrere Schritte notwendig:
- Kamerakalibrierung
- Wahl von Bildpaaren für Posenextraktion
- Einzeichnen von Gelenkkoordinaten in Bilder
- Bestimmung der 3D Koordinaten eines Gelenkes
- Rendern des extrahierten 3D Skelettes für die visuelle Analyse
Um Trainingsdatensätze zu erstellen, sollten in den vorhandenen Videos die Gelenke der Sportler per Hand markiert werden und ein Algorithmus sollte daraus die entsprechenden Gelenke des 3D-Models berechnen. Das Problem: Die Positionen der Kameras zueinander bzw. zum Objekt waren unbekannt und so konnten die Perspektiven nicht in Relation zueinander gesetzt werden. Als Lösung wurden Algorithmen eingesetzt, die diese Relation anhand von Sichtachsen bzw. festgelegten Mustern errechnen.
Für die Posen-Bestimmung wurden mit einem speziellen Videoplayer mehrere Videos synchron abspielt und dabei passende Bilder bestimmt. In diesen Bildern erfolgte dann die Markierung der Gelenke per Hand. Pro Skelett bedeutet das 21 Gelenke und 19 Knochen. Die Markierung ist also sehr aufwändig und sorgt zudem für Abweichungen, weil sich die genaue Position der Gelenke nur sehr schwer bestimmen lässt. Sobald dann alle Gelenke markiert worden sind, werden die 3D-Punkte mittels Triangulation berechnet.
Am Ende erhält man die 3D-Koordinaten eines Skelettes aus den beiden Videos. Diese werden als Strichmännchen in einem 3D-Modell gerendert. Diese Daten können zusammen mit den Bilder zum Training von KIs genutzt werden. Diese KIs werden dann beispielsweise im Bereich Augmented Reality oder Computer Vision (Bsp: Belastungsmessung von Gelenken, Gestenerkennung) eingesetzt.

Ergebnisse der Entwicklung
Am Ende seiner Forschungen kam unser Student zu dem Ergebnis, dass mit der gewählten Methode die Grundpose zwar extrahiert werden kann (ob der Sportler sitzt, steht, läuft, etc.), aber genaue Messungen so nicht möglich sind, da die Gelenkabstände teilweise falsch berechnet wurden und die Knochenlänge so variiert. Die Genauigkeit der KI kann so kaum verbessert werden. Optimierungsansätze könnten mehr Perspektiven und ein bessere Kamerakalibrierung sein.
Erste Erkenntnisse zur Kamerakalibrierung und Projektionsberechnung aus dieser Masterarbeit wurden bereits im Skispringen genutzt – als Kontrolle von Positionstrackern von Skispringern. Die neben der Masterarbeit entwickelte Videoplayerkomponente wurde zudem in unser Multikamerasystem utilius kiwano eingebaut.