Kategorien
Xbox Kinect SDK

Xbox Kinect Programmierung für Windows Beispiel Videos

Die Besucher können Spiele über Gesten spielen

Kategorien
Buch Empfehlungen Xbox Kinect SDK

Microsofts technische Entwicklungsgeschichte der Kinect

Die die Arbeit an der Kinect startete bei Microsoft nachdem Nintendo 2005 ihr Wii-Konsole mit der Wii Remote Steuerung herausgebracht hatte. An der eigentlichen Steuerung wurde aber schon seit 2003 gearbeitet: siehe  Geschichte der NUI/Kinect.

Die Entwicklung der Hardware

Zu Beginn wurden 2 Teams gegründet, die auf Basis von 2 unterschiedlichen Technologien die Kinect bauen sollten. Die Technologien kamen von den Firmen 3DV (gekauft für 35mio$) und PrimeSense (ein unabhängiges israelisches Forschungsunternehmen). Am Ende schaffte nur die PrimeSense Technologie die hohen Anforderungen an die Technik zu bewerkstelligen und einen Prototypen zu bauen, der RGB Kamera, Infrarotsensor und einen Infrarotlichtsensor enthielt und Tiefendaten mit 30fps rendern konnte. Die Geschwindigkeit wurde dadurch ermöglicht, dass die Tiefendaten mit Hilfe der Infrarotdaten auf eine neue Art und Weise bestimmt wurden:

Vorher wurde die Zeit gemessen, die die Daten benötigen, um vom Sensor auf einen Gegenstand und wieder zurück zum Sensor flogen. Die neue Technik projeziert ein Muster von rote Punkte auf den Raum und misst die Größe und den Abstand um die Tiefendaten zu bestimmen.

In die Kinect wurde ein 4-faches Mikrofon Array eingebaut, um in großen Räumen effektiv Spracherkennung durchführen zu können. Microsoft konnte dabei auf die Erfahrung von Windows zurückgreifen, in dem Spracherkennung seit Windows XP enthalten ist.

Die Entwicklung der Software

Auf Basis der Hardware wurde als erstes das Problem des Motion-Trackings gelöst. Das Kinect Entwicklungsteam (Project Natal) beauftragte Jamie Shotton den Microsoft Research in Cambridge mit der Verbesserung des ersten Motion-Trackings Algorithmuses, der folgende Nachteile hatte:

  • der Spieler musste zu Beginn die bekannte T-Pose einnehmen zur Kalibrierung
  • die Kamera verlor den User gelegentlich und das System musste wieder neu kalibriert werden incl T-Pose
  • es funktionierte nur mit bestimmten Körpertypen, nämlich mit denen der leitenden Microsoft Entwickler 🙂
  • aus der Silhouette des Users mussten die Körperteile und daraus die Gelenke extrahiert werden. Aus den Gelenken kann dann das Skelett erzeugt werden, welches die Kinect für die Bewegungen benutzt

Die Lösung: Es wurde Computer Learning verwendet und eine Bewegungssoftware mit Tonnen von Daten gefüttert, u.a. aus Hollywoods Motion Capture Studios. Daraus resultierte ein Entscheidungsbaum, der die Gelenke erkennen konnte.

Eine weiteres Highlight ist die amerikanische Spracherkennung, die mit verschiedenen amerikanischen Akzenten umgehen kann und auch mit Hilfe von Computer Learning erstellt wurde.

Die Kinect wurde schließlich am 26.9.2010 veröffentlicht, 3 Jahre nach dem eigentliche Veröffentlichungstermin zur E3 2007. In den ersten 60 Tagen wurden durchschnittlich 133.000 Einheiten verkauft pro Tag wodurch die Kinect vor dem iPhone und iPad im Guiness Buch der Rekorde steht.

Weiterlesen: Die technische Geschichte der Xbox Kinect und NUI oder Kinect SDK Tutorial Installation unter Windows 7

Kategorien
Xbox Kinect SDK

Die technische Geschichte der Xbox Kinect und NUI

sieh auch Microsofts technische Entwicklungsgeschichte der Kinect

Put-That-There

In den später 70er Jahren entwickelte Chris Schmandt am MIT das erste Projekt mit Sprach- und Gestenerkennung zur Bedienung graphischer Oberflächen namens „Put-That-There“. Der User hatte dafür einen magnetischen Würfel auf dem Handgelenk und ein am Kopf befestigtes Mikrofon anzulegen.

Seine wissenschaftliche Arbeit über „Put-That-There“ kann man hier lesen.

DreamSpace

