August 24, 2018

03 – Tracking von bewegenden Personen innerhalb Videos

Aufgrund der finanziellen Grundlage des Projekts haben wir uns dazu entschieden mit Machine Learning für das Tracking weiterzuarbeiten. Motiontrackinganzüge oder ähnliche Technologien zu nutzen, wäre in der Skalierung für ein ganzes Orchester viel zu hoch angesetzt. Der finanzielle Aufwand für diese Vielzahl an Material und Technik wäre immens. Außerdem war noch gar nicht wirklich klar, wie die Musiker damit umgehen und wie diese solchen Arbeitsaufwand aufnehmen.

Die Grundlage für ein Tracking durch eine Videoaufnahme geschieht erst einmal zweidimensional. Dem MachineLearning Model wird also ein Video als Input gegeben, welches dann statistisch abgleicht wie viele Personen und Gelenke im Bild sind und wo diese sich befinden. Gearbeitet wurde mit der Openpose Library

https://github.com/CMU-Perceptual-Computing-Lab/openpose

Das Bild oder Video, welches als Input festgelegt wird, erstellt einen statistischen Abgleich anhand des CMU Panoptic Datensatzes (http://domedb.perception.cs.cmu.edu/) mit Struktur des COCO Models, das wie folgt aussieht.

Es werden also die Gelenke/Keypoints erkannt und zu einem humanoiden Skelett zusammengefügt. Der Output is dann selbst definierbar. Man kann das Video mit einem Overlay der erkannten Skelette ausgeben lassen(auf dem Input Video und auf schwarz) und zudem für jeden Frame des Videos eine .json datei in der die x,y und c Werte eines jeden Gelenks notiert werden. Der c-Wert steht für confidence - d.h. wie sicher gibt die Library an, diesen Wert richtig bestimmt zu haben. Die .json Dateien sind also der erste Schritt für eine digitalisierte Bewegung. Anhand des folgenden Bildes ist zu erkennen wie der Output aussieht.

Hier sieht man die Grobstruktur einer .json Datei, die für jeden Frame erstellt wird.

Da eine lokale Installation von Openpose aufwendig ist und die Funktion stark von kleineren Libraries und der Systemkonfiguration abhängt, wurde mit einem Docker Container gearbeitet, in dem man über die Shell aus Linux angesteuert mit der Library arbeiten kann.

Wir haben hier mit dem diesem Docker Image gearbeitet:

https://hub.docker.com/r/wenwu449/openpose

Hier eine kurze Erläuterung der Vorbereitungen, Herangehensweise und der Befehle

Man benötigt:
Installiertes Linux OS (Ubuntu o. ä.)
https://www.ubuntu.com/download/desktop

Installiertes Docker per Shell
https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce-1
Installiertes nVidia Docker
https://github.com/NVIDIA/nvidia-docker/wiki/Installation-(version-2.0)

Hier sollten die Treiber und die Grafikkarte nicht zu neu sein, denn nvidia docker hängt zusammen mit der cuda version, welche die Grafikkarte vorgibt.

Genaueres nachzulesen gibt es hier:
https://github.com/NVIDIA/nvidia-docker/wiki/CUDA#requirements

Wenn die Installationen fertig sind können wir damit arbeiten.

sudo nvidia-docker run -v /path/to/directory:/data -it wenwu449/openpose:latest bash

Jetzt sind wir innerhalb der Library.

/path/to/directory:/data

Mit diesem Pfad definieren wir einen lokalen Ordner aus dem Openpose seine Daten zieht. /data wird später zum abgreifen des Pfades.

Der Basisbefehl um ein Video als Input zu definieren und als Output ein Overlay Video mit .json Daten zu generieren lautet:

./build/examples/openpose/openpose.bin --video /data/video.mp4 --display 0 --write_video /data/newvideo.avi --write_keypoint_json /data/

--video legt fest welches video interpretiert werden soll.
--display 0 blendet den Prozess der Erkennung aus
--write_video gibt einen pfad für das Ausgabevideo
--number_people_max 1 sagt maximale Personen zu erkennen auf 1 setzen
--camera_fps 59.94 legt fest mit wie viel fps das ausgabevideo exportiert wird (falls das Inputvideo mehr als 30 fps hat)

Nachdem der Umgang der Library umgänglicher wurde, sind mit selbst erstellten Testvideos die Genauigkeit und die Grenzen erprobt worden.

Was passiert bei einer Verdrehung des Körpers? Wie geht die Library mit verdeckten Gelenken um? Stimmt bei mehreren Personen die Zuordnung der Werte/Koordinaten? Wie wirkt sich Lage der Person und die Position der Kamera auf das Tracking und die Daten aus?

Anhand dieser Tests, konnte recht gut abgeschätzt werden, welche Situation für die Aufnahmen mit den Musikern geschaffen werden sollte. Es wird auch durchaus knifflig alle erstellten Videos der Musiker in einem Stapel mit der Library zu verarbeiten.

Im nächsten Post geht es um die Weiterverarbeitung der 2D Daten.

Juli 12, 2018

02 – Erste Zielsetzungen und Themenfindung des Projektes

Eine Herausforderung zu Anfang des Projekts war es ein Projektziel zu finden, dass alle Disziplinen und Anforderungen der Projektpartner vereinte. Das bedeutete für das Orchester, ihre Kunst an ein größeres Publikum und neue Interessierte zu vermitteln und damit digital an das vorhandene „Erlebnis Konzert“ anzuschließen. Für die Projektpartner des Campus Münchberg war der Fokus auf einer gelungenen Visualisierung, die dem Betrachter das Orchester näher bringt und gleichzeitig viel über klassische Musik und ihren Aufbau erklärt. Hinzu kam noch der Reiz, neue Technologien und Methoden auszuprobieren, die gerade auf kultureller Ebene noch nicht Fuß gefasst haben, um mit der Veröffentlichung der Projektergebnisse große Wellen zu schlagen, aber auch um während des Projektes selbst etwas dazulernen zu können.

Nach mehreren Treffen und Gesprächen hat sich die Idee durchgesetzt, ein virtuelles Orchester aufzubauen, das aus den Bewegungen und der Musik der Hofer Symphoniker besteht. Dabei sollten die Bewegungen in einem bestimmten Verfahren aufgenommen werden, um sie später in einem virtuellen Raum wieder rekonstruieren zu können. Hier ist früh klar geworden, dass uns Machine Learning beim Verarbeiten dieser Daten helfen und Virtual Reality zum eintauchen in das virtuelle Orchester dienen sollte.

Da bei den Symphonikern der Klang eine sehr wichtige Rolle spielt, sollte dieser auch entsprechend in der VR vertreten werden. Es kam die Frage auf, welches Musikstück für die Aufnahmen gespielt werden sollte, um die Hofer Symphoniker adäquat zu repräsentieren und gleichzeitig ein interessante Grundlage für den Betrachter der finalen Anwendung zu bieten.

Die Entscheidung fiel recht schnell auf „Charivari“, ein Paradestück für Orchester, geschrieben vom österreichischen Komponisten H.K. Gruber und beeinflusst vom berühmten Stück „Perpetuum Mobile“.

Als Ziel des Forschungsprojektes wurde angesetzt, die Hofer Symphoniker virtuell neu darzustellen und so das Erlebnis Orchester zu erweitern, um gleichzeitig ein offenes Datenset von einem ganzen Orchester  und Musikstück zu erstellen, das von anderen Forschern  weiterbenutzt werden kann.

Juni 10, 2018

01 – Kooperationsprojekt zwischen Hochschule Hof/Campus Münchberg und den Hofer Symphonikern

Ende 2017 bekamen die Hofer Symphoniker einen Zuschlag für das Förderprogramm „Exzellente Orchesterlandschaft Deutschland“ aufgrund eines Beschlusses von Bundeskulturstaatsministerin Monika Grütters. Mit diesen Fördermitteln sollte ein Digitalisierungsprojekt im kulturellen Bereich gestartet werden. Die Hofer Symphoniker kamen mit der Hochschule ins Gespräch und beschlossen mit Prof. Michael Zöllner und den Alumni Markus Bosl und Dirk Widmann ein designbasiertes Forschungstransferprojekt zu realisieren.

Beide Kooperationspartner haben ein unterschiedliches Verständnis was Digitalisierung bedeutet bzw. bedeuten kann. Deshalb wurde in kürzeren Anfangsmeetings erst einmal die Arbeitsweise an der Hochschule erläutert und ein grober Überblick gegeben mit welchen Medien, Werkzeugen und Themengebieten gearbeitet wird.

Wir hatten den Vorschlag Daten zu erheben/erstellen, die die Bewegungen der Musiker beschreiben, um damit analysieren, visualisieren und erklären zu können, was in einem Orchester während eines Musikstücks passiert. Da die Bewegungsdatenerhebung auf Machine Learning basiert und eher unbekannt ist, wie diese Daten erhoben, implementiert und weiterverarbeitet werden können, wurde daraus ein Forschungstransferprojekt. So war gegeben, dass erforscht wird, wie bestehende Technologien und Applikationen mit Abwandlungen für die Thematik eines Orchesters nutzbar sind.

Anfang 2018 gab es immer wieder kurze Meetings, in denen vor allen Dingen auch der Aufwand besprochen wurde, der abhängig vom Projektergebnis ist. Ein ganzes Orchester extra für Aufnahmen oder technische Experimente aufzustellen, gestaltet sich bei einem Symphonieorchester mit vollem Termin nicht sonderlich einfach. Wir hatten nun erstmal ein paar Wochen Zeit Projektskizzen vorzubereiten und zu überprüfen was an Material bzw. Hard-
und Software dafür benötigt wird.