Hacking the Kinect [electronic resource] /
Kramer, Jeff.author.
Parker, Matt.author.
Castro, Daniel.author.
Burrus, Nicolas.author.
Echtler, Florian.author.
Hacking the Kinect is the technogeek’s guide to developing software and creating projects involving the groundbreaking volumetric sensor known as the Microsoft Kinect. Microsoft’s release of the Kinect in the fall of 2010 startled the technology world by providing a low-cost sensor that can detect and track body movement in three-dimensional space. The Kinect set new records for the fastest-selling gadget of all time. It has been adopted worldwide by hobbyists, robotics enthusiasts, artists, and even some entrepreneurs hoping to build business around the technology. Hacking the Kinect introduces you to programming for the Kinect. You’ll learn to set up a software environment, stream data from the Kinect, and write code to interpret that data. The progression of hands-on projects in the book leads you even deeper into an understanding of how the device functions and how you can apply it to create fun and educational projects. Who knows? You might even come up with a business idea. Provides an excellent source of fun and educational projects for a tech-savvy parent to pursue with a son or daughter Leads you progressively from making your very first connection to the Kinect through mastery of its full feature set Shows how to interpret the Kinect data stream in order to drive your own software and hardware applications, including robotics applications.
User level: Intermediate-Advanced.
Title Page; Copyright Page; Table of Contents; About the Authors; About the Technical Reviewer; Acknowledgments; CHAPTER 1 Introducing the Kinect; Hardware Requirements and Overview; Installing Drivers; Windows; Linux; Ubuntu; Red Hat / Fedora; Mac OS X; Testing Your Installation; Getting Help; Summary; RGB Camera; Kinect RGB Demo; Installation; Windows; Linux; Ubuntu/Debian; Red Hat/Fedora; Mac OS X; Making a Calibration Target; Calibrating with RGB Demo; Summary; CHAPTER 3 Software; Exploring the Kinect Drivers; OpenNI; Microsoft Kinect SDK; OpenKinect; Installing OpenCV; Windows; Linux
Mac OS XInstalling the Point Cloud Library (PCL); Windows; Linux; Ubuntu; Debian; Mac OS X; Summary; CHAPTER 4 Computer Vision; Anatomy of an Image; Image Processing Basics; Simplifying Data; Contriving Your Situation; Brightness Thresholding; Brightest Pixel Tracking; Comparing Images; Thresholding with a Tolerance; Background Subtraction; Frame Differencing; Combining Frame Differencing with Background Subtraction; Summary; CHAPTER 5 Gesture Recognition; What Is a Gesture?; Multitouch Detection; Acquiring the Camera Image, Storing the Background, andSubtracting
Applying the Threshold FilterIdentifying Connected Components; Assigning and Tracking Component IDs; Calculating Gestures; Detecting Motion; Rotation; Scale; Creating a Minority Report-Style Interface; Considering Shape Gestures; Summary; CHAPTER 6 Voxelization; What Is a Voxel?; Why Voxelize Data?; Voxelizing Data; Manipulating Voxels; Clustering Voxels; Tracking People and Fitting a Rectangular Prism; Summary; CHAPTER 7 Point Clouds, Part 1; Representing Data in 3-D; Creating a Point Cloud with PCL; Moving From Depth Map to Point Cloud; Coloring a Point Cloud
From Depth to Color Reference FrameProjecting onto the Color Image Plane; Visualizing a Point Cloud; Visualizing with PCL; Visualizing with OpenGL; Summary; CHAPTER 8 Point Clouds, Part 2; Registration; 2-D Registration; 3-D Registration; Robustness to Outliers; Simultaneous Localization and Mapping (SLAM); SLAM Using a Conventional Camera; Advantages of Using the Kinect for SLAM; A SLAM Algorithm Using the Kinect; Real-Time Considerations; Surface Reconstruction; Normal Estimation; Triangulation of Points; Summary; CHAPTER 9 Object Modeling and Detection
Acquiring an Object Model Using a Single Kinect ImageTabletop Object Detector; Extracting the Table Plane; Keeping Only Points Lying on the Table; Extracting Individual Object Clusters; Fitting a Parametric Model to a Point Cloud; Building a 3-DModel by Extrusion; Construction of a Voxelized Representation; Filling Unseen Voxels; Building a Surface Point Cloud; Building a Mesh; Acquiring a 3-D Object Model Using Multiple Views; Overview of a Marker-Based Scanner; Building a Support with Markers; Estimating the 3-DCenter of the Markers in the Camera Space; Kinect Pose Estimation from Markers
Cleaning and Cropping the Partial Views
Includes index.
Hacking the Kinect is the technogeek’s guide to developing software and creating projects involving the groundbreaking volumetric sensor known as the Microsoft Kinect. Microsoft’s release of the Kinect in the fall of 2010 startled the technology world by providing a low-cost sensor that can detect and track body movement in three-dimensional space. The Kinect set new records for the fastest-selling gadget of all time. It has been adopted worldwide by hobbyists, robotics enthusiasts, artists, and even some entrepreneurs hoping to build business around the technology. Hacking the Kinect introduces you to programming for the Kinect. You’ll learn to set up a software environment, stream data from the Kinect, and write code to interpret that data. The progression of hands-on projects in the book leads you even deeper into an understanding of how the device functions and how you can apply it to create fun and educational projects. Who knows? You might even come up with a business idea. Provides an excellent source of fun and educational projects for a tech-savvy parent to pursue with a son or daughter Leads you progressively from making your very first connection to the Kinect through mastery of its full feature set Shows how to interpret the Kinect data stream in order to drive your own software and hardware applications, including robotics applications.
User level: Intermediate-Advanced.
Computer input-output equipment.
Software engineering.
Optical data processing.
Hardware and Maker.
Software Engineering/Programming and Operating Systems.
Computer Imaging, Vision, Pattern Recognition and Graphics.