As I do from time to time, I get sent over a book or two to look over and give a review on which I’m more than happy to do especially if it’s along the lines of game development, x-platform or in this case new and exciting technology. I’m fair and upfront and don’t bow to publisher pressures, if it’s good I’ll say so but just as much if I don’t like it be prepared.
So far I’ve yet to review a stinker and in the case of Abhijit Jana’s book on the new Kinect SDK I was not disappointed.
What’s in store
The contents look like this:
A through breakdown of what it took to make the Kinect device and how it works
A simple run through the Kinect SDK and how to connect a device to your development machine, plus a few extra helpers to get you started.
Goes through the Kinect SDK API and starts you off with your first app to wire up a sensor and monitor data.
A nice leisurely introduction to the camera sensor, it’s capabilities and shows you how to build a simple yet effective video effects app (the techniques also stand well for understanding how cameras in general function, an added bonus)
This chapter happily woke up my 3D side of my brain and went deep in to the implementation surrounding the depth sensor (ban pun I know), it really shows you how the Kinect understands 3D data and how it recognises different players / characters. it reminded me of a demo that was shown where 3D depth data from a Kinect was used to create 3D printer models and their eventual printed result.
If you have ever had any experience with animations and bones in 3D applications or games then this chapter will be right up your alley, if not then prepare for a basic anatomy lesson. Here Abhijit shows you all the magic that goes under the hood in the Kinect SDK and just how much power is leveled with the API to handle the complex nature of not just recognising poses in the environment the Kinect sees but also face recognition and for those fans of security, he walks through the creation of a intrusion detection app to warn you of unwanted guests need your favorite things, like your computer (waning also contains pictures of the author )
Here we are led through one of the Kinect less known features, the microphone sensor and API, it’s practically a whole audio studio crammed into that little Kinect box and very sophisticated (well at least to me and all audio uneducated people). With features like echo cancellation and noise suppression it shows Microsoft really wanted to get as much data out of the environment wit the Kinect as possible.
Microsoft didn’t just stop with good input audio but also included a very powerful speech recognition system into the device and API, in this chapter we are show how to make the best use out of this and even extend it’s capabilities with our own vocabularies and grammar recognition through the extensibility built in to the Kinect API.
For those of you already used to Microsoft’s two latest device offerings like Windows Phone and Windows 8, they will be familiar with gesture recognition. Here we are shown how this is implemented on a programmatic level through the Kinect, how to recognise the base gestures and how to implement our own. What I did find interesting is the way we can even do gesture blending / chaining to build new types of gestures to recognise, fun stuff.
Here we go through the requirements of setting up multiple Kinects and what to expect from doing so, for just those occasions where just one Kinect may not be enough, fair warning may need additional cash investment beyond the second Kinect device for optimum performance.
The one chapter that really shocked me, just when you thought it was safe to come out of the cupboard, Abhijit unleashes the dogs of war with an onslaught of additional material including great additional frameworks to help you on your journey to AR, face tracking and even using XNA avatars with the Knect controller. be prepared, be very prepared.
My thoughts are varied on this book but still heavily weighted on the very good side, here’s a simple breakdown of my thoughts:
Each chapter is very well through out and steps you through each component of the device / API including very detailed examples.
the attention to in depth and detailed technical detail is very easy to understand, Abhijit has done a very good job of explaining technical subjects to even a basic programmer.
Full working sample projects that are only a stones throw away from being something submittable to a marketplace
Covers 3D application for the Kinect, not just theory
The final chapter is a work of art and almost an entire book on it’s own. Showing how to use Azure with the Kinect is a stroke of genius
The highlights do become annoying switching from a good thought process to explaining things to a child. A bit OTT in areas but easily skipable if you don’t need it.
Highlights some of the tricky areas for using the device / API but no real solutions, could have given some extensions with the code API instead of a fixed example.
Some of the math concept seem forced in and don’t get explained enough or don’t really fit in with the area.
Overall I really enjoyed this book and it makes me want to pick up a device and actually start running with it, the samples / examples provide a really good base from where you can expand and put your own mark on the map. I struggled to come up with bad points about this book as it is well formed so they are really just nick picking at best (mild annoyances) as it was such a good read.
If you want to learn the Kinect and how to make the most of it then this book is a really good start and one worth having on the shelf.