SlideShare a Scribd company logo
Programming with the Kinect for
Windows SDK
What we’ll cover
   Kinect Sensor
   Using Cameras
   Understanding Depth Data
   Skeletal Tracking
   Audio
3D DEPTH SENSORS

            RGB CAMERA




MULTI-ARRAY MIC    MOTORIZED TILT
SDK Architecture
                                                Applications
                           Video Components                       Audio Components
                                                                 Windows Core Audio              5
      3                       NUI API                             and Speech APIs
                                                                  DMO codec for mic array        4

      2   Device      Device
                                          Video stream control          Audio stream control     User Mode
          setup       access

          WinUSB device stack            WinUSB camera stack           USBAudio audio stack      Kernel Mode


                                Kernel-mode drivers for Kinect for Windows


                                                   USB Hub                                       Hardware
      1
                   Motor                           Cameras                     Audio mic array
                                                 Kinect sensor

            Kinect for                        Windows                    User-created
            Windows SDK                       components                 components
SDK Architecture
                                                Applications
                           Video Components                       Audio Components
                                                                 Windows Core Audio              5
      3                       NUI API                             and Speech APIs
                                                                  DMO codec for mic array        4

      2   Device      Device
                                          Video stream control          Audio stream control     User Mode
          setup       access

          WinUSB device stack            WinUSB camera stack           USBAudio audio stack      Kernel Mode


                                Kernel-mode drivers for Kinect for Windows


                                                   USB Hub                                       Hardware
      1
                   Motor                           Cameras                     Audio mic array
                                                 Kinect sensor

            Kinect for                        Windows                    User-created
            Windows SDK                       components                 components
SDK Architecture
                                                Applications
                           Video Components                       Audio Components
                                                                 Windows Core Audio              5
      3                       NUI API                             and Speech APIs
                                                                  DMO codec for mic array        4

      2   Device      Device
                                          Video stream control          Audio stream control     User Mode
          setup       access

          WinUSB device stack            WinUSB camera stack           USBAudio audio stack      Kernel Mode


                                Kernel-mode drivers for Kinect for Windows


                                                   USB Hub                                       Hardware
      1
                   Motor                           Cameras                     Audio mic array
                                                 Kinect sensor

            Kinect for                        Windows                    User-created
            Windows SDK                       components                 components
SDK Architecture
                                                Applications
                           Video Components                       Audio Components
                                                                 Windows Core Audio              5
      3                       NUI API                             and Speech APIs
                                                                  DMO codec for mic array        4

      2   Device      Device
                                          Video stream control          Audio stream control     User Mode
          setup       access

          WinUSB device stack            WinUSB camera stack           USBAudio audio stack      Kernel Mode


                                Kernel-mode drivers for Kinect for Windows


                                                   USB Hub                                       Hardware
      1
                   Motor                           Cameras                     Audio mic array
                                                 Kinect sensor

            Kinect for                        Windows                    User-created
            Windows SDK                       components                 components
SDK Architecture
                                                Applications
                           Video Components                       Audio Components
                                                                 Windows Core Audio              5
      3                       NUI API                             and Speech APIs
                                                                  DMO codec for mic array        4

      2   Device      Device
                                          Video stream control          Audio stream control     User Mode
          setup       access

          WinUSB device stack            WinUSB camera stack           USBAudio audio stack      Kernel Mode


                                Kernel-mode drivers for Kinect for Windows


                                                   USB Hub                                       Hardware
      1
                   Motor                           Cameras                     Audio mic array
                                                 Kinect sensor

            Kinect for                        Windows                    User-created
            Windows SDK                       components                 components
Using Cameras

Demos
Understanding Depth Data
 ImageFrame.Image.Bits
 Array of bytes - public byte[] Bits;
 Array
  – Starts at top left of image
  – Moves left to right, then top to bottom
  – Represents distance for pixel in millimeters
Calculating Distance
 2 bytes per pixel (16 bits)
 Depth – Distance per pixel
   – Bitshift second byte by 8
   – Distance (0,0) = (int)(Bits[0] | Bits[1] << 8);
   – VB (int)(CInt(Bits(0)) Or CInt(Bits(1)) << 8);
 DepthAndPlayer Index – Includes Player index
   – Bitshift by 3 first byte (player index), 5 second byte
   – Distance (0,0) =(int)(Bits[0] >> 3 | Bits[1] << 5);
   – VB:(int)(CInt(Bits(0)) >> 3 Or CInt(Bits(1)) << 5);
