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
 
cs247 slides
cs247 slidescs247 slides
cs247 slides
 
First kinectslides
First kinectslidesFirst kinectslides
First kinectslides
 
第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

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Recently uploaded (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 

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