SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
Ing. Matteo Valoriani
               matteo.valoriani@studentpartner.com




KINECT Programming
KINECT SENSORS
                  IR Emitter       Color Sensor
                                                    IR Depth Sensor
                                                                      Tilt Motor



• Depth resolution:
  640x480 px
• RGB resolution:
  1600x1200 px
                               Microphone Array
• 60 FPS
                               KINECT Programming
KINECT SENSORS (2)




http://www.ifixit.com/Teardown/Microsoft-
Kinect-Teardown/4066/1
                                    KINECT Programming
KINECT SENSORS (3)
Color Sensor   IR Depth Sensor          IR Emitter




                   KINECT Programming
RESOLUTIONS
• Color
  • 12 FPS: 1280X960 RGB
  • 15 FPS: Raw YUV 640x480
  • 30 FPS: 640x480


• Depth
  • 30 FPS: 80x60, 320x240, 640x480


                     KINECT Programming
Microsoft Kinect SDK vs PrimeSense OpenNI

•   support for audio                             •   only calculates positions for the joints, not
•   support for motor/tilt                            rotations
•   full body tracking:                           •   no gesture recognition system
      • does not need a calibration pose          •   no support for others devices
      • includes head, hands, feet, clavicles     •   only supports Win7/8 (x86 & x64)
      • seems to deal better with occluded        •   no built in support for record/playback to
          joints                                      disk
•   supports multiple sensors                     •   SDK does not have events for when new
•   single installer                                  user enters frame, leaves frame etc
•   dedicated Runtime for client
•   SDK has events for when a new Video or
    new Depth frame is available
                                        KINECT Programming
Microsoft Kinect SDK vs PrimeSense OpenNI
Pros                                                    Cons
•   includes a framework for hand tracking              •  no support for audio
•   includes a framework for hand gesture recognition   •  no support for motor/tilt (although you can
•   can automatically align the depth image stream to      simultaneously use the CL-NUI motor drivers)
    the color image                                     •  lacks rotations for the head, hands, feet, clavicles
•   also calculates rotations for the joints            •  needs a calibration pose to start tracking (although
•   support for hands only mode                            it can be saved/loaded to/from disk for reuse)
•   also supports the Primesense and the ASUS WAVI      •  occluded joints are not estimated
    Xtion sensors                                       •  supports multiple sensors although setup and
•   supports Windows (including Vista&XP), Linux and       enumeration is a bit quirky
    Mac OSX                                             •  three separate installers and a NITE license string
•   support for record/playback to/from disk               (although the process can be automated with my
•   SDK has events for when new User enters frame,         auto driver installer)
    leaves frame etc                                    •  SDK does not have events for when new Video or
                                                           new Depth frames is available
                                            KINECT Programming
KINECT Programming
GET STARTED
• http://kinectforwindows.org
  • Order Kinect Hardware
  • Download Kinect SDK




                    KINECT Programming
RESOURCES
• Install Kinect Explorer
   • KinectWpfViewers


• Coding4Fun Toolkit
   • Skeletal scaling




                        KINECT Programming
KINECT Programming
KINECT API BASICS
• Manage Kinect state
  • Connected
  • Enable Color, Depth, Skeleton
  • Start Kinect


• Get Data
  • Events – AllFramesReady
  • Polling – OpenNextFrame

                     KINECT Programming
The Kinect Stack
         App




    KINECT Programming
System Data Flow
                                             Skeletal Tracking
   Depth                                         Human               Body Part            Skeleton
                       Segmentation                                                                   App
 Processing                                      Finding            Classification         Model




                                                   Identity                          Not available
                 Facial                Color/Skeleton
              Recognition                                     User Identified             App
                                           Match




                                              Speech Pipeline
Multichannel                 Sound
                                                   Noise                Speech
   Echo                     Position                                                            App
                                                Suppression            Detection
Cancellation                Tracking




                                         KINECT Programming
KINECT Programming
private KinectSensor _Kinect;
public MainWindow() {
        InitializeComponent();
        this.Loaded += (s, e) => { DiscoverKinectSensor(); };
        this.Unloaded += (s, e) => { this.Kinect = null; };

        this.Kinect = KinectSensor.KinectSensors.FirstOrDefault(x =>
                      x.Status == KinectStatus.Connected);

   }

private void DiscoverKinectSensor()     {
        KinectSensor.KinectSensors.StatusChanged +=
                       KinectSensors_StatusChanged;
        this.Kinect = KinectSensor.KinectSensors.FirstOrDefault(x =>
                       x.Status == KinectStatus.Connected);

   }
                             KINECT Programming
