Computer-Musik

Sensoren für alle

Das Kinect – der Produktname ist eine Kontraktion aus kinetisch und direkt – von dem seit der Markteinführung im November 2010 weltweit etwa zehn Millionen Stück abgesetzt wurden, hat Microsoft einen Rekordumsatz im vierten Quartal des vergangenen Jahres beschert. Der einzigartige Erfolg des mit verschiedenen Sensoren ausgestatteten Eingabegerätes, das unter dem Code-Namen Project Natal zusammen mit der israelischen Firma PrimeSense entwickelt wurde, ist vermutlich nicht zuletzt dem Umstand zu verdanken, dass es nicht nur zur Steuerung der Videospielkonsole Xbox 360 verwendet werden kann. Schon wenige Tage, nachdem das Kinect erhältlich war, wurde vom spanischen Entwickler Héctor Martín Cantero die erste Version eines quelloffenen Treibers veröffentlicht, mit welchem die USB-Schnittstelle des Gerätes auf Windows- und Linux-Systemen ausgelesen werden kann.

Die Bilddaten der beiden Kameras – eine RGB-Kamera und ein Tiefensensor – werden über die Standard-USB-Schnittstelle zur Verfügung gestellt, müssen dann allerdings noch ausgewertet werden, denn die Algorithmen zur Erkennung von Personen und Gesten sind über diese Schnittstelle nicht zugänglich – hier hat Microsoft nach eigenem Bekunden Barrikaden aufgestellt. Nichtdestoweniger lässt der geringe Preis von etwa 150 € und die Existenz eines Open-Source-Treibers die Anschaffung eines Kinect für alle lohnenswert erscheinen, die an der Programmierung einer berührungslosen Mensch-Maschine-Interaktion interessiert sind, also auch für Künstler, die Echtzeitverarbeitung durch einen Computer in ihre Arbeit einbeziehen.

Der quelloffene Treiber wurde im Netz begeistert aufgenommen. Schon die ersten Experimente mit ihm exemplifizierten eine Vielzahl von Anwendungsmöglichkeiten – darunter auch solche mit zwei komplementär aufgestellten Kinect. PrimeSense, die Firma, welche die Sensoren und die Middleware (die Zugangsschicht) beigesteuert hat, reagierte darauf, indem sie mit ihrem Rahmenwerk Natural Interaction (NI) selbst quelloffen ging (mit Versionen für Windows, Ubuntu, Mac OS X). Es wurde jedoch keines der Lizenzmodelle zugrundegelegt, die für quelloffene Software Standard sind, u.a. ist ein Lizenzschlüssel notwendig. Der von außenstehenden Dritten – inzwischen etwa zwei Dutzend Entwicklern – erstellte und weiterentwickelte Treiber libfreenect, der unter der Apache-Lizenz steht, ist weiterhin eine beliebte Basis für die Integration von Kinect in Anwendungen, die nicht auf der Xbox, sondern auf einem Desktop-Computer oder einem Notebook laufen. libfreenect kann auf Linux, Mac OS X und Windows gebaut werden.

Nicht allein der günstige Preis des Massenproduktes macht es für kreative Anwendungen attraktiv. Ein wesentlicher Aspekt ist, dass ein Sensorgebinde in einem festen Chassis eine Wiederholbarkeit herstellt, die mit einem aus Einzelteilen selbst gebastelten Aufbau nicht zu erreichen ist. Und es ist einfach weniger aufwendig, auf etwas Fertiges zurückgreifen zu können – die gewonnene Zeit kann etwa dafür genutzt werden, die Interaktion auszufeilen.

Zwei jeweils auf ihre Art großartige Umgebungen für die Entwicklung von medialen Anwendungen bieten sich an, um mit dem Kinect unter Verwendung eines jeweils umfangreichen Werkzeugsatzes kreativ zu arbeiten.

Das quelloffene Rahmenwerk openFrameworks in C++ ermöglicht dank der Beispielapplikationen, die als Ausgangspunkt für eigene Projekte genommen werden können, einen einfachen Einstieg für Kreative mit Programmierkenntnissen. Das Kinect wird über das Addon ofxKinect einbezogen. Die in openFrameworks gut integrierte Bibliothek OpenCV stellt Algorithmen zum maschinellen Sehen (CV = computer vision) bereit.

Auch das kommerzielle Software-Paket Max/MSP/Jitter von Cycling ’74, eine grafische Programmierumgebung zur Erstellung von Musik-, Audio- und Medienanwendungen, kann auf die Sensordaten eines Kinect zugreifen. Dies ist Jean-Marc Pelletier und anderen Beitragenden zu verdanken, die mit jit.freenect.grab ein external object zur Bilderfassung in Jitter entwickelt haben. Der grafische Ansatz verlangt Verständnis für den Fluss der Daten und Ereignisse zwischen Objekten, aber nur wenig textuelle Programmierkenntnisse – die aber durchaus von Vorteil sein können.

Vor allem der Tiefensensor des Kinect macht die Arbeit mit dem Gerät spannend, denn er bringt nicht nur Dreidimensionalität, sondern vereinfacht die Verfolgung von Objekten im Raum. Der Tiefensensor im Kinect verknüpft TOF-Informationen – time of flight – ein dem Sonar ähnliches Prinzip, bei dem die Zeit genommen wird, die ein Lichtpunkt zurück zum Sensor benötigt – und die Verzerrung der vom Infrarotsignal ausgegebenen Matrix, um ein Entfernungsbild in Graustufen zu generieren. Das Tiefenbild kann mit dem synchronen RGB-Bild korreliert werden: Dass die Pixelkoordinaten nicht ganz genau übereinstimmen, stört dabei kaum, denn bei der Auswertung ist der Umgang mit Unschärfen ohnehin wesentlich. Die Mikrofonreihe aus vier Kapseln im Kinect, die eine dreidimensionale Ortung von akustischen Signalen ermöglicht, wurde leider bisher vernachlässigt. Aber die Entwicklung geht weiter…

16. Mai 2011 von Kai Yves Linden
Kategorien: Computer-Musik | Schlagwörter: , , , | Schreibe einen Kommentar

Schreibe einen Kommentar