Depth Reference
 Distance Range: 850 mm to 4000 mm range
 Depth value 0 means unknown
  – Shadows, low reflectivity, and high reflectivity among
    the few reasons
 Player Index
  –   0 – No player
  –   1 – Skeleton 0
  –   2 – Skeleton 1
  –   …
Demos
Skeleton Data
Joints
 Maximum two players tracked at once
    – Six player proposals
 Each player with set of <x, y, z> joints in meters
 Each joint has associated state
    – Tracked, Not tracked, or Inferred
 Inferred - Occluded, clipped, or low confidence joints
 Not Tracked - Rare, but your code must check for this state
Skeletal Tracking
Demos
Audio Going Inside of Kinect
 Four microphone array
  with hardware-based
  audio processing
  – Multichannel echo cancellation (MEC)
  – Sound position tracking
  – Other digital signal processing (noise suppression
    and reduction)
Audio
 Kinect as a microphone
 Kinect for Speech Recognition
Multi-modal Feedback
 Engagement model
  – Mic indicator for speech-enabled menus
  – Keyword to engage



 Feedback and confirmation
  (both passive and active)
Speech Recognition
 Kinect Grammar available to download
 Grammar – What we are listening for
  – Code – GrammarBuilder, Choices
  – Speech Recognition Grammar Specification (SRGS)
      C:Program Files (x86)Microsoft Speech Platform
       SDKSamplesSample Grammars
Grammar
<!-- Confirmation_YesNo._value: string      <!-- Confirmation_Yes._value: string ["Yes"]
["Yes", "No"] -->
                                            -->
<rule id="Confirmation_YesNo"
scope="public">                             <rule id="Confirmation_Yes" scope="public">
  <example> yes </example>                    <example> yes </example>
  <example> no </example>                     <example> yes please </example>
  <one-of>                                    <one-of>
    <item>                                      <item> yes </item>
      <ruleref uri="#Confirmation_Yes" />       <item> yeah </item>
    </item>                                     <item> yep </item>
    <item>                                      <item> ok </item>
      <ruleref uri="#Confirmation_No" />
                                              </one-of>
    </item>
                                              <item repeat="0-1"> please </item>
  </one-of>
  <tag> out = rules.latest() </tag>
                                              <tag> out._value = "Yes";</tag>
</rule>
</rule>
Demos
Resources
 Kinect Programming Walkthroughs
  – http://research.microsoft.com/kinectsdk/
 Coding4Fun Kinect Toolkit
  – http://c4fkinect.codeplex.com
 Kinect SDK Quickstarts
  – http://channel9.msdn.com/series/KinectSDKQuickstarts
Jancke kinect programming

More Related Content

PDF
PyKinect: Body Iteration Application Development Using Python
PDF
Kinect Hacks for Dummies
PDF
Introduction to Kinect v2
PDF
今日からはじめるKinect Hack
PPTX
Kinect2 hands on
PDF
Human interface guidelines_v1.8.0
PDF
Programming with kinect v2
PPTX
Kinect
PyKinect: Body Iteration Application Development Using Python
Kinect Hacks for Dummies
Introduction to Kinect v2
今日からはじめるKinect Hack
Kinect2 hands on
Human interface guidelines_v1.8.0
Programming with kinect v2
Kinect

What's hot (20)