private void KinectSensors_StatusChanged(object sender, StatusChangedEventArgs e) {
    switch(e.Status) {
            case KinectStatus.Connected:
                if(this.Kinect == null) {
                    this.Kinect = e.Sensor;
                }
                break;

           case KinectStatus.Disconnected:
               if(this.Kinect == e.Sensor) {
                   this.Kinect = null;
                   this.Kinect = KinectSensor.KinectSensors
                                 .FirstOrDefault(x => x.Status == KinectStatus.Connected);

                   if(this.Kinect == null){
                          //Notify the user that the sensor is disconnected
                     }
               }
               break;
           //Handle all other statuses according to needs
       }
   }


                                      KINECT Programming
public KinectSensor Kinect
    {
        get { return this._Kinect; }
        set {
            if(this._Kinect != value) {
                if(this._Kinect != null) {
                    //Uninitialize
                    this._Kinect = null;
                }

                if(value != null && value.Status == KinectStatus.Connected) {
                    this._Kinect = value;
                    //Initialize
                }
            }
        }
    }
                                 KINECT Programming
KinectStatus VALUES
KinectStatus            What it means
Undefined               The status of the attached device cannot be determined.

Connected               The device is attached and is capable of producing data from its streams.

DeviceNotGenuine        The attached device is not an authentic Kinect sensor.

Disconnected            The USB connection with the device has been broken.

Error                   Communication with the device produces errors.

Error Initializing      The device is attached to the computer, and is going through the process of connecting.

InsufficientBandwidth   Kinect cannot initialize, because the USB connector does not have the necessary
                        bandwidth required to operate the device.
NotPowered              Kinect is not fully powered. The power provided by a USB connection is not sufficient to
                        power the Kinect hardware. An additional power adapter is required.
NotReady                Kinect is attached, but is yet to enter the Connected state.

                                            KINECT Programming
Tilt
private void setAngle(object sender, RoutedEventArgs e){
   if (Kinect != null) {
         Kinect.ElevationAngle = (Int32)slider1.Value;   }    }

<Slider Height="33" HorizontalAlignment="Left"
Margin="0,278,0,0" Name="slider1" VerticalAlignment="Top"
Width="308" SmallChange="1 IsSnapToTickEnabled="True" />

<Button Content="OK" Height="29" HorizontalAlignment="Left"
Margin="396,278,0,0" Name="button1" VerticalAlignment="Top"
Width="102" Click="setAngle" />


                         KINECT Programming

Weitere ähnliche Inhalte

Was ist angesagt?

Kinect v1+Processing workshot fabcafe_taipei
Kinect v1+Processing workshot fabcafe_taipeiKinect v1+Processing workshot fabcafe_taipei
Kinect v1+Processing workshot fabcafe_taipeiMao Wu
 
Kinect v2 Introduction and Tutorial
Kinect v2 Introduction and TutorialKinect v2 Introduction and Tutorial
Kinect v2 Introduction and TutorialTsukasa Sugiura
 
Programming with RealSense using .NET
Programming with RealSense using .NETProgramming with RealSense using .NET
Programming with RealSense using .NETMatteo Valoriani
 
Odessa .NET User Group - Kinect v2
Odessa .NET User Group - Kinect v2Odessa .NET User Group - Kinect v2
Odessa .NET User Group - Kinect v2Dmytro Mindra
 
Kinectic vision looking deep into depth
Kinectic vision   looking deep into depthKinectic vision   looking deep into depth
Kinectic vision looking deep into depthppd1961
 
How Augment your Reality: Different perspective on the Reality / Virtuality C...
How Augment your Reality: Different perspective on the Reality / Virtuality C...How Augment your Reality: Different perspective on the Reality / Virtuality C...
How Augment your Reality: Different perspective on the Reality / Virtuality C...Matteo Valoriani
 
Kinect Sensors as Natural User Interfaces
Kinect Sensors as Natural User InterfacesKinect Sensors as Natural User Interfaces
Kinect Sensors as Natural User InterfacesRumen Filkov
 
Virtualizing Real-life Lectures with vAcademia and Kinect
Virtualizing Real-life Lectures with vAcademia and KinectVirtualizing Real-life Lectures with vAcademia and Kinect
Virtualizing Real-life Lectures with vAcademia and KinectMikhail Fominykh
 
Choosing your Game Engine (2009)
Choosing your Game Engine (2009)Choosing your Game Engine (2009)
Choosing your Game Engine (2009)Mark DeLoura
 
