SlideShare a Scribd company logo
1 of 24
KINECT – THE HOW,
WHEN, AND WHERE OF
DEVELOPING WITH IT


PHILIP WHEAT
MANAGER, CHAOTIC MOON LABS
PHIL@CHAOTICMOON.COM
WHO I AM
Philip Wheat – Currently managing the Labs Division of
Chaotic Moon (http://www.chaoticmoon.com/Labs)
Former Evangelist with Microsoft – Architecture and
Startups.
Active in the Maker Movement – it’s about Bits AND Atoms,
not Bits or Atoms.
My neglected blog can be found at http://PhilWheat.net
I can be found on Twitter as @pwheat
WHY THIS TALK?
There has been a lot of talk about next generation interfaces
– but most interface talk today still seems to be around
HTML5/Native.
User interaction is very focused today on touch interfaces –
but this limits various scenarios and usage models.
We’ll look at the components of interacting with the user
through Kinect today and help you start looking at new
scenarios.
THE PROJECTS
DEVELOPING WITH KINECT




THE HOW
HARDWARE
VERSIONS
Remember, there are two versions of Kinect Hardware –
Kinect 360 and Kinect for Windows.
• Kinect for 360
   • Can be used for SDK development
   • Some Kinect for Windows Functionality not supported
   • Not supported for Microsoft SDK production
• Kinect for Windows
   • Can be used for development and deploymen
   • Full Kinect for Windows Functionality (Near Mode,
     Additional resolutions)
   • Supported for production
HARDWARE
CAPABILITIES
•   Cameras
    • RGB Camera – 320x240, 640x480, 1024x768 (KFW)
    • Depth Camera – 320x240, 640x480
    • Depth Camera – .8M – 4M (standard Mode)
                   – .5M – 3M (near Mode)
• Audio
    • Microphone Array
          •   4 Microphones
          •   Audio directional detection
          •   Audio detection steering
• Tilt
    • Tilt from -27 to 27 degrees from horizontal (accelerometer)
SOFTWARE
CAPABILITIES
• Cameras
   • RGB Frames – event driven and polled
   • Depth Frames – event driven and polled
   • Skeleton Tracking – event driven and polled
   • Seated Skeleton Tracking (Announced for KFW 1.5)
• Audio
   • Voice Recognition in English
   • Voice Recognition – French, Spanish, Italian, Japanese
     (Announced for KFW 1.5)
OTHER HARDWARE
ITEMS
• Kinect needs 12V for operations – this requires a non-
  standard connector. For use with a PC, Kinect requires a
  supplemental power supply which is included for the
  Kinect for Windows hardware but is not included with
  Kinect 360’s that are bundled with Xbox slim models.
• Kinect tilt motor is update limited to prevent overheating.
• Lenses are available to reduce focus range – but produce
  distortion and are not supported.
• Kinect has a fan to prevent overheating – be careful of
  enclosed areas.
• Kinect contains a USB Hub internally – connecting it
  through another USB Hub is not supported and will only
  work with certain Hubs (through practical testing.)
CONNECTING TO
YOUR KINECT
Some Key code –
• KinectSensor.KinectSensors.Count - # of Kinects.
• kinectSensor.Status – Enumerator of
   •   Connected (it’s on and ready)
   •   Device Not Genuine (not a Kinect)
   •   Device Not Supported (Xbox 360 in Production mode)
   •   Disconnected (has been removed after being inited)
   •   Error (duh)
   •   Initializing (can be in this state for seconds)
   •   InsufficientBandwidth (USB Bus controller contention)
   •   Not Powered (5V power is good, 12V power problems)
   •   NotReady (Some component is still initing)
DEVELOPING WITH KINECT




WHEN
VIDEO FRAMES
SIMPLE VIDEO
Kinect can be used to simply get RGB Frames
Enable the stream
kinectSensor.ColorStream.Enable(ColorImageFormat.RgbResolution640x480Fps30);
Start the Kinect -
kinectSensor.Start();
Set up your event handler (if doing events – if not you’ll likely drop frames) -
kinectSensor.ColorFrameReady += new
EventHandler<Microsoft.Kinect.ColorImageFrameReadyEventArgs>(kinect_VideoFrameReady);
Then the handler –
void kinect_VideoFrameReady(object sender,Microsoft.Kinect.ColorImageFrameReadyEventArgs
e)
          {     using (ColorImageFrame image = e.OpenColorImageFrame())
                {    if (image != null)
                     {    if (colorPixelData == null)
                          { colorPixelData = new byte[image.PixelDataLength]; }
                          else
                          {     image.CopyPixelDataTo(colorPixelData);
                        BitmapSource source = BitmapSource.Create(image.Width,
image.Height, 96, 96, PixelFormats.Bgr32, null, colorPixelData, image.Width *
image.BytesPerPixel);
                                videoImage.Source = source;
...
DEPTH FRAMES
DEPTH FRAMES
Additionally you can use Depth frames to give you more information about your environment.
kinectSensor.DepthStream.Enable(DepthImageFormat.Resolution320x240Fps30);
kinectSensor.Start();
kinectSensor.DepthFrameReady += new
EventHandler<Microsoft.Kinect.DepthImageFrameReadyEventArgs>(kinect_DepthImageFrameReady
);


void kinect_DepthImageFrameReady(object sender,
Microsoft.Kinect.DepthImageFrameReadyEventArgs e)
         {
              using (DepthImageFrame imageFrame = e.OpenDepthImageFrame())
              {
                   if (depthPixelData == null)
                   {
                        depthPixelData = new short[imageFrame.PixelDataLength];
                   }
                   if (imageFrame != null)
                   {
                        imageFrame.CopyPixelDataTo(this.depthPixelData);
…
But!
int depth = depthData[x + width * y] >> DepthImageFrame.PlayerIndexBitmaskWidth;
SKELETON TRACKING
SKELETON TRACKING
And one of the most interesting items is skeleton tracking –

(This should start looking familiar)

kinectSensor.SkeletonStream.Enable();

kinectSensor.Start();

kinectSensor.SkeletonFrameReady += new EventHandler<Microsoft.Kinect.SkeletonFrameReadyEventArgs>(kinect_SkeletonFrameReady);



void kinect_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)

          {    using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame())

                {    if (skeletonFrame != null)

                     {    if ((this.skeletonData == null) || (this.skeletonData.Length != skeletonFrame.SkeletonArrayLength))

                          { this.skeletonData = new Skeleton[skeletonFrame.SkeletonArrayLength];   }

                          skeletonFrame.CopySkeletonDataTo(this.skeletonData);

                          Skeleton thisSkeleton = null;

                          foreach (Skeleton skeleton in this.skeletonData)

                          {       if ((SkeletonTrackingState.Tracked == skeleton.TrackingState)

                                        && (thisSkeleton == null))

                                  {    thisSkeleton = skeleton;   }

                          }

                              if (thisSkeleton != null)

                              {

                                      thisSkeleton.Position

                              }
SKELETON TRACKING
(CONT)
Key items for Skeleton Tracking –
SkeletonPoint – X, Y, Z
JointType enumeration – AnkleLeft, AnkleRight, ElbowLeft, ElbowRight,
FootLeft, FootRight, HandLeft, HandRight, Head, HipCenter,
HipLeft,HipRight,KneeLeft,KneeRight, ShoulderCenter, ShoulderLeft,
ShoulderRight,Spine, WristLeft, WristRight
JointTrackingState enumeration – Inferred, NotTracked, Tracked


These together tell you not just where joints are, but how confident the
system is. Even so – remember that these are always estimates – you’ll
need to be prepared to handle jittery data.
SPEECH
RECOGNITION
Building a grammar is very accessible and relatively pain
free.
(A bit more code than the others.)
Key items – it takes up to 4 seconds for the recognizer to be
ready.
Each recognition has a confidence level of 0-1.
Results are text and match text you send to a Grammar
Builder (“yes”, “no”, “launch”)
Multiple word commands are helpful for disambiguation, but
chained commands work much better. The recognition
engine can have nested grammars to help you with this.
DEVELOPING WITH KINECT




WHERE
LOCATION
• Human Interface
   • Kinect skeleton tracking is optimized for full body imaging
     and waist to head height camera position.
   • Kinect 1.5 software update (est May 2012) is scheduled to
     support sitting skeleton tracking.
• Speech Recognition
   • Depth or Skeleton tracking can enable recognition
     vectoring to increase confidence.
   • Confidence level can be misleading if grammar items are
     close together (false matching.)
   • If possible, use multiple word commands for validation.
     Build a command grammar and use it for error/confidence
     checks.
LOCATION (CONT)
• Depth Frames
   • Sunlight/IR can affect results.
   • Items in depth frame have a shadow – be prepared for
     interactions in those areas.
   • Depth Frames are not required to be the same resolution
     as associated Video frames.
• Environment
   • Kinect is surprisingly robust for environment
   • IR washout is the biggest factor
   • Camera angle biggest factor for Skeleton Tracking.
FURTHER
INFORMATION
Kinect for Windows information:
http://www.KinectForWindows.com
Team blog:
http://blogs.msdn.com/b/kinectforwindows
Channel 9
http://channel9.msdn.com/Tags/kinect
And of course, our projects pages
http://ChaoticMoon.com/Labs !
Q&A




OR CONTACT ME AT:
@PWHEAT
PHILWHEAT.NET

More Related Content

Viewers also liked

IdeaCloud Introduction at Startup Weekend Lajeado
IdeaCloud Introduction at Startup Weekend LajeadoIdeaCloud Introduction at Startup Weekend Lajeado
IdeaCloud Introduction at Startup Weekend LajeadoBryan Xu
 
UXSG#2 Keynote Presentation
UXSG#2 Keynote PresentationUXSG#2 Keynote Presentation
UXSG#2 Keynote Presentationux singapore
 
DaVinci-Case_Isvor_Fiat
DaVinci-Case_Isvor_FiatDaVinci-Case_Isvor_Fiat
DaVinci-Case_Isvor_FiatDenise Eler
 
Fact V4.0 Brochure
Fact V4.0 BrochureFact V4.0 Brochure
Fact V4.0 Brochureguillaume123
 
The razorfish5 report 2011
The razorfish5 report 2011The razorfish5 report 2011
The razorfish5 report 2011Luis Miranda
 
Reestruturação do Programa de Curadores Caos Focado
Reestruturação do Programa de Curadores Caos FocadoReestruturação do Programa de Curadores Caos Focado
Reestruturação do Programa de Curadores Caos FocadoJacqueline Yumi Asano
 
How We Do UX Design at iStrategyLabs
How We Do UX Design at iStrategyLabsHow We Do UX Design at iStrategyLabs
How We Do UX Design at iStrategyLabsistrategylabs
 
27 Numbers That Show Why Technology Is Poised To Disrupt The Healthcare Indus...
27 Numbers That Show Why Technology Is Poised To Disrupt The Healthcare Indus...27 Numbers That Show Why Technology Is Poised To Disrupt The Healthcare Indus...
27 Numbers That Show Why Technology Is Poised To Disrupt The Healthcare Indus...Chaotic Moon Studios
 
Empathy as a way to build a success product
Empathy as a way to build a success product Empathy as a way to build a success product
Empathy as a way to build a success product Jacqueline Yumi Asano
 
Mobile Websites: Must-Haves or Has Beens?
Mobile Websites: Must-Haves or Has Beens?Mobile Websites: Must-Haves or Has Beens?
Mobile Websites: Must-Haves or Has Beens?Chaotic Moon Studios
 
Chaotic Moon Studios Intro
Chaotic Moon Studios IntroChaotic Moon Studios Intro
Chaotic Moon Studios Introgbanton
 
Design Thinking
Design ThinkingDesign Thinking
Design Thinkingtalkitbr
 
Momento Design Thinking
Momento Design ThinkingMomento Design Thinking
Momento Design ThinkingCetem
 
Virtual Ethnography: Bridging the Gap between Market Research and Social Media
Virtual Ethnography: Bridging the Gap between Market Research and Social MediaVirtual Ethnography: Bridging the Gap between Market Research and Social Media
Virtual Ethnography: Bridging the Gap between Market Research and Social MediaAlterian
 
Augmented Planning - Valencia 6.14.13
Augmented Planning - Valencia 6.14.13Augmented Planning - Valencia 6.14.13
Augmented Planning - Valencia 6.14.13Luis Miranda
 

Viewers also liked (20)

IdeaCloud Introduction at Startup Weekend Lajeado
IdeaCloud Introduction at Startup Weekend LajeadoIdeaCloud Introduction at Startup Weekend Lajeado
IdeaCloud Introduction at Startup Weekend Lajeado
 
UXSG#2 Keynote Presentation
UXSG#2 Keynote PresentationUXSG#2 Keynote Presentation
UXSG#2 Keynote Presentation
 
DaVinci-Case_Isvor_Fiat
DaVinci-Case_Isvor_FiatDaVinci-Case_Isvor_Fiat
DaVinci-Case_Isvor_Fiat
 
Fact V4.0 Brochure
Fact V4.0 BrochureFact V4.0 Brochure
Fact V4.0 Brochure
 
The razorfish5 report 2011
The razorfish5 report 2011The razorfish5 report 2011
The razorfish5 report 2011
 
Reestruturação do Programa de Curadores Caos Focado
Reestruturação do Programa de Curadores Caos FocadoReestruturação do Programa de Curadores Caos Focado
Reestruturação do Programa de Curadores Caos Focado
 
How We Do UX Design at iStrategyLabs
How We Do UX Design at iStrategyLabsHow We Do UX Design at iStrategyLabs
How We Do UX Design at iStrategyLabs
 
27 Numbers That Show Why Technology Is Poised To Disrupt The Healthcare Indus...
27 Numbers That Show Why Technology Is Poised To Disrupt The Healthcare Indus...27 Numbers That Show Why Technology Is Poised To Disrupt The Healthcare Indus...
27 Numbers That Show Why Technology Is Poised To Disrupt The Healthcare Indus...
 
Empathy as a way to build a success product
Empathy as a way to build a success product Empathy as a way to build a success product
Empathy as a way to build a success product
 
E-Book. 21 Days Humanity Challenge
E-Book. 21 Days Humanity ChallengeE-Book. 21 Days Humanity Challenge
E-Book. 21 Days Humanity Challenge
 
Manual do Participante Lab X
Manual do Participante Lab XManual do Participante Lab X
Manual do Participante Lab X
 
Mobile Websites: Must-Haves or Has Beens?
Mobile Websites: Must-Haves or Has Beens?Mobile Websites: Must-Haves or Has Beens?
Mobile Websites: Must-Haves or Has Beens?
 
Chaotic Moon Studios Intro
Chaotic Moon Studios IntroChaotic Moon Studios Intro
Chaotic Moon Studios Intro
 
WTF Is The Future Of Innovation
WTF Is The Future Of InnovationWTF Is The Future Of Innovation
WTF Is The Future Of Innovation
 
MANG6264 Design Thinking PPT.pptx
MANG6264 Design Thinking PPT.pptxMANG6264 Design Thinking PPT.pptx
MANG6264 Design Thinking PPT.pptx
 
Design Thinking
Design ThinkingDesign Thinking
Design Thinking
 
Momento Design Thinking
Momento Design ThinkingMomento Design Thinking
Momento Design Thinking
 
Virtual Ethnography: Bridging the Gap between Market Research and Social Media
Virtual Ethnography: Bridging the Gap between Market Research and Social MediaVirtual Ethnography: Bridging the Gap between Market Research and Social Media
Virtual Ethnography: Bridging the Gap between Market Research and Social Media
 
Workshop Design Thinking in Action
Workshop Design Thinking in ActionWorkshop Design Thinking in Action
Workshop Design Thinking in Action
 
Augmented Planning - Valencia 6.14.13
Augmented Planning - Valencia 6.14.13Augmented Planning - Valencia 6.14.13
Augmented Planning - Valencia 6.14.13
 

Similar to Lidnug Presentation - Kinect - The How, Were and When of developing with it

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
 
Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2Jeff Sipko
 
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
 
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
 
第38回 名古屋CV・PRML勉強会 「Kinect v2本の紹介とPCLの概要」
第38回 名古屋CV・PRML勉強会 「Kinect v2本の紹介とPCLの概要」第38回 名古屋CV・PRML勉強会 「Kinect v2本の紹介とPCLの概要」
第38回 名古屋CV・PRML勉強会 「Kinect v2本の紹介とPCLの概要」Tsukasa Sugiura
 
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
 
Kinect kunkuk final_
Kinect kunkuk final_Kinect kunkuk final_
Kinect kunkuk final_Yunkyu Choi
 
Visug: Say Hello to my little friend: a session on Kinect
Visug: Say Hello to my little friend: a session on KinectVisug: Say Hello to my little friend: a session on Kinect
Visug: Say Hello to my little friend: a session on KinectVisug
 
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...Sencha
 
The not so short introduction to Kinect
The not so short introduction to KinectThe not so short introduction to Kinect
The not so short introduction to KinectAXM
 
Building Applications with the Microsoft Kinect SDK
Building Applications with the Microsoft Kinect SDKBuilding Applications with the Microsoft Kinect SDK
Building Applications with the Microsoft Kinect SDKDataLeader.io
 
Kinect v1+Processing workshot fabcafe_taipei
Kinect v1+Processing workshot fabcafe_taipeiKinect v1+Processing workshot fabcafe_taipei
Kinect v1+Processing workshot fabcafe_taipeiMao Wu
 
Developing for Leap Motion
Developing for Leap MotionDeveloping for Leap Motion
Developing for Leap MotionIris Classon
 
Kinect for Windows Quickstart Series
Kinect for Windows Quickstart SeriesKinect for Windows Quickstart Series
Kinect for Windows Quickstart SeriesRoberto Reto
 
Kinect seminar 120919
Kinect seminar 120919Kinect seminar 120919
Kinect seminar 120919cs Kang
 

Similar to Lidnug Presentation - Kinect - The How, Were and When of developing with it (20)

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
 
Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2
 
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
 
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
 
First kinectslides
First kinectslidesFirst kinectslides
First kinectslides
 
cs247 slides
cs247 slidescs247 slides
cs247 slides
 
第38回 名古屋CV・PRML勉強会 「Kinect v2本の紹介とPCLの概要」
第38回 名古屋CV・PRML勉強会 「Kinect v2本の紹介とPCLの概要」第38回 名古屋CV・PRML勉強会 「Kinect v2本の紹介とPCLの概要」
第38回 名古屋CV・PRML勉強会 「Kinect v2本の紹介とPCLの概要」
 
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
 
Kinect kunkuk final_
Kinect kunkuk final_Kinect kunkuk final_
Kinect kunkuk final_
 
Visug: Say Hello to my little friend: a session on Kinect
Visug: Say Hello to my little friend: a session on KinectVisug: Say Hello to my little friend: a session on Kinect
Visug: Say Hello to my little friend: a session on Kinect
 
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
 
20220811 - computer vision
20220811 - computer vision20220811 - computer vision
20220811 - computer vision
 
The not so short introduction to Kinect
The not so short introduction to KinectThe not so short introduction to Kinect
The not so short introduction to Kinect
 
Building Applications with the Microsoft Kinect SDK
Building Applications with the Microsoft Kinect SDKBuilding Applications with the Microsoft Kinect SDK
Building Applications with the Microsoft Kinect SDK
 
Kinect v1+Processing workshot fabcafe_taipei
Kinect v1+Processing workshot fabcafe_taipeiKinect v1+Processing workshot fabcafe_taipei
Kinect v1+Processing workshot fabcafe_taipei
 
Developing for Leap Motion
Developing for Leap MotionDeveloping for Leap Motion
Developing for Leap Motion
 
Kinect for Windows Quickstart Series
Kinect for Windows Quickstart SeriesKinect for Windows Quickstart Series
Kinect for Windows Quickstart Series
 
Kinect seminar 120919
Kinect seminar 120919Kinect seminar 120919
Kinect seminar 120919
 
Kinect
KinectKinect
Kinect
 
Kinect
KinectKinect
Kinect
 

More from Philip Wheat

The Drone of Drones
The Drone of DronesThe Drone of Drones
The Drone of DronesPhilip Wheat
 
IoT Houston Cloud and Cluster
IoT Houston Cloud and ClusterIoT Houston Cloud and Cluster
IoT Houston Cloud and ClusterPhilip Wheat
 
Your environment alive
Your environment aliveYour environment alive
Your environment alivePhilip Wheat
 
The boring side of drones
The boring side of dronesThe boring side of drones
The boring side of dronesPhilip Wheat
 
Bits to Atoms - the World of 3d Printers
Bits to Atoms - the World of 3d PrintersBits to Atoms - the World of 3d Printers
Bits to Atoms - the World of 3d PrintersPhilip Wheat
 
A study in innovation
A study in innovationA study in innovation
A study in innovationPhilip Wheat
 
Innovation for business
Innovation for businessInnovation for business
Innovation for businessPhilip Wheat
 
SharePoint Skillsets V2
SharePoint Skillsets V2SharePoint Skillsets V2
SharePoint Skillsets V2Philip Wheat
 
SharePoint for Project Managers
SharePoint for Project ManagersSharePoint for Project Managers
SharePoint for Project ManagersPhilip Wheat
 
Smart Environments
Smart EnvironmentsSmart Environments
Smart EnvironmentsPhilip Wheat
 
Architecting For The Client
Architecting For The ClientArchitecting For The Client
Architecting For The ClientPhilip Wheat
 
Arc Ready Cloud Computing
Arc Ready Cloud ComputingArc Ready Cloud Computing
Arc Ready Cloud ComputingPhilip Wheat
 
Share Point Skillsets
Share Point SkillsetsShare Point Skillsets
Share Point SkillsetsPhilip Wheat
 
Arc Ready Q2 Blended Deck
Arc Ready Q2   Blended DeckArc Ready Q2   Blended Deck
Arc Ready Q2 Blended DeckPhilip Wheat
 

More from Philip Wheat (17)

The Drone of Drones
The Drone of DronesThe Drone of Drones
The Drone of Drones
 
IoT Houston Cloud and Cluster
IoT Houston Cloud and ClusterIoT Houston Cloud and Cluster
IoT Houston Cloud and Cluster
 
Your environment alive
Your environment aliveYour environment alive
Your environment alive
 
The boring side of drones
The boring side of dronesThe boring side of drones
The boring side of drones
 
Robotics and .Net
Robotics and .NetRobotics and .Net
Robotics and .Net
 
Bits to Atoms - the World of 3d Printers
Bits to Atoms - the World of 3d PrintersBits to Atoms - the World of 3d Printers
Bits to Atoms - the World of 3d Printers
 
A study in innovation
A study in innovationA study in innovation
A study in innovation
 
Innovation for business
Innovation for businessInnovation for business
Innovation for business
 
Lean innovation
Lean innovationLean innovation
Lean innovation
 
SharePoint Skillsets V2
SharePoint Skillsets V2SharePoint Skillsets V2
SharePoint Skillsets V2
 
Product camp11
Product camp11Product camp11
Product camp11
 
SharePoint for Project Managers
SharePoint for Project ManagersSharePoint for Project Managers
SharePoint for Project Managers
 
Smart Environments
Smart EnvironmentsSmart Environments
Smart Environments
 
Architecting For The Client
Architecting For The ClientArchitecting For The Client
Architecting For The Client
 
Arc Ready Cloud Computing
Arc Ready Cloud ComputingArc Ready Cloud Computing
Arc Ready Cloud Computing
 
Share Point Skillsets
Share Point SkillsetsShare Point Skillsets
Share Point Skillsets
 
Arc Ready Q2 Blended Deck
Arc Ready Q2   Blended DeckArc Ready Q2   Blended Deck
Arc Ready Q2 Blended Deck
 

Recently uploaded

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

Recently uploaded (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Lidnug Presentation - Kinect - The How, Were and When of developing with it

  • 1. KINECT – THE HOW, WHEN, AND WHERE OF DEVELOPING WITH IT PHILIP WHEAT MANAGER, CHAOTIC MOON LABS PHIL@CHAOTICMOON.COM
  • 2. WHO I AM Philip Wheat – Currently managing the Labs Division of Chaotic Moon (http://www.chaoticmoon.com/Labs) Former Evangelist with Microsoft – Architecture and Startups. Active in the Maker Movement – it’s about Bits AND Atoms, not Bits or Atoms. My neglected blog can be found at http://PhilWheat.net I can be found on Twitter as @pwheat
  • 3. WHY THIS TALK? There has been a lot of talk about next generation interfaces – but most interface talk today still seems to be around HTML5/Native. User interaction is very focused today on touch interfaces – but this limits various scenarios and usage models. We’ll look at the components of interacting with the user through Kinect today and help you start looking at new scenarios.
  • 6. HARDWARE VERSIONS Remember, there are two versions of Kinect Hardware – Kinect 360 and Kinect for Windows. • Kinect for 360 • Can be used for SDK development • Some Kinect for Windows Functionality not supported • Not supported for Microsoft SDK production • Kinect for Windows • Can be used for development and deploymen • Full Kinect for Windows Functionality (Near Mode, Additional resolutions) • Supported for production
  • 7. HARDWARE CAPABILITIES • Cameras • RGB Camera – 320x240, 640x480, 1024x768 (KFW) • Depth Camera – 320x240, 640x480 • Depth Camera – .8M – 4M (standard Mode) – .5M – 3M (near Mode) • Audio • Microphone Array • 4 Microphones • Audio directional detection • Audio detection steering • Tilt • Tilt from -27 to 27 degrees from horizontal (accelerometer)
  • 8. SOFTWARE CAPABILITIES • Cameras • RGB Frames – event driven and polled • Depth Frames – event driven and polled • Skeleton Tracking – event driven and polled • Seated Skeleton Tracking (Announced for KFW 1.5) • Audio • Voice Recognition in English • Voice Recognition – French, Spanish, Italian, Japanese (Announced for KFW 1.5)
  • 9. OTHER HARDWARE ITEMS • Kinect needs 12V for operations – this requires a non- standard connector. For use with a PC, Kinect requires a supplemental power supply which is included for the Kinect for Windows hardware but is not included with Kinect 360’s that are bundled with Xbox slim models. • Kinect tilt motor is update limited to prevent overheating. • Lenses are available to reduce focus range – but produce distortion and are not supported. • Kinect has a fan to prevent overheating – be careful of enclosed areas. • Kinect contains a USB Hub internally – connecting it through another USB Hub is not supported and will only work with certain Hubs (through practical testing.)
  • 10. CONNECTING TO YOUR KINECT Some Key code – • KinectSensor.KinectSensors.Count - # of Kinects. • kinectSensor.Status – Enumerator of • Connected (it’s on and ready) • Device Not Genuine (not a Kinect) • Device Not Supported (Xbox 360 in Production mode) • Disconnected (has been removed after being inited) • Error (duh) • Initializing (can be in this state for seconds) • InsufficientBandwidth (USB Bus controller contention) • Not Powered (5V power is good, 12V power problems) • NotReady (Some component is still initing)
  • 13. SIMPLE VIDEO Kinect can be used to simply get RGB Frames Enable the stream kinectSensor.ColorStream.Enable(ColorImageFormat.RgbResolution640x480Fps30); Start the Kinect - kinectSensor.Start(); Set up your event handler (if doing events – if not you’ll likely drop frames) - kinectSensor.ColorFrameReady += new EventHandler<Microsoft.Kinect.ColorImageFrameReadyEventArgs>(kinect_VideoFrameReady); Then the handler – void kinect_VideoFrameReady(object sender,Microsoft.Kinect.ColorImageFrameReadyEventArgs e) { using (ColorImageFrame image = e.OpenColorImageFrame()) { if (image != null) { if (colorPixelData == null) { colorPixelData = new byte[image.PixelDataLength]; } else { image.CopyPixelDataTo(colorPixelData); BitmapSource source = BitmapSource.Create(image.Width, image.Height, 96, 96, PixelFormats.Bgr32, null, colorPixelData, image.Width * image.BytesPerPixel); videoImage.Source = source; ...
  • 15. DEPTH FRAMES Additionally you can use Depth frames to give you more information about your environment. kinectSensor.DepthStream.Enable(DepthImageFormat.Resolution320x240Fps30); kinectSensor.Start(); kinectSensor.DepthFrameReady += new EventHandler<Microsoft.Kinect.DepthImageFrameReadyEventArgs>(kinect_DepthImageFrameReady ); void kinect_DepthImageFrameReady(object sender, Microsoft.Kinect.DepthImageFrameReadyEventArgs e) { using (DepthImageFrame imageFrame = e.OpenDepthImageFrame()) { if (depthPixelData == null) { depthPixelData = new short[imageFrame.PixelDataLength]; } if (imageFrame != null) { imageFrame.CopyPixelDataTo(this.depthPixelData); … But! int depth = depthData[x + width * y] >> DepthImageFrame.PlayerIndexBitmaskWidth;
  • 17. SKELETON TRACKING And one of the most interesting items is skeleton tracking – (This should start looking familiar) kinectSensor.SkeletonStream.Enable(); kinectSensor.Start(); kinectSensor.SkeletonFrameReady += new EventHandler<Microsoft.Kinect.SkeletonFrameReadyEventArgs>(kinect_SkeletonFrameReady); void kinect_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e) { using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame()) { if (skeletonFrame != null) { if ((this.skeletonData == null) || (this.skeletonData.Length != skeletonFrame.SkeletonArrayLength)) { this.skeletonData = new Skeleton[skeletonFrame.SkeletonArrayLength]; } skeletonFrame.CopySkeletonDataTo(this.skeletonData); Skeleton thisSkeleton = null; foreach (Skeleton skeleton in this.skeletonData) { if ((SkeletonTrackingState.Tracked == skeleton.TrackingState) && (thisSkeleton == null)) { thisSkeleton = skeleton; } } if (thisSkeleton != null) { thisSkeleton.Position }
  • 18. SKELETON TRACKING (CONT) Key items for Skeleton Tracking – SkeletonPoint – X, Y, Z JointType enumeration – AnkleLeft, AnkleRight, ElbowLeft, ElbowRight, FootLeft, FootRight, HandLeft, HandRight, Head, HipCenter, HipLeft,HipRight,KneeLeft,KneeRight, ShoulderCenter, ShoulderLeft, ShoulderRight,Spine, WristLeft, WristRight JointTrackingState enumeration – Inferred, NotTracked, Tracked These together tell you not just where joints are, but how confident the system is. Even so – remember that these are always estimates – you’ll need to be prepared to handle jittery data.
  • 19. SPEECH RECOGNITION Building a grammar is very accessible and relatively pain free. (A bit more code than the others.) Key items – it takes up to 4 seconds for the recognizer to be ready. Each recognition has a confidence level of 0-1. Results are text and match text you send to a Grammar Builder (“yes”, “no”, “launch”) Multiple word commands are helpful for disambiguation, but chained commands work much better. The recognition engine can have nested grammars to help you with this.
  • 21. LOCATION • Human Interface • Kinect skeleton tracking is optimized for full body imaging and waist to head height camera position. • Kinect 1.5 software update (est May 2012) is scheduled to support sitting skeleton tracking. • Speech Recognition • Depth or Skeleton tracking can enable recognition vectoring to increase confidence. • Confidence level can be misleading if grammar items are close together (false matching.) • If possible, use multiple word commands for validation. Build a command grammar and use it for error/confidence checks.
  • 22. LOCATION (CONT) • Depth Frames • Sunlight/IR can affect results. • Items in depth frame have a shadow – be prepared for interactions in those areas. • Depth Frames are not required to be the same resolution as associated Video frames. • Environment • Kinect is surprisingly robust for environment • IR washout is the biggest factor • Camera angle biggest factor for Skeleton Tracking.
  • 23. FURTHER INFORMATION Kinect for Windows information: http://www.KinectForWindows.com Team blog: http://blogs.msdn.com/b/kinectforwindows Channel 9 http://channel9.msdn.com/Tags/kinect And of course, our projects pages http://ChaoticMoon.com/Labs !
  • 24. Q&A OR CONTACT ME AT: @PWHEAT PHILWHEAT.NET