Augmented Reality with Kinect - Rui Wang - E-Book

Augmented Reality with Kinect E-Book

Wang Rui

0,0
27,59 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

Microsoft Kinect changes the notion of user interface design. It differs from most other user input controllers as it enables users to interact with the program without touching the mouse or a trackpad. It utilizes motion sensing technology and all it needs is a real-time cameras, tracked skeletons, and gestures.

Augmented Reality with Kinect will help you get into the world of Microsoft Kinect programming with the C/C++ language. The book will cover the installation, image streaming, skeleton and face tracking, multi-touch cursors and gesture emulation. Finally, you will end up with a complete Kinect-based game.

Augmented Reality with Kinect will help you get into the world of Kinect programming, with a few interesting recipes and a relatively complete example. The book will introduce the following topics: the installation and initialization of Kinect applications; capturing color and depth images; obtaining skeleton and face tracking data; emulating multi-touch cursors and gestures; and developing a complete game using Kinect features.

The book is divided in such a way so as to ensure that each topic is given the right amount of focus. Beginners will start from the first chapter and build up to developing their own applications.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB
MOBI

Seitenzahl: 127

Veröffentlichungsjahr: 2013

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

Augmented Reality with Kinect
Credits
About the Author
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers and more
Why Subscribe?
Free Access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Getting Started with Kinect
Installation of Kinect
Setting up your Kinect software on PCs
Why did I do that?
The idea of the AR-based Fruit Ninja game
Summary
2. Creating Your First Program
Preparing the development environment
Building the Visual Studio project
Starting the device
Initializing and using Kinect in C++
Understanding the code
Additional information
Summary
3. Rendering the Player
Choosing image stream types
Obtaining color and depth images
Drawing color and depth as textures
Understanding the code
An incorrect way to combine depth and color
A traditional way for background subtraction
Understanding the code
Aligning color with depth
Generating a color image from depth
Understanding the code
Additional information
Using a green screen with Kinect
Making a magic photographer
Understanding the code
Additional information
Summary
4. Skeletal Motion and Face Tracking
Understanding skeletal mapping
Obtaining joint positions
Drawing the skeleton
Understanding the code
Drawing the linetrails following the hands
Drawing the path for specified joints
Understanding the code
Face tracking in Kinect
Detecting a face from the camera
Detecting and drawing the face rectangle
Understanding the code
Constructing the face model
Drawing the parametric face model
Understanding the code
Summary
5. Designing a Touchable User Interface
Multitouch systems
Locating the cursors
Drawing cursors from two hands
Understanding the code
Additional information
Common touching gestures
Recognizing holding and swiping gestures
Drawing cursors using two hands
Understanding the code
Additional information
Sending cursors to external applications
Emulating Windows mouse with cursors
Understanding the code
Summary
6. Implementing the Scene and Gameplay
Integrating the current code
Integrating existing elements in a scene
Understanding the code
Cutting the fruits
Adding and handling fruit objects
Understanding the code
Playing the game
Adding simple game logic
Understanding the code
Additional information
Summary
A. Where to Go from Here
libfreenect – the pioneer of Kinect middleware
OpenNI – a complete and powerful Kinect middleware
Free and open source resources
Commercial products using Kinect
Index

Augmented Reality with Kinect

Augmented Reality with Kinect

Copyright © 2013 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

First published: July 2013

Production Reference: 1040713

Published by Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK.

ISBN 978-1-84969-438-4

www.packtpub.com

Cover Image by Suresh Mogre (<[email protected]>)

Credits

Author

Rui Wang

Reviewers

Ricard Borràs Navarra

Vangos Pterneas

Acquisition Editor

Kartikey Pandey

Commissioning Editors

Llewellyn Rozario

Priyanka Shah

Technical Editors

Sumedh Patil

Aniruddha Vanage

Copy Editors

Insiya Morbiwala

Alfida Paiva

Laxmi Subramanian

Project Coordinator

Amigya Khurana

Proofreader

Maria Gould

Indexer

Rekha Nair

Graphics

Abhinash Sahu

Production Coordinator

Conidon Miranda

Cover Work

Conidon Miranda

About the Author

Rui Wang is a Software Engineer at Beijing Crystal Digital Technology Co., Ltd. (Crystal CG), in charge of the new media interactive application design and development. He wrote a Chinese book called OpenSceneGraph Design and Implementation in 2009. He also wrote the book OpenSceneGraph 3.0 Beginner's Guide in 2010 and OpenSceneGraph 3.0 Cookbook in 2012, both of which are published by Packt Publishing and co-authored by Xuelei Qian. In his spare time he also writes novels and is a guitar lover.

I must express my deep gratitude to the entire Packt Publishing team for their great work in producing a series of high-quality Mini books, including this one, which introduces the cutting-edge Kinect-based development. Many thanks to Zhao Yang and my other colleagues at Crystal CG, for their talented ideas on some of the recipes in this book. And last but not the least, I'll extend my heartfelt gratitude 
to my family for their love and support.

About the Reviewers

Ricard Borràs Navarra has always been working around computer vision and machine learning. He started creating machines that apply pattern recognition to quality assortment in the cork production industry. Later, he applied these techniques for human tracking in complex scenarios, creating audience measurement, and people-counter solutions for retail stores.

With the eruption of Kinect, he started working on and deploying augmented reality interactive applications based on this great device. These applications were targeted at the marketing and retail sectors.

All these projects were developed by him as an Inspecta (www.inspecta.es) employee. Also, Ricard has developed several freelance projects based on augmented reality.

Vangos Pterneas is a professional Software Engineer, passionate about natural user interfaces. He has been a Kinect enthusiast ever since the release of the very first unofficial SDKs and has already published a couple of commercial Kinect applications.