DISTRIBUTED AND SYNCHRONISED VR MEETING USING CLOUD COMPUTING: Availability a...
DISTRIBUTED AND SYNCHRONISED VR MEETING USING CLOUD COMPUTING: Availability a...DISTRIBUTED AND SYNCHRONISED VR MEETING USING CLOUD COMPUTING: Availability a...
DISTRIBUTED AND SYNCHRONISED VR MEETING USING CLOUD COMPUTING: Availability a...Tomohiro Fukuda
 
3 d platformtutorial unity
3 d platformtutorial unity3 d platformtutorial unity
3 d platformtutorial unityunityshare
 
Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...
Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...
Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...Intel® Software
 
Cool NUKE Nodes For VFX Compositing
Cool NUKE Nodes For VFX CompositingCool NUKE Nodes For VFX Compositing
Cool NUKE Nodes For VFX CompositingAnimation Kolkata
 
GOAR: GIS Oriented Mobile Augmented Reality for Urban Landscape Assessment
GOAR: GIS Oriented Mobile Augmented Reality for Urban Landscape AssessmentGOAR: GIS Oriented Mobile Augmented Reality for Urban Landscape Assessment
GOAR: GIS Oriented Mobile Augmented Reality for Urban Landscape AssessmentTomohiro Fukuda
 
SOAR: SENSOR ORIENTED MOBILE AUGMENTED REALITY FOR URBAN LANDSCAPE ASSESSMENT
SOAR: SENSOR ORIENTED MOBILE AUGMENTED REALITY FOR URBAN LANDSCAPE ASSESSMENTSOAR: SENSOR ORIENTED MOBILE AUGMENTED REALITY FOR URBAN LANDSCAPE ASSESSMENT
SOAR: SENSOR ORIENTED MOBILE AUGMENTED REALITY FOR URBAN LANDSCAPE ASSESSMENTTomohiro Fukuda
 
Availability of Mobile Augmented Reality System for Urban Landscape Simulation
Availability of Mobile Augmented Reality System for Urban Landscape SimulationAvailability of Mobile Augmented Reality System for Urban Landscape Simulation
Availability of Mobile Augmented Reality System for Urban Landscape SimulationTomohiro Fukuda
 
Synthetic environment
Synthetic environmentSynthetic environment
Synthetic environmentUllas Gupta
 

Was ist angesagt? (20)

Kinect2 hands on
Kinect2 hands onKinect2 hands on
Kinect2 hands on
 
Kinect v1+Processing workshot fabcafe_taipei
Kinect v1+Processing workshot fabcafe_taipeiKinect v1+Processing workshot fabcafe_taipei
Kinect v1+Processing workshot fabcafe_taipei
 
Kinect v2 Introduction and Tutorial
Kinect v2 Introduction and TutorialKinect v2 Introduction and Tutorial
Kinect v2 Introduction and Tutorial
 
Programming with RealSense using .NET
Programming with RealSense using .NETProgramming with RealSense using .NET
Programming with RealSense using .NET
 
Kinect Tutorial
Kinect Tutorial Kinect Tutorial
Kinect Tutorial
 
Odessa .NET User Group - Kinect v2
Odessa .NET User Group - Kinect v2Odessa .NET User Group - Kinect v2
Odessa .NET User Group - Kinect v2
 
Kinectic vision looking deep into depth
Kinectic vision   looking deep into depthKinectic vision   looking deep into depth
Kinectic vision looking deep into depth
 
How Augment your Reality: Different perspective on the Reality / Virtuality C...
How Augment your Reality: Different perspective on the Reality / Virtuality C...How Augment your Reality: Different perspective on the Reality / Virtuality C...
How Augment your Reality: Different perspective on the Reality / Virtuality C...
 
Kinect Sensors as Natural User Interfaces
Kinect Sensors as Natural User InterfacesKinect Sensors as Natural User Interfaces
Kinect Sensors as Natural User Interfaces
 
virtual_chess
virtual_chessvirtual_chess
virtual_chess
 
Virtualizing Real-life Lectures with vAcademia and Kinect
Virtualizing Real-life Lectures with vAcademia and KinectVirtualizing Real-life Lectures with vAcademia and Kinect
Virtualizing Real-life Lectures with vAcademia and Kinect
 
Choosing your Game Engine (2009)
Choosing your Game Engine (2009)Choosing your Game Engine (2009)
Choosing your Game Engine (2009)
 
DISTRIBUTED AND SYNCHRONISED VR MEETING USING CLOUD COMPUTING: Availability a...
DISTRIBUTED AND SYNCHRONISED VR MEETING USING CLOUD COMPUTING: Availability a...DISTRIBUTED AND SYNCHRONISED VR MEETING USING CLOUD COMPUTING: Availability a...
DISTRIBUTED AND SYNCHRONISED VR MEETING USING CLOUD COMPUTING: Availability a...
 
