Template designed by
Develop Store Apps with Kinect for Windows v2
Matteo Valoriani Clemente Giorio
Matteo Valoriani
CEO of
Speaker and Consultant
PhD at Politecnico of Milano
Microsoft MVP
Intel Software Innovator
mvaloriani@gmail.com
@MatteoValoriani
https://it.linkedin.com/in/matteovaloriani
Nice to Meet You
2
Clemente Giorio
Senior Developer at
Speaker, Author and Instructor
Microsoft MVP
email Clemente.Giorio@live.com
@Tinux80
http://it.linkedin.com/pub/clemente-giorio/11/618/3a
Nice to Meet You
3
Agenda
• Store App
• Body Frame
• Coordinate Mapper
• Kinect Studio
• Gesture Recognition
• Gesture Builder
• Intro
• The Sensor
• Data Source
• Kinect Evolution
• Data Source
Usage Scenarios
TRAININGRETAIL HEALTHCARETHERAPY EDUCATION
“Any sufficiently
advanced
technology is
indistinguishable
from magic”
(Arthur C. Clarke)
You have to be a
magician…
… or at least a
good illusionist
Sensor Anatomy
Kinect 2 - Specs
3D DEPTH SENSOR
RGB CAMERA
MULTI-ARRAY MIC
Hardware:
Depth resolution:
512×424
RGB resolution:
1920×1080 (16:9)
FrameRate:
30 FPS
Mic resolution:
48 kHz
Kinect Adapter
Data Source Details
Kinect Data Sources
1920 x 1080 array of color pixels
• 30 or 15 fps, based on lighting
conditions
Elaborated Image Format:
RGBA, BGRA, YUY2, …
Raw Data: YUY2
ColorFrameSource
Ambient light removed
InfraredFrameSource
Range: 0.5 near – 4.5meters far
(Extended Depth to 8m)
Pixel Data
16-bit distance in millimeters from the sensor’s
focal plane
DepthFrameSource
Pixel Data
0 to 5: Index of the corresponding body, as
tracked by the body source
> 5: No tracked body at that pixel
BodyIndexFrameSource
255
0 1
Demo
Kinect Evolution
Kinect 2 vs Kinect 1
Version 1 Version 2
Depth range 0.4m → 4.0m 0.5m → 4.5m
Color stream 640×480@30fps 1920×1080@30fps
Depth stream 320×240 512×424
Infrared stream None 512×424
Type of Light Light coding ToF
Audio stream 4-mic array 16 kHz 4-mic array 48 kHz
USB 2.0 3.0
# Bodies Traked 2 (+4) 6
# Joints 20 25
Hand Traking External tools Yes
Face Traking Yes Yes+Expressions
FOV 57° H 43° V 70° H 60° V
Tilt Motorized Manual
System / Software Requirements
OS Windows 8, 8.1, Embedded 8, Embedded 8.1 (x64)
CPU Intel Core i7 (recommended)
RAM 4GB (o more reccomended)
GPU DirectX 11 (required)
USB USB 3.0 (Intel or Renesas chipsets)
Compiler Visual Studio 2012, 2013 (Supported Express)
Language Native (C++), Managed (C#,VB.NET), WinRT (C#,HTML)
Other Unity (Plugin), Cinder, openFrameworks (wrapper)
Accessing Kinect Data
Sources
Multiple
Kinect-enabled
applications can
run simultaneously
High-level architecture
Basic Flow of Programming
Sensor Stream Frame Data
Sensor Source Reader Frame Data
Kinect for Windows SDK v1
Kinect for Windows SDK v2
 Source independent to each Data
(e.g. ColorSource, DepthSource, InfraredSource, BodyIndexSource, BodySource, …)
 Doesn’t depend on each other Source
(e.g. Doesn't need to Depth Source when retrieve Body Data)
In “New Project” create a new Windows Store app
Enable Microphone and Webcam capabilities
Add a reference to Microsoft.Kinect
Use the Microsoft.Kinect namespace in your code
Creating a new store app using Kinect
Represents a single physical sensor
Always valid: when device is disconnected no more frame are
generated.
Use IsAviable Property to verify if the device is connected
The KinectSensor class
this KinectSensor
this
// Make the world a better place with Kinect
this
Sources
Give access to frames
– Events
– Polling
Multiple readers may be
created on a single source
Readers can be paused
Readers
InfraredFrameReader reader =
sensor.InfraredFrameSource.OpenReader();
reader.FrameArrived +=
InfraredReaderFrameArrived;
...
Frame references
void InfraredFrameReader
InfraredFrameArrivedEventArgs
using (InfraredFrame frame =
args.FrameReference.AcquireFrame())
{
if (frame != null)
{
// Get what you need from the frame
}
}
}
Sent in frame event args
AcquireFrame gives access to the actual frame
• Gives access to the frame data
– Make a local copy or access the underlying buffer directly
• Contains metadata for the frame
– e.g. Color: format, width, height, etc.
• Important: Minimize how long you hold onto the frame
– Not Disposing frames will cause you to not receive more frames
Frames
• Allows the app to get a matched set of frames from multiple
sources on a single event
• Delivers frames at the lowest FPS of the selected sources
MultiSourceFrameReader
MultiSourceFrameReader MultiReader =
Sensor.OpenMultiSourceFrameReader(FrameSourceTypes.Color |
FrameSourceTypes.BodyIndex |
FrameSourceTypes.Body);
var frame = args.FrameReference.AcquireFrame();
if (frame != null) {
using (colorFrame = frame.ColorFrameReference.AcquireFrame())
using (bodyFrame = frame.BodyFrameReference.AcquireFrame())
using (bodyIndexFrame = frame.BodyIndexFrameReference.AcquireFrame()){
//
}
}
Demo
Display frame in a
Windows Store App
Range is 0.5-4.5 meters
Frame data is a collection of Body objects each
with 25 joints
Each joint has position in 3D space and an orientation
Up to 6 simultaneous bodies
30fps
Hand State on 2 bodies
Lean
BodyFrameSource
Skeleton vs Body
Improved reliability and accuracy
More reliable lock-on and more stable joints
More anatomically correct skeleton
Hips in the right place, new shoulder parent
Six players tracked at all times
Simplified engagement, bystander involvement
Hand-tip and thumb joints
Enables subtle and more nuanced hand gestures
Per-joint orientation
Great for character retargeting
Skeletal Tracking Features
NUI
ColorSpace (Coordinate System of the
Color Image)
… Color
DepthSpace (Coordinate System of the
Depth Data)
… Depth, Infrared, BodyIndex
CameraSpace (Coordinate System with
the origin located the Depth Sensor)
… Body (Joint)
Coordinate System
Three coordinate systems
Coordinate mapper provides conversions between each system
Convert single or multiple points
Coordinate mapping
Name Applies to Dimensions Units Range Origin
ColorSpacePoint Color 2 pixels 1920x1080 Top left corner
DepthSpacePoint Depth,
Infrared,
Body index
2 pixels 512x424 Top left corner
CameraSpacePoint Body 3 meters – Infrared/depth
camera
Demo
Handle body frames and
coordinate mapping
Kinect Studio
#CDays15 – Milano 24, 25 e 26 Marzo 2015
Recording, Playback, and Gesture Recognition
Recordable Data Sources
Infrared
13 MB/s
Depth
13 MB/s
BodyFrame
BodyIndex
Color
120 MB/s
Audio
32 KB/s
Legend
Record/Play
Record Only
Gesture Recognition
New tool, shipping with v2 SDK
Organize data using projects and solutions
Give meaning to data by tagging gestures
Build gestures using machine learning technology
Adaptive Boosting (AdaBoost) Trigger
• Determines if player is performing gesture
Random Forest Regression (RFR) Progress
• Determines the progress of the gesture performed by player
Analyze / test the results of gesture detection
Live preview of results
Gesture Builder
Visual Gesture Builder
Your Application
Demo
Machine Learning Demo
Heuristic
• Gesture is a coding problem
• Quick to do simple
gestures/poses (hand over head)
• ML can also be useful to find
good signals for Heuristic
approach
Machine Learning (ML) with G.B.
• Gesture is a data problem
• Signals which may not be easily
human understandable (progress
in a baseball swing)
• Large investment for production
• Danger of over-fitting, causes you
to be too specific – eliminating
recognition of generic cases
Gesture Recognition
General Info & Blog ->http://kinectforwindows.com
Purchase Sensor -> http://aka.ms/k4wv2purchase
Developer Forums -> http://aka.ms/k4wv2forum
Twitter Account -> @KinectWindows
A Facebook Group -> http://on.fb.me/1LSflbX
A LinkedIn Group -> http://linkd.in/1J9gFcY
A Twitter Account -> @KinectDevelop
A Google Plus Page -> http://bit.ly/1SHtduT
Kinect Resources
Slides and Code will be available on:
http://www.dotnetcampus.it
THANK YOU!
Q&A

More Related Content

PDF
Programming with kinect v2
PPTX
Kinect2 hands on
PDF
Kinect v2 Introduction and Tutorial
PDF
Kinect for Windows SDK - Programming Guide
PPTX
Nui e biometrics in windows 10
PDF
Introduction to Kinect - Update v 1.8
PPTX
Odessa .NET User Group - Kinect v2
Programming with kinect v2
Kinect2 hands on
Kinect v2 Introduction and Tutorial
Kinect for Windows SDK - Programming Guide
Nui e biometrics in windows 10
Introduction to Kinect - Update v 1.8
Odessa .NET User Group - Kinect v2

What's hot (20)

PDF
Kinect Hacks for Dummies
PPT
Kinect krishna kumar-itkan
PDF
How Augment your Reality: Different perspective on the Reality / Virtuality C...
PDF
Kinect Sensors as Natural User Interfaces
PDF
Kinect v1+Processing workshot fabcafe_taipei
PDF
Develop store apps with kinect for windows v2
PPTX
Kinectic vision looking deep into depth
PPTX
Becoming a kinect hacker innovator v2
PDF
PyKinect: Body Iteration Application Development Using Python
PPTX
Kinect sensor
PDF
2 track kinect@Bicocca - hardware e funzinamento
PDF
Introduction to development
PDF
Introduction to Kinect v2
PPTX
Kinect presentation
PPTX
The power of Kinect in 10 minutes
KEY
Getmoving as3kinect
PPTX
Kinect connect
PPTX
Kinect for Xbox 360: the world's first viral 3D technology
PPTX
Microsoft Kinect in Healthcare
 
PDF
Human interface guidelines_v1.8.0
Kinect Hacks for Dummies
Kinect krishna kumar-itkan
How Augment your Reality: Different perspective on the Reality / Virtuality C...
Kinect Sensors as Natural User Interfaces
Kinect v1+Processing workshot fabcafe_taipei
Develop store apps with kinect for windows v2
Kinectic vision looking deep into depth
Becoming a kinect hacker innovator v2
PyKinect: Body Iteration Application Development Using Python
Kinect sensor
2 track kinect@Bicocca - hardware e funzinamento
Introduction to development
Introduction to Kinect v2
Kinect presentation
The power of Kinect in 10 minutes
Getmoving as3kinect
Kinect connect
Kinect for Xbox 360: the world's first viral 3D technology
Microsoft Kinect in Healthcare
 
Human interface guidelines_v1.8.0
Ad

Viewers also liked (20)

PPT
Overview of The Virtual Dressing Room Market - Augmented World Expo
PPTX
Visug: Say Hello to my little friend: a session on Kinect
PPTX
Isadora Duncan - Mother of Modern Dance
PDF
Kinect 2.0 Programming (1)
PPTX
Isadora pitch
PPTX
Kinect V2: NUI for dummies!!
PPTX
Kinect seminar 121020v1
PDF
Gizonezkoak 2012
PDF
New catalogue
PDF
Archeomolise 14 - Carteggio canonico Scioli / Pigorini
PDF
Primar estrategia competitiva. 2013
PDF
20141120 Instrumento PYME de H2020 en la Asamblea de Fotonica21
PDF
Metaverse a new dimension.Fr
PDF
eCom&MA Prospectus
PDF
¿Quieres un cambio positivo en tu vida? Prueba con Resonance Repatterning - ...
PPTX
Fertiizacion asistida machado
PDF
Ms foundation project
PDF
nd1 instruct nd.gov tax indincome forms 2008
PPT
Ponencia Marco Antonio Fernández Doldán. El Inmenso valor de las Certificacio...
Overview of The Virtual Dressing Room Market - Augmented World Expo
Visug: Say Hello to my little friend: a session on Kinect
Isadora Duncan - Mother of Modern Dance
Kinect 2.0 Programming (1)
Isadora pitch
Kinect V2: NUI for dummies!!
Kinect seminar 121020v1
Gizonezkoak 2012
New catalogue
Archeomolise 14 - Carteggio canonico Scioli / Pigorini
Primar estrategia competitiva. 2013
20141120 Instrumento PYME de H2020 en la Asamblea de Fotonica21
Metaverse a new dimension.Fr
eCom&MA Prospectus
¿Quieres un cambio positivo en tu vida? Prueba con Resonance Repatterning - ...
Fertiizacion asistida machado
Ms foundation project
nd1 instruct nd.gov tax indincome forms 2008
Ponencia Marco Antonio Fernández Doldán. El Inmenso valor de las Certificacio...
Ad

Similar to Develop Store Apps with Kinect for Windows v2 (20)

PPTX
Lidnug Presentation - Kinect - The How, Were and When of developing with it
PPT
Kinect krishna kumar-itkan
PPTX
Writing applications using the Microsoft Kinect Sensor
PDF
3 track kinect@Bicocca - sdk e camere
PPTX
March.2012.KinectForWindows
PPT
First kinectslides
PPT
cs247 slides
PPT
Using the Kinect for Fun and Profit by Tam Hanna
PPTX
Building Kinect applications _Application Fundamentals
PPTX
Sensor based interaction
PDF
Jancke kinect programming
PPTX
Connect with your Kinect
PPTX
Kinect for Windows
PPTX
Kinect for Windows SDK Dr David Brown
PPTX
GWAB - Kinecting the Cloud.
PDF
Gam02 kinect1, kinect2
PPTX
Building Applications with the Microsoft Kinect SDK
PPTX
Motion Game
PPTX
Kinect for Windows Quickstart Series
PPT
Kinect Arabic Interfaced Drawing Application
Lidnug Presentation - Kinect - The How, Were and When of developing with it
Kinect krishna kumar-itkan
Writing applications using the Microsoft Kinect Sensor
3 track kinect@Bicocca - sdk e camere
March.2012.KinectForWindows
First kinectslides
cs247 slides
Using the Kinect for Fun and Profit by Tam Hanna
Building Kinect applications _Application Fundamentals
Sensor based interaction
Jancke kinect programming
Connect with your Kinect
Kinect for Windows
Kinect for Windows SDK Dr David Brown
GWAB - Kinecting the Cloud.
Gam02 kinect1, kinect2
Building Applications with the Microsoft Kinect SDK
Motion Game
Kinect for Windows Quickstart Series
Kinect Arabic Interfaced Drawing Application

More from Clemente Giorio (10)

PDF
Dynamics 365 and Mixed Reality: Increase Productivity
PDF
Layout and Remote Assistant: Mixed Reality with HoloLens
PDF
Speech Processing with Azure Cognitive Services
PDF
Introduction to Mixed Reality
PPTX
IoT Day Italy - Mixed Reality & IoT
PPTX
HoloLens and Windows Mixed Reality
PPTX
The Holographic future is now! - Cloud Day @PoliBa 27 May 2016
PDF
Microsoft & IoT
PPTX
Develop a Windows 10 App. Deploy it on PC, Phone and Raspberry Pi.
PPTX
Dev09 – la battaglia del touchless
Dynamics 365 and Mixed Reality: Increase Productivity
Layout and Remote Assistant: Mixed Reality with HoloLens
Speech Processing with Azure Cognitive Services
Introduction to Mixed Reality
IoT Day Italy - Mixed Reality & IoT
HoloLens and Windows Mixed Reality
The Holographic future is now! - Cloud Day @PoliBa 27 May 2016
Microsoft & IoT
Develop a Windows 10 App. Deploy it on PC, Phone and Raspberry Pi.
Dev09 – la battaglia del touchless

Recently uploaded (20)

PDF
AI-Powered Fuzz Testing: The Future of QA
PPTX
Human-Computer Interaction for Lecture 2
PPTX
Odoo ERP for Injection Molding Industry – Optimize Production & Reduce Scrap
PDF
Lumion Pro Crack New latest version Download 2025
PDF
Top 10 Project Management Software for Small Teams in 2025.pdf
PPTX
string python Python Strings: Literals, Slicing, Methods, Formatting, and Pra...
PDF
Internet Download Manager IDM Crack powerful download accelerator New Version...
PDF
IDM Crack 6.42 Build 42 Patch Serial Key 2025 Free New Version
PPTX
Lesson-3-Operation-System-Support.pptx-I
PPTX
Why 2025 Is the Best Year to Hire Software Developers in India
PPTX
WJQSJXNAZJVCVSAXJHBZKSJXKJKXJSBHJBJEHHJB
PPTX
Human-Computer Interaction for Lecture 1
PPTX
Human Computer Interaction lecture Chapter 2.pptx
PPTX
HackYourBrain__UtrechtJUG__11092025.pptx
PPTX
Viber For Windows 25.7.1 Crack + Serial Keygen
PDF
What Makes a Great Data Visualization Consulting Service.pdf
PPTX
Plex Media Server 1.28.2.6151 With Crac5 2022 Free .
PPTX
Bandicam Screen Recorder 8.2.1 Build 2529 Crack
PPT
3.Software Design for software engineering
PDF
PDF-XChange Editor Plus 10.7.0.398.0 Crack Free Download Latest 2025
AI-Powered Fuzz Testing: The Future of QA
Human-Computer Interaction for Lecture 2
Odoo ERP for Injection Molding Industry – Optimize Production & Reduce Scrap
Lumion Pro Crack New latest version Download 2025
Top 10 Project Management Software for Small Teams in 2025.pdf
string python Python Strings: Literals, Slicing, Methods, Formatting, and Pra...
Internet Download Manager IDM Crack powerful download accelerator New Version...
IDM Crack 6.42 Build 42 Patch Serial Key 2025 Free New Version
Lesson-3-Operation-System-Support.pptx-I
Why 2025 Is the Best Year to Hire Software Developers in India
WJQSJXNAZJVCVSAXJHBZKSJXKJKXJSBHJBJEHHJB
Human-Computer Interaction for Lecture 1
Human Computer Interaction lecture Chapter 2.pptx
HackYourBrain__UtrechtJUG__11092025.pptx
Viber For Windows 25.7.1 Crack + Serial Keygen
What Makes a Great Data Visualization Consulting Service.pdf
Plex Media Server 1.28.2.6151 With Crac5 2022 Free .
Bandicam Screen Recorder 8.2.1 Build 2529 Crack
3.Software Design for software engineering
PDF-XChange Editor Plus 10.7.0.398.0 Crack Free Download Latest 2025

Develop Store Apps with Kinect for Windows v2

  • 1. Template designed by Develop Store Apps with Kinect for Windows v2 Matteo Valoriani Clemente Giorio
  • 2. Matteo Valoriani CEO of Speaker and Consultant PhD at Politecnico of Milano Microsoft MVP Intel Software Innovator [email protected] @MatteoValoriani https://it.linkedin.com/in/matteovaloriani Nice to Meet You 2
  • 3. Clemente Giorio Senior Developer at Speaker, Author and Instructor Microsoft MVP email [email protected] @Tinux80 http://it.linkedin.com/pub/clemente-giorio/11/618/3a Nice to Meet You 3
  • 4. Agenda • Store App • Body Frame • Coordinate Mapper • Kinect Studio • Gesture Recognition • Gesture Builder • Intro • The Sensor • Data Source • Kinect Evolution • Data Source
  • 7. You have to be a magician… … or at least a good illusionist
  • 9. Kinect 2 - Specs 3D DEPTH SENSOR RGB CAMERA MULTI-ARRAY MIC Hardware: Depth resolution: 512×424 RGB resolution: 1920×1080 (16:9) FrameRate: 30 FPS Mic resolution: 48 kHz
  • 13. 1920 x 1080 array of color pixels • 30 or 15 fps, based on lighting conditions Elaborated Image Format: RGBA, BGRA, YUY2, … Raw Data: YUY2 ColorFrameSource
  • 15. Range: 0.5 near – 4.5meters far (Extended Depth to 8m) Pixel Data 16-bit distance in millimeters from the sensor’s focal plane DepthFrameSource
  • 16. Pixel Data 0 to 5: Index of the corresponding body, as tracked by the body source > 5: No tracked body at that pixel BodyIndexFrameSource 255 0 1
  • 18. Kinect 2 vs Kinect 1
  • 19. Version 1 Version 2 Depth range 0.4m → 4.0m 0.5m → 4.5m Color stream 640×480@30fps 1920×1080@30fps Depth stream 320×240 512×424 Infrared stream None 512×424 Type of Light Light coding ToF Audio stream 4-mic array 16 kHz 4-mic array 48 kHz USB 2.0 3.0 # Bodies Traked 2 (+4) 6 # Joints 20 25 Hand Traking External tools Yes Face Traking Yes Yes+Expressions FOV 57° H 43° V 70° H 60° V Tilt Motorized Manual
  • 20. System / Software Requirements OS Windows 8, 8.1, Embedded 8, Embedded 8.1 (x64) CPU Intel Core i7 (recommended) RAM 4GB (o more reccomended) GPU DirectX 11 (required) USB USB 3.0 (Intel or Renesas chipsets) Compiler Visual Studio 2012, 2013 (Supported Express) Language Native (C++), Managed (C#,VB.NET), WinRT (C#,HTML) Other Unity (Plugin), Cinder, openFrameworks (wrapper)
  • 23. Basic Flow of Programming Sensor Stream Frame Data Sensor Source Reader Frame Data Kinect for Windows SDK v1 Kinect for Windows SDK v2  Source independent to each Data (e.g. ColorSource, DepthSource, InfraredSource, BodyIndexSource, BodySource, …)  Doesn’t depend on each other Source (e.g. Doesn't need to Depth Source when retrieve Body Data)
  • 24. In “New Project” create a new Windows Store app Enable Microphone and Webcam capabilities Add a reference to Microsoft.Kinect Use the Microsoft.Kinect namespace in your code Creating a new store app using Kinect
  • 25. Represents a single physical sensor Always valid: when device is disconnected no more frame are generated. Use IsAviable Property to verify if the device is connected The KinectSensor class this KinectSensor this // Make the world a better place with Kinect this
  • 27. Give access to frames – Events – Polling Multiple readers may be created on a single source Readers can be paused Readers InfraredFrameReader reader = sensor.InfraredFrameSource.OpenReader(); reader.FrameArrived += InfraredReaderFrameArrived; ...
  • 28. Frame references void InfraredFrameReader InfraredFrameArrivedEventArgs using (InfraredFrame frame = args.FrameReference.AcquireFrame()) { if (frame != null) { // Get what you need from the frame } } } Sent in frame event args AcquireFrame gives access to the actual frame
  • 29. • Gives access to the frame data – Make a local copy or access the underlying buffer directly • Contains metadata for the frame – e.g. Color: format, width, height, etc. • Important: Minimize how long you hold onto the frame – Not Disposing frames will cause you to not receive more frames Frames
  • 30. • Allows the app to get a matched set of frames from multiple sources on a single event • Delivers frames at the lowest FPS of the selected sources MultiSourceFrameReader MultiSourceFrameReader MultiReader = Sensor.OpenMultiSourceFrameReader(FrameSourceTypes.Color | FrameSourceTypes.BodyIndex | FrameSourceTypes.Body); var frame = args.FrameReference.AcquireFrame(); if (frame != null) { using (colorFrame = frame.ColorFrameReference.AcquireFrame()) using (bodyFrame = frame.BodyFrameReference.AcquireFrame()) using (bodyIndexFrame = frame.BodyIndexFrameReference.AcquireFrame()){ // } }
  • 31. Demo Display frame in a Windows Store App
  • 32. Range is 0.5-4.5 meters Frame data is a collection of Body objects each with 25 joints Each joint has position in 3D space and an orientation Up to 6 simultaneous bodies 30fps Hand State on 2 bodies Lean BodyFrameSource
  • 34. Improved reliability and accuracy More reliable lock-on and more stable joints More anatomically correct skeleton Hips in the right place, new shoulder parent Six players tracked at all times Simplified engagement, bystander involvement Hand-tip and thumb joints Enables subtle and more nuanced hand gestures Per-joint orientation Great for character retargeting Skeletal Tracking Features NUI
  • 35. ColorSpace (Coordinate System of the Color Image) … Color DepthSpace (Coordinate System of the Depth Data) … Depth, Infrared, BodyIndex CameraSpace (Coordinate System with the origin located the Depth Sensor) … Body (Joint) Coordinate System
  • 36. Three coordinate systems Coordinate mapper provides conversions between each system Convert single or multiple points Coordinate mapping Name Applies to Dimensions Units Range Origin ColorSpacePoint Color 2 pixels 1920x1080 Top left corner DepthSpacePoint Depth, Infrared, Body index 2 pixels 512x424 Top left corner CameraSpacePoint Body 3 meters – Infrared/depth camera
  • 37. Demo Handle body frames and coordinate mapping
  • 39. #CDays15 – Milano 24, 25 e 26 Marzo 2015 Recording, Playback, and Gesture Recognition
  • 40. Recordable Data Sources Infrared 13 MB/s Depth 13 MB/s BodyFrame BodyIndex Color 120 MB/s Audio 32 KB/s Legend Record/Play Record Only
  • 42. New tool, shipping with v2 SDK Organize data using projects and solutions Give meaning to data by tagging gestures Build gestures using machine learning technology Adaptive Boosting (AdaBoost) Trigger • Determines if player is performing gesture Random Forest Regression (RFR) Progress • Determines the progress of the gesture performed by player Analyze / test the results of gesture detection Live preview of results Gesture Builder
  • 45. Heuristic • Gesture is a coding problem • Quick to do simple gestures/poses (hand over head) • ML can also be useful to find good signals for Heuristic approach Machine Learning (ML) with G.B. • Gesture is a data problem • Signals which may not be easily human understandable (progress in a baseball swing) • Large investment for production • Danger of over-fitting, causes you to be too specific – eliminating recognition of generic cases Gesture Recognition
  • 46. General Info & Blog ->http://kinectforwindows.com Purchase Sensor -> http://aka.ms/k4wv2purchase Developer Forums -> http://aka.ms/k4wv2forum Twitter Account -> @KinectWindows A Facebook Group -> http://on.fb.me/1LSflbX A LinkedIn Group -> http://linkd.in/1J9gFcY A Twitter Account -> @KinectDevelop A Google Plus Page -> http://bit.ly/1SHtduT Kinect Resources
  • 47. Slides and Code will be available on: http://www.dotnetcampus.it THANK YOU! Q&A

Editor's Notes

  • #2: 1
  • #7: The big success of Kinect is linked to the “magic” perceived by the user. Kinect allows to create an immersive user experience where the user is swept into an other world and transformed in an avatar or in a magical elf
  • #10: Wider/expanded field of view The expanded field of view enables a larger area of a scene to be captured by the camera. As a result, users can be closer to the camera and still in view, and the camera is effective over a larger total area. In a retail scenario, for example, the sensor could be placed on a wall and track more people within a larger area for more versatile and effective interactions.
  • #13: Called “Streams” in V1
  • #14: 1080p color camera 30 Hz (15 Hz in low light) The color camera captures full, beautiful 1080p video that can be displayed in the same resolution as the viewing screen, allowing for a broad range of powerful scenarios. In addition to improving video communications and video analytics applications, this provides a stable input on which to build high quality, interactive applications. Build high-quality, augmented reality scenarios that could be used with digital signage for retail, museums, lobbies, and public spaces.
  • #15: Not heat – different frequency People have used this for: night vision, computer vision applications that need consistent illumination like face recognition, retro reflective materials also show up very well New active infrared (IR) capabilities 512 x 424 30 Hz In addition to allowing the sensor to see in the dark, the new infrared (IR) capabilities produce a lighting-independent view—and you can now use IR and color at the same time. The new IR capabilities enable new machine learning applications, such as face recognition in varying light conditions.
  • #16: Depth sensing 512 x 424 30 Hz FOV: 70 x 60 One mode: .5–4.5 meters With higher depth fidelity and a significantly improved noise floor, the sensor gives you improved 3D visualization, improved ability to see smaller objects and all objects more clearly, and improves the stability of body tracking. Fitness, wellness, and entertainment scenarios can take advantage of the improved 3D visualization.
  • #17: Could detect a body moved by comparing one frame to the next Can be used directly for some background removal Full Skeleton Tracked: - v1 2 - v2 6
  • #20: Latency v1 ~90 ms with processing Latency v2 ~60 ms with processing
  • #21: Unity Pro Support: For more than just gaming, Unity Pro offers cross-platform rapid prototyping. Build and publish apps by using tools that you already know across multiple platforms. From Unity 5.x version you don’t require Pro edition.
  • #23: One instance of the service per session All the same – not lower-higher level Talk to USB3, Windows 8, GPU requirement
  • #25: Everything is currently “WindowsPreview.Kinect” That, of course, will change before final RTM.
  • #26: Simultaneous multi-app support Improved multi-app support enables multiple applications to access a single sensor simultaneously. For example, by allowing a retail app and a business intelligence app to access the same sensor, you can get business intelligence in real time in your retail space.
  • #31: Replaces AllFramesReady event in V1
  • #32: Windows Store support You can now create Windows Store apps by using tools you already know, and offer them to a broad consumer audience. You can list and sell your Kinect v2 applications in the Windows Store.
  • #33: Skeleton Hoints Defined: -v1 20 joints -v2 25 joints Improved body, hand and joint orientation With the ability to track as many as six people and 25 skeletal joints per person—including new joints for hand tips, thumbs, and shoulder center—and improved understanding of the soft connective tissue and body positioning, you get more anatomically correct positions for crisp interactions, more accurate avateering, and avatars that are more lifelike. New and better scenarios in fitness, wellness, education and training, entertainment, gaming, movies, and communications
  • #34: Improved body tracking The enhanced fidelity of the depth camera, combined with improvements in the software, have led to a number of body tracking developments. The latest sensor tracks as many as six complete skeletons (compared to two with the original sensor), and 25 joints per person (compared to 20 with the original sensor). The tracked positions are more anatomically correct and stable and the range of tracking is broader. In interactive scenarios, your avatars will be more stable—with more accurate body position evaluation and crisper interactions—and you have the potential for bystanders to participate.
  • #35: The first generation sensor never really understood hips before. In the new generation we’ve lowered the hips to be anatomically correct Seated positions are far superior with the new generation (no more seated mode so no more toggling…you always get all 25 joints now) “Strong Leans” (more then 30 degrees of lean…all the way to 90 degrees) This gives us more reliable tracking and enables things like ST tracking for push-ups Spine Mid joint –> used to be called “spine” and was lower Spine Base joint was higher Clavicle is new…called “Spine Shoulder” Xbox 360 had 20 joints and joint orientations
  • #37: CameraSpacePoint was named SkeletonPoint in the V1 API. But it applies more generally, not only to Body joint positions, but to any point that is within the depth camera’s field of view. Hence, the new name.
  • #39: Powerful tooling Kinect Studio provides enhanced recording and playback, and Visual Gesture Builder lets developers build their own custom gestures that the system recognizes and uses to write code by using machine learning, increasing productivity and cost efficiency. Develop on the go without the need to bring the Kinect sensor with you. Create custom gestures that decrease the time to prototype and test solutions.
  • #43: Applications can combine triggers and progress at runtime Use trigger to determine context, e.g. punching, walking, etc. Use progress to drive animation once we know the context
  • #51: KinectRegion kinectRegion = new KinectRegion(); Grid grid = new Grid(); KinectUserViewer userViewer = new KinectUserViewer() { Height = 100, Width = 121, HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Top, }; grid.Children.Add(kinectRegion); grid.Children.Add(userViewer); kinectRegion.Content = rootFrame; // Place the frame in the current Window Window.Current.Content = grid;
  • #61: Ultima slide, obbligatoria