SlideShare a Scribd company logo
1 of 36
Download to read offline
Kinect Tutorial
Nicholas Gillian
Responsive Environments, MIT Media Lab
Thursday, September 12th, 2013
Thursday, September 12, 13
Kinect
RGB Camera
3D Depth Sensors
•Depth map is constructed by analyzing a speckle pattern
of infrared laser light
•Body position is inferred using machine learning
•Kinect uses structured light
Thursday, September 12, 13
Kinect
•Structured light: project a known pattern onto the scene
and infer depth from the deformation of that pattern
Jason Geng, Structured-light 3D surface imaging: a tutorial,
Advances in Optics and Photonics,Vol. 3, Issue 2, pp. 128-160 (2011)
Zhang et al, 3DPVT (2002)
Thursday, September 12, 13
Kinect
•Kinect uses an astigmatic lens with different focal length
in x- and y directions
•The lens causes a projected circle to become an ellipse
whose orientation depends on depth
Thursday, September 12, 13
Kinect
•The Kinect also uses parallax, i.e. if you look at a scene
from different angle, things that are closer get shifted to
the side more than things that are far away
•The Kinect analyzes the shift of the speckle pattern by
projecting from one location and observing from another
3D Depth Sensors
Thursday, September 12, 13
Kinect
•Body position is inferred using machine learning
Jamie Shutton et. al, Real-Time Human Pose Recognition in Parts from Single Depth Images, CVPR, 2011
Thursday, September 12, 13
Kinect
•Body position is inferred using machine learning
100K poses 1 million training samples
Jamie Shutton et. al, Real-Time Human Pose Recognition in Parts from Single Depth Images, CVPR, 2011
Thursday, September 12, 13
Kinect
•Randomized Decision Forests
The probability of pixel u
belonging to body part c is:
Jamie Shutton et. al, Real-Time Human Pose Recognition in Parts from Single Depth Images, CVPR, 2011
Thursday, September 12, 13
Kinect
•Features
Jamie Shutton et. al, Real-Time Human Pose Recognition in Parts from Single Depth Images, CVPR, 2011
Thursday, September 12, 13
Kinect Libraries, APIs & Tools
•OpenNI SDK
•Openframeworks
•Microsoft Official Kinect SDK
•Synapse
Thursday, September 12, 13
OpenNI - Installation
•OpenNI
•NITE
•Sensor Kinect
Thursday, September 12, 13
OpenNI - Data
RGB Image Depth Image
Label Image
[640 480]
Depth: Unsigned short
Label: Unsigned short
RGB: Unsigned char
Thursday, September 12, 13
OpenNI - Generators
XnGenerator
AudioGenerator GestureGenerator HandsGenerator UserGenerator ...
//For example
DepthGenerator depthGenerator;
ImageGenerator imageGenerator;
Thursday, September 12, 13
OpenNI - Configuration
<OpenNI>
	

 <Licenses>
	

 	

 <License vendor="PrimeSense" key="0KOIk2JeIBYClPWVnMoRKn5cdY4="/>
	

 </Licenses>
	

 <Log writeToConsole="true" writeToFile="false">
	

 	

 <!-- 0 -Verbose, 1 - Info, 2 - Warning, 3 - Error (default) -->
	

 	

 <LogLevel value="3"/>
	

 	

 <Masks>
	

 	

 	

 <Mask name="ALL" on="false"/>
	

 	

 </Masks>
	

 	

 <Dumps>
	

 	

 </Dumps>
	

 </Log>
	

 <ProductionNodes>
	

 	

 <Node type="Depth">
	

 	

 	

 <Configuration>
	

 	

 	

 	

 <Mirror on="true"/>
	

 	

 	

 </Configuration>
	

 	

 </Node>
	

 	

 <Node type="Image" stopOnError="false" />
	

 	

 <Node type="User" />
	

 </ProductionNodes>