3 d platformtutorial unity
3 d platformtutorial unity3 d platformtutorial unity
3 d platformtutorial unity
 
Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...
Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...
Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...
 
Cool NUKE Nodes For VFX Compositing
Cool NUKE Nodes For VFX CompositingCool NUKE Nodes For VFX Compositing
Cool NUKE Nodes For VFX Compositing
 
GOAR: GIS Oriented Mobile Augmented Reality for Urban Landscape Assessment
GOAR: GIS Oriented Mobile Augmented Reality for Urban Landscape AssessmentGOAR: GIS Oriented Mobile Augmented Reality for Urban Landscape Assessment
GOAR: GIS Oriented Mobile Augmented Reality for Urban Landscape Assessment
 
SOAR: SENSOR ORIENTED MOBILE AUGMENTED REALITY FOR URBAN LANDSCAPE ASSESSMENT
SOAR: SENSOR ORIENTED MOBILE AUGMENTED REALITY FOR URBAN LANDSCAPE ASSESSMENTSOAR: SENSOR ORIENTED MOBILE AUGMENTED REALITY FOR URBAN LANDSCAPE ASSESSMENT
SOAR: SENSOR ORIENTED MOBILE AUGMENTED REALITY FOR URBAN LANDSCAPE ASSESSMENT
 
Availability of Mobile Augmented Reality System for Urban Landscape Simulation
Availability of Mobile Augmented Reality System for Urban Landscape SimulationAvailability of Mobile Augmented Reality System for Urban Landscape Simulation
Availability of Mobile Augmented Reality System for Urban Landscape Simulation
 
Synthetic environment
Synthetic environmentSynthetic environment
Synthetic environment
 

Andere mochten auch

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
 
My project work-Digital score board for shooting
My project work-Digital score board for shootingMy project work-Digital score board for shooting
My project work-Digital score board for shootingpradu333
 
Using color sensor for user interaction
Using color sensor for user interaction Using color sensor for user interaction
Using color sensor for user interaction Alex Tien
 
Manual controlador lógico zelio
Manual controlador lógico zelioManual controlador lógico zelio
Manual controlador lógico zelioGiovanna Blanco
 
Detection and tracking of red color by using matlab
Detection and tracking of red color by using matlabDetection and tracking of red color by using matlab
Detection and tracking of red color by using matlabAbhiraj Bohra
 
Instruksi timer dan counter plc omron
Instruksi timer dan counter plc omronInstruksi timer dan counter plc omron
Instruksi timer dan counter plc omronAdi Hartanto
 
Cara kerja rangkaian up counter dan down counter
Cara kerja rangkaian up counter dan down counterCara kerja rangkaian up counter dan down counter
Cara kerja rangkaian up counter dan down counterPT.goLom na
 
Omron and InduSoft Web Studio Vision Systems
Omron and InduSoft Web Studio Vision SystemsOmron and InduSoft Web Studio Vision Systems
Omron and InduSoft Web Studio Vision SystemsAVEVA
 
Nui e biometrics in windows 10
Nui e biometrics in windows 10Nui e biometrics in windows 10
Nui e biometrics in windows 10Marco D'Alessandro
 
Menggunakan cx programmer
Menggunakan  cx programmerMenggunakan  cx programmer
Menggunakan cx programmerBonanza Pratama
 
RGB colour detection and tracking on MATLAB
RGB colour detection and tracking on MATLABRGB colour detection and tracking on MATLAB
RGB colour detection and tracking on MATLABNirma University
 

Andere mochten auch (20)

Kinect
KinectKinect
Kinect
 
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
 
Intel real sense handson
Intel real sense handsonIntel real sense handson
Intel real sense handson
 
Color sensor
Color sensorColor sensor
Color sensor
 
My project work-Digital score board for shooting
My project work-Digital score board for shootingMy project work-Digital score board for shooting
My project work-Digital score board for shooting
 
Using color sensor for user interaction
Using color sensor for user interaction Using color sensor for user interaction
Using color sensor for user interaction
 
Manual controlador lógico zelio
Manual controlador lógico zelioManual controlador lógico zelio
Manual controlador lógico zelio
 
Detection and tracking of red color by using matlab
Detection and tracking of red color by using matlabDetection and tracking of red color by using matlab
Detection and tracking of red color by using matlab
 
Instruksi timer dan counter plc omron
Instruksi timer dan counter plc omronInstruksi timer dan counter plc omron
Instruksi timer dan counter plc omron
 
Cara kerja rangkaian up counter dan down counter
Cara kerja rangkaian up counter dan down counterCara kerja rangkaian up counter dan down counter
Cara kerja rangkaian up counter dan down counter
 
