{"id":81,"date":"2018-08-24T10:19:08","date_gmt":"2018-08-24T10:19:08","guid":{"rendered":"http:\/\/symotiv.de\/?p=81"},"modified":"2019-04-24T14:13:00","modified_gmt":"2019-04-24T14:13:00","slug":"tracking-von-bewegenden-personen-innerhalb-videos","status":"publish","type":"post","link":"https:\/\/symotiv.de\/tracking-von-bewegenden-personen-innerhalb-videos","title":{"rendered":"03 – Tracking von bewegenden Personen innerhalb Videos"},"content":{"rendered":"
Aufgrund der finanziellen Grundlage des Projekts haben wir uns dazu entschieden mit Machine Learning f\u00fcr das Tracking weiterzuarbeiten. Motiontrackinganz\u00fcge oder \u00e4hnliche Technologien zu nutzen, w\u00e4re in der Skalierung f\u00fcr ein ganzes Orchester viel zu hoch angesetzt. Der finanzielle Aufwand f\u00fcr diese Vielzahl an Material und Technik w\u00e4re immens. Au\u00dferdem war noch gar nicht wirklich klar, wie die Musiker damit umgehen und wie diese solchen Arbeitsaufwand aufnehmen.<\/p>\n
Die Grundlage f\u00fcr 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<\/p>\n
https:\/\/github.com\/CMU-Perceptual-Computing-Lab\/openpose<\/a><\/p>\n 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.<\/p>\n <\/p>\n Es werden also die Gelenke\/Keypoints erkannt und zu einem humanoiden Skelett zusammengef\u00fcgt. 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\u00fcr 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\u00fcr confidence - d.h. wie sicher gibt die Library an, diesen Wert richtig bestimmt zu haben. Die .json Dateien sind also der erste Schritt f\u00fcr eine digitalisierte Bewegung. Anhand des folgenden Bildes ist zu erkennen wie der Output aussieht.<\/p>\n <\/p>\n Hier sieht man die Grobstruktur einer .json Datei, die f\u00fcr jeden Frame erstellt wird.<\/p>\n <\/p>\n Da eine lokale Installation von Openpose aufwendig ist und die Funktion stark von kleineren Libraries und der Systemkonfiguration abh\u00e4ngt, wurde mit einem Docker Container gearbeitet, in dem man \u00fcber die Shell aus Linux angesteuert mit der Library arbeiten kann.<\/p>\n Wir haben hier mit dem diesem Docker Image gearbeitet:<\/p>\n https:\/\/hub.docker.com\/r\/wenwu449\/openpose<\/a><\/p>\n Hier eine kurze Erl\u00e4uterung der Vorbereitungen, Herangehensweise und der Befehle<\/p>\n Man ben\u00f6tigt: Installiertes Docker per Shell Hier sollten die Treiber und die Grafikkarte nicht zu neu sein, denn nvidia docker h\u00e4ngt zusammen mit der cuda version, welche die Grafikkarte vorgibt.<\/p>\n
\nInstalliertes Linux OS (Ubuntu o. \u00e4.)
\nhttps:\/\/www.ubuntu.com\/download\/desktop<\/a><\/p>\n
\nhttps:\/\/docs.docker.com\/install\/linux\/docker-ce\/ubuntu\/#install-docker-ce-1<\/a>
\nInstalliertes nVidia Docker
\nhttps:\/\/github.com\/NVIDIA\/nvidia-docker\/wiki\/Installation-(version-2.0)<\/a><\/p>\n