Home | Anime | Movies | Soundtracks | Graphic Novels

Start Here! Learning the Kinect API
Publisher: O'Reilly

There's just something exciting about the Kinect. Perhaps it's the freedom of not having to hold a controller or push any buttons or perhaps it's because it's ever-so-much closer to the way we can interact with people, with simple gestures and vocal commands. At any rate, the Kinect packs a hefty amount of sensing input in a small package and - now - has been made easily accessible with the Kinect API. If you have have access to a Kinect and a computer and you have a little computing know-how, Start Here! Learning the Kinect API, written by Rob Miles, can get you started quickly.

First off, no matter how cool it might sound to try to make software that utilizes the Kinect, if you don't currently know how to program or you don't even know what an API is (Application Programming Interface), then you're not ready for this book. Start Here! Learning the Kinect API is written in a way that takes things slowly and does a little bit of hand-holding, but it is expected that the reader already have some programming knowledge. I do most of my programming in C#, not having really touched C++ to speak of for years and I had no problems following along (even for the WPF parts, although I hadn't used WPF before), but if you don't have a working concept of code syntax, you won't be able to get much out of this book, aside from, perhaps, inspiration.

Some technical books available from O'Reilly that sound really exciting and interesting to me would require the purchase of some hardware or software to be able to try out the examples, such as, for example, Getting Started with Arduino, 2nd Edition. There is, of course, a hardware requirement here - a Kinect - but, this can be a Kinect for Windows or a Kinect for Xbox, so if you already have a 360 with a Kinect, you can use that one. As for the software side of things, the SDK and Drivers are freely downloadable from Microsoft, as is Microsoft Visual C# Express, which is one integrated development Environments (IDE) recommended in the book. I used C# Express and found it worked just fine for following along with the book.

The first section starts off with something simple - simply capturing frames of video from the Kinect and displaying them on the screen. After taking the shortest path to get working video, Rob then adds some error handling and notes on efficiency, layering additional features and functionality little by little, with enough description to help you understand what you're doing and why, but not to the point of it ever feeling bogged down. I should clarify, however, that while Mr. Miles does a good job of documenting and explaining clips as he builds up the code, he doesn't always show the entire final code in the book. For some things, he explains what should be changed or added, but doesn't go into explanation as to where the changes go. Being a programmer, I was often able to follow along and make the changes in the appropriate places (or, at the very least, places that worked), but if you get a bit lost, you can download the complete code for each example and examine it to see how the code was changed. On the upside, examples aren't built upon too much, so you don't have to do an excessive amount of analysis to determine what the changes were in a given example.

The video capture chapter in Start Here! Learn the Kinect API covers getting video frames from the Kinect, how to edit the image data to alter colors, perform different effects such as altering the color and creating mirror effects, then goes on to show how to make the Kinect watch for differences in its view and how to determine the amount of movement based on the changes to capture images when there's movement in view of the Kinect.

After dealing with video frames from the Kinect, the book moves on to cover using the depth sensors, dealing with face recognition, body (skeleton) detection, and speech recognition. The sample programs are sometimes whimsical, but always informative, with such humorous programs as a kiss-detector that senses when two people's heads get "too close," to a simple bug-squashing game.

There are actually a few different SDKs used in the various examples, including the Kinect SDK, the XNA SDK and Speech Recognition SDKs, to name a few. These all will require separate downloads, but links are provided when you first encounter a new SDK, along with instructions on downloading and installing the SDK. These links are to locations on Microsoft's website and, in my experience, Microsoft has a tendency to move file locations around a lot, but possibly as a consequence, they've gotten pretty good at helping you find the resource you were looking for when you end up on a dead link. This was the case for a couple of the links provided in the book, but I had no problem finding the correct page based on the suggestions provided.

Finally, I should mention that I had issues installing the speech recognition SDK and, as a result, I have yet to be able to get the speech recognition examples to work, but I was more interested in the motion detection. If the speech recognition is a major factor for you, you may want to search on the web and investigate the issue a bit before buying the book. If I get any clarification on the speech recognition with the Kinect, I'll post a follow up as a news article and add a link below.

As for the motion capture, it was quite exciting to see that the skeleton information is all determined inside the Kinect before being sent to the computer, so the data from the SDK is ready to use. Quite handy. If you're looking to play around with the Kinect or perhaps do more than just play and develop something to use the Kinect, Start Here! Learn the Kinect API is a great place to start.



-Geck0, GameVortex Communications
AKA Robert Perkins
Related Links:


This site best viewed in Internet Explorer 6 or higher or Firefox.