Colour sensor vivek
Colour sensor   vivekColour sensor   vivek
Colour sensor vivek
 
Color detection
Color detectionColor detection
Color detection
 
Omron and InduSoft Web Studio Vision Systems
Omron and InduSoft Web Studio Vision SystemsOmron and InduSoft Web Studio Vision Systems
Omron and InduSoft Web Studio Vision Systems
 
Timer dan counter
Timer dan counterTimer dan counter
Timer dan counter
 
Nui e biometrics in windows 10
Nui e biometrics in windows 10Nui e biometrics in windows 10
Nui e biometrics in windows 10
 
Line follower robot
Line follower robotLine follower robot
Line follower robot
 
Menggunakan cx programmer
Menggunakan  cx programmerMenggunakan  cx programmer
Menggunakan cx programmer
 
Ladder diagram
Ladder diagramLadder diagram
Ladder diagram
 
RGB colour detection and tracking on MATLAB
RGB colour detection and tracking on MATLABRGB colour detection and tracking on MATLAB
RGB colour detection and tracking on MATLAB
 
Simens plc training. simatic working-with-step-7
Simens  plc  training. simatic working-with-step-7Simens  plc  training. simatic working-with-step-7
Simens plc training. simatic working-with-step-7
 

Ähnlich wie Kinect Programming Guide for Beginners

Lidnug Presentation - Kinect - The How, Were and When of developing with it
Lidnug Presentation - Kinect - The How, Were and When of developing with itLidnug Presentation - Kinect - The How, Were and When of developing with it
Lidnug Presentation - Kinect - The How, Were and When of developing with itPhilip Wheat
 
Kinect kunkuk final_
Kinect kunkuk final_Kinect kunkuk final_
Kinect kunkuk final_Yunkyu Choi
 
Kinect seminar 120919
Kinect seminar 120919Kinect seminar 120919
Kinect seminar 120919cs Kang
 
Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2Jeff Sipko
 
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
 
Developing For Kinect For Windows
Developing For Kinect For WindowsDeveloping For Kinect For Windows
Developing For Kinect For WindowsPrashant Tiwari
 
Kinect for Windows Quickstart Series
Kinect for Windows Quickstart SeriesKinect for Windows Quickstart Series
Kinect for Windows Quickstart SeriesRoberto Reto
 
Community Day 2013 - The Power of Kinect
Community Day 2013 - The Power of KinectCommunity Day 2013 - The Power of Kinect
Community Day 2013 - The Power of KinectTom Kerkhove
 
Kinect Arabic Interfaced Drawing Application
Kinect Arabic Interfaced Drawing ApplicationKinect Arabic Interfaced Drawing Application
Kinect Arabic Interfaced Drawing ApplicationYasser Hisham
 
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
 
Writing applications using the Microsoft Kinect Sensor
Writing applications using the Microsoft Kinect SensorWriting applications using the Microsoft Kinect Sensor
Writing applications using the Microsoft Kinect Sensorphildenoncourt
 
Gam02 kinect1, kinect2
Gam02   kinect1, kinect2Gam02   kinect1, kinect2
Gam02 kinect1, kinect2DotNetCampus
 
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
 
NUX Presentation from TechMixer Birmingham 2011
NUX Presentation from TechMixer Birmingham 2011NUX Presentation from TechMixer Birmingham 2011
NUX Presentation from TechMixer Birmingham 2011Michael Heydt
 

Ähnlich wie Kinect Programming Guide for Beginners (20)

Lidnug Presentation - Kinect - The How, Were and When of developing with it
Lidnug Presentation - Kinect - The How, Were and When of developing with itLidnug Presentation - Kinect - The How, Were and When of developing with it
Lidnug Presentation - Kinect - The How, Were and When of developing with it
 
Kinect kunkuk final_
Kinect kunkuk final_Kinect kunkuk final_
Kinect kunkuk final_
 
Kinect seminar 120919
Kinect seminar 120919Kinect seminar 120919
Kinect seminar 120919
 
Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2
 
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
 
Developing For Kinect For Windows
Developing For Kinect For WindowsDeveloping For Kinect For Windows
Developing For Kinect For Windows
 
Kinect for Windows Quickstart Series
Kinect for Windows Quickstart SeriesKinect for Windows Quickstart Series
Kinect for Windows Quickstart Series
 
Community Day 2013 - The Power of Kinect
Community Day 2013 - The Power of KinectCommunity Day 2013 - The Power of Kinect
Community Day 2013 - The Power of Kinect
 
Kinect Arabic Interfaced Drawing Application
Kinect Arabic Interfaced Drawing ApplicationKinect Arabic Interfaced Drawing Application
Kinect Arabic Interfaced Drawing Application
 