</OpenNI>
This key is common
PrimeSense key
Enable the depth camera
Enable the RGB camera
Enable the user tracker
Thursday, September 12, 13
OpenNI - Manual Configuration
XnStatus nRetVal = context.FindExistingNode(XN_NODE_TYPE_DEPTH, depthGenerator);
Thursday, September 12, 13
OpenNI - Manual Configuration
XnStatus nRetVal = context.FindExistingNode(XN_NODE_TYPE_DEPTH, depthGenerator);
if (nRetVal != XN_STATUS_OK){
xn::MockDepthGenerator mockDepth;
nRetVal = mockDepth.Create(context);
// set some defaults
XnMapOutputMode defaultMode;
defaultMode.nXRes = 640;
defaultMode.nYRes = 480;
defaultMode.nFPS = 30;
nRetVal = mockDepth.SetMapOutputMode(defaultMode);
// set FOV
XnFieldOfView fov;
fov.fHFOV = 1.0225999419141749;
fov.fVFOV = 0.79661567681716894;
nRetVal = mockDepth.SetGeneralProperty(XN_PROP_FIELD_OF_VIEW, sizeof(fov), &fov);
XnUInt32 nDataSize = defaultMode.nXRes * defaultMode.nYRes * sizeof(XnDepthPixel);
XnDepthPixel* pData = (XnDepthPixel*)xnOSCallocAligned(nDataSize, 1, XN_DEFAULT_MEM_ALIGN);
nRetVal = mockDepth.SetData(1, 0, nDataSize, pData);
CHECK_RC(nRetVal, "set empty depth map");
depthGenerator = mockDepth;
}
Thursday, September 12, 13
OpenNI - Accessing Data
// Read next available data
context.WaitOneUpdateAll( userGenerator );
userSelector->UpdateFrame();
//Variables
UserGenerator userGenerator;
Context context;
Thursday, September 12, 13
OpenNI - Get the depth data
//Get the latest depth and image meta data
depthGenerator.GetMetaData( depthMD );
//Get a pointer to the depth data
const XnDepthPixel* pDepth = depthMD.Data();
//Loop over the depth pixels
for (XnUInt y = 0; y < depthMD.YRes(); y++){
for (XnUInt x = 0; x < depthMD.XRes(); x++){
//Access the current depth value
*pDepth;
//Increase the depth pixel
pDepth++;
}
}
//Variables
DepthGenerator depthGenerator;
DepthMetaData depthMD;
Thursday, September 12, 13
OpenNI - Get the RGB data
//Get the latest image meta data
imageGenerator.GetMetaData( imageMD );
//Get a pointer to the image data
const XnRGB24Pixel* pImage = imageMD.RGB24Data();
//Loop over the image pixels
for (XnUInt y = 0; y < imageMD.YRes(); y++){
for (XnUInt x = 0; x < imageMD.XRes(); x++){
//Access the current pixel value
* pImage;
//Increase the pixel pointer
pImage++;
}
}
//Variables
ImageGenerator imageGenerator;
ImageMetaData imageMD;
Thursday, September 12, 13
OpenNI - Skeleton data
//Variables
UserGenerator userGenerator;
XnUserID userIDs[ numTrackedUsers ];
XnUInt16 numUsers = userGenerator->GetNumberOfUsers();
userGenerator->GetUsers(userIDs, numUsers);
for( int i=0; i < numUsers; i++ ){
if( userGenerator->GetSkeletonCap().IsTracking( userIDs[i] ) ){
XnPoint3D userCenterOfMass;
userGenerator->GetSkeletonCap().IsCalibrating( userIDs[i] );
userGenerator->GetSkeletonCap().IsCalibrated( userIDs[i] );
userGenerator->GetCoM( userIDs[i], userCenterOfMass );
XnSkeletonJointTransformation jointData;
if( userGenerator->GetSkeletonCap().IsJointAvailable( XN_SKEL_HEAD ) ){
userGenerator->GetSkeletonCap().GetSkeletonJoint(userIDs[i], XN_SKEL_HEAD, jointData );
}
}
}
Thursday, September 12, 13
Kinect Gesture Recognition
Thursday, September 12, 13
SUPERVISED LEARNING
Thursday, September 12, 13
Supervised Learning
Training Data
Thursday, September 12, 13
Supervised Learning
Training Data
Thursday, September 12, 13
Supervised Learning
Input Vector
Training Data
Thursday, September 12, 13
Supervised Learning
Input Vector
Training Data
{Feature Vector}
Thursday, September 12, 13
Supervised Learning
Input Vector
Training Data
{Feature Vector}
Feature
Thursday, September 12, 13
Supervised Learning
Input Vector
Training Data
{Feature Vector}
Feature
{Attribute}
Thursday, September 12, 13
Supervised Learning
Input Vector Target Vector
Training Data
Thursday, September 12, 13
Supervised Learning
Learning Algorithm
Input Vector Target Vector
Training Data
Thursday, September 12, 13
Supervised Learning
Learning Algorithm
Model
Input Vector Target Vector
Training Data
Thursday, September 12, 13
Supervised Learning
Learning Algorithm
Prediction
New Datum
Model
Training Data
Thursday, September 12, 13
Supervised Learning
Learning Algorithm
Prediction
Predicted Class
Class A
Model
Training Data
New Datum
Thursday, September 12, 13
Supervised Learning
Learning Algorithm
Prediction
Predicted Class
Class A
Model
Training Data
New Datum
Thursday, September 12, 13
Kinect Gesture Recognition
Synapse
OSC
Skeleton Data
Openframeworks
www.nickgillian.com/wiki/pmwiki.php/GRT/
OpenframeworksKinectExample
Thursday, September 12, 13
Kinect Code Tutorial Slides
www.nickgillian.com/09-12-13.html
Thursday, September 12, 13

More Related Content

What's hot

Nui e biometrics in windows 10
Nui e biometrics in windows 10Nui e biometrics in windows 10
Nui e biometrics in windows 10Marco D'Alessandro
 
Kinect Hacks for Dummies
Kinect Hacks for DummiesKinect Hacks for Dummies
Kinect Hacks for DummiesTomoto Washio
 
