Slide 1

Slide 1 text

Programming with Kinect for Windows @latish

Slide 2

Slide 2 text

Latish Sehgal @latish latish.sehgal@ improvingenterprises.com www.dotnetsurfers.com www.dallas-csharp-sig.com

Slide 3

Slide 3 text

~ 10 years ago

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

June 2009 Project Natal announced

Slide 6

Slide 6 text

June 2009 Project Natal announced Nov 2010 Kinect Launched

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Feb 2012 Windows Hardware, SDK 1.0 Color, Depth & Audio streams Skeletal Tracking Speech Recognition June 2009 Project Natal announced Nov 2010 Kinect Launched

Slide 9

Slide 9 text

Feb 2012 Windows Hardware, SDK 1.0 May 2012 SDK 1.5 Kinect Studio Face Tracking Seated Skeletal Tracking June 2009 Project Natal announced Nov 2010 Kinect Launched

Slide 10

Slide 10 text

Feb 2012 Windows Hardware, SDK 1.0 May 2012 SDK 1.5 Infrared Stream Accelerometer Data Win8, VS2012 support Oct 2012 SDK 1.6 June 2009 Project Natal announced Nov 2010 Kinect Launched

Slide 11

Slide 11 text

Kinect for Windows

Slide 12

Slide 12 text

Kinect Sensors

Slide 13

Slide 13 text

Viewing Angles

Slide 14

Slide 14 text

Installation •Kinect For Windows SDK •Kinect For Windows Developer Toolkit Optional •Coding4Fun Toolkit •Kinect Toolbox http://kinectforwindows.org

Slide 15

Slide 15 text

Demo

Slide 16

Slide 16 text

Video Stream

Slide 17

Slide 17 text

Resolutions 640 x 480 @ 30fps (RGB) 1280 x 960 @ 12fps (RGB) 640 x 480 @ 15fps (YUV)

Slide 18

Slide 18 text

Demo

Slide 19

Slide 19 text

Depth Stream

Slide 20

Slide 20 text

640 x 480 320 x 240 80 x 60 @ 30 fps Resolutions

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

depth depthPoint >> DepthImageFrame.PlayerIndexBitmaskWidth player depthPoint & DepthImageFrame.PlayerIndexBitmask 0001100100000 010 depth =800mm player 2

Slide 23

Slide 23 text

Demo

Slide 24

Slide 24 text

Skeletal Tracking

Slide 25

Slide 25 text

20 Tracked Points

Slide 26

Slide 26 text

2 Actively Tracked, 6 Total

Slide 27

Slide 27 text

Standing vs Seated Tracking

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

•Each joint has associated tracking state

Slide 30

Slide 30 text

•Each joint has associated tracking state •Tracked, Not tracked or Inferred

Slide 31

Slide 31 text

•Each joint has associated tracking state •Tracked, Not tracked or Inferred •Use TransformSmoothParameters to smooth joint data to reduce jitter

Slide 32

Slide 32 text

Demo

Slide 33

Slide 33 text

Audio Stream

Slide 34

Slide 34 text

Sound Source Angle vs Beam Angle

Slide 35

Slide 35 text

Grammar      yes        yes  please                yes            yeah            yep            ok            please        out._value  =  "Yes"; var  grammar  =  new  Choices(); grammar.Add(“yes  please"); grammar.Add(“yes"); grammar.Add(“yeah"); grammar.Add(“ok");  

Slide 36

Slide 36 text

Demo

Slide 37

Slide 37 text

Face Tracking

Slide 38

Slide 38 text

100 tracked points

Slide 39

Slide 39 text

Head Pose Angles

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

•Real-time tracking of multiple faces

Slide 42

Slide 42 text

•Real-time tracking of multiple faces •2D/3D Mesh and Points

Slide 43

Slide 43 text

•Real-time tracking of multiple faces •2D/3D Mesh and Points •Animation Units

Slide 44

Slide 44 text

Demo

Slide 45

Slide 45 text

Gestures & Poses Install-Package KinectToolbox

Slide 46

Slide 46 text

Algorithmic vs Templated

Slide 47

Slide 47 text

Demo

Slide 48

Slide 48 text

Kinect as a Service kinectservice.codeplex.com

Slide 49

Slide 49 text

No content

Slide 50

Slide 50 text

•Available via Nuget

Slide 51

Slide 51 text

•Available via Nuget •Support for Windows 8, WPF and Windows Phone

Slide 52

Slide 52 text

Demo

Slide 53

Slide 53 text

Kinect Studio

Slide 54

Slide 54 text

Demo

Slide 55

Slide 55 text

Usability

Slide 56

Slide 56 text

No content

Slide 57

Slide 57 text

•Review Microsoft’s Human Interface Guidelines

Slide 58

Slide 58 text

•Review Microsoft’s Human Interface Guidelines •Don’t torture your users

Slide 59

Slide 59 text

•Review Microsoft’s Human Interface Guidelines •Don’t torture your users •Best user experiences are context aware

Slide 60

Slide 60 text

•Review Microsoft’s Human Interface Guidelines •Don’t torture your users •Best user experiences are context aware •Complement gestures with speech actions

Slide 61

Slide 61 text

•Review Microsoft’s Human Interface Guidelines •Don’t torture your users •Best user experiences are context aware •Complement gestures with speech actions •Keep a logical relationship between gestures and corresponding actions

Slide 62

Slide 62 text

Watch another Demo, you will

Slide 63

Slide 63 text

Real world Uses

Slide 64

Slide 64 text

Barbie Dream Closet mattel.com

Slide 65

Slide 65 text

Home Automation http://castleos.com/

Slide 66

Slide 66 text

Alex’s Place (Children’s clinic)

Slide 67

Slide 67 text

and many more..

Slide 68

Slide 68 text

Personal Experience

Slide 69

Slide 69 text

Pros

Slide 70

Slide 70 text

•Your non-geek family/friends will think that your work is really cool! Pros

Slide 71

Slide 71 text

•Your non-geek family/friends will think that your work is really cool! •Testing will make you move Pros

Slide 72

Slide 72 text

•Your non-geek family/friends will think that your work is really cool! •Testing will make you move •This changes everything This changes a few things, but in big ways Pros

Slide 73

Slide 73 text

Cons

Slide 74

Slide 74 text

Cons •Upfront hardware investment

Slide 75

Slide 75 text

Cons •Upfront hardware investment •Testing can make you look awkward

Slide 76

Slide 76 text

Cons •Upfront hardware investment •Testing can make you look awkward •Testing will make you move

Slide 77

Slide 77 text

Resources

Slide 78

Slide 78 text

Resources •http://channel9.msdn.com/Series/KinectQuickstart

Slide 79

Slide 79 text

Resources •http://channel9.msdn.com/Series/KinectQuickstart •SDK Samples

Slide 80

Slide 80 text

Resources •http://channel9.msdn.com/Series/KinectQuickstart •SDK Samples •Book “Programming with the Kinect for Windows Software Development Kit” by David Catuhe

Slide 81

Slide 81 text

@latish [email protected] www.dotnetsurfers.com github.com/latish