SlideShare a Scribd company logo
Matteo Valoriani
Nice to Meet You
Matteo Valoriani
PhD at Politecnico of Milano
CEO of Fifth Element
Speaker and Consultant
Microsoft MVP for Kinect
Intel Software Innovator: RealSense
email: mvaloriani@gmail.com
twitter: @MatteoValoriani
linkedin: https://it.linkedin.com/in/matteovaloriani
2
Usage Scenarios
TRAININGRETAIL HEALTHCARETHERAPY EDUCATION
You have to be a
magician…
… or at least a
good illusionist
“Any sufficiently
advanced
technology is
indistinguishable
from magic”
(Arthur C. Clarke)
Sensor Anatomy
Kinect 2 - Specs
3D DEPTH SENSOR
RGB CAMERA
MULTI-ARRAY MIC
Hardware:
Depth resolution:
512×424
RGB resolution:
1920×1080 (16:9)
FrameRate:
60 FPS
Latency:
60 ms
Kinect Adapter
Kinect 2 vs Kinect 1
Version 1 Version 2
Depth range 0.4m → 4.0m 0.4m → 4.5m
Color stream 640×480 1920×1080
Depth stream 320×240 512×424
Infrared stream None 512×424
Type of Light Light coding ToF
Audio stream 4-mic array 16 kHz 4-mic array 48 kHz
USB 2.0 3.0
# Bodies Traked 2 (+4) 6
# Joints 20 25
Hand Traking External tools Yes
Face Traking Yes Yes+Expressions
FOV 57° H 43° V 70° H 60° V
Tilt Motorized Manual
System / Software Requirements
OS Windows 8, 8.1, Embedded 8, Embedded 8.1 (x64)
CPU Intel Core i7 3.1GHz (or higher)
RAM 4GB (or more)
GPU DirectX 11 supported
USB USB 3.0
Compiler Visual Studio 2012, 2013 (Supported Express)
Language Native (C++), Managed (C#,VB.NET), WinRT (C#,HTML)
Other Unity Pro (Add-in), Cinder, openFrameworks (wrapper)
DEMO
Kinect Evolution
Accessing Kinect Data Sources
High-level architecture
Basic Flow of Programming
Sensor Stream Frame Data
Sensor Source Reader Frame Data
Kinect for Windows SDK v1
Kinect for Windows SDK v2
 Source independent to each Data
(e.g. ColorSource, DepthSource, InfraredSource, BodyIndexSource, BodySource, …)
 Doesn’t depend on each other Source
(e.g. Doesn't need to Depth Source when retrieve Body Data)
• In “New Project” create a new Windows Store app
• Enable Microphone and Webcam capabilities
• Add a reference to Microsoft.Kinect
• Use the Microsoft.Kinect namespace in your code
Creating a new store app using Kinect
Represents a single physical sensor
Always valid: when device is disconnected no more frame are
generated.
Use IsAviable Property to verify if the device is connected
The KinectSensor class
this KinectSensor
this
// Make the world a better place with Kinect
this
Sources
Give access to frames
– Events
– Polling
Multiple readers may be
created on a single source
Readers can be paused
Readers
InfraredFrameReader reader =
sensor.InfraredFrameSource.OpenReader();
reader.FrameArrived +=
InfraredReaderFrameArrived;
...
Frame references
void InfraredFrameReader
InfraredFrameArrivedEventArgs
using (InfraredFrame frame =
args.FrameReference.AcquireFrame())
{
if (frame != null)
{
// Get what you need from the frame
}
}
}
Sent in frame event args
AcquireFrame gives access to the actual frame
• Gives access to the frame data
– Make a local copy or access the underlying buffer directly
• Contains metadata for the frame
– e.g. Color: format, width, height, etc.
• Important: Minimize how long you hold onto the frame
– Not Disposing frames will cause you to not receive more frames
Frames
• Allows the app to get a matched set of frames from multiple
sources on a single event
• Delivers frames at the lowest FPS of the selected sources
MultiSourceFrameReader
MultiSourceFrameReader MultiReader =
Sensor.OpenMultiSourceFrameReader(FrameSourceTypes.Color |
FrameSourceTypes.BodyIndex |
FrameSourceTypes.Body);
var frame = args.FrameReference.AcquireFrame();
if (frame != null) {
using (colorFrame = frame.ColorFrameReference.AcquireFrame())
using (bodyFrame = frame.BodyFrameReference.AcquireFrame())
using (bodyIndexFrame = frame.BodyIndexFrameReference.AcquireFrame()){
//
}
}
System
Kinect
Driver
Kinect SDK
Application
Kinect
Driver
Kinect SDK
Application
Kinect
Service
Kinect SDK
Application
Kinect SDK
Application
Kinect for Windows v1 Kinect for Windows v2
Connection
Kinect for Windows v1 Kinect for Windows v2
PCPC
Example Multiple Connection
PCPC PC
Hub
Server
DEMO
Display frame in a Windows Store App
Data Source Details
Physical image sensors, ColorFrameSource,
InfraredFrameSource, DepthFrameSource,
BodyIndexFrameSource, BodyFrameSource, AudioFrameSource
Kinect Data Sources
• 30 or 15 fps, based on lighting
conditions
ColorFrameSource
InfraredFrameSource
– 16-bit distance in millimeters from the
sensor’s focal plane
DepthFrameSource
– 0 to 5: Index of the corresponding body,
as tracked by the body source
– > 5: No tracked body at that pixel
BodyIndexFrameSource
255
0 1
• Range is 0.5-4.5 meters
• Frame data is a collection of Body objects each
with 25 joints
– Each joint has position in 3D space and an
orientation
• Up to six simultaneous bodies
• 30fps
• Hand State on 2 bodies
• Lean
BodyFrameSource
Skeleton vs Body
Coordinate System
 ColorSpace (Coordinate System of the Color
Image)
– … Color
 DepthSpace (Coordinate System of the
Depth Data)
– … Depth, Infrared, BodyIndex
 CameraSpace (Coordinate System with the
origin located the Depth Sensor)
– … Body (Joint)
• Three coordinate systems
• Coordinate mapper provides conversions between each system
• Convert single or multiple points
Coordinate mapping
Name Applies to Dimensions Units Range Origin
ColorSpacePoint Color 2 pixels 1920x1080 Top left corner
DepthSpacePoint Depth,
Infrared,
Body index
2 pixels 512x424 Top left corner
CameraSpacePoint Body 3 meters – Infrared/depth
camera
DEMO
Handle body frames and coordinate mapping
Kinect Studio
Recording and Playback
Recordable Data Sources
Infrared
13 MB/s
Depth
13 MB/s
BodyFrame
BodyIndex
Color
120 MB/s
Audio
32 KB/s
Legend
Record/Play
Record Only
DEMO
Kinect Studio 2.0
Recording | Playback
Gesture Recognition
Heuristic + Machine Learning Approaches
DEMO
Programmatic detection of a gesture/pose
Gesture Builder
• New tool, shipping with v2 SDK
• Organize data using projects and solutions
• Give meaning to data by tagging gestures
• Build gestures using machine learning technology
– Adaptive Boosting (AdaBoost) Trigger
• Determines if player is performing gesture
– Random Forest Regression (RFR) Progress
• Determines the progress of the gesture performed by player
• Analyze / test the results of gesture detection
• Live preview of results
Visual Gesture Builder
Your Application
DEMO
Machine Learning Demo
Heuristic
• Gesture is a coding problem
• Quick to do simple
gestures/poses (hand over head)
• ML can also be useful to find
good signals for Heuristic
approach
Machine Learning (ML) with G.B.
• Gesture is a data problem
• Signals which may not be easily
human understandable (progress
in a baseball swing)
• Large investment for production
• Danger of over-fitting, causes you
to be too specific – eliminating
recognition of generic cases
Gesture Recognition
Hand Pointer Gestures
Hand pointer gestures
Engagement Targeting
Press
Panning/Zoom
DEMO
Controls Basics – XAML
UserViewer | Engagement | Targeting | Press
Demo
Building ControlsBasics-XAML from Scratch
• File New Project > Grid App
• Add Reference to Microsoft.Kinect.Xaml.Controls
• Enable Microphone + Camera capabilities for app
• Add KinectRegion as container for rootFrame in
App.xaml.cs
• Run it!
Window
Frame
Page
Window
Frame
Page
Grid
KinectRegion
Kinect
UserViewer
Adding Hand Cursor Support
System Engagement Manual Engagement
• Hands over head
• In certain location of room
• Etc…
“Engagement” for hand cursor
KinectRegion.SetOnePersonSystemEngagement()
KinectRegion.SetTwoPersonSystemEngagement()
KinectRegion.SetOnePersonManualEngagement(…)
KinectRegion.SetTwoPersonManualEngagement(…)
DEMO
PHiZ (Physical Interaction Zone) & KinectPointerPoint
PHIZ – Physical Interaction Zone
X / Y - For Cursor Rendering
KinectPointerPoint->Position->X
– Between 0.0 and 1.0
KinectPointerPoint->Position->Y
– Between 0.0 and 1.0
X / Y – Allows offscreen info
KinectPointerPoint->Properties->UnclampedPosition->X
KinectPointerPoint->Properties->UnclampedPosition->Y
Z
KinectPointerPoint->Properties->HandReachExtent (raw)
KinectPointerPoint->Properties->PressExtent (affected by user/UI)
Correlating PointerPoint to NUI Data
KinectPointerPoint->Properties->BodyTrackingId
KinectPointerPoint->Properties->HandType
KinectPointerPoint->Properties->BodyTimeCounter
Press
Recommended Minimum Size:
• 208 x 208 (in 1080p resolution)
• Press attraction towards center
• Larger buttons will just
attract away from the edge
Adapting to smaller visual sizes:
• Make large-size hit testable
• Set KinectRegion.KinectPressInset
(Thickness) to non-visible part of button
• Attraction region is smaller
Cursors
Demo
Controls Basics – XAML
Scroll
Zoom
Interacting with Controls (in Preview release)
• UI Frameworks
– XAML (Store)
– WPF
• DirectX (Store)
ControlsBasics-
XAML
Microsoft.Kinect.
Xaml.Controls
Microsoft.Kinect.Toolkit.Input
WindowsPreview.Kinect
ControlsBasics-
WPF
Microsoft.Kinect.
Wpf.Controls
Microsoft.Kinect
ControlsBasics-
DX
KinectCoreWindow.PointerMoved,
KinectPointerPoint, KinectGestureRecognizer
InputPointerManager, PressableModel,
ManipulatableModel
Controls Layer – Cursor rendering, Hit Test,
Route PointerPoint via InputPointerManager
App (host KinectRegion, etc…)
Interacting with Content
• Navigating a camera through a 3d space
• Rotating a 3d object
• “Scrubbing” a video
Kinect Resources
• General Info & Blog -> http://kinectforwindows.com
• Purchase Sensor -> http://aka.ms/k4wv2purchase
• v2 Preview SDK -> http://aka.ms/k4wv2previewsdk
• Developer Forums -> http://aka.ms/k4wv2forum
Q&A
Tutto il nateriale di questa sessione sul sito
http://www.dotnetcampus.it
@MatteoValoriani
©2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Office, Azure, System Center, Dynamics and other product names are or may be registered trademarks and/or trademarks in the
U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft
must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after
the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

More Related Content

What's hot

UE4の色について v1.1
 UE4の色について v1.1 UE4の色について v1.1
Unityではじめるオープンワールド入門 アーティスト編
Unityではじめるオープンワールド入門 アーティスト編Unityではじめるオープンワールド入門 アーティスト編
Unityではじめるオープンワールド入門 アーティスト編
Unity Technologies Japan K.K.
 
Introduction to Kinect v2
Introduction to Kinect v2Introduction to Kinect v2
Introduction to Kinect v2
Tsukasa Sugiura
 
"有翼のフロイライン Wing of Darkness"と歩むUE4の世界
"有翼のフロイライン Wing of Darkness"と歩むUE4の世界"有翼のフロイライン Wing of Darkness"と歩むUE4の世界
"有翼のフロイライン Wing of Darkness"と歩むUE4の世界
エピック・ゲームズ・ジャパン Epic Games Japan
 
Data Driven Game Design
Data Driven Game DesignData Driven Game Design
Data Driven Game Design
Pier Luca Lanzi
 
UNITY 3D.pptx
UNITY 3D.pptxUNITY 3D.pptx
UNITY 3D.pptx
Omgworkspace
 
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
エピック・ゲームズ・ジャパン Epic Games Japan
 
【Unite Tokyo 2018】XFLAG スタジオにおける資産の有効活用術 ~いかにして数万アセットを管理したか?~
【Unite Tokyo 2018】XFLAG スタジオにおける資産の有効活用術 ~いかにして数万アセットを管理したか?~【Unite Tokyo 2018】XFLAG スタジオにおける資産の有効活用術 ~いかにして数万アセットを管理したか?~
【Unite Tokyo 2018】XFLAG スタジオにおける資産の有効活用術 ~いかにして数万アセットを管理したか?~
UnityTechnologiesJapan002
 
Unreal Engine Basics 04 - Behavior Trees
Unreal Engine Basics 04 - Behavior TreesUnreal Engine Basics 04 - Behavior Trees
Unreal Engine Basics 04 - Behavior Trees
Nick Pruehs
 
ECS architecture with Unity by example - Unite Europe 2016
ECS architecture with Unity by example - Unite Europe 2016ECS architecture with Unity by example - Unite Europe 2016
ECS architecture with Unity by example - Unite Europe 2016
Simon Schmid
 
Press Button, Drink Coffee : An Overview of UE4 build pipeline and maintenance
Press Button, Drink Coffee : An Overview of UE4 build pipeline and maintenancePress Button, Drink Coffee : An Overview of UE4 build pipeline and maintenance
Press Button, Drink Coffee : An Overview of UE4 build pipeline and maintenance
エピック・ゲームズ・ジャパン Epic Games Japan
 
Unity遊戲設計- Unity基礎指引
Unity遊戲設計- Unity基礎指引Unity遊戲設計- Unity基礎指引
Unity遊戲設計- Unity基礎指引
吳錫修 (ShyiShiou Wu)
 
GTMF2016:Unreal Engine 4を利用した先進的なゲーム制作手法 The Unreal Way 2016 Epic Games Japan
GTMF2016:Unreal Engine 4を利用した先進的なゲーム制作手法 The Unreal Way 2016 Epic Games JapanGTMF2016:Unreal Engine 4を利用した先進的なゲーム制作手法 The Unreal Way 2016 Epic Games Japan
GTMF2016:Unreal Engine 4を利用した先進的なゲーム制作手法 The Unreal Way 2016 Epic Games Japan
Game Tools & Middleware Forum
 
全部知ってたらTwinmotionマスター!TwinmotionのぷちTips・テクニック
全部知ってたらTwinmotionマスター!TwinmotionのぷちTips・テクニック全部知ってたらTwinmotionマスター!TwinmotionのぷちTips・テクニック
全部知ってたらTwinmotionマスター!TwinmotionのぷちTips・テクニック
エピック・ゲームズ・ジャパン Epic Games Japan
 
Game Programming 03 - Git Flow
Game Programming 03 - Git FlowGame Programming 03 - Git Flow
Game Programming 03 - Git Flow
Nick Pruehs
 
Unreal Engine Basics 05 - User Interface
Unreal Engine Basics 05 - User InterfaceUnreal Engine Basics 05 - User Interface
Unreal Engine Basics 05 - User Interface
Nick Pruehs
 
COSC 426 Lecture 1: Introduction to Augmented Reality
COSC 426 Lecture 1: Introduction to Augmented RealityCOSC 426 Lecture 1: Introduction to Augmented Reality
COSC 426 Lecture 1: Introduction to Augmented Reality
Mark Billinghurst
 
Game Programming 02 - Component-Based Entity Systems
Game Programming 02 - Component-Based Entity SystemsGame Programming 02 - Component-Based Entity Systems
Game Programming 02 - Component-Based Entity Systems
Nick Pruehs
 
UE4におけるアニメーション制作事例
UE4におけるアニメーション制作事例  UE4におけるアニメーション制作事例
UE4におけるアニメーション制作事例
エピック・ゲームズ・ジャパン Epic Games Japan
 
Game Design Fundamentals
Game Design FundamentalsGame Design Fundamentals
Game Design Fundamentals
Intelligent_ly
 

What's hot (20)

UE4の色について v1.1
 UE4の色について v1.1 UE4の色について v1.1
UE4の色について v1.1
 
Unityではじめるオープンワールド入門 アーティスト編
Unityではじめるオープンワールド入門 アーティスト編Unityではじめるオープンワールド入門 アーティスト編
Unityではじめるオープンワールド入門 アーティスト編
 
Introduction to Kinect v2
Introduction to Kinect v2Introduction to Kinect v2
Introduction to Kinect v2
 
"有翼のフロイライン Wing of Darkness"と歩むUE4の世界
"有翼のフロイライン Wing of Darkness"と歩むUE4の世界"有翼のフロイライン Wing of Darkness"と歩むUE4の世界
"有翼のフロイライン Wing of Darkness"と歩むUE4の世界
 
Data Driven Game Design
Data Driven Game DesignData Driven Game Design
Data Driven Game Design
 
UNITY 3D.pptx
UNITY 3D.pptxUNITY 3D.pptx
UNITY 3D.pptx
 
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
 
【Unite Tokyo 2018】XFLAG スタジオにおける資産の有効活用術 ~いかにして数万アセットを管理したか?~
【Unite Tokyo 2018】XFLAG スタジオにおける資産の有効活用術 ~いかにして数万アセットを管理したか?~【Unite Tokyo 2018】XFLAG スタジオにおける資産の有効活用術 ~いかにして数万アセットを管理したか?~
【Unite Tokyo 2018】XFLAG スタジオにおける資産の有効活用術 ~いかにして数万アセットを管理したか?~
 
Unreal Engine Basics 04 - Behavior Trees
Unreal Engine Basics 04 - Behavior TreesUnreal Engine Basics 04 - Behavior Trees
Unreal Engine Basics 04 - Behavior Trees
 
ECS architecture with Unity by example - Unite Europe 2016
ECS architecture with Unity by example - Unite Europe 2016ECS architecture with Unity by example - Unite Europe 2016
ECS architecture with Unity by example - Unite Europe 2016
 
Press Button, Drink Coffee : An Overview of UE4 build pipeline and maintenance
Press Button, Drink Coffee : An Overview of UE4 build pipeline and maintenancePress Button, Drink Coffee : An Overview of UE4 build pipeline and maintenance
Press Button, Drink Coffee : An Overview of UE4 build pipeline and maintenance
 
Unity遊戲設計- Unity基礎指引
Unity遊戲設計- Unity基礎指引Unity遊戲設計- Unity基礎指引
Unity遊戲設計- Unity基礎指引
 
GTMF2016:Unreal Engine 4を利用した先進的なゲーム制作手法 The Unreal Way 2016 Epic Games Japan
GTMF2016:Unreal Engine 4を利用した先進的なゲーム制作手法 The Unreal Way 2016 Epic Games JapanGTMF2016:Unreal Engine 4を利用した先進的なゲーム制作手法 The Unreal Way 2016 Epic Games Japan
GTMF2016:Unreal Engine 4を利用した先進的なゲーム制作手法 The Unreal Way 2016 Epic Games Japan
 
全部知ってたらTwinmotionマスター!TwinmotionのぷちTips・テクニック
全部知ってたらTwinmotionマスター!TwinmotionのぷちTips・テクニック全部知ってたらTwinmotionマスター!TwinmotionのぷちTips・テクニック
全部知ってたらTwinmotionマスター!TwinmotionのぷちTips・テクニック
 
Game Programming 03 - Git Flow
Game Programming 03 - Git FlowGame Programming 03 - Git Flow
Game Programming 03 - Git Flow
 
Unreal Engine Basics 05 - User Interface
Unreal Engine Basics 05 - User InterfaceUnreal Engine Basics 05 - User Interface
Unreal Engine Basics 05 - User Interface
 
COSC 426 Lecture 1: Introduction to Augmented Reality
COSC 426 Lecture 1: Introduction to Augmented RealityCOSC 426 Lecture 1: Introduction to Augmented Reality
COSC 426 Lecture 1: Introduction to Augmented Reality
 
Game Programming 02 - Component-Based Entity Systems
Game Programming 02 - Component-Based Entity SystemsGame Programming 02 - Component-Based Entity Systems
Game Programming 02 - Component-Based Entity Systems
 
UE4におけるアニメーション制作事例
UE4におけるアニメーション制作事例  UE4におけるアニメーション制作事例
UE4におけるアニメーション制作事例
 
Game Design Fundamentals
Game Design FundamentalsGame Design Fundamentals
Game Design Fundamentals
 

Similar to Programming with kinect v2

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
Clemente Giorio
 
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
Matteo Valoriani
 
Kinect2 hands on
Kinect2 hands onKinect2 hands on
Kinect2 hands on
Luigi Oliveto
 
Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2
Jeff Sipko
 
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
Visug
 
Kinect krishna kumar-itkan
Kinect krishna kumar-itkanKinect krishna kumar-itkan
Kinect krishna kumar-itkan
Pat Maher
 
Kinect krishna kumar-itkan
Kinect krishna kumar-itkanKinect krishna kumar-itkan
Kinect krishna kumar-itkan
Pat Maher
 
Nui e biometrics in windows 10
Nui e biometrics in windows 10Nui e biometrics in windows 10
Nui e biometrics in windows 10
Marco D'Alessandro
 
Kinect sensor
Kinect sensorKinect sensor
Kinect sensor
bhoomit morkar
 
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
 
Mirko Lucchese - Deep Image Processing
Mirko Lucchese - Deep Image ProcessingMirko Lucchese - Deep Image Processing
Mirko Lucchese - Deep Image Processing
MeetupDataScienceRoma
 
Developing For Kinect For Windows
Developing For Kinect For WindowsDeveloping For Kinect For Windows
Developing For Kinect For Windows
Prashant Tiwari
 
Kinect for Windows SDK - Programming Guide
Kinect for Windows SDK - Programming GuideKinect for Windows SDK - Programming Guide
Kinect for Windows SDK - Programming Guide
Katsuhito Okada
 
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
Philip Wheat
 
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
Tom Kerkhove
 
Odessa .NET User Group - Kinect v2
Odessa .NET User Group - Kinect v2Odessa .NET User Group - Kinect v2
Odessa .NET User Group - Kinect v2
Dmytro Mindra
 
Deep Learning AtoC with Image Perspective
Deep Learning AtoC with Image PerspectiveDeep Learning AtoC with Image Perspective
Deep Learning AtoC with Image Perspective
Dong Heon Cho
 
Kinect v1+Processing workshot fabcafe_taipei
Kinect v1+Processing workshot fabcafe_taipeiKinect v1+Processing workshot fabcafe_taipei
Kinect v1+Processing workshot fabcafe_taipei
Mao Wu
 
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
 

Similar to Programming with kinect v2 (20)

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
 
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
 
Kinect2 hands on
Kinect2 hands onKinect2 hands on
Kinect2 hands on
 
Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2
 
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
 
Kinect krishna kumar-itkan
Kinect krishna kumar-itkanKinect krishna kumar-itkan
Kinect krishna kumar-itkan
 
Kinect krishna kumar-itkan
Kinect krishna kumar-itkanKinect krishna kumar-itkan
Kinect krishna kumar-itkan
 
Nui e biometrics in windows 10
Nui e biometrics in windows 10Nui e biometrics in windows 10
Nui e biometrics in windows 10
 
Kinect sensor
Kinect sensorKinect sensor
Kinect sensor
 
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
 
Mirko Lucchese - Deep Image Processing
Mirko Lucchese - Deep Image ProcessingMirko Lucchese - Deep Image Processing
Mirko Lucchese - Deep Image Processing
 
Developing For Kinect For Windows
Developing For Kinect For WindowsDeveloping For Kinect For Windows
Developing For Kinect For Windows
 
Kinect for Windows SDK - Programming Guide
Kinect for Windows SDK - Programming GuideKinect for Windows SDK - Programming Guide
Kinect for Windows SDK - Programming Guide
 
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
 
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
 
Odessa .NET User Group - Kinect v2
Odessa .NET User Group - Kinect v2Odessa .NET User Group - Kinect v2
Odessa .NET User Group - Kinect v2
 
Deep Learning AtoC with Image Perspective
Deep Learning AtoC with Image PerspectiveDeep Learning AtoC with Image Perspective
Deep Learning AtoC with Image Perspective
 
Kinect v1+Processing workshot fabcafe_taipei
Kinect v1+Processing workshot fabcafe_taipeiKinect v1+Processing workshot fabcafe_taipei
Kinect v1+Processing workshot fabcafe_taipei
 
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
 

More from Matteo Valoriani

Immerge yourself in a new Reality
Immerge yourself in a new RealityImmerge yourself in a new Reality
Immerge yourself in a new Reality
Matteo Valoriani
 
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
 
Hour ofcode
Hour ofcodeHour ofcode
Hour ofcode
Matteo 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 Wearables
Matteo Valoriani
 
Introduction to development
Introduction to developmentIntroduction to development
Introduction to development
Matteo 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 Applications
Matteo 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 Development
Matteo 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 HoloLens
Matteo Valoriani
 
Mixed Reality from demo to product
Mixed Reality from demo to productMixed Reality from demo to product
Mixed Reality from demo to product
Matteo Valoriani
 
Intel RealSense Hands-on Lab - Rome
Intel RealSense Hands-on Lab - RomeIntel RealSense Hands-on Lab - Rome
Intel RealSense Hands-on Lab - Rome
Matteo Valoriani
 
Programming with RealSense using .NET
Programming with RealSense using .NETProgramming with RealSense using .NET
Programming with RealSense using .NET
Matteo Valoriani
 
Face recognition
Face recognitionFace recognition
Face recognition
Matteo Valoriani
 
Communitydays2015
Communitydays2015Communitydays2015
Communitydays2015
Matteo 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
 
Intel real sense handson
Intel real sense handsonIntel real sense handson
Intel real sense handson
Matteo Valoriani
 
Corso pratico di C# - 2013
Corso pratico di C# - 2013Corso pratico di C# - 2013
Corso pratico di C# - 2013
Matteo 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.8
Matteo Valoriani
 

More from 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
 
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...
 
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
 
Programming with RealSense using .NET
Programming with RealSense using .NETProgramming with RealSense using .NET
Programming with RealSense using .NET
 
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?
 
Intel real sense handson
Intel real sense handsonIntel real sense handson
Intel real sense handson
 
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
 

Recently uploaded

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 

Programming with kinect v2

  • 2. Nice to Meet You Matteo Valoriani PhD at Politecnico of Milano CEO of Fifth Element Speaker and Consultant Microsoft MVP for Kinect Intel Software Innovator: RealSense email: mvaloriani@gmail.com twitter: @MatteoValoriani linkedin: https://it.linkedin.com/in/matteovaloriani 2
  • 4. You have to be a magician… … or at least a good illusionist
  • 7. Kinect 2 - Specs 3D DEPTH SENSOR RGB CAMERA MULTI-ARRAY MIC Hardware: Depth resolution: 512×424 RGB resolution: 1920×1080 (16:9) FrameRate: 60 FPS Latency: 60 ms
  • 9. Kinect 2 vs Kinect 1
  • 10. Version 1 Version 2 Depth range 0.4m → 4.0m 0.4m → 4.5m Color stream 640×480 1920×1080 Depth stream 320×240 512×424 Infrared stream None 512×424 Type of Light Light coding ToF Audio stream 4-mic array 16 kHz 4-mic array 48 kHz USB 2.0 3.0 # Bodies Traked 2 (+4) 6 # Joints 20 25 Hand Traking External tools Yes Face Traking Yes Yes+Expressions FOV 57° H 43° V 70° H 60° V Tilt Motorized Manual
  • 11. System / Software Requirements OS Windows 8, 8.1, Embedded 8, Embedded 8.1 (x64) CPU Intel Core i7 3.1GHz (or higher) RAM 4GB (or more) GPU DirectX 11 supported USB USB 3.0 Compiler Visual Studio 2012, 2013 (Supported Express) Language Native (C++), Managed (C#,VB.NET), WinRT (C#,HTML) Other Unity Pro (Add-in), Cinder, openFrameworks (wrapper)
  • 15. Basic Flow of Programming Sensor Stream Frame Data Sensor Source Reader Frame Data Kinect for Windows SDK v1 Kinect for Windows SDK v2  Source independent to each Data (e.g. ColorSource, DepthSource, InfraredSource, BodyIndexSource, BodySource, …)  Doesn’t depend on each other Source (e.g. Doesn't need to Depth Source when retrieve Body Data)
  • 16. • In “New Project” create a new Windows Store app • Enable Microphone and Webcam capabilities • Add a reference to Microsoft.Kinect • Use the Microsoft.Kinect namespace in your code Creating a new store app using Kinect
  • 17. Represents a single physical sensor Always valid: when device is disconnected no more frame are generated. Use IsAviable Property to verify if the device is connected The KinectSensor class this KinectSensor this // Make the world a better place with Kinect this
  • 19. Give access to frames – Events – Polling Multiple readers may be created on a single source Readers can be paused Readers InfraredFrameReader reader = sensor.InfraredFrameSource.OpenReader(); reader.FrameArrived += InfraredReaderFrameArrived; ...
  • 20. Frame references void InfraredFrameReader InfraredFrameArrivedEventArgs using (InfraredFrame frame = args.FrameReference.AcquireFrame()) { if (frame != null) { // Get what you need from the frame } } } Sent in frame event args AcquireFrame gives access to the actual frame
  • 21. • Gives access to the frame data – Make a local copy or access the underlying buffer directly • Contains metadata for the frame – e.g. Color: format, width, height, etc. • Important: Minimize how long you hold onto the frame – Not Disposing frames will cause you to not receive more frames Frames
  • 22. • Allows the app to get a matched set of frames from multiple sources on a single event • Delivers frames at the lowest FPS of the selected sources MultiSourceFrameReader MultiSourceFrameReader MultiReader = Sensor.OpenMultiSourceFrameReader(FrameSourceTypes.Color | FrameSourceTypes.BodyIndex | FrameSourceTypes.Body); var frame = args.FrameReference.AcquireFrame(); if (frame != null) { using (colorFrame = frame.ColorFrameReference.AcquireFrame()) using (bodyFrame = frame.BodyFrameReference.AcquireFrame()) using (bodyIndexFrame = frame.BodyIndexFrameReference.AcquireFrame()){ // } }
  • 23. System Kinect Driver Kinect SDK Application Kinect Driver Kinect SDK Application Kinect Service Kinect SDK Application Kinect SDK Application Kinect for Windows v1 Kinect for Windows v2
  • 24. Connection Kinect for Windows v1 Kinect for Windows v2 PCPC
  • 26. DEMO Display frame in a Windows Store App
  • 27. Data Source Details Physical image sensors, ColorFrameSource, InfraredFrameSource, DepthFrameSource, BodyIndexFrameSource, BodyFrameSource, AudioFrameSource
  • 29. • 30 or 15 fps, based on lighting conditions ColorFrameSource
  • 31. – 16-bit distance in millimeters from the sensor’s focal plane DepthFrameSource
  • 32. – 0 to 5: Index of the corresponding body, as tracked by the body source – > 5: No tracked body at that pixel BodyIndexFrameSource 255 0 1
  • 33. • Range is 0.5-4.5 meters • Frame data is a collection of Body objects each with 25 joints – Each joint has position in 3D space and an orientation • Up to six simultaneous bodies • 30fps • Hand State on 2 bodies • Lean BodyFrameSource
  • 35. Coordinate System  ColorSpace (Coordinate System of the Color Image) – … Color  DepthSpace (Coordinate System of the Depth Data) – … Depth, Infrared, BodyIndex  CameraSpace (Coordinate System with the origin located the Depth Sensor) – … Body (Joint)
  • 36. • Three coordinate systems • Coordinate mapper provides conversions between each system • Convert single or multiple points Coordinate mapping Name Applies to Dimensions Units Range Origin ColorSpacePoint Color 2 pixels 1920x1080 Top left corner DepthSpacePoint Depth, Infrared, Body index 2 pixels 512x424 Top left corner CameraSpacePoint Body 3 meters – Infrared/depth camera
  • 37. DEMO Handle body frames and coordinate mapping
  • 39. Recordable Data Sources Infrared 13 MB/s Depth 13 MB/s BodyFrame BodyIndex Color 120 MB/s Audio 32 KB/s Legend Record/Play Record Only
  • 41. Gesture Recognition Heuristic + Machine Learning Approaches
  • 43. Gesture Builder • New tool, shipping with v2 SDK • Organize data using projects and solutions • Give meaning to data by tagging gestures • Build gestures using machine learning technology – Adaptive Boosting (AdaBoost) Trigger • Determines if player is performing gesture – Random Forest Regression (RFR) Progress • Determines the progress of the gesture performed by player • Analyze / test the results of gesture detection • Live preview of results
  • 46. Heuristic • Gesture is a coding problem • Quick to do simple gestures/poses (hand over head) • ML can also be useful to find good signals for Heuristic approach Machine Learning (ML) with G.B. • Gesture is a data problem • Signals which may not be easily human understandable (progress in a baseball swing) • Large investment for production • Danger of over-fitting, causes you to be too specific – eliminating recognition of generic cases Gesture Recognition
  • 48. Hand pointer gestures Engagement Targeting Press Panning/Zoom
  • 49. DEMO Controls Basics – XAML UserViewer | Engagement | Targeting | Press
  • 50. Demo Building ControlsBasics-XAML from Scratch • File New Project > Grid App • Add Reference to Microsoft.Kinect.Xaml.Controls • Enable Microphone + Camera capabilities for app • Add KinectRegion as container for rootFrame in App.xaml.cs • Run it!
  • 52. System Engagement Manual Engagement • Hands over head • In certain location of room • Etc… “Engagement” for hand cursor KinectRegion.SetOnePersonSystemEngagement() KinectRegion.SetTwoPersonSystemEngagement() KinectRegion.SetOnePersonManualEngagement(…) KinectRegion.SetTwoPersonManualEngagement(…)
  • 53. DEMO PHiZ (Physical Interaction Zone) & KinectPointerPoint
  • 54. PHIZ – Physical Interaction Zone X / Y - For Cursor Rendering KinectPointerPoint->Position->X – Between 0.0 and 1.0 KinectPointerPoint->Position->Y – Between 0.0 and 1.0 X / Y – Allows offscreen info KinectPointerPoint->Properties->UnclampedPosition->X KinectPointerPoint->Properties->UnclampedPosition->Y Z KinectPointerPoint->Properties->HandReachExtent (raw) KinectPointerPoint->Properties->PressExtent (affected by user/UI) Correlating PointerPoint to NUI Data KinectPointerPoint->Properties->BodyTrackingId KinectPointerPoint->Properties->HandType KinectPointerPoint->Properties->BodyTimeCounter
  • 55. Press Recommended Minimum Size: • 208 x 208 (in 1080p resolution) • Press attraction towards center • Larger buttons will just attract away from the edge Adapting to smaller visual sizes: • Make large-size hit testable • Set KinectRegion.KinectPressInset (Thickness) to non-visible part of button • Attraction region is smaller
  • 57. Demo Controls Basics – XAML Scroll Zoom
  • 58. Interacting with Controls (in Preview release) • UI Frameworks – XAML (Store) – WPF • DirectX (Store) ControlsBasics- XAML Microsoft.Kinect. Xaml.Controls Microsoft.Kinect.Toolkit.Input WindowsPreview.Kinect ControlsBasics- WPF Microsoft.Kinect. Wpf.Controls Microsoft.Kinect ControlsBasics- DX KinectCoreWindow.PointerMoved, KinectPointerPoint, KinectGestureRecognizer InputPointerManager, PressableModel, ManipulatableModel Controls Layer – Cursor rendering, Hit Test, Route PointerPoint via InputPointerManager App (host KinectRegion, etc…)
  • 59. Interacting with Content • Navigating a camera through a 3d space • Rotating a 3d object • “Scrubbing” a video
  • 60. Kinect Resources • General Info & Blog -> http://kinectforwindows.com • Purchase Sensor -> http://aka.ms/k4wv2purchase • v2 Preview SDK -> http://aka.ms/k4wv2previewsdk • Developer Forums -> http://aka.ms/k4wv2forum
  • 61. Q&A Tutto il nateriale di questa sessione sul sito http://www.dotnetcampus.it @MatteoValoriani
  • 62. ©2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Office, Azure, System Center, Dynamics and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.