Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

"Augmented Reality with Kinect" – A Review

DZone's Guide to

"Augmented Reality with Kinect" – A Review

·
Free Resource

Book review season is back again, this time with a title that opens your eyes to Microsoft’s wondrous sensor, the Kinect.

"Augmented Reality with Kinect"

This is definitely a book for Kinect beginners, and here we have an Author who really knows how to lay out complex information in short and readable parts, broken down so that anyone (even my daughter) can understand it.


Since its release, the Kinect has fascinated me. It drew to the forefront the idea of a fully-realized, non-connective user interface experience. Nintendo started the ball rolling with their WiiMotes and nunchucks, but you still had to find and put batteries in the things to get it going. With the Kinect, all you needed was your body (and a suitably large room in which to dance).

The author has chosen a more direct route with this book. Instead of just picking and choosing features, you are walked from start to finish through the creation of an actual game using the Kinect, which is a very nice touch/approach.

With the XboxOne coming on the scene soon, and the news that it will be opened up for all devs to work on (no need for special dev units), this book is a great preparation book, especially since the new Kinect (Kinect Two?) is far superior to the original with even finer detail available to the sensor and (thank god) a large room is no longer needed, as it can handle more players in a much smaller space. No need for a specialized dance hall to play it in anymore.


Here’s a brief run-through of what all the chapters are and what to expect from them. Because you are building a game with this book, the chapters are a little more pragmatic, showing you how and what to use, and when you need it, as follows:

Chapter One “Getting Started with Kinect”

Starting from the beginning (how fresh Open-mouthed smile), you are walked through the history of the Kinect and how to get your development set up (the right way) for Kinect development. In a nice touch, the authors show you how to test your machine using the Kinect SDK to ensure that it’s working properly and that your test environment is working effectively (so you don’t spend hours only to find out the cat left a paw print on the depth sensor Smile with tongue out).

As the premise of the book is about making a game using the Kinect, it’s a nice touch toward the end of the chapter to give you a brief rundown of what you will be creating (and even a link to the running project that is on the XBOX marketplace already). #Spoiler Alert, it’s Fruit Ninja!

Chapter Two “Creating Your First Program”

Chapter two follows neatly from setting up your dev environment in Chapter one, to setting up your new game project. It establishes all the frameworks you’ll need and helps to get your first scene rendering with integration to the Kinect sensor. This is a crucial section, as it helps you understand how to use the sensor effectively and how you will translate the inputs from the device into your game. Each section is explained clearly and is easy to follow.

Chapter Three "Rendering the Player”

If you ever wanted to see yourself in interesting places without traveling, then this chapter will be for you. Taking what you already have with your start-up project, we start messing around with the different streams, and more importantly, the correction needed to get those streams working together. One thing that is generally missed when working with these devices is that the streams are usually in different resolutions, and just scaling them to match is not enough. The author takes great care to walk you through each corrective step to get the result you want.

In this case, the result is a green screen application where you can don your favorite superhero outfit and start flying over a city skyline. Thankfully, the author chose a nice, safe scene with him standing in front of some mountains Open-mouthed smile.

Chapter Four “Skeletal Motion and Face Tracking”

Here is where it really starts to get interesting. We have our streams and the raw data from the camera of the device, but the Kinect especially has a lot more. It provides skeletal features, arms and joint data, but not how to make sense of it all.

By the end of this chapter, you’ll be able to understand and be ready to use all of the body and face data that the Kinect outputs ready for use. I really like how this chapter is laid out; it shows you what the data is and how it is perceived, not only by the SDK, but from the raw data as well. In another nice touch, it details all the different types of data and their masks so you really know what you are working with.

Chapter Five “Designing a Touchable User Interface”

As the final piece to the puzzle of making games with Kinect, this chapter finishes off the theory and demonstration part by building a system to take all the raw information and turn it in to things you can use, such as mouse pointers. With this data, you can recognize gestures, movements (from a pointer perspective) and a multi-touch UI manager, all essential for creating our game.

Chapter Six “Implementing the Scene and Game Play”

Finally, we take what we have learned and form it into the game scene, piecing together all the components we have built so far and adding logic, plus some texture magic. Nothing too fancy (or else this book would be three times longer), but enough to give you a leg up on creating your own full game using the Kinect. Again, each part is detailed enough that you know what each portion of the code you are writing does and what it means to your game. A nice touch is a section where it uses the data to determine the direction in which you have sliced your fruit, and applies transformations appropriately to split that there dangerous water melon--have-at-thee.

Appendix “Where to Go from Here”

As a nice finishing touch to this book, there is an appendix crammed full of other info, from open source frameworks and utilities to a giant list of what’s what in the Kinect world (a fair few even I’ve not seen before), and even a list of alternate commercial products and frameworks if your budget is a bit bigger. There is even a list of competitive products, which are based on the same type of interface, such as the Leap motion.

Nice to see an author go the extra mile and put up a sign.


The premise of this book I find really appealing; instead of just a technical manual, you are building something. It’s not as heavy as other books, and probably shorter than I might have expected, but has a nice quality feel to it. The reader is led through a nice structure and laid-out garden, instead of just having specific flowers pointed out.

Pros:
  • Full-featured explanations of concepts and code to implement them.
  • Easy to pick up, especially if you are new to Kinect (or sensors of this type).
  • Green screen effects and how to make them Open-mouthed smile (pants at the ready).
Cons:
  • Shorter than I would have liked. The game examples could be a bit more full featured; as it stands, they are just enough to get you started.
  • Examples and code are only in C++. I would have liked to have seen either XNA or MonoGame as alternate implementations.
  • The author should really have been smiling in the pictures. I feel sad for him. Can someone give this man a hug? (You just wrote a book and got it published, after all!)

For someone new to Kinect and/or programming, this book is a great first step; it's not too heavy, and it's laid out clearly enough that you will know what you are doing by the end. Certainly a good step-up book before reading other more technical books.

My only real criticism of the book is that it is short. At only just over 100 pages, it could have been a fair bit more. It leads up to a nice, really big finish, but then it's gone. Add more to the game implementation and I would have been more than satisfied. That said, the lead up to the game is excellent and very nicely structured.

So, as a newbie, jump in and read this and you will know what you need to know, but more reading will likely be required in Kinectimatics to get you the rest of the way.

Topics:

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}