PyKinect: Body Iteration Application Development Using Python
Upcoming SlideShare
Loading in...5

Like this? Share it with your network


PyKinect: Body Iteration Application Development Using Python

Uploaded on

by 上官林傑 (ericsk)

by 上官林傑 (ericsk)

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. Eric ShangKuan (ericsk)Technical EvangelistMicrosoft Taiwan Corporation
  • 2. Agenda• Kinect for Windows• PyKinect: How-to• References
  • 3. Kinect for Windows (K4W)
  • 4. Kinect for Windows
  • 5. How Kinect Works
  • 6. Skeleton Tracking
  • 7. Detailed SpecResolution 1280 x 960 (RGB Camera)Viewing angle 43° vertical by 57° horizontal field of viewTilt range ±27°Frame rate 30fpsAudio format 16KHz, 24-bit PCMAudio input A four-microphone array with 24-bit analog-to-digital converter (ADC) and Kinect-resident signal processing including acoustic echo cancellation and noise suppression# of tracking users 4# of tracking points 20
  • 8. Different from XBox360 Kinect• Near mode – Enables the camera to see objects as close as 40 centimeters in front of the device without losing accuracy or precision, with graceful degradation out to 3 meters.• Shortening USB cable and small dongle• Support and software updates
  • 9. Kinect Software Development• Windows 7/8 RP• Visual Studio 2010• C++ or C# (w/ .NET 4.0)• Kinect for Windows SDK (1.5)• (optional) DirectX• (optional) Microsoft Speech Platform Runtime• (optional) Kinect for Windows Language Pack
  • 10. K4W HW/SW Interaction
  • 11. K4W SDK Architecture1. Kinect hardware2. Kinect drivers3. Audio and Video Components4. DirectX Media Object (DMO) for microphone array beam-forming and audio source localization.5. Win32 standard APIs
  • 12. PyKinect
  • 13. PyKinect Project• A Python bindings of K4W SDK. – K4W SDK is required.• A part of Python Tools for Visual Studio (PTVS) open source project.• nect
  • 14. Enable PyKinect• CPython 2.7 (32-bit)• Kinect for Windows SDK (1.5 is OK)• 2 ways to install PyKinect – Install PTVS and PTVS – PyKinect Sample , then install PyKinect through PTVS menu. – Install through PyPI:• (optional) PyGame
  • 15. How to use PyKinect?from pykinect import nui# Create a kinect instancekinect = nui.Runtime()# Enable the skeleton enginekinect.skeleton_engine.enabled = True# skeleton frame ready event handlingkinect.skeleton_frame_ready += skeleton_frame_ready# depth frame ready event handlingkinect.depth_frame_ready += depth_frame_ready# video frame ready event handlingkinect.video_frame_ready += video_frame_ready
  • 16. Skeleton Tracking• Each joint (關節) is represented by 3-axis coordination (x, y, z) – RH axis• Use JointId to ensure where the joint is.
  • 17. Get Skeleton Datadef skeleton_frame_ready(skeleton_frame): skeletons = skeleton_frame.SkeletonData # index for users for index, data in enumerate(skeletons): # get head position head_positions = data.SkeletonPositions[JointId.Head] # handle limbs - left arm LEFT_ARM = (JointId.ShoulderCenter, JointId.ShoulderLeft, JointId.ElbowLeft, JointId.WristLeft, JointId.HandLeft) left_arm_positions = [data.SkeletonPositions[x] for x inLEFT_ARM]
  • 18. Demo – Draw Skeletons
  • 19. References• Kinect for Windows SDK Programming Guide & References:• Check-out the PyKinect source: ets