Microsoft KINECT
eBook - ePub
Verfügbar bis 21 Sep |Weitere Informationen

Microsoft KINECT

Programmierung des Sensorsystems

  1. 216 Seiten
  2. German
  3. ePUB (handyfreundlich)
  4. Über iOS und Android verfügbar
eBook - ePub
Verfügbar bis 21 Sep |Weitere Informationen

Microsoft KINECT

Programmierung des Sensorsystems

Angaben zum Buch
Buchvorschau
Inhaltsverzeichnis
Quellenangaben

Über dieses Buch

Microsofts Kinect-Sensor erlaubt faszinierende und nie dagewesene Möglichkeiten zur Interaktion zwischen Mensch und Maschine, z. B. durch Mimik und Gestik. Richtig eingesetzt, erweitert diese Technologie Ihre Produkte um spannende neue Einsatzszenarien.Dieses Buch bietet eine Einführung in die Verwendung des Sensorsystems, sowohl unter Windows als auch unter Linux. Die Konzepte werden dabei in Form von leicht verständlichen Kapiteln und davon unabhängigen Beispielprojekten vorgestellt, um ein schnelleres Einarbeiten zu ermöglichen. Unter anderem werden die Themen Farb- und Tiefendaten, Skelett- und Gesichtsverfolgung sowie Spracherkennung ineigenen Kapiteln betrachtet.Die Entwicklung von Anwendungen für den Kinect erfolgt primär unter Verwendung des von Microsoft angebotenen SDK für Windows. Der Gutteil dieses Buchs befasst sich daher mit dem Erstellen von Programmen in der.NETSprache C#. Auch wenn es von Microsoft nicht unterstützt wird, ist der Kinect-Sensor ebenfalls unter Linux einsetzbar. Aus diesem Grund beschäftigt sich das Werk auch mit freenect nund OpenNI - als Entwicklungsumgebung kommt hier das Cross-Plattform-Framework Qtzum Einsatz.Somit ist das Werk optimal für Entwickler, die einen raschen Einblick in die Verwendungsmöglichkeiten des Kinect-Interface suchen, aber auch für Hobbyisten, die ihr Kinect-Bundle nicht nur zum Spielen verwenden wollen. Wenn Sie die Syntax von C# bzw. C++ verstehen, sollten Sie mit den Beispielen keinerlei Probleme haben. Vorkenntnisse in Qt sind vorteilhaft. Die Beispielprogramme stehen auch auf der Buchwebsite zum Download bereit.

Häufig gestellte Fragen

Gehe einfach zum Kontobereich in den Einstellungen und klicke auf „Abo kündigen“ – ganz einfach. Nachdem du gekündigt hast, bleibt deine Mitgliedschaft für den verbleibenden Abozeitraum, den du bereits bezahlt hast, aktiv. Mehr Informationen hier.
Derzeit stehen all unsere auf Mobilgeräte reagierenden ePub-Bücher zum Download über die App zur Verfügung. Die meisten unserer PDFs stehen ebenfalls zum Download bereit; wir arbeiten daran, auch die übrigen PDFs zum Download anzubieten, bei denen dies aktuell noch nicht möglich ist. Weitere Informationen hier.
Mit beiden Aboplänen erhältst du vollen Zugang zur Bibliothek und allen Funktionen von Perlego. Die einzigen Unterschiede bestehen im Preis und dem Abozeitraum: Mit dem Jahresabo sparst du auf 12 Monate gerechnet im Vergleich zum Monatsabo rund 30 %.
Wir sind ein Online-Abodienst für Lehrbücher, bei dem du für weniger als den Preis eines einzelnen Buches pro Monat Zugang zu einer ganzen Online-Bibliothek erhältst. Mit über 1 Million Büchern zu über 1.000 verschiedenen Themen haben wir bestimmt alles, was du brauchst! Weitere Informationen hier.
Achte auf das Symbol zum Vorlesen in deinem nächsten Buch, um zu sehen, ob du es dir auch anhören kannst. Bei diesem Tool wird dir Text laut vorgelesen, wobei der Text beim Vorlesen auch grafisch hervorgehoben wird. Du kannst das Vorlesen jederzeit anhalten, beschleunigen und verlangsamen. Weitere Informationen hier.
Ja, du hast Zugang zu Microsoft KINECT von Tam Hanna im PDF- und/oder ePub-Format sowie zu anderen beliebten Büchern aus Informatik & Programmierung von Spielen. Aus unserem Katalog stehen dir über 1 Million Bücher zur Verfügung.