PDF
Kinect v2 Introduction and Tutorial
PPTX
Nui e biometrics in windows 10
DOCX
Kinect installation guide
PDF
Kinect on Android Pandaboard
PPTX
Odessa .NET User Group - Kinect v2
PDF
Overview of the Intel® Internet of Things Developer Kit
PPTX
Developing a NodeBot using Intel XDK IoT Edition
PDF
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
PDF
Bring the Future of Entertainment to Your Living Room: MPEG-I Immersive Video...
PDF
Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...
PPTX
TDC2018FLN | Trilha Machine Learning - Intel movidius: Neural Compute Stick
PDF
Intel Movidius Neural Compute Stick presentation @QConf San Francisco
PDF
Intel® Open Image Denoise: Optimized CPU Denoising | SIGGRAPH 2019 Technical ...
PDF
Go native benchmark test su dispositivi x86: java, ndk, ipp e tbb
PDF
IoT Getting Started with Intel® IoT Devkit
PDF
Ray Tracing with Intel® Embree and Intel® OSPRay: Use Cases and Updates | SIG...
PPTX
Lab Handson: Power your Creations with Intel Edison!
PPTX
Minecraft Mixed reality implementation approach without green screen
PDF
Ijsrdv1 i4049
PDF
Create a Scalable and Destructible World in HITMAN 2*
Kinect v2 Introduction and Tutorial
Nui e biometrics in windows 10
Kinect installation guide
Kinect on Android Pandaboard
Odessa .NET User Group - Kinect v2
Overview of the Intel® Internet of Things Developer Kit
Developing a NodeBot using Intel XDK IoT Edition
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Bring the Future of Entertainment to Your Living Room: MPEG-I Immersive Video...
Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...
TDC2018FLN | Trilha Machine Learning - Intel movidius: Neural Compute Stick
Intel Movidius Neural Compute Stick presentation @QConf San Francisco
Intel® Open Image Denoise: Optimized CPU Denoising | SIGGRAPH 2019 Technical ...
Go native benchmark test su dispositivi x86: java, ndk, ipp e tbb
IoT Getting Started with Intel® IoT Devkit
Ray Tracing with Intel® Embree and Intel® OSPRay: Use Cases and Updates | SIG...
Lab Handson: Power your Creations with Intel Edison!
Minecraft Mixed reality implementation approach without green screen
Ijsrdv1 i4049
Create a Scalable and Destructible World in HITMAN 2*
Ad

Viewers also liked (11)

PPTX
A Distributed System Using MS Kinect and Event Calculus for Adaptive Physioth...
PDF
Math1003 1.10 - Binary to Hex Conversion
PPTX
Defense mechanisms
PDF
Master Thesis presentation
PPT
Proposal Defense Power Point
PDF
My Thesis Defense Presentation
PPT
Powerpoint presentation M.A. Thesis Defence
PPT
Dissertation oral defense presentation
PPTX
Rupa Patel's Ph.D. Dissertation Defense, UW Biomedical & Health Informatics
PPTX
Kinect
PPTX
Thesis Powerpoint
A Distributed System Using MS Kinect and Event Calculus for Adaptive Physioth...
Math1003 1.10 - Binary to Hex Conversion
Defense mechanisms
Master Thesis presentation
Proposal Defense Power Point
My Thesis Defense Presentation
Powerpoint presentation M.A. Thesis Defence
Dissertation oral defense presentation
Rupa Patel's Ph.D. Dissertation Defense, UW Biomedical & Health Informatics
Kinect
Thesis Powerpoint
Ad

Similar to Jancke kinect programming (20)

PDF
20110917 saitama iphone_dev
PDF
Jancke kinect programming
PDF
실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)
PDF
Skype testing overview
PDF
Skype testing overview
PPTX
Android and Intel Inside
PPTX
Tacademy techclinic-2012-07-11
PDF
Google Io Introduction To Android
PDF
13.30 hr Hebinck
PDF
An Introduction To Android
PDF
The anatomy and philosophy of Android - Google I/O 2009
PDF
Video Drivers
PPTX
Motion Game
PDF
Android unveiled (I)
PDF
Linovision
PDF
Droidcon2013 miracast final2
PPTX
Ami device driver_services ver. 1.1
PDF
Pv Android Slides For Posting
PDF
Life Size Virtual Link
20110917 saitama iphone_dev
Jancke kinect programming
실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)
Skype testing overview
Skype testing overview
Android and Intel Inside
Tacademy techclinic-2012-07-11
Google Io Introduction To Android
13.30 hr Hebinck
An Introduction To Android
The anatomy and philosophy of Android - Google I/O 2009
Video Drivers
Motion Game
Android unveiled (I)
Linovision
Droidcon2013 miracast final2
Ami device driver_services ver. 1.1
Pv Android Slides For Posting
Life Size Virtual Link

Recently uploaded (20)