Vuzix i wear vr920
Vuzix i wear vr920Vuzix i wear vr920
Vuzix i wear vr920
 
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 connect
Kinect connectKinect connect
Kinect connect
 
Kinect
KinectKinect
Kinect
 
Kinect
KinectKinect
Kinect
 
Writing applications using the Microsoft Kinect Sensor
Writing applications using the Microsoft Kinect SensorWriting applications using the Microsoft Kinect Sensor
Writing applications using the Microsoft Kinect Sensor
 
Gam02 kinect1, kinect2
Gam02   kinect1, kinect2Gam02   kinect1, kinect2
Gam02 kinect1, kinect2
 
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
 
Kinect
KinectKinect
Kinect
 
Kinect
KinectKinect
Kinect
 
NUX Presentation from TechMixer Birmingham 2011
NUX Presentation from TechMixer Birmingham 2011NUX Presentation from TechMixer Birmingham 2011
NUX Presentation from TechMixer Birmingham 2011
 

Mehr von Matteo Valoriani

Immerge yourself in a new Reality
Immerge yourself in a new RealityImmerge yourself in a new Reality
Immerge yourself in a new RealityMatteo Valoriani
 
Debug, Analyze and Optimize Games with Intel Tools
Debug, Analyze and Optimize Games with Intel Tools Debug, Analyze and Optimize Games with Intel Tools
Debug, Analyze and Optimize Games with Intel Tools Matteo Valoriani
 
More Personal Computing: Windows 10, Kinect and Wearables
More Personal Computing: Windows 10, Kinect and WearablesMore Personal Computing: Windows 10, Kinect and Wearables
More Personal Computing: Windows 10, Kinect and WearablesMatteo Valoriani
 
Introduction to development
Introduction to developmentIntroduction to development
Introduction to developmentMatteo Valoriani
 
Etna dev 2016 - Deep Dive Holographic Applications
Etna dev 2016 - Deep Dive Holographic ApplicationsEtna dev 2016 - Deep Dive Holographic Applications
Etna dev 2016 - Deep Dive Holographic ApplicationsMatteo Valoriani
 
Etna dev 2016 - Introduction to Holographic Development
Etna dev 2016 - Introduction to Holographic DevelopmentEtna dev 2016 - Introduction to Holographic Development
Etna dev 2016 - Introduction to Holographic DevelopmentMatteo Valoriani
 
Etna dev 2016 - Introduction to Mixed Reality with HoloLens
Etna dev 2016 - Introduction to Mixed Reality with HoloLensEtna dev 2016 - Introduction to Mixed Reality with HoloLens
Etna dev 2016 - Introduction to Mixed Reality with HoloLensMatteo Valoriani
 
Mixed Reality from demo to product
Mixed Reality from demo to productMixed Reality from demo to product
Mixed Reality from demo to productMatteo Valoriani
 
Intel RealSense Hands-on Lab - Rome
Intel RealSense Hands-on Lab - RomeIntel RealSense Hands-on Lab - Rome
Intel RealSense Hands-on Lab - RomeMatteo Valoriani
 
Tecnologie e Startup: ICT è solo una commodity?
Tecnologie e Startup: ICT è solo una commodity? Tecnologie e Startup: ICT è solo una commodity?
Tecnologie e Startup: ICT è solo una commodity? Matteo Valoriani
 
Corso pratico di C# - 2013
Corso pratico di C# - 2013Corso pratico di C# - 2013
Corso pratico di C# - 2013Matteo Valoriani
 
Introduction to Kinect - Update v 1.8
Introduction to Kinect - Update v 1.8Introduction to Kinect - Update v 1.8
Introduction to Kinect - Update v 1.8Matteo Valoriani
 
Smart and beyond - Perchè
Smart and beyond - PerchèSmart and beyond - Perchè
Smart and beyond - PerchèMatteo Valoriani
 
Uxconf2012 - Interactive technologies for children: new frontiers
Uxconf2012 - Interactive technologies for children: new frontiersUxconf2012 - Interactive technologies for children: new frontiers
Uxconf2012 - Interactive technologies for children: new frontiersMatteo Valoriani
 
6 track kinect@Bicocca - iniziative
6   track kinect@Bicocca - iniziative6   track kinect@Bicocca - iniziative
6 track kinect@Bicocca - iniziativeMatteo Valoriani
 

Mehr von Matteo Valoriani (20)

Immerge yourself in a new Reality
Immerge yourself in a new RealityImmerge yourself in a new Reality
Immerge yourself in a new Reality
 
