Ładowanie...
Szczegóły ebooka
Zaloguj się, jeśli jesteś zainteresowany treścią pozycji.
Kinect for Windows SDK Programming Guide. Build motion-sensing applications with Microsoft's Kinect for Windows SDK quickly and easily
Abhijit Jana
Ładowanie...
EBOOK
Ładowanie...
Build motion-sensing applications with Microsoft\'s Kinect for Windows SDK quickly and easily with this book and ebook.
- Kinect for Windows SDK Programming Guide
- Table of Contents
- Kinect for Windows SDK Programming Guide
- Credits
- About the Author
- Acknowledgement
- About the Reviewers
- www.PacktPub.com
- Support files, eBooks, discount offers and more
- Why Subscribe?
- Free Access for Packt account holders
- Instant Updates on New Packt Books
- 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. Understanding the Kinect Device
- Components of Kinect for Windows
- Inside the Kinect sensor
- The color camera
- IR emitter and IR depth sensor
- How depth data processing works
- Tilt motor
- Microphone array
- LED
- Inside the Kinect sensor
- Kinect for Windows versus Kinect for Xbox
- Where can you use Kinect
- Summary
- Components of Kinect for Windows
- 2. Getting Started
- System requirements for the Kinect for Windows SDK
- Supported operating systems
- System configuration
- The Kinect sensor
- The Kinect for Windows sensor
- The Kinect for Xbox sensor
- Development tools and software
- Evaluation of the Kinect for Windows SDK
- Downloading the SDK and the Developer Toolkit
- Installing Kinect for Windows SDK
- Installing the Developer Toolkit
- Components installed by the SDK and the Developer Toolkit
- Kinect management service
- Connecting the sensor with the system
- Verifying the installed drivers
- Not able to view all the device components
- Detecting the loaded drivers in Device Manager
- Verifying the installed drivers
- Testing your device
- Testing Kinect sensors
- Testing the Kinect microphone array
- Looking inside the Kinect SDK
- Features of the Kinect for Windows SDK
- Capturing the color image data stream
- Processing the depth image data stream
- Near Mode
- Capturing the infrared stream
- Tracking human skeleton and joint movements
- Capturing the audio stream
- Speech recognition
- Human gesture recognition
- Tilting the Kinect sensor
- Getting data from the accelerometer of the sensor
- Controlling the infrared emitter
- The Kinect for Windows Developer Toolkit
- The Face Tracking SDK
- Kinect Studio
- Making your development setup ready
- The Coding4Fun Kinect Toolkit
- Summary
- System requirements for the Kinect for Windows SDK
- 3. Starting to Build Kinect Applications
- How applications interact with the Kinect sensor
- Understanding the classification of SDK APIs
- Kinect Info Box your first Kinect application
- Creating a new Visual Studio project
- Adding the Kinect libraries
- Getting the Kinect sensor
- The Kinect sensor
- Defining the Kinect sensor
- The collection of sensors
- Starting up Kinect
- Inside the sensor.Start() method
- Enabling the data streams
- Identifying the Kinect sensor
- Initializing the sensor using device connection ID
- Stopping the Kinect sensor
- The Stop() method does the clean-up operation
- Displaying information in the Kinect Info Box
- Designing the Info Box UI
- Binding the data
- A quick look at INotifyPropertyChanged
- Using INotifyPropertyChanged for data binding
- Setting the DataContext
- Setting up the information
- Thats all!
- Creating a new Visual Studio project
- Dealing with the Kinect status
- Monitoring the change in sensor status
- Properties of the StatusChangedEventArgs class
- Resuming your application automatically
- Building KinectStatusNotifier
- Setting up an application
- How it works
- Using KinectStatusNotifier
- Test it out
- Monitoring the change in sensor status
- Summary
- How applications interact with the Kinect sensor
- 4. Getting the Most out of Kinect Camera
- Understanding the Kinect image stream
- Types of color images
- Different ways of retrieving the color stream from Kinect
- Event model
- Polling model
- KinectCam a Kinect camera application
- Setting up the project
- Designing the application XAML and data binding
- Capturing color image from the Kinect camera
- Enabling the color stream channel
- Enabling a channel with the image format
- Choosing the image format
- Disabling the color stream channel
- Attaching the event handler
- Processing the incoming image frames
- Rendering image frames on the UI
- Running the KinectCam
- Looking inside color image stream helpers
- The ColorImageStream class
- The ColorImageFrame class
- Capturing frames on demand
- Extending the KinectCam
- Getting the frame number
- Changing image format on the fly
- Bind available image formats
- Changing the color image format
- Calculating frame rate
- How to calculate frame rate
- Capturing and saving images
- Saving images periodically
- Trying to save image frames directly
- Changing the sensor elevation angle
- Maximum and minimum elevation angles
- Adjusting the Kinect sensor angle
- Playing around the color pixels
- Applying RGB effects
- Making grayscale effects
- Inverting the color
- Applying more effects to the camera
- Applying the backlight compensation mode
- Applying slow motion effects
- Kinect Camera Effects application
- Seeing in low light
- Making your application perform better
- Using the Coding4Fun toolkit
- Installing the Coding4Fun Kinect toolkit
- Using assembly
- Using the NuGet package
- Using Coding4Fun Kinect libraries in your application
- Installing the Coding4Fun Kinect toolkit
- Summary
- Understanding the Kinect image stream
- 5. The Depth Data Making Things Happen
- Understanding the depth data stream
- Depth data behind the scenes
- Stereo triangulation
- Capturing and processing depth data
- Enabling the depth stream channel
- Attaching the event handler
- Processing the depth frames
- Depth data at first look
- Looking inside depth image stream helpers
- Depth data and distance
- How the distance is calculated
- Getting the distance from a particular pixel
- Accessing the range of distance
- Colorize depth data processing
- Working with depth range
- Special depth range values
- Depth data distribution
- Player index with depth data
- How player index works
- Identifying players
- Getting the depth and player index automatically
- A 3D view of depth data
- The basics of the coordinate system
- Basic elements of 3D graphics
- Setting up the project
- Give it a 3D effect
- Creating the ViewPort
- Using the camera
- Controlling the camera position
- Creating the 3D Model
- Building the mesh object
- Setting up the initial data points
- Getting the depth data from Kinect
- Have a look at 3D depth
- Summary
- Understanding the depth data stream
- 6. Human Skeleton Tracking
- How skeleton tracking works
- Steps to remember
- Skeleton tracking with the Kinect SDK
- Start tracking skeleton joints
- Tracking the right hand
- Setting up the project
- Creating a joint placeholder
- Get Kinect running and instantiate skeleton tracking
- Enabling and disabling the skeleton stream
- Processing the skeleton frames
- Mapping the skeleton joints with UI elements
- Running the application
- Adding more fun
- Tracking the right hand
- Flow capturing skeleton data
- An intrusion detector camera application
- Adding night vision
- Looking inside skeleton stream helpers
- The skeleton frame
- The skeleton stream
- Skeleton-tracking mode
- Default skeleton tracking
- Seated skeleton tracking
- Using seated-skeleton tracking
- Points to be considered with seated-skeleton tracking
- Skeleton tracking in near mode
- The Skeleton
- Skeleton-tracking state
- Counting the number of tracked skeletons
- Skeleton-tracking state
- Choosing which skeleton to track
- Skeleton-tracking ID
- Monitoring changes in the skeleton
- Limiting tracking for the intrusion-detector camera
- The building blocks Joints and JointCollection
- Joint-tracking state
- Steps to be followed for joint tracking
- Create your own joints data point
- Bones connecting joints
- Bone sequence
- Bone sequence for a default skeleton
- Bone sequence for a seated skeleton
- Drawing bones between joints
- Bone sequence
- Adjusting the Kinect sensor automatically and giving live feedback to users
- Skeleton smoothing soften the skeleton's movement
- What causes skeleton jitters
- Making skeleton movement softer
- Smoothing parameters
- How to check if skeleton smoothing is enabled
- Exponential smoothing
- Skeleton space transformation
- The Advanced Skeleton Viewer application
- Debugging the applications
- Using conditional breakpoints
- Using Kinect Studio
- Getting data frames together
- Summary
- How skeleton tracking works
- 7. Using Kinect's Microphone Array
- Verifying the Kinect audio configuration
- Troubleshooting: Kinect USB Audio not recognizing
- Using the Kinect microphone array with your computer
- The Kinect SDK architecture for Audio
- Kinect microphone array
- The major focus area of Kinect audio
- Why microphone array
- Audio signal processing in Kinect
- Taking control over the microphone array
- Kinect audio stream
- Starting and stopping the Kinect audio stream
- Starting audio streaming after a time interval
- Kinect sound recorder capturing Kinect audio data
- Setting up the project
- Designing the application XAML and data binding
- Recording the Kinect audio
- Starting the recording
- Playing the recorded audio
- Running the Kinect Sound Recorder
- Processing the audio data
- Echo cancellation
- Noise suppression
- Automatic gain control
- Audio data processing with the Kinect sound recorder
- Sound source localization
- Sound source angle
- Confidence level
- Beamforming
- Beam angle mode
- Extending the Kinect Sound Recorder with sound source localization
- Sound source angle
- Summary
- Verifying the Kinect audio configuration
- 8. Speech Recognition
- How speech recognition works
- Using Kinect with your Windows PC speech recognition
- Beginning with Microsoft Speech API (SAPI)
- Steps for building speech-enabled applications
- Basic speech-recognition approach
- Building grammar
- Using Choice and GrammarBuilder
- Appending new grammars
- Building grammar using XML
- Creating grammar from GrammarBuilder
- Loading grammar into a recognizer
- Unloading grammars
- Using Choice and GrammarBuilder
- Draw What I Want a speech-enabled application
- Setting up the project
- Designing the application XAML and data binding
- Data binding
- Instantiating speech recognizer
- Working with the speech recognition engine
- Configuring Kinect audio
- Creating grammar
- Start the speech recognizer
- Drawing an object when speech is recognized
- Testing your application
- Summary
- 9. Building Gesture-controlled Applications
- What is a gesture
- Approaches for gesture recognition
- Basic gesture recognition
- Gesture-detection technique
- Representing skeleton joints
- Calculating the distance between two joints
- Building a clapping-hands application
- Setting up the project
- Implementing the gesture recognizer
- Defining the types of gestures
- Defining the types of recognition results
- Creating the event argument for the gesture
- Wrapping up everything with the gesture recognition engine
- Plugging gestures into the application
- Testing your application
- A virtual rope workout application
- Hands-raised-above-head gesture recognition
- Steps to recognize basic gestures
- Gesture-detection technique
- Algorithmic gesture recognition
- Which gestures can be considered as algorithmic
- Understanding the algorithmic gesture detection approach
- Implementing an algorithmic gesture
- Adding gesture types
- Extending the Event argument
- Adding a GestureHelper class
- Defining the GestureBase class
- Implementing the SwipeToLeftGesture class
- Adding the ZoomIn, ZoomOut, and SwipeToRight gesture classes
- Implementing the GestureRecognitionEngine class
- Using the GestureRecognitionEngine class
- A demo application
- Making it more flexible
- Weighted network gesture recognition
- What is a neural network
- Gesture recognition with neural networks
- Jump tracking with a neural network an example
- Template-based gesture recognition
- Building gesture-enabled controls
- Making a hand cursor
- Getting the hand-cursor point
- Identifying the objects
- Enabling action for the objects
- Making a hand cursor
- The Basic Interaction a WPF application
- Key things to remember
- Summary
- 10. Developing Applications Using Multiple Kinects
- Setting up the environment for multiple Kinects
- Plugging the first Kinect sensor
- Plugging the second Kinect sensor
- Kinect sensors require an individual USB Controller
- Multiple Kinects how to reduce interference
- Detecting multiple Kinects
- Getting access to the individual sensor
- Different ways to get a Kinect sensor's reference
- Developing an application with multiple Kinects
- Setting up the project
- Designing the UI
- Creating the KinectInfoCollection
- Getting information from Kinects
- Running the application
- Controlling multiple sensor status changes
- Extending Multiple Kinect Viewer with status change
- Registering and handling the status change
- Running the application
- Identifying the devices automatically
- Integrating with KinectStatusNotifier
- Capturing data using multiple Kinects
- Extending Multiple Kinect Viewer with status change
- Handling a failover scenario using Kinects
- Challenges faced in developing applications using multiple Kinects
- Applications where multiple Kinects can be used
- Summary
- Setting up the environment for multiple Kinects
- 11. Putting Things Together
- Taking Kinect to the Cloud
- Required components
- Windows Azure
- The Windows Azure SDK
- The Kinect for Windows SDK
- Designing the solution
- Real-time implementations
- Required components
- Remotely using the Kinect with Windows Phone
- Required components
- The Windows Azure Service Bus
- The Windows Phone SDK
- Designing the solution
- Real-time implementations
- Required components
- Using Kinect with a Netduino microcontroller
- Required components
- Microsoft .Net Micro Framework
- Netduino
- The Netduino SDK
- Blinking of the on-board LED
- Changing the Deployment Transport
- Running the application
- Connecting Kinect to a Netduino
- Using an Internet connection
- Listening to the request
- Sending a request from a Kinect application
- Taking it further
- Required components
- Augmented reality applications
- Working with face tracking
- Working with XNA and a 3D avatar
- Summary
- Taking Kinect to the Cloud
- Index
- Tytuł:Kinect for Windows SDK Programming Guide. Build motion-sensing applications with Microsoft's Kinect for Windows SDK quickly and easily
- Autor:Abhijit Jana
- Tytuł oryginału:Kinect for Windows SDK Programming Guide. Build motion-sensing applications with Microsoft's Kinect for Windows SDK quickly and easily
- ISBN:9781849692397, 9781849692397
- Data wydania:2012-12-26
- Format:Ebook
- Identyfikator pozycji: e_3b8b
- Wydawca: Packt Publishing
Ładowanie...
Ładowanie...