PPTX
Nanokeyer nano keyekr kano ketkker nano keyer
PPTX
了解新西兰毕业证(Wintec毕业证书)怀卡托理工学院毕业证存档可查的
PDF
Smarter Security: How Door Access Control Works with Alarms & CCTV
DOCX
fsdffdghjjgfxfdghjvhjvgfdfcbchghgghgcbjghf
PPTX
KVL KCL ppt electrical electronics eee tiet
PDF
Dynamic Checkweighers and Automatic Weighing Machine Solutions
PPT
chapter_1_a.ppthduushshwhwbshshshsbbsbsbsbsh
PPT
Hypersensitivity Namisha1111111111-WPS.ppt
PPTX
Syllabus Computer Six class curriculum s
PPT
Lines and angles cbse class 9 math chemistry
PPTX
making presentation that do no stick.pptx
PPTX
STEEL- intro-1.pptxhejwjenwnwnenemwmwmwm
PDF
Layer23-Switch.com The Cisco Catalyst 9300 Series is Cisco’s flagship stackab...
PDF
How NGOs Save Costs with Affordable IT Rentals
PPT
FABRICATION OF MOS FET BJT DEVICES IN NANOMETER
PPTX
Embedded for Artificial Intelligence 1.pptx
PPTX
ERP good ERP good ERP good ERP good good ERP good ERP good
PPTX
DEATH AUDIT MAY 2025.pptxurjrjejektjtjyjjy
PPTX
Wireless and Mobile Backhaul Market.pptx
PPTX
5. MEASURE OF INTERIOR AND EXTERIOR- MATATAG CURRICULUM.pptx
Nanokeyer nano keyekr kano ketkker nano keyer
了解新西兰毕业证(Wintec毕业证书)怀卡托理工学院毕业证存档可查的
Smarter Security: How Door Access Control Works with Alarms & CCTV
fsdffdghjjgfxfdghjvhjvgfdfcbchghgghgcbjghf
KVL KCL ppt electrical electronics eee tiet
Dynamic Checkweighers and Automatic Weighing Machine Solutions
chapter_1_a.ppthduushshwhwbshshshsbbsbsbsbsh
Hypersensitivity Namisha1111111111-WPS.ppt
Syllabus Computer Six class curriculum s
Lines and angles cbse class 9 math chemistry
making presentation that do no stick.pptx
STEEL- intro-1.pptxhejwjenwnwnenemwmwmwm
Layer23-Switch.com The Cisco Catalyst 9300 Series is Cisco’s flagship stackab...
How NGOs Save Costs with Affordable IT Rentals
FABRICATION OF MOS FET BJT DEVICES IN NANOMETER
Embedded for Artificial Intelligence 1.pptx
ERP good ERP good ERP good ERP good good ERP good ERP good
DEATH AUDIT MAY 2025.pptxurjrjejektjtjyjjy
Wireless and Mobile Backhaul Market.pptx
5. MEASURE OF INTERIOR AND EXTERIOR- MATATAG CURRICULUM.pptx