Kinect krishna kumar-itkan
Kinect krishna kumar-itkanKinect krishna kumar-itkan
Kinect krishna kumar-itkanPat Maher
 
Introduction to Kinect - Update v 1.8
Introduction to Kinect - Update v 1.8Introduction to Kinect - Update v 1.8
Introduction to Kinect - Update v 1.8Matteo Valoriani
 
Kinect v1+Processing workshot fabcafe_taipei
Kinect v1+Processing workshot fabcafe_taipeiKinect v1+Processing workshot fabcafe_taipei
Kinect v1+Processing workshot fabcafe_taipeiMao Wu
 
3 track kinect@Bicocca - sdk e camere
3   track kinect@Bicocca - sdk e camere3   track kinect@Bicocca - sdk e camere
3 track kinect@Bicocca - sdk e camereMatteo Valoriani
 
Develop store apps with kinect for windows v2
Develop store apps with kinect for windows v2Develop store apps with kinect for windows v2
Develop store apps with kinect for windows v2Matteo Valoriani
 
Kinectic vision looking deep into depth
Kinectic vision   looking deep into depthKinectic vision   looking deep into depth
Kinectic vision looking deep into depthppd1961
 
Introduction to development
Introduction to developmentIntroduction to development
Introduction to developmentMatteo Valoriani
 
PyKinect: Body Iteration Application Development Using Python
PyKinect: Body Iteration Application Development Using PythonPyKinect: Body Iteration Application Development Using Python
PyKinect: Body Iteration Application Development Using Pythonpycontw
 
2 track kinect@Bicocca - hardware e funzinamento
2   track kinect@Bicocca - hardware e funzinamento2   track kinect@Bicocca - hardware e funzinamento
2 track kinect@Bicocca - hardware e funzinamentoMatteo Valoriani
 
Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3
Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3
Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3Umbra
 
Visibility Optimization for Games
Visibility Optimization for GamesVisibility Optimization for Games
Visibility Optimization for GamesUmbra
 
Shadow Techniques for Real-Time and Interactive Applications
Shadow Techniques for Real-Time and Interactive ApplicationsShadow Techniques for Real-Time and Interactive Applications
Shadow Techniques for Real-Time and Interactive Applicationsstefan_b
 
Siggraph 2011: Occlusion culling in Alan Wake
Siggraph 2011: Occlusion culling in Alan WakeSiggraph 2011: Occlusion culling in Alan Wake
Siggraph 2011: Occlusion culling in Alan WakeUmbra
 
Itcs 4120 introduction (c)
Itcs 4120 introduction (c)Itcs 4120 introduction (c)
Itcs 4120 introduction (c)yaminigoyal
 
Final_draft_Practice_School_II_report
Final_draft_Practice_School_II_reportFinal_draft_Practice_School_II_report
Final_draft_Practice_School_II_reportRishikesh Bagwe
 
Game Worlds from Polygon Soup: Visibility, Spatial Connectivity and Rendering
Game Worlds from Polygon Soup: Visibility, Spatial Connectivity and RenderingGame Worlds from Polygon Soup: Visibility, Spatial Connectivity and Rendering
Game Worlds from Polygon Soup: Visibility, Spatial Connectivity and RenderingUmbra
 
Khronos Munich 2018 - Halcyon and Vulkan
Khronos Munich 2018 - Halcyon and VulkanKhronos Munich 2018 - Halcyon and Vulkan
Khronos Munich 2018 - Halcyon and VulkanElectronic Arts / DICE
 

What's hot (19)

Nui e biometrics in windows 10
Nui e biometrics in windows 10Nui e biometrics in windows 10
Nui e biometrics in windows 10
 
Kinect Hacks for Dummies
Kinect Hacks for DummiesKinect Hacks for Dummies
Kinect Hacks for Dummies
 
Kinect krishna kumar-itkan
Kinect krishna kumar-itkanKinect krishna kumar-itkan
Kinect krishna kumar-itkan
 
Introduction to Kinect - Update v 1.8
Introduction to Kinect - Update v 1.8Introduction to Kinect - Update v 1.8
Introduction to Kinect - Update v 1.8
 
Kinect v1+Processing workshot fabcafe_taipei
Kinect v1+Processing workshot fabcafe_taipeiKinect v1+Processing workshot fabcafe_taipei
Kinect v1+Processing workshot fabcafe_taipei
 
3 track kinect@Bicocca - sdk e camere
3   track kinect@Bicocca - sdk e camere3   track kinect@Bicocca - sdk e camere
3 track kinect@Bicocca - sdk e camere
 
Develop store apps with kinect for windows v2
Develop store apps with kinect for windows v2Develop store apps with kinect for windows v2
Develop store apps with kinect for windows v2
 
Kinectic vision looking deep into depth
Kinectic vision   looking deep into depthKinectic vision   looking deep into depth
Kinectic vision looking deep into depth
 
Introduction to development
Introduction to developmentIntroduction to development
Introduction to development
 