He has worked for Microsoft Innovation Center as a .NET developer and consultant and he's now running his own company named LightBuzz. LightBuzz has been awarded the first place in Microsoft's worldwide innovation competition, held in New York.

When he is not coding, he loves blogging about technical stuff and providing the community with open source utilities.

www.PacktPub.com

Support files, eBooks, discount offers and more

You might want to visit www.PacktPub.com for support files and downloads related to your book.

Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at <[email protected]> for more details.

At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.

http://PacktLib.PacktPub.com

Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can access, read and search across Packt's entire library of books.

Why Subscribe?

Fully searchable across every book published by PacktCopy and paste, print and bookmark contentOn demand and accessible via web browser

Free Access for Packt account holders

If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view nine entirely free books. Simply use your login credentials for immediate access.

Preface

Microsoft Kinect was released in the winter of 2010. As one of the first civil handsfree motion input devices, it brings a lot of fun to end users of Xbox 360 and Windows PCs. And because Kinect is very useful for designing interactive methods in user applications, new media artists and VJs (video jockeys) are also interested in this new technology as it makes their performances more dramatic and mystical.

In this book, we will focus on introducing how to develop C/C++ applications with the Microsoft Kinect SDK, as well as the FreeGLUT library for OpenGL support, and the FreeImage library for image loading. We will cover the topics of Kinect initialization, color and depth image streaming, and skeleton motion and face tracking, and discuss how to implement common gestures with Kinect inputs. A simple but interesting Fruit Ninja-like game will be implemented in the last chapter of this book. Some alternative middlewares and resources will be introduced in the Appendix, Where to Go from Here, for your reference.

What this book covers

Chapter 1, Getting Started with Kinect, shows you how to install Kinect hardware and software on your Windows PC and check if Kinect will start.

Chapter 2, Creating Your First Program, demonstrates how to create an OpenGL-based framework first and then initialize the Kinect device in user applications.

Chapter 3, Rendering the Player, shows you how to read color and depth images from the Kinect built-in cameras and display them in the OpenGL-based framework. A common way to implement the green screen effect is also discussed.

Chapter 4, Skeletal Motion and Face Tracking, demonstrates how to obtain and render the skeleton data calculated by the Kinect sensor. It also introduces the face detection and facial mesh generation APIs with examples.

Chapter 5, Designing a Touchable User Interface, shows you how to use Kinect APIs to simulate multi-touch inputs, which are very common in modern interactive applications and GUI developments.

Chapter 6, Implementing the Scene and Game Play, demonstrates how to make use of all prior knowledge we have gained to make a Fruit Ninja-like game, which uses Kinect as the input device.

Appendix, Where to Go from Here, introduces more alternative middleware and many resource websites for learning and developing Kinect.

What you need for this book

To use this book, you will need a graphics card with robust OpenGL support. It would be better if it is with the latest OpenGL device driver installed from your graphics hardware vendor.

You will also need a working Visual Studio compiler so as to convert C++ source code into executable files. A working Kinect hardware, Microsoft Kinect SDK, and Developer Kit are also required.

Who this book is for

This book is intended for software developers, researchers, and students who are interested in developing Microsoft Kinect-based applications. You should also have basic knowledge of C++ programming before reading this book. Some experience of programming real-time graphics APIs (for example, OpenGL) may be useful, but is not required.

Conventions

In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.

Code words in text are shown as follows: "The updating of Kinect and user data will be done in the update() method."

A block of code is set as follows:

#include <GL/freeglut.h> #include <iostream> // The updating callback void update() { glutPostRedisplay(); }

When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

#include <GL/freeglut.h> #include <iostream> // The updating callback void update() { glutPostRedisplay(); }

New terms and important words are shown in bold. Words that you see on the screen, in menus or dialog boxes for example, appear in the text like this: "clicking the Next button moves you to the next screen".

Note

Warnings or important notes appear in a box like this.

Tip

Tips and tricks appear like this.

Reader feedback

Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.

To send us general feedback, simply send an e-mail to <[email protected]>, and mention the book title via the subject of your message.

If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide on www.packtpub.com/authors.

Customer support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Downloading the example code

You can download the example code files for all Packt books you have purchased from your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.

Errata

Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you would report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/submit-errata, selecting your book, clicking on the erratasubmissionform link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded on our website, or added to any list of existing errata, under the Errata section of that title. Any existing errata can be viewed by selecting your title from http://www.packtpub.com/support.

Piracy

Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works, in any form, on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.

Please contact us at <[email protected]> with a link to the suspected pirated material.

We appreciate your help in protecting our authors, and our ability to bring you valuable content.

Questions

You can contact us at <[email protected]> if you are having a problem with any aspect of the book, and we will do our best to address it.

Chapter 1. Getting Started with Kinect

Before the birth of Microsoft Kinect, few people were familiar with the technology of motion sensing. Similar devices have been invented and developed originally for monitoring aerial and undersea aggressors in wars. Then in the non-military cases, motion sensors are widely used in alarm systems, lighting systems and so on, which could detect if someone or something disrupts the waves throughout a room and trigger predefined events. Although radar sensors and modern infrared motion sensors are used more popularly in our life, we seldom notice their existence, and can hardly make use of these devices in our own applications.

But Kinect changed everything from the time it was launched in North America at the end of 2010. Different from most other user input controllers, Kinect enables users to interact with programs without really touching a mouse or a pad, but only through gestures. In a top-level view, a Kinect sensor is made up of an RGB camera, a depth sensor, an IR emitter, and a microphone array, which consists of several microphones for sound and voice recognition. A standard Kinect (for Windows) equipment is shown as follows:

The Kinect device