Jancke kinect programming

  • 1. Programming with the Kinect for Windows SDK
  • 2. What we’ll cover  Kinect Sensor  Using Cameras  Understanding Depth Data  Skeletal Tracking  Audio
  • 3. 3D DEPTH SENSORS RGB CAMERA MULTI-ARRAY MIC MOTORIZED TILT
  • 4. SDK Architecture Applications Video Components Audio Components Windows Core Audio 5 3 NUI API and Speech APIs DMO codec for mic array 4 2 Device Device Video stream control Audio stream control User Mode setup access WinUSB device stack WinUSB camera stack USBAudio audio stack Kernel Mode Kernel-mode drivers for Kinect for Windows USB Hub Hardware 1 Motor Cameras Audio mic array Kinect sensor Kinect for Windows User-created Windows SDK components components
  • 5. SDK Architecture Applications Video Components Audio Components Windows Core Audio 5 3 NUI API and Speech APIs DMO codec for mic array 4 2 Device Device Video stream control Audio stream control User Mode setup access WinUSB device stack WinUSB camera stack USBAudio audio stack Kernel Mode Kernel-mode drivers for Kinect for Windows USB Hub Hardware 1 Motor Cameras Audio mic array Kinect sensor Kinect for Windows User-created Windows SDK components components
  • 6. SDK Architecture Applications Video Components Audio Components Windows Core Audio 5 3 NUI API and Speech APIs DMO codec for mic array 4 2 Device Device Video stream control Audio stream control User Mode setup access WinUSB device stack WinUSB camera stack USBAudio audio stack Kernel Mode Kernel-mode drivers for Kinect for Windows USB Hub Hardware 1 Motor Cameras Audio mic array Kinect sensor Kinect for Windows User-created Windows SDK components components
  • 7. SDK Architecture Applications Video Components Audio Components Windows Core Audio 5 3 NUI API and Speech APIs DMO codec for mic array 4 2 Device Device Video stream control Audio stream control User Mode setup access WinUSB device stack WinUSB camera stack USBAudio audio stack Kernel Mode Kernel-mode drivers for Kinect for Windows USB Hub Hardware 1 Motor Cameras Audio mic array Kinect sensor Kinect for Windows User-created Windows SDK components components
  • 8. SDK Architecture Applications Video Components Audio Components Windows Core Audio 5 3 NUI API and Speech APIs DMO codec for mic array 4 2 Device Device Video stream control Audio stream control User Mode setup access WinUSB device stack WinUSB camera stack USBAudio audio stack Kernel Mode Kernel-mode drivers for Kinect for Windows USB Hub Hardware 1 Motor Cameras Audio mic array Kinect sensor Kinect for Windows User-created Windows SDK components components
  • 10. Understanding Depth Data  ImageFrame.Image.Bits  Array of bytes - public byte[] Bits;  Array – Starts at top left of image – Moves left to right, then top to bottom – Represents distance for pixel in millimeters
  • 11. Calculating Distance  2 bytes per pixel (16 bits)  Depth – Distance per pixel – Bitshift second byte by 8 – Distance (0,0) = (int)(Bits[0] | Bits[1] << 8); – VB (int)(CInt(Bits(0)) Or CInt(Bits(1)) << 8);  DepthAndPlayer Index – Includes Player index – Bitshift by 3 first byte (player index), 5 second byte – Distance (0,0) =(int)(Bits[0] >> 3 | Bits[1] << 5); – VB:(int)(CInt(Bits(0)) >> 3 Or CInt(Bits(1)) << 5);
  • 12. Depth Reference  Distance Range: 850 mm to 4000 mm range  Depth value 0 means unknown – Shadows, low reflectivity, and high reflectivity among the few reasons  Player Index – 0 – No player – 1 – Skeleton 0 – 2 – Skeleton 1 – …
  • 13. Demos
  • 15. Joints  Maximum two players tracked at once – Six player proposals  Each player with set of <x, y, z> joints in meters  Each joint has associated state – Tracked, Not tracked, or Inferred  Inferred - Occluded, clipped, or low confidence joints  Not Tracked - Rare, but your code must check for this state
  • 17. Demos
  • 18. Audio Going Inside of Kinect  Four microphone array with hardware-based audio processing – Multichannel echo cancellation (MEC) – Sound position tracking – Other digital signal processing (noise suppression and reduction)
  • 19. Audio  Kinect as a microphone  Kinect for Speech Recognition
  • 20. Multi-modal Feedback  Engagement model – Mic indicator for speech-enabled menus – Keyword to engage  Feedback and confirmation (both passive and active)
  • 21. Speech Recognition  Kinect Grammar available to download  Grammar – What we are listening for – Code – GrammarBuilder, Choices – Speech Recognition Grammar Specification (SRGS)  C:Program Files (x86)Microsoft Speech Platform SDKSamplesSample Grammars
  • 22. Grammar <!-- Confirmation_YesNo._value: string <!-- Confirmation_Yes._value: string ["Yes"] ["Yes", "No"] --> --> <rule id="Confirmation_YesNo" scope="public"> <rule id="Confirmation_Yes" scope="public"> <example> yes </example> <example> yes </example> <example> no </example> <example> yes please </example> <one-of> <one-of> <item> <item> yes </item> <ruleref uri="#Confirmation_Yes" /> <item> yeah </item> </item> <item> yep </item> <item> <item> ok </item> <ruleref uri="#Confirmation_No" /> </one-of> </item> <item repeat="0-1"> please </item> </one-of> <tag> out = rules.latest() </tag> <tag> out._value = "Yes";</tag> </rule> </rule>
  • 23. Demos
  • 24. Resources  Kinect Programming Walkthroughs – http://research.microsoft.com/kinectsdk/  Coding4Fun Kinect Toolkit – http://c4fkinect.codeplex.com  Kinect SDK Quickstarts – http://channel9.msdn.com/series/KinectSDKQuickstarts