PyKinect: Body Iteration Application Development Using Python
PyKinect: Body Iteration Application Development Using PythonPyKinect: Body Iteration Application Development Using Python
PyKinect: Body Iteration Application Development Using Python
 
2 track kinect@Bicocca - hardware e funzinamento
2   track kinect@Bicocca - hardware e funzinamento2   track kinect@Bicocca - hardware e funzinamento
2 track kinect@Bicocca - hardware e funzinamento
 
Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3
Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3
Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3
 
Visibility Optimization for Games
Visibility Optimization for GamesVisibility Optimization for Games
Visibility Optimization for Games
 
Shadow Techniques for Real-Time and Interactive Applications
Shadow Techniques for Real-Time and Interactive ApplicationsShadow Techniques for Real-Time and Interactive Applications
Shadow Techniques for Real-Time and Interactive Applications
 
Siggraph 2011: Occlusion culling in Alan Wake
Siggraph 2011: Occlusion culling in Alan WakeSiggraph 2011: Occlusion culling in Alan Wake
Siggraph 2011: Occlusion culling in Alan Wake
 
Itcs 4120 introduction (c)
Itcs 4120 introduction (c)Itcs 4120 introduction (c)
Itcs 4120 introduction (c)
 
Final_draft_Practice_School_II_report
Final_draft_Practice_School_II_reportFinal_draft_Practice_School_II_report
Final_draft_Practice_School_II_report
 
Game Worlds from Polygon Soup: Visibility, Spatial Connectivity and Rendering
Game Worlds from Polygon Soup: Visibility, Spatial Connectivity and RenderingGame Worlds from Polygon Soup: Visibility, Spatial Connectivity and Rendering
Game Worlds from Polygon Soup: Visibility, Spatial Connectivity and Rendering
 
Khronos Munich 2018 - Halcyon and Vulkan
Khronos Munich 2018 - Halcyon and VulkanKhronos Munich 2018 - Halcyon and Vulkan
Khronos Munich 2018 - Halcyon and Vulkan
 

Viewers also liked

Kinect V2: what's new!!!
Kinect V2: what's new!!!Kinect V2: what's new!!!
Kinect V2: what's new!!!Massimo Bonanni
 
[PDF] the molecular control toolkit - Controlling 3D molecular graphics via g...
[PDF] the molecular control toolkit - Controlling 3D molecular graphics via g...[PDF] the molecular control toolkit - Controlling 3D molecular graphics via g...
[PDF] the molecular control toolkit - Controlling 3D molecular graphics via g...Quân Lê
 

Viewers also liked (20)

Kinect V2: what's new!!!
Kinect V2: what's new!!!Kinect V2: what's new!!!
Kinect V2: what's new!!!
 
Raskar UIST Keynote 2015 November
Raskar UIST Keynote 2015 NovemberRaskar UIST Keynote 2015 November
Raskar UIST Keynote 2015 November
 
What is Media in MIT Media Lab, Why 'Camera Culture'
What is Media in MIT Media Lab, Why 'Camera Culture'What is Media in MIT Media Lab, Why 'Camera Culture'
What is Media in MIT Media Lab, Why 'Camera Culture'
 
Google Glass Breakdown
Google Glass BreakdownGoogle Glass Breakdown
Google Glass Breakdown
 
Coded Photography - Ramesh Raskar
Coded Photography - Ramesh RaskarCoded Photography - Ramesh Raskar
Coded Photography - Ramesh Raskar
 
Stereo and 3D Displays - Matt Hirsch
Stereo and 3D Displays - Matt HirschStereo and 3D Displays - Matt Hirsch
Stereo and 3D Displays - Matt Hirsch
 
Multiview Imaging HW Overview
Multiview Imaging HW OverviewMultiview Imaging HW Overview
Multiview Imaging HW Overview
 
Leap Motion Development (Rohan Puri)
Leap Motion Development (Rohan Puri)Leap Motion Development (Rohan Puri)
Leap Motion Development (Rohan Puri)
 
What is SIGGRAPH NEXT? Intro by Ramesh Raskar
What is SIGGRAPH NEXT? Intro by Ramesh RaskarWhat is SIGGRAPH NEXT? Intro by Ramesh Raskar
What is SIGGRAPH NEXT? Intro by Ramesh Raskar
 
Introduction to Camera Challenges - Ramesh Raskar
Introduction to Camera Challenges - Ramesh RaskarIntroduction to Camera Challenges - Ramesh Raskar
Introduction to Camera Challenges - Ramesh Raskar
 
Google Glass Overview
Google Glass OverviewGoogle Glass Overview
Google Glass Overview
 
Raskar stanfordextremecompuimagingapr2016
Raskar stanfordextremecompuimagingapr2016Raskar stanfordextremecompuimagingapr2016
Raskar stanfordextremecompuimagingapr2016
 
Compressed Sensing - Achuta Kadambi
Compressed Sensing - Achuta KadambiCompressed Sensing - Achuta Kadambi
Compressed Sensing - Achuta Kadambi
 
Light Field Photography Introduction
Light Field Photography IntroductionLight Field Photography Introduction
Light Field Photography Introduction
 