Ende der 90er Jahre entwickelte Mark Lucente für IBM ein User Interface, welches ohne Referenzobjekte wie Stifte oder Handschuhe auskam und die Gesten des Users erkannte. Das Projekt war schon so visionär, dass es als Alternative für Maus und Keyboard ausgelegt war.

Minority Report

Bei dem Hollywood Film mit Tom Cruise von 2002 ist zum ersten Mal eine Kinect-artige Steuerung zu sehen, die zu dieser Zeit als Science Fiction gegolten haben durfte und für uns nicht mehr ganz so schwer vorstellbar ist. Als wissenschaftlichen Berater hatte Steven Spielberg  John Underkoffer vom MIT engagierte. Vielleicht nicht ganz zufällig begann Microsoft ein Jahr später (2003) mit der Entwicklung der Kinect-Technologie.

Der Minority Report zeigte die Möglichkeiten der New User Interfaces(NUI) als einer der ersten Produktionen aus. Damit ist der Film ein ähnlicher Vorreiter wie die Star Trek Serie, die z.B. automatisch öffnende Türen  oder aufklappbare Handys (Captain Kirk’s Communicator) „erfand“.

Besonders interessant an dem folgendem Ausschnitt aus Minority Report:

  • die Kalibrieung des User Interfaces mit einer T-artigen Bewegung (Video 1:26)
  • die Tücken dieser Technik bei falschen Bewegung (Video 1:46)
  • die Handgesten, die schon an die Kinect Steuerung erinnern zu einer Zeit, an der noch nicht einmal an der Entwicklung der Kinect gearbeitet wurde

Weiterlesen: Microsofts technische Entwicklungsgeschichte der Kinect oder Kinect SDK Tutorial Installation unter Windows 7

aus dem Buch:

Kategorien
C++ Xbox Kinect SDK

Cpp speichern und laden von Matrizen mittels Filestream Klasse

Eine Klasse zum Speichern von 4×4 Matrizen z.B: für Kinect Anwendungen. Die Klasse hat eine Kontrolle der gespeicherten Daten, für den Fall, dass etwas schief geht beim Speichern.

Kategorien
Xbox Kinect SDK

Kinect SDK Tutorial Installation unter Windows 7

Um die Gestenerkennung der Xbox Kinect unter Windows nutzen zu können, kann man die Kinect an seinen PC anschließen und damit interagieren. Eine Kinect Quickstart Videosammlung von Microsoft gibt es hier.

Es ist zwingend Windows 7 oder Windows Embedded Standard 7 nötig für die Kinect Kamera und mindestens Dual-Core 2.66-GHz CPU und 2 GB Ram und natürlich ein USB 2.0-Steckplatz. Es läuft auf 32bit sowie 64bit Prozessoren.

Softwaretechnisch ist zwingend DirectX9.0c von Nöten, anderen Versionen sind nicht (abwärts) kompatibel.

Bei den Kinect Kameras gibt es 2 Versionen, eine normale „Xbox 360″ Version und eine „Kinect for Windows„- Profi Version (Preis aktuell: 200€ bei Amazon).

Die Vorteile der  Kinect for Windows zur Xbox Kinect

  • Nearmode„, mit dem man Daten aus einer Entfernung von min 40cm (1.3 feet)  empfangen kann, d.h. aus einer normalen PC-Arbeitsplatz-Entfernung. Die Standard Kinect arbeitet empfohlener Maßen bei einer Entfernung von um die 2m (1,8m – 3m, je nach Anzahl Personen)
  • Deutlich verbesserte Personenerkennung
  • Kontrolle, welche Person durch den Sensor getrackt werden soll
  • Zum Verwenden und Starten von kommerzieller Software (ausgenommen Xbox Spielen) benötigt man die Profi-Version, zum Entwickeln reicht jedoch die Konsolen-Variante aus.
  • unterstützt bis zu vier Kinect-Sensoren pro Computer
  • verbesserte Spracherkennung

Man kann die Versionen an dem Schriftzug auf dem Gerät unterscheiden: normal „XBOX 360“ rechts frontal, Profi-Near Version: „Kinect„.

Kinect for Windows:

normale Xbox Kinect Kauf Varianten:

Eine interessante Erweiterung für die Standard-Kinect ist die Kinect Zoom Weitwinkel-Linse. Damit können auch Entfernung von 0,8 bis 4m realisiert werden für einen niedrigen Preis. Die Qualität ist nicht besonders gut für Spiele, aber für Programme kann die Linse durchaus empfehlenswert sein.

Leider wird bei bei vor längerer Zeit gekauften Konsolen nicht unbedingt ein USB-Anschluss mitgeliefert, es muss also möglichweise erstmal ein Adapter her. Dieser kann entweder gekauft oder auf abenteuerliche Weise selber gebaut werden.