Inhaltsverzeichnis
Segmentation of human whole-body motion I
Veranstaltung | Seminar Motions in Man and Machine |
---|---|
Veanstaltungsdatum | 18.-20. Juni 2015 |
Autor | Valerij Wittenbeck, Shengjia Feng, Manuel Porfetye, Jennifer Erb, Qingxiaoyang Zhu, Bastian Niessing, Anna Meier, Kristina Schönenborn, Stefano Molle |
Betreuer | Tamim Asfour, Christian Mandery, You Zhou, Fabian Schültje |
Bearbeitungsdauer | |
Zuletzt geändert | 11. August 2015 |
Einleitung/Motivation
Die Robotik konnte in den vergangenen Jahren stets große Fortschritte verzeichnen. Zunehmend kommen Roboter nicht mehr ausschließlich in der Industrie, sondern auch in eher menschzentrierter Umgebung zum Einsatz. Egal ob zur Assistenz im Haushalt oder in Form eines Exoskeletts, vor allem die Fähigkeit neues Wissen mittels Beobachtung aufzunehmen, abzuspeichern und gegebenenfalls wieder abzurufen erlangt durch dieses neue Einsatzgebiet deutlich größere Bedeutung. Ein Roboter, der einen Menschen im Alltag begleiten und unterstützen soll, darf nicht nur nach einem vorab programmierten Schema agieren. Er muss stattdessen auf Änderungen der Umstände reagieren und die Fähigkeit besitzen neue Verhaltensweisen und Aufgaben ohne eine neue Programmierung zu erlernen. Diese Thematik stellt noch immer eine große Herausforderung dar. Bis heute konnte nicht gänzlich erforscht werden wie diese Prozesse beim Menschen ablaufen, demnach ist auch eine künstliche Nachahmung schwierig. Ein erster Schritt um die Modellierung von beobachtetem Wissen zu erleichtern kann die Segmentierung von menschlichen Bewegungsdaten darstellen. Das Konzept der Bewegungsprimitive geht davon aus, dass der Mensch ein umfangreiches Bewegungsrepertoire an Grundbausteinen besitzt, aus dem komplexe Bewegungen generiert werden. Um das Prinzip des Bewegungslernens auf einen Roboter übertragen zu können ist es nötig menschliche Bewegung in ihre Segmente zu zerlegen. Mittlerweile stehen automatisierte Verfahren zur Analyse und Segmentierung von Bewegungsdaten zur Verfügung.
Im Rahmen des Seminars wurden zunächst existierende Verfahren [1,2] untersucht. In der Präsenzzeit wurden dann einige theoretische Aufgaben gelöst, die beispielhaft für mathematische Elemente einer Segmentierung stehen können. Anschließend wurde ein bestehendes Segmentierungsprogramm um zwei Algorithmen ergänzt, um so Bewegungen automatisch Segmentieren zu können. Ausserdem wurde für einen langsamen Gang und einen Faustschlag von Hand eine Bewegungssegmentierung vorgenommen. Dabei wurden anhand eines Videos die unterschiedlichen Segmente von Bewegungen, nach Möglichkeit für alle Körperteile einzeln, zeitlich voneinander separiert und beschrieben.
Die Lösungen der Theorieaufgaben sowie der Pseudocode der implementierten Segmentierungsalgorithmen sind unter [3] zu finden.
Zusammenfassung Seminar
Das Seminar teilte sich in zwei Hauptbestandteile auf: Einem Theorie-Teil zur Einarbeitung und zur besseren Verständnis der praktischen Verfahren sowie einem Praxisteil, in dem die vorgestellten Segmentierungsmethoden angewandt werden.
Im Theorie-Teil wurden grundlegende Mathematik-Kenntnisse aufgefrischt mithilfe des dazugehörigen Skriptes. Dazu gehören zum Beispiel die Berechnung von Gelenkwinkelkonfigurationen und die Berechnung einer Principal Component Analyse (kurz: PCA). Zudem werden die beiden Segmentierungsverfahren, welche im Praxisteil implementiert werden, als Pseudocode skizziert.
Im diesjährigen Seminar war keine Aufnahme einer Bewegung notwendig, die zu verarbeitenden Bewegungssequenzen wurden uns zur Verfügung gestellt. Die zu betrachtenden Bewegungen waren:
- 3 Schritte (Gehen)
- „Punch-Bewegung“
Zunächst wurden die Sequenzen händisch segmentiert anhand der Videoaufnahme. Wir stellten fest, dass das intuitive Verständnis der Segmentierung in sofern variiert, dass immer unterschiedliche Granularitäten der Segmentierung möglich sind. Beispielsweise kann die Videosequenz der 3 Schritte grob in 3 Segmente unterteilt werden - mit einem Schritt in jedem Segment. Allerdings ist auch eine feingranulare Segmentierung denkbar abhängig vom Anwendungsfall. Ein Beispiel für eine solche Segmentierung ist die zusätzliche Trennung bei Kraftverlagerungen innerhalb eines Schrittes.
In der Implementierung wurde als erste Aufgabe die Gelenkwinkeltrajektorie zu den gegebenen Bewegungssequenzen mittels der geometrischen Methode implementiert. Das Framework für sämtliche Implementierungsaufgaben wurden gestellt, sodass das Einlesen und die Visualisierung bereits inbegriffen war.
Für die Bewegungssegmentierung wurden zwei Verfahren implementiert, jeweils für die Repräsentation im Gelenkwinkelraum und im kartesischen Raum:
- Verfahren A Das erste Verfahren basiert auf der Annahme, dass zwischen Aktionen (Segmenten) jeweils ein Zeitpunkt besteht, zu dem die Gelenkwinkelgeschwindigkeiten minimal werden. Zur Berücksichtigung aller Freiheitsgrade wird so ein Maß z(t) = Σ (x^i_t)^2 definiert, wobei (x^i_t) jeweils Bewegungsveränderungen zum Zeitpunkt t beschreiben. Sobald z(t) zu einem Zeitpunkt t einen empirisch ermittelten Schwellenwert α unterschreitet, wird eine Segmentierung bei t vorgenommen.
- Verfahren B Das zweite Verfahren nutzt die PCA zur Segmentierung der Bewegungssequenz. Es basiert auf der Annahme, dass einfache Bewegungen durch einen Merkmalsvektor mit minimaler Dimension dargestellt werden kann. Um die Zugehörigkeit zu einem Segment zu prüfen, wird der Projektionsfehler bei der Dimensionsreduzierung durch Rückprojektion berechnet und betrachtet. Ist dieser kleiner als ein bestimmter Schwellwert β, gehört dieser Zeitpunkt noch zum vorhergehenden Segment.
<imgcaption image1 | 3 Schritte, Verfahren A (Gelenkwinkelraum)></imgcaption> | <imgcaption image2 | 3 Schritte, Verfahren B (Gelenkwinkelraum)></imgcaption> |
---|
Die Abbildungen Abb. 1 und Abb. 2 zeigen den direkten Vergleich zwischen Verfahren A und B im Gelenkwinkelraum, Abb. 3 und Abb. 4 den Vergleich im kartesischen Raum. Offensichtlich eignet sich im kartesischen Raum bei dieser Beispielsequenz Verfahren A besser, während im Gelenkwinkelraum beide Verfahren relativ ähnliche Ergebnisse zeigen. Jedoch ist hier nicht zu vernachlässigen, dass die Ergebnisse wesentlich variieren, je nachdem, welche Werte als Schwellenwerte eingegeben werden.
Referenzen
[1] J. Barbič, A. Safonova, J. Pan, C. Faloutsos, J. Hodgins, N. Pollard: Segmenting Motion Capture Data into Distinct Behaviors
[2] J. Kohlmorgen, S. Lemm: A Dynamic HMM for On–line Segmentation of Sequential Data
[3] Lösung Theorie Übungen solutions.zip