Hour ofcode
Hour ofcodeHour ofcode
Hour ofcode
 
Debug, Analyze and Optimize Games with Intel Tools
Debug, Analyze and Optimize Games with Intel Tools Debug, Analyze and Optimize Games with Intel Tools
Debug, Analyze and Optimize Games with Intel Tools
 
More Personal Computing: Windows 10, Kinect and Wearables
More Personal Computing: Windows 10, Kinect and WearablesMore Personal Computing: Windows 10, Kinect and Wearables
More Personal Computing: Windows 10, Kinect and Wearables
 
Introduction to development
Introduction to developmentIntroduction to development
Introduction to development
 
Etna dev 2016 - Deep Dive Holographic Applications
Etna dev 2016 - Deep Dive Holographic ApplicationsEtna dev 2016 - Deep Dive Holographic Applications
Etna dev 2016 - Deep Dive Holographic Applications
 
Etna dev 2016 - Introduction to Holographic Development
Etna dev 2016 - Introduction to Holographic DevelopmentEtna dev 2016 - Introduction to Holographic Development
Etna dev 2016 - Introduction to Holographic Development
 
Etna dev 2016 - Introduction to Mixed Reality with HoloLens
Etna dev 2016 - Introduction to Mixed Reality with HoloLensEtna dev 2016 - Introduction to Mixed Reality with HoloLens
Etna dev 2016 - Introduction to Mixed Reality with HoloLens
 
Mixed Reality from demo to product
Mixed Reality from demo to productMixed Reality from demo to product
Mixed Reality from demo to product
 
Intel RealSense Hands-on Lab - Rome
Intel RealSense Hands-on Lab - RomeIntel RealSense Hands-on Lab - Rome
Intel RealSense Hands-on Lab - Rome
 
Face recognition
Face recognitionFace recognition
Face recognition
 
Communitydays2015
Communitydays2015Communitydays2015
Communitydays2015
 
Tecnologie e Startup: ICT è solo una commodity?
Tecnologie e Startup: ICT è solo una commodity? Tecnologie e Startup: ICT è solo una commodity?
Tecnologie e Startup: ICT è solo una commodity?
 
Communityday2013
Communityday2013Communityday2013
Communityday2013
 
Communitydays2014
Communitydays2014Communitydays2014
Communitydays2014
 
Corso pratico di C# - 2013
Corso pratico di C# - 2013Corso pratico di C# - 2013
Corso pratico di C# - 2013
 
Introduction to Kinect - Update v 1.8
Introduction to Kinect - Update v 1.8Introduction to Kinect - Update v 1.8
Introduction to Kinect - Update v 1.8
 
Smart and beyond - Perchè
Smart and beyond - PerchèSmart and beyond - Perchè
Smart and beyond - Perchè
 
Uxconf2012 - Interactive technologies for children: new frontiers
Uxconf2012 - Interactive technologies for children: new frontiersUxconf2012 - Interactive technologies for children: new frontiers
Uxconf2012 - Interactive technologies for children: new frontiers
 
6 track kinect@Bicocca - iniziative
6   track kinect@Bicocca - iniziative6   track kinect@Bicocca - iniziative
6 track kinect@Bicocca - iniziative
 

Kürzlich hochgeladen

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
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
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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 Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
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
 
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
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 

Kürzlich hochgeladen (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
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
 
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...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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 Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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
 
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
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 

Kinect Programming Guide for Beginners

  • 1. Ing. Matteo Valoriani matteo.valoriani@studentpartner.com KINECT Programming
  • 2. KINECT SENSORS IR Emitter Color Sensor IR Depth Sensor Tilt Motor • Depth resolution: 640x480 px • RGB resolution: 1600x1200 px Microphone Array • 60 FPS KINECT Programming
  • 4. KINECT SENSORS (3) Color Sensor IR Depth Sensor IR Emitter KINECT Programming
  • 5. RESOLUTIONS • Color • 12 FPS: 1280X960 RGB • 15 FPS: Raw YUV 640x480 • 30 FPS: 640x480 • Depth • 30 FPS: 80x60, 320x240, 640x480 KINECT Programming
  • 6. Microsoft Kinect SDK vs PrimeSense OpenNI • support for audio • only calculates positions for the joints, not • support for motor/tilt rotations • full body tracking: • no gesture recognition system • does not need a calibration pose • no support for others devices • includes head, hands, feet, clavicles • only supports Win7/8 (x86 & x64) • seems to deal better with occluded • no built in support for record/playback to joints disk • supports multiple sensors • SDK does not have events for when new • single installer user enters frame, leaves frame etc • dedicated Runtime for client • SDK has events for when a new Video or new Depth frame is available KINECT Programming
  • 7. Microsoft Kinect SDK vs PrimeSense OpenNI Pros Cons • includes a framework for hand tracking • no support for audio • includes a framework for hand gesture recognition • no support for motor/tilt (although you can • can automatically align the depth image stream to simultaneously use the CL-NUI motor drivers) the color image • lacks rotations for the head, hands, feet, clavicles • also calculates rotations for the joints • needs a calibration pose to start tracking (although • support for hands only mode it can be saved/loaded to/from disk for reuse) • also supports the Primesense and the ASUS WAVI • occluded joints are not estimated Xtion sensors • supports multiple sensors although setup and • supports Windows (including Vista&XP), Linux and enumeration is a bit quirky Mac OSX • three separate installers and a NITE license string • support for record/playback to/from disk (although the process can be automated with my • SDK has events for when new User enters frame, auto driver installer) leaves frame etc • SDK does not have events for when new Video or new Depth frames is available KINECT Programming
  • 9. GET STARTED • http://kinectforwindows.org • Order Kinect Hardware • Download Kinect SDK KINECT Programming
  • 10. RESOURCES • Install Kinect Explorer • KinectWpfViewers • Coding4Fun Toolkit • Skeletal scaling KINECT Programming
  • 12. KINECT API BASICS • Manage Kinect state • Connected • Enable Color, Depth, Skeleton • Start Kinect • Get Data • Events – AllFramesReady • Polling – OpenNextFrame KINECT Programming
  • 13. The Kinect Stack App KINECT Programming
  • 14. System Data Flow Skeletal Tracking Depth Human Body Part Skeleton Segmentation App Processing Finding Classification Model Identity Not available Facial Color/Skeleton Recognition User Identified App Match Speech Pipeline Multichannel Sound Noise Speech Echo Position App Suppression Detection Cancellation Tracking KINECT Programming
  • 16. private KinectSensor _Kinect; public MainWindow() { InitializeComponent(); this.Loaded += (s, e) => { DiscoverKinectSensor(); }; this.Unloaded += (s, e) => { this.Kinect = null; }; this.Kinect = KinectSensor.KinectSensors.FirstOrDefault(x => x.Status == KinectStatus.Connected); } private void DiscoverKinectSensor() { KinectSensor.KinectSensors.StatusChanged += KinectSensors_StatusChanged; this.Kinect = KinectSensor.KinectSensors.FirstOrDefault(x => x.Status == KinectStatus.Connected); } KINECT Programming
  • 17. private void KinectSensors_StatusChanged(object sender, StatusChangedEventArgs e) { switch(e.Status) { case KinectStatus.Connected: if(this.Kinect == null) { this.Kinect = e.Sensor; } break; case KinectStatus.Disconnected: if(this.Kinect == e.Sensor) { this.Kinect = null; this.Kinect = KinectSensor.KinectSensors .FirstOrDefault(x => x.Status == KinectStatus.Connected); if(this.Kinect == null){ //Notify the user that the sensor is disconnected } } break; //Handle all other statuses according to needs } } KINECT Programming
  • 18. public KinectSensor Kinect { get { return this._Kinect; } set { if(this._Kinect != value) { if(this._Kinect != null) { //Uninitialize this._Kinect = null; } if(value != null && value.Status == KinectStatus.Connected) { this._Kinect = value; //Initialize } } } } KINECT Programming
  • 19. KinectStatus VALUES KinectStatus What it means Undefined The status of the attached device cannot be determined. Connected The device is attached and is capable of producing data from its streams. DeviceNotGenuine The attached device is not an authentic Kinect sensor. Disconnected The USB connection with the device has been broken. Error Communication with the device produces errors. Error Initializing The device is attached to the computer, and is going through the process of connecting. InsufficientBandwidth Kinect cannot initialize, because the USB connector does not have the necessary bandwidth required to operate the device. NotPowered Kinect is not fully powered. The power provided by a USB connection is not sufficient to power the Kinect hardware. An additional power adapter is required. NotReady Kinect is attached, but is yet to enter the Connected state. KINECT Programming
  • 20. Tilt private void setAngle(object sender, RoutedEventArgs e){ if (Kinect != null) { Kinect.ElevationAngle = (Int32)slider1.Value; } } <Slider Height="33" HorizontalAlignment="Left" Margin="0,278,0,0" Name="slider1" VerticalAlignment="Top" Width="308" SmallChange="1 IsSnapToTickEnabled="True" /> <Button Content="OK" Height="29" HorizontalAlignment="Left" Margin="396,278,0,0" Name="button1" VerticalAlignment="Top" Width="102" Click="setAngle" /> KINECT Programming