Information

Verlag
dpunkt
Jahr
2013
ISBN
9783864913846

1 Kinect – was ist das?

Wenn Sie dieses Buch in Händen halten, wissen Sie sehr wahrscheinlich, dass es sich beim Kinect um ein von Microsoft vertriebenes Eingabegerät für Computersysteme handelt.
Aber: Wissen Sie auch, wie die einzelnen Hardwarekomponenten funktionieren? Wissen Sie, was das Projekt Natal war? Oder haben Sie sich schon immer gefragt, ob der Kinect in der Wiener U-Bahn beworben wurde?
Betrachten Sie dieses erste Kapitel nicht als Lehrstoff, sondern als Einführung in die Thematik. Wenn Sie diese Einführung aus Zeitmangel überspringen wollen, lesen wir uns später wieder. Wer wie ich Nebensächlichkeiten liebt, ist hier genau richtig.

1.1 Entfernungen messen

Klassische Entfernungssensoren für Gestenerkennung arbeiteten mit zwei bekannten Schemata: Kontrasterkennung und Signallaufzeit (Time-of-flight).
Die Schwächen der Kontrasterkennung lassen sich an Abbildung 1–1 ablesen. Die graue Farbe des Hemds ist kaum von der weißen Leinwand im Hintergrund zu unterscheiden. Ohne Tiefeninformationen (sprich nur mit Kontrasterkennung) ist es praktisch unmöglich, den Torso des Autors vom Hintergrund zu lösen. Zudem lässt sich der Abstand zum Sensor anhand der Farben allein nicht bestimmen. Auch wenn die Wand 20 Meter von der Kamera entfernt ist, bleibt sie weiß und wird nicht blau – obwohl diese Vorstellung in der Antike weit verbreitet war.
Anders als die Kontrasterkennung liefert die Time-of-flight-Methode echte Tiefendaten. Dabei kommt eine auf den ersten Blick primitive Methode zum Einsatz: Eine Lichtquelle feuert Infrarot- oder Lasersignale ab, die vom Objekt reflektiert und von einem Sensor eingefangen werden.
image
Abb. 1–1 Weiß auf grau: das Ende der Kontrasterkennung
Anhand der Signallaufzeit kann man sodann auf die Entfernung des reflektierenden Punkts schließen. Diese auf den ersten Blick primitive Technologie ist nicht ohne, da der durchschnittliche CMOS-Sensor nicht in der Lage ist, Laufzeiten zu ermitteln.
Der geringe Preis der Hardware wurde erst durch eine Entwicklung von Prime-Sense möglich. Der Kinect ist – man mag es angesichts der enormen Marketing-anstrengungen von Microsoft gar nicht glauben – streng genommen keine Entwicklung aus Redmond. Die im Sensor zum Einsatz kommende Technologie ist geheim. Es gibt außerhalb der diversen Patente kaum offizielle Beschreibungen, wie das System tatsächlich arbeitet.
Anhand der verfügbaren Informationen hat John MacCormick vom amerikanischen Dickinson College eine sehr interessante Präsentation erstellt, die kostenlos (da mit amerikanischem Steuergeld erstellt) heruntergeladen werden kann.1
Die Grundidee ist einfach: Der Kinect sendet das in Abbildung 1–2 gezeigte Punktemuster in die Umwelt. Das Punktemuster durchquert eine spezielle Linse, die die ausgehenden Lichtstrahlen deformiert. Diese Deformation hat den Effekt, dass sich die Form der einzelnen Punkte je nach dem Abstand zum Sensor verändert.
Der Kinect muss die Infrarotszene fotografieren und die Infrarotkügelchen erkennen. Anhand ihrer Form kann er danach auf die Entfernung der einzelnen Objekte schließen. Das Resultat davon ist eine Tiefenmatrix.
image
Abb. 1–2 Die Kinect-Punktwolke (Quelle: http://www.futurepicture.org/?p=129)
Microsoft bestätigt in MSDN (Microsoft Developer Network), dass der Kinect für die Tiefenerkennung Infrarot verwendet. Es ist also sehr wahrscheinlich, dass die hier gegebene Beschreibung zumindest annähernd korrekt ist.

1.2 Doing it the Microsoft Way

Die Entwicklung der Time-of-flight-Methode war für sich genommen noch kein besonderes Ereignis. Wirklich interessant wurde die Technologie erst, als die vier Gründer von PrimeSense mit einem Prototyp ihres Geräts zu Microsoft pilgerten.
Dort fand man sehr schnell Interesse an der Technologie. Am 30.5.2007 sprach Bill Gates auf der D5-Konferenz beiläufig von einer »Kamera zur Spielesteuerung«.
Aus damaliger Sicht war dies keine besondere Ankündigung. Kameras zur Spielesteuerung gab es schon damals für verschiedene Konsolen. Als Beispiel sei hier die 2003 für die PlayStation ausgelieferte EyeToy-Kamera genannt, oder auch die heute kaum noch bekannte U-Force-Kamera für das Nintendo Entertainment System, die sogar schon mit Infrarot arbeitete.2
Der Erfolg der Nintendo Wii führte am 7.4.2008 zu einem weiteren »Aufflackern« in der Gerüchteküche: MTV News verlautbarte, dass Microsoft die Nintendo’sche Konsole angreifen wolle. Wie das erfolgen sollte, blieb damals offen.
Erst die Spielemesse E3 brachte 2009 weitere Einblicke. Microsoft kündigte auf seiner alljährlichen Pressekonferenz das Project Natal an. Das Project Natal wurde als »bewegungsempfindlicher« Sensor für die Xbox vorgestellt. Vom Namen Kinect wusste man damals noch nichts.
Für Entwickler war die Verlautbarung im Januar 2010 mit Abstand am wichtigsten. Microsoft kündigte an, dass der Kinect – anders als die diversen Prototypen und Systeme von PrimeSense – keinen integrierten Prozessor haben würde. Die Berechnungen sollten stattdessen von einem der Kerne der Xbox 360 erledigt werden, deren Gesamtleistung durch diese Zusatzbelastung um rund 10% »sinken« würde.

1.3 Reverse Engineering zugunsten von Unix

Die Auslieferung des Kinect am 4. November 2010 war ein signifikanter Erfolg für Microsoft. Das Gerät verkaufte sich wie geschnitten Brot. Es tauchten sogar in der Wiener U-Bahn Werbestände für das Produkt auf.3
Leider veröffentlichte Microsoft bei der Erstauslieferung der Hardware keinerlei Pläne für PC-Treiber. Dadurch sah sich das für Elektronikbasteleien bekannte Unternehmen Adafruit Industries inspiriert, eine Prämie von 1000 US-Dollar für den ersten funktionierenden Treiber auszuloben.
Microsoft reagierte darauf mit einer Ankündigung, gegen jede Form von Hacking gerichtlich vorzugehen. Adafruit verdoppelte daraufhin die Belohnung, die Technikpresse schrie auf – und die Sache entpuppte sich als großes Missverständnis.
Microsoft ging es primär um Raubkopien und »Cheaten« in Multiplayerspielen. Solange es nur um den Zugriff auf die vom Sensor gelieferten Daten ging, war das dem Unternehmen egal. Das USB-Interface wurde vielmehr als »offen« beschrieben.
Auch in Redmond war man nicht faul. Das im Juni 2011 erstmals ausgelieferte offizielle SDK wurde sogar von einem eigenen, für den PC-Einsatz zugelassenen Kinect begleitet, den Sie im nächsten Kapitel kennenlernen werden.
An dieser Stelle ist nur eine Sache wichtig: Es gibt zwei konkurrierende SDKs. Das eine stammt von Microsoft, das andere ist quelloffen. Für das eine System entwickelte Anwendungen sind mit dem jeweils anderen inkompatibel.

1.4 Innereien

Die innere Struktur des Kinect ist bei allen Modellen gleich. Eine vom amerikanischen Unternehmen iFixit veröffentlichte schrittweise Zerlegungsbeschreibung erlaubt uns, diese näher anzusehen.4
Anstatt die Hauptplatinen einzeln abzudrucken (ein Blick auf die URL http://www.ifixit.com/Teardown/Microsoft+Kinect+Teardown/4066/1 lohnt sich für Interessierte), soll hier das in Abbildung 1–3 gezeigte Flussdiagramm ausreichen. Es zeigt schematisch alle Baugruppen des Kinect.
image
Abb. 1–3 Der Kinect als Flussdiagramm; die Stromversorgung ist nicht abgebildet.
Die Kommunikation zwischen Sensor und Host erfolgt über USB. Dass der Steckplatz nicht unbedingt standardisiert aussieht, wird im nächsten Kapitel besprochen.
Neben dem zur Kühlung eingebauten (und vom PC aus nicht steuerbaren) Ventilator gibt es an »simpler« Peripherie zusätzlich ein Accelerometer und einen Motor zur Anpassung der Sichtachse.
Die eigentliche Intelligenz befindet sich in der abgespeckten PrimeSense-CPU. Sie hat die Aufgabe, die verschiedenen im Kinect enthaltenen Sensoren miteinander abzustimmen und als Resultat einen Audio-, einen Tiefen- und einen Farbdatenstrom an den Host zurückzuliefern.
Die Aussage von Microsoft, der Kinect hätte KEINEN Prozessor, ist so zu verstehen, dass die Skelettverfolgung (also der Prozess der Umwandlung von Farb- und Tiefendaten in Skelettkoordinaten) ausschließlich durch den Host erfolgt.

1.5 Fazit

Die vom Kinect gebotenen Interaktionsmöglichkeiten sind – per se – nichts Neues. Die Stärke des Produkts liegt im geringen Preis und der hohen Verfügbarkeit. Nie zuvor gab es ein so leistungsfähiges und gleichwohl günstiges Sensorpaket in einem so praktischen Formfaktor.

2 Erste Schritte

Nach den historischen Ausführungen im ersten Kapitel ist es nun an der Zeit, die Anwendungsentwicklung für den Kinect-Sensor vorzubereiten.5
Das Installieren und Anschaffen eines Kinect ist komplizierter, als man auf den ersten Blick annehmen würde. Es gibt viele verschiedene Kinect-Typen, die sich insbesondere beim Anschließen an den Rechner unterschiedlich verhalten.

2.1 Der Kinect-Zoo

Prinzipiell gibt es drei Bauarten für unterschiedliche Einsatzzwecke, die sich in den Funktionen und beim Anschluss an den PC unterscheiden.
Wichtig ist, dass nur der Kinect für Windows mit der SDK-Runtime für Endanwender zusammenarbeitet. Wenn Sie Ihre Anwendung also auf einem PC ausführen wollen, auf dem das SDK nicht installiert ist, so darf der an diesem PC angeschlossene Kinect keinesfalls eine der Xbox-Versionen sein.

2.1.1 Kinect-Bundles

Der wahrscheinlich verbreitetste Sensor ist Teil der diversen Bundles, die aus einer Xbox 360S (slim edition), einem Kinect und eventuell einem oder mehrerer Spiele bestehen.
Die Xbox 360 hat einen speziellen Port auf ihrer Rückseite, der die Stromversorgung und die USB-Kommunikation in nur einem Kabel kombiniert. In Abbildung 2–1 ist der Stecker dargestellt. Dass Sie so einen Port an Ihrem PC nicht finden, ist offensichtlich.
image
Abb. 2–1 Das ist kein normierter USB-Stecker – bitte keinesfalls gewaltsam in einen USB-Port von PC oder Notebook rammen!
Damit auch Besitzer alter Xbox-360-Modelle einen – z. B. von Freunden geliehenen – Kinect verwenden können, offeriert Microsoft ein spezielles Netzteil. Es wird mit dem Kinect verbunden und teilt sich in ein Steckernetzteil und ein normales USB-Kabel auf. Es ist ein von Microsoft wahrscheinlich unerwünschter Nebeneffekt, dass sich dieses Kabelsy...

Inhaltsverzeichnis

  1. Cover
  2. Titel
  3. Impressum
  4. Vorwort
  5. Inhaltsverzeichnis
  6. 1 Kinect – was ist das?
  7. 2 Erste Schritte
  8. 3 Farbdaten
  9. 4 Beispielprojekt I: Webcam
  10. 5 Tiefendaten
  11. 6 Beispielprojekt II: Tiefenhistogramm mit Rauschunterdrückung
  12. 7 Skelettverfolgung
  13. 8 Gesichtsverfolgung
  14. 9 Spracherkennung
  15. 10 Weitere Sensoren, Hardwarefunktionen und hilfreiche Tools
  16. 11 OpenNI
  17. 12 Kinect, der Zweite
  18. Index
  19. Fußnoten