Introduction to Photography
Introduction to PhotographyIntroduction to Photography
Introduction to Photography
 
Time of Flight Cameras - Refael Whyte
Time of Flight Cameras - Refael WhyteTime of Flight Cameras - Refael Whyte
Time of Flight Cameras - Refael Whyte
 
[PDF] the molecular control toolkit - Controlling 3D molecular graphics via g...
[PDF] the molecular control toolkit - Controlling 3D molecular graphics via g...[PDF] the molecular control toolkit - Controlling 3D molecular graphics via g...
[PDF] the molecular control toolkit - Controlling 3D molecular graphics via g...
 
Leap Motion - Aydin Akcasu
Leap Motion - Aydin AkcasuLeap Motion - Aydin Akcasu
Leap Motion - Aydin Akcasu
 
Developing "True HDR" for the iPhone
Developing "True HDR" for the iPhoneDeveloping "True HDR" for the iPhone
Developing "True HDR" for the iPhone
 
Introduction to Light Fields
Introduction to Light FieldsIntroduction to Light Fields
Introduction to Light Fields
 

Similar to Kinect Tutorial

High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...
High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...
High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...Martin Christen
 
Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2Jeff Sipko
 
Hacking the Kinect with GAFFTA Day 2
 Hacking the Kinect with GAFFTA Day 2 Hacking the Kinect with GAFFTA Day 2
Hacking the Kinect with GAFFTA Day 2benDesigning
 
Using the Kinect for Fun and Profit by Tam Hanna
Using the Kinect for Fun and Profit by Tam HannaUsing the Kinect for Fun and Profit by Tam Hanna
Using the Kinect for Fun and Profit by Tam HannaCodemotion
 
Dataset creation for Deep Learning-based Geometric Computer Vision problems
Dataset creation for Deep Learning-based Geometric Computer Vision problemsDataset creation for Deep Learning-based Geometric Computer Vision problems
Dataset creation for Deep Learning-based Geometric Computer Vision problemsPetteriTeikariPhD
 
Rendering Techniques for Augmented Reality and a Look Ahead at AR Foundation
Rendering Techniques for Augmented Reality and a Look Ahead at AR FoundationRendering Techniques for Augmented Reality and a Look Ahead at AR Foundation
Rendering Techniques for Augmented Reality and a Look Ahead at AR FoundationUnity Technologies
 
Cardboard VR: Building Low Cost VR Experiences
Cardboard VR: Building Low Cost VR ExperiencesCardboard VR: Building Low Cost VR Experiences
Cardboard VR: Building Low Cost VR ExperiencesMark Billinghurst
 
Digital Fabrication Studio: 3D Scanning
Digital Fabrication Studio: 3D ScanningDigital Fabrication Studio: 3D Scanning
Digital Fabrication Studio: 3D ScanningMassimo Menichinelli
 
Focused Image Creation Algorithms for digital holography
Focused Image Creation Algorithms for digital holographyFocused Image Creation Algorithms for digital holography
Focused Image Creation Algorithms for digital holographyConor Mc Elhinney
 
A Wireless Network Infrastructure Architecture for Rural Communities
A Wireless Network Infrastructure Architecture for Rural CommunitiesA Wireless Network Infrastructure Architecture for Rural Communities
A Wireless Network Infrastructure Architecture for Rural CommunitiesAIRCC Publishing Corporation
 
Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrate...
 Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrate... Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrate...
Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrate...AIRCC Publishing Corporation
 
Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrated...
Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrated...Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrated...
Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrated...AIRCC Publishing Corporation
 

Similar to Kinect Tutorial (20)

High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...
High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...
High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...
 
Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2
 
cs247 slides
cs247 slidescs247 slides
cs247 slides
 
First kinectslides
First kinectslidesFirst kinectslides
First kinectslides
 
Hacking the Kinect with GAFFTA Day 2
 Hacking the Kinect with GAFFTA Day 2 Hacking the Kinect with GAFFTA Day 2
Hacking the Kinect with GAFFTA Day 2
 
Computer vision
Computer visionComputer vision
Computer vision
 
Using the Kinect for Fun and Profit by Tam Hanna
Using the Kinect for Fun and Profit by Tam HannaUsing the Kinect for Fun and Profit by Tam Hanna
Using the Kinect for Fun and Profit by Tam Hanna
 
Dataset creation for Deep Learning-based Geometric Computer Vision problems
Dataset creation for Deep Learning-based Geometric Computer Vision problemsDataset creation for Deep Learning-based Geometric Computer Vision problems
Dataset creation for Deep Learning-based Geometric Computer Vision problems
 
Rendering Techniques for Augmented Reality and a Look Ahead at AR Foundation
Rendering Techniques for Augmented Reality and a Look Ahead at AR FoundationRendering Techniques for Augmented Reality and a Look Ahead at AR Foundation
Rendering Techniques for Augmented Reality and a Look Ahead at AR Foundation
 
Kinect
KinectKinect
Kinect
 
Cardboard VR: Building Low Cost VR Experiences
Cardboard VR: Building Low Cost VR ExperiencesCardboard VR: Building Low Cost VR Experiences
Cardboard VR: Building Low Cost VR Experiences
 
3D scanner using kinect
3D scanner using kinect3D scanner using kinect
3D scanner using kinect
 
Kinect connect
Kinect connectKinect connect
Kinect connect
 
Getmoving as3kinect
Getmoving as3kinectGetmoving as3kinect
Getmoving as3kinect
 
Digital Fabrication Studio: 3D Scanning
Digital Fabrication Studio: 3D ScanningDigital Fabrication Studio: 3D Scanning
Digital Fabrication Studio: 3D Scanning
 
Mini Project- 3D Graphics And Visualisation
Mini Project- 3D Graphics And VisualisationMini Project- 3D Graphics And Visualisation
Mini Project- 3D Graphics And Visualisation
 
Focused Image Creation Algorithms for digital holography
Focused Image Creation Algorithms for digital holographyFocused Image Creation Algorithms for digital holography
Focused Image Creation Algorithms for digital holography
 
A Wireless Network Infrastructure Architecture for Rural Communities
A Wireless Network Infrastructure Architecture for Rural CommunitiesA Wireless Network Infrastructure Architecture for Rural Communities
A Wireless Network Infrastructure Architecture for Rural Communities
 
Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrate...
 Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrate... Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrate...
Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrate...
 
Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrated...
Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrated...Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrated...
Complete End-to-End Low Cost Solution to a 3D Scanning System with Integrated...
 

More from Camera Culture Group, MIT Media Lab

God’s Eye View: Will global AI empower us or destroy us? | Ramesh Raskar
God’s Eye View: Will global AI empower us or destroy us? | Ramesh Raskar God’s Eye View: Will global AI empower us or destroy us? | Ramesh Raskar
God’s Eye View: Will global AI empower us or destroy us? | Ramesh Raskar Camera Culture Group, MIT Media Lab
 
Dont follow the rainbow: How to avoid career traps that can lead you to fail,...
Dont follow the rainbow: How to avoid career traps that can lead you to fail,...Dont follow the rainbow: How to avoid career traps that can lead you to fail,...
Dont follow the rainbow: How to avoid career traps that can lead you to fail,...Camera Culture Group, MIT Media Lab
 
Making Invisible Visible, Ramesh Raskar Keynote at Embedded Vision 2019
Making Invisible Visible, Ramesh Raskar Keynote at Embedded Vision 2019Making Invisible Visible, Ramesh Raskar Keynote at Embedded Vision 2019
Making Invisible Visible, Ramesh Raskar Keynote at Embedded Vision 2019Camera Culture Group, MIT Media Lab
 
Split Learning versus Federated Learning for Data Transparent ML, Camera Cult...
Split Learning versus Federated Learning for Data Transparent ML, Camera Cult...Split Learning versus Federated Learning for Data Transparent ML, Camera Cult...
Split Learning versus Federated Learning for Data Transparent ML, Camera Cult...Camera Culture Group, MIT Media Lab
 

More from Camera Culture Group, MIT Media Lab (13)

Raskar Sig2017 Siggraph Achievement Award Talk
Raskar Sig2017 Siggraph Achievement Award TalkRaskar Sig2017 Siggraph Achievement Award Talk
Raskar Sig2017 Siggraph Achievement Award Talk
 
Lost Decade of Computational Photography
Lost Decade of Computational PhotographyLost Decade of Computational Photography
Lost Decade of Computational Photography
 
Covid Safe Paths
Covid Safe PathsCovid Safe Paths
Covid Safe Paths
 
God’s Eye View: Will global AI empower us or destroy us? | Ramesh Raskar
God’s Eye View: Will global AI empower us or destroy us? | Ramesh Raskar God’s Eye View: Will global AI empower us or destroy us? | Ramesh Raskar
God’s Eye View: Will global AI empower us or destroy us? | Ramesh Raskar
 
Dont follow the rainbow: How to avoid career traps that can lead you to fail,...
Dont follow the rainbow: How to avoid career traps that can lead you to fail,...Dont follow the rainbow: How to avoid career traps that can lead you to fail,...
Dont follow the rainbow: How to avoid career traps that can lead you to fail,...
 
Raskar PhD and MS Thesis Guidance
Raskar PhD and MS Thesis GuidanceRaskar PhD and MS Thesis Guidance
Raskar PhD and MS Thesis Guidance
 
Making Invisible Visible, Ramesh Raskar Keynote at Embedded Vision 2019
Making Invisible Visible, Ramesh Raskar Keynote at Embedded Vision 2019Making Invisible Visible, Ramesh Raskar Keynote at Embedded Vision 2019
Making Invisible Visible, Ramesh Raskar Keynote at Embedded Vision 2019
 
Augmented Surgeons: AI AR for Anatome, Raskar Aria 2019
Augmented Surgeons: AI AR for Anatome, Raskar Aria 2019Augmented Surgeons: AI AR for Anatome, Raskar Aria 2019
Augmented Surgeons: AI AR for Anatome, Raskar Aria 2019
 
Geo-spatial Research: Transition from Analysis to Synthesis
Geo-spatial Research: Transition from Analysis to SynthesisGeo-spatial Research: Transition from Analysis to Synthesis
Geo-spatial Research: Transition from Analysis to Synthesis
 
Split Learning versus Federated Learning for Data Transparent ML, Camera Cult...
Split Learning versus Federated Learning for Data Transparent ML, Camera Cult...Split Learning versus Federated Learning for Data Transparent ML, Camera Cult...
Split Learning versus Federated Learning for Data Transparent ML, Camera Cult...
 
Unspoken Challenges in AR and XR
Unspoken Challenges in AR and XRUnspoken Challenges in AR and XR
Unspoken Challenges in AR and XR
 
Computer Vision Introduction
Computer Vision IntroductionComputer Vision Introduction
Computer Vision Introduction
 
Raskar TEDMED 2013
Raskar TEDMED 2013Raskar TEDMED 2013
Raskar TEDMED 2013
 

Recently uploaded

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 

Recently uploaded (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 

Kinect Tutorial

  • 1. Kinect Tutorial Nicholas Gillian Responsive Environments, MIT Media Lab Thursday, September 12th, 2013 Thursday, September 12, 13
  • 2. Kinect RGB Camera 3D Depth Sensors •Depth map is constructed by analyzing a speckle pattern of infrared laser light •Body position is inferred using machine learning •Kinect uses structured light Thursday, September 12, 13
  • 3. Kinect •Structured light: project a known pattern onto the scene and infer depth from the deformation of that pattern Jason Geng, Structured-light 3D surface imaging: a tutorial, Advances in Optics and Photonics,Vol. 3, Issue 2, pp. 128-160 (2011) Zhang et al, 3DPVT (2002) Thursday, September 12, 13
  • 4. Kinect •Kinect uses an astigmatic lens with different focal length in x- and y directions •The lens causes a projected circle to become an ellipse whose orientation depends on depth Thursday, September 12, 13
  • 5. Kinect •The Kinect also uses parallax, i.e. if you look at a scene from different angle, things that are closer get shifted to the side more than things that are far away •The Kinect analyzes the shift of the speckle pattern by projecting from one location and observing from another 3D Depth Sensors Thursday, September 12, 13
  • 6. Kinect •Body position is inferred using machine learning Jamie Shutton et. al, Real-Time Human Pose Recognition in Parts from Single Depth Images, CVPR, 2011 Thursday, September 12, 13
  • 7. Kinect •Body position is inferred using machine learning 100K poses 1 million training samples Jamie Shutton et. al, Real-Time Human Pose Recognition in Parts from Single Depth Images, CVPR, 2011 Thursday, September 12, 13
  • 8. Kinect •Randomized Decision Forests The probability of pixel u belonging to body part c is: Jamie Shutton et. al, Real-Time Human Pose Recognition in Parts from Single Depth Images, CVPR, 2011 Thursday, September 12, 13
  • 9. Kinect •Features Jamie Shutton et. al, Real-Time Human Pose Recognition in Parts from Single Depth Images, CVPR, 2011 Thursday, September 12, 13
  • 10. Kinect Libraries, APIs & Tools •OpenNI SDK •Openframeworks •Microsoft Official Kinect SDK •Synapse Thursday, September 12, 13
  • 11. OpenNI - Installation •OpenNI •NITE •Sensor Kinect Thursday, September 12, 13
  • 12. OpenNI - Data RGB Image Depth Image Label Image [640 480] Depth: Unsigned short Label: Unsigned short RGB: Unsigned char Thursday, September 12, 13
  • 13. OpenNI - Generators XnGenerator AudioGenerator GestureGenerator HandsGenerator UserGenerator ... //For example DepthGenerator depthGenerator; ImageGenerator imageGenerator; Thursday, September 12, 13
  • 14. OpenNI - Configuration <OpenNI> <Licenses> <License vendor="PrimeSense" key="0KOIk2JeIBYClPWVnMoRKn5cdY4="/> </Licenses> <Log writeToConsole="true" writeToFile="false"> <!-- 0 -Verbose, 1 - Info, 2 - Warning, 3 - Error (default) --> <LogLevel value="3"/> <Masks> <Mask name="ALL" on="false"/> </Masks> <Dumps> </Dumps> </Log> <ProductionNodes> <Node type="Depth"> <Configuration> <Mirror on="true"/> </Configuration> </Node> <Node type="Image" stopOnError="false" /> <Node type="User" /> </ProductionNodes> </OpenNI> This key is common PrimeSense key Enable the depth camera Enable the RGB camera Enable the user tracker Thursday, September 12, 13
  • 15. OpenNI - Manual Configuration XnStatus nRetVal = context.FindExistingNode(XN_NODE_TYPE_DEPTH, depthGenerator); Thursday, September 12, 13
  • 16. OpenNI - Manual Configuration XnStatus nRetVal = context.FindExistingNode(XN_NODE_TYPE_DEPTH, depthGenerator); if (nRetVal != XN_STATUS_OK){ xn::MockDepthGenerator mockDepth; nRetVal = mockDepth.Create(context); // set some defaults XnMapOutputMode defaultMode; defaultMode.nXRes = 640; defaultMode.nYRes = 480; defaultMode.nFPS = 30; nRetVal = mockDepth.SetMapOutputMode(defaultMode); // set FOV XnFieldOfView fov; fov.fHFOV = 1.0225999419141749; fov.fVFOV = 0.79661567681716894; nRetVal = mockDepth.SetGeneralProperty(XN_PROP_FIELD_OF_VIEW, sizeof(fov), &fov); XnUInt32 nDataSize = defaultMode.nXRes * defaultMode.nYRes * sizeof(XnDepthPixel); XnDepthPixel* pData = (XnDepthPixel*)xnOSCallocAligned(nDataSize, 1, XN_DEFAULT_MEM_ALIGN); nRetVal = mockDepth.SetData(1, 0, nDataSize, pData); CHECK_RC(nRetVal, "set empty depth map"); depthGenerator = mockDepth; } Thursday, September 12, 13
  • 17. OpenNI - Accessing Data // Read next available data context.WaitOneUpdateAll( userGenerator ); userSelector->UpdateFrame(); //Variables UserGenerator userGenerator; Context context; Thursday, September 12, 13
  • 18. OpenNI - Get the depth data //Get the latest depth and image meta data depthGenerator.GetMetaData( depthMD ); //Get a pointer to the depth data const XnDepthPixel* pDepth = depthMD.Data(); //Loop over the depth pixels for (XnUInt y = 0; y < depthMD.YRes(); y++){ for (XnUInt x = 0; x < depthMD.XRes(); x++){ //Access the current depth value *pDepth; //Increase the depth pixel pDepth++; } } //Variables DepthGenerator depthGenerator; DepthMetaData depthMD; Thursday, September 12, 13
  • 19. OpenNI - Get the RGB data //Get the latest image meta data imageGenerator.GetMetaData( imageMD ); //Get a pointer to the image data const XnRGB24Pixel* pImage = imageMD.RGB24Data(); //Loop over the image pixels for (XnUInt y = 0; y < imageMD.YRes(); y++){ for (XnUInt x = 0; x < imageMD.XRes(); x++){ //Access the current pixel value * pImage; //Increase the pixel pointer pImage++; } } //Variables ImageGenerator imageGenerator; ImageMetaData imageMD; Thursday, September 12, 13
  • 20. OpenNI - Skeleton data //Variables UserGenerator userGenerator; XnUserID userIDs[ numTrackedUsers ]; XnUInt16 numUsers = userGenerator->GetNumberOfUsers(); userGenerator->GetUsers(userIDs, numUsers); for( int i=0; i < numUsers; i++ ){ if( userGenerator->GetSkeletonCap().IsTracking( userIDs[i] ) ){ XnPoint3D userCenterOfMass; userGenerator->GetSkeletonCap().IsCalibrating( userIDs[i] ); userGenerator->GetSkeletonCap().IsCalibrated( userIDs[i] ); userGenerator->GetCoM( userIDs[i], userCenterOfMass ); XnSkeletonJointTransformation jointData; if( userGenerator->GetSkeletonCap().IsJointAvailable( XN_SKEL_HEAD ) ){ userGenerator->GetSkeletonCap().GetSkeletonJoint(userIDs[i], XN_SKEL_HEAD, jointData ); } } } Thursday, September 12, 13
  • 25. Supervised Learning Input Vector Training Data Thursday, September 12, 13
  • 26. Supervised Learning Input Vector Training Data {Feature Vector} Thursday, September 12, 13
  • 27. Supervised Learning Input Vector Training Data {Feature Vector} Feature Thursday, September 12, 13
  • 28. Supervised Learning Input Vector Training Data {Feature Vector} Feature {Attribute} Thursday, September 12, 13
  • 29. Supervised Learning Input Vector Target Vector Training Data Thursday, September 12, 13
  • 30. Supervised Learning Learning Algorithm Input Vector Target Vector Training Data Thursday, September 12, 13
  • 31. Supervised Learning Learning Algorithm Model Input Vector Target Vector Training Data Thursday, September 12, 13
  • 32. Supervised Learning Learning Algorithm Prediction New Datum Model Training Data Thursday, September 12, 13
  • 33. Supervised Learning Learning Algorithm Prediction Predicted Class Class A Model Training Data New Datum Thursday, September 12, 13
  • 34. Supervised Learning Learning Algorithm Prediction Predicted Class Class A Model Training Data New Datum Thursday, September 12, 13
  • 35. Kinect Gesture Recognition Synapse OSC Skeleton Data Openframeworks www.nickgillian.com/wiki/pmwiki.php/GRT/ OpenframeworksKinectExample Thursday, September 12, 13
  • 36. Kinect Code Tutorial Slides www.nickgillian.com/09-12-13.html Thursday, September 12, 13