SlideShare a Scribd company logo
Sviluppo di
applicazioni per
Mobile, Web ed IoT
Cross-Platform
&
Open Source
#dotnetday2018
M assimo Bonanni
Paranormal Developer, with the head in the Cloud and all the
REST in microservices!
massimo.bonanni@tiscali.it
@massimobonanni
Project Prague & RealSense:
gestures in a simple way!!
Gesture scenarios.....
“… the idea of gesture
input will become
mainstream –
both when working far
away from the screen
(TV, big meeting room)
and when working at your
desk (PC).”
Microsoft’s Focused Dreams to Survive and Thrive,
Bill Gates, January 2016
Project Gesture & RealSense: gestures in a simple way!!
What is Project Prague?
Is an easy-to-use SDK that helps
developers to incorporate gesture-
based controls into their apps.
Use a machine learning algorithm
called DFE (Discriminative Ferns
Ensemble) to obtain the hand
skeleton.
The gesture detection is implemented
using a straight forward heuristic,
with very few manually tuned
parameters.
Gesture
What do I need?
Intel® RealSense™ SR300
https://aka.ms/IntelRS300
Intel® RealSense™ F200
Requirements
Category Recommended Minimal
CPU Intel® Core™ i7 series, 8 logical cores Intel® Core™ i5 series, 4 logical cores
Free RAM 2GB or more 1GB
Operating System Windows 10 with Creator Update installed Windows 10
Brand Gesture Detection Range Experience
Intel® RealSense™ SR300 camera 20-60 [cm] Best
Intel® RealSense™ F200 camera 20-60 [cm] Good
Kinect for Windows v2 60-110 [cm] Good
http://aka.ms/gestures/download
Project Gesture & RealSense: gestures in a simple way!!
Palm Pose
Finger Poses
Fingertip Placement
Relations
+
+
Fingertip Distance
Relations+
HandPose
=
Direction: {left, right, up, down,
backward, forward}
Flexion: {opened, openedStretched,
folded, foldedTucked}
RelativePlacement: {left, right,
above, below, behind, inFront}
RelativeDistance: {notTouching, touching}
Direction: {left, right, up, down,
backward, forward}
Orientation: {left, right, up, down,
backward, forward}
Hand Pose
A hand pose refers to a
snapshot of the hand at
a given moment and
contains a complete
description of the state of
the palm and the fingers
in that snapshot
Pinch pose
Hand Pose
palm facing {forward}, orientation {up}
{index, thumb} are {touching}
{middle, ring, pinky} are {above}
{index, thumb}
{index} is {above} the {thumb}
{left} hand
{thumb, index, middle, ring, pinky}
are {opened}
<svg>
<path d="M 100 350 q 50 -50 100 0
q 50 -50 100 0 q 50 -50 100"/>
</svg>
HandMotion
= MotionScript
Upward,
Downward,
Right,Left,
ClockwiseArcRightUpward, ClockwiseArcRightDownward,
ClockwiseArcLeftUpward, ClockwiseArcLeftDownward,
CounterClockwiseArcLeftDownward, CounterClockwiseArcLeftUpward,
CounterClockwiseArcRightDownward, CounterClockwiseArcRightUpward,
For example, the SVG curve above can be simply described by:
ClockwiseArcRightUpward,
ClockwiseArcRightDownward,
ClockwiseArcRightUpward,
ClockwiseArcRightDownward,
ClockwiseArcRightUpward,
ClockwiseArcRightDownward,
DiagonalLeftUpward,
DiagonalRightDownward,
DiagonalRightUpward,
DiagonalLeftDownward,
Hand Motion
As you move your hand,
your fingertips trace a
curve through space: this
curve is a "hand motion"
A Gesture is a finite state machine that its states are either Pose objects, Motion objects
or other Gesture object
Basic templates:
A gesture should be Un/Registered with respect to the application context. Only
registered gestures trigger ( ).
Gesture
Pose Motion
Pose
Pose Pose
Gesture =
Gesture Pose
Gesture Motion
hand facing {forward}, orientation {up}
{index, thumb} are {touching}
{index} is {above} {thumb}
{left, right} hand
{thumb, index} are {opened}
Pinch Retract NotPinchingSlingshot =
{index, thumb} are {opened}
{left, right} hand
{index, thumb} are {notTouching}
{index, thumb} are {opened}
{left, right} hand
{index, thumb} are {notTouching} move {backward}
{left, right} hand
NotPinching
Slingshot Example
Project Gesture & RealSense: gestures in a simple way!!
Gestures Service
The Gestures Service provides gesture
detection as a local service for client
applications.
After you install Project Prague, the
Gestures Service will be launched
every time your machine starts.
Project Gesture & RealSense: gestures in a simple way!!
Using Gesture Service
The detection is performed in the
Microsoft.Gestures.Service.exe process that acts as a
service for gesture detection.
You have to use the GesturesServiceEndpoint class in order to
communicate with the service.
Create a gesture
Detect a gesture
You need to hook up the event indicating gesture detection to the appropriate handler:
You can detect when the single pose is triggered by the user:
Declare a Gesture as XAML
Skeleton tracking
Project Gesture also provides API for the skeleton tracking.
For each hand:
Position of the fingertips
Fingers direction
Palm position
Palm orientation
Project Gesture & RealSense: gestures in a simple way!!
V1 Released July ‘17
Runtime
◦ Supported sensors: Intel RealSense SR300 & F200, Kinect v2
◦ Gestures support injected into
◦ Windows Shell, PowerPoint, Skype, YouTube and Photos App
◦ Wolfly Unity Game
◦ Camera Gesture-triggered overlays (can be used in skype)
Docs
◦ Great Overview + tutorials
Samples @Github
◦ .NET
◦ Unity
https://labs.cognitive.microsoft.com/
Key takeaways
Human Interaction is the new challenge.
Project Gesture may be one of the solution.
In the roadmap will be different kind of camera (e.g. IR
camera)
Keep in mind: Project Gesture is an experimental project.
If we’ll use it, it will become a supported project.
#DOTNETDAY2018 31
Grazie!!!!!
Massimo Bonanni
massimo.bonanni@tiscali.it
@massimobonanni
https://www.linkedin.com/in/massimobonanni/
#ProjectPraguePG
Project Gesture Web Site
https://labs.cognitive.microsoft.com/en-us/project-gesture
Project Gesture documentation
https://docs.microsoft.com/en-us/gestures/
Twitter/mail account
@ProjectPrague / gestures@microsoft.com
Project Gesture GitHub
https://github.com/Microsoft/Gestures-Samples
Toward Realistic Hands Gesture Interface: Keeping it Simple for
Developers and Machines [PDF]
https://aka.ms/TRHGI
Sample GitHub
https://github.com/massimobonanni/ProjectPragueSamples
Project Prague & RealSense: il potere nelle mani!!! (dotNet{podcast}
meet{cast})
http://bit.ly/ProjectPragueMeetCast
Reference
GRAZIE A TUTTI VOI …
#DOTNETDAY2018 33

More Related Content

PPTX
Project Gesture & Real Sense: il potere nelle mani!!
PPTX
Project Prague & RealSense: il potere nelle mani!!
PPTX
Gesture Recognition Technology
PPTX
PDF
Ay4103315317
PPTX
Gesture recognition technology
PPTX
Gesturerecognition
PDF
Gesture recognition document
Project Gesture & Real Sense: il potere nelle mani!!
Project Prague & RealSense: il potere nelle mani!!
Gesture Recognition Technology
Ay4103315317
Gesture recognition technology
Gesturerecognition
Gesture recognition document

Similar to Project Gesture & RealSense: gestures in a simple way!! (20)

PPTX
Gesture Recogntion Technology
PPTX
Finalgesture22
PPTX
Gesture Technology
PPTX
Programming with RealSense using .NET
PDF
Gesture-based Interaction - Lecture 08 - Next Generation User Interfaces (401...
PDF
426 Lecture 9: Research Directions in AR
PPTX
Gesture Recognition
PPT
GESTURE RECOGNITION TECHNOLOGY
PDF
Smart Presentation Control by Hand Gestures Using Computer Vision and Google’...
PPTX
PPTX
Gesture recognition
DOCX
STEFANO CARRINO
PPTX
Interactive Wall (Multi Touch Interactive Surface)
PPTX
Gesture recognition systems
PDF
Accessing Operating System using Finger Gesture
DOCX
Gesture recognition
PDF
Controlling Mouse Movements Using hand Gesture And X box 360
PPTX
Elsevier PPT
PPTX
ppt of gesture recognition
PPTX
Leap Motion - Aydin Akcasu
Gesture Recogntion Technology
Finalgesture22
Gesture Technology
Programming with RealSense using .NET
Gesture-based Interaction - Lecture 08 - Next Generation User Interfaces (401...
426 Lecture 9: Research Directions in AR
Gesture Recognition
GESTURE RECOGNITION TECHNOLOGY
Smart Presentation Control by Hand Gestures Using Computer Vision and Google’...
Gesture recognition
STEFANO CARRINO
Interactive Wall (Multi Touch Interactive Surface)
Gesture recognition systems
Accessing Operating System using Finger Gesture
Gesture recognition
Controlling Mouse Movements Using hand Gesture And X box 360
Elsevier PPT
ppt of gesture recognition
Leap Motion - Aydin Akcasu
Ad

More from Massimo Bonanni (20)

PDF
Empower every Azure Function to achieve more!!
PDF
Durable Functions vs Logic App : la guerra dei workflow!!
PDF
Stateful pattern con Azure Functions
PDF
Architetture Serverless con SQL Server e Azure Functions
PDF
IoT in salsa serverless
PDF
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
PDF
Stateful patterns in Azure Functions
PDF
IoT in salsa Serverless
PDF
The art of Azure Functions (unit) testing and monitoring
PDF
Empower every Azure Function to achieve more!!
PDF
The art of Azure Functions (unit) testing and monitoring
PDF
Everything you always wanted to know about API Management (but were afraid to...
PDF
Workflow as code with Azure Durable Functions
PDF
Xmas Serverless Transformation: when the elf doesn’t scale!
PPTX
Welcome Azure Functions 2. 0
PPTX
Discovering the Service Fabric's actor model
PPTX
Testing a Service Fabric solution and live happy!!
PPTX
Discovering the Service Fabric's actor model
PPTX
Soluzioni IoT con le tecnologie Microsoft
PPTX
L'approccio ai microservizi secondo Service Fabric
Empower every Azure Function to achieve more!!
Durable Functions vs Logic App : la guerra dei workflow!!
Stateful pattern con Azure Functions
Architetture Serverless con SQL Server e Azure Functions
IoT in salsa serverless
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
Stateful patterns in Azure Functions
IoT in salsa Serverless
The art of Azure Functions (unit) testing and monitoring
Empower every Azure Function to achieve more!!
The art of Azure Functions (unit) testing and monitoring
Everything you always wanted to know about API Management (but were afraid to...
Workflow as code with Azure Durable Functions
Xmas Serverless Transformation: when the elf doesn’t scale!
Welcome Azure Functions 2. 0
Discovering the Service Fabric's actor model
Testing a Service Fabric solution and live happy!!
Discovering the Service Fabric's actor model
Soluzioni IoT con le tecnologie Microsoft
L'approccio ai microservizi secondo Service Fabric
Ad

Recently uploaded (20)

PPTX
Spectroscopy.pptx food analysis technology
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Getting Started with Data Integration: FME Form 101
PPT
Teaching material agriculture food technology
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
A Presentation on Artificial Intelligence
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Encapsulation theory and applications.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Tartificialntelligence_presentation.pptx
PDF
Approach and Philosophy of On baking technology
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Network Security Unit 5.pdf for BCA BBA.
Spectroscopy.pptx food analysis technology
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Getting Started with Data Integration: FME Form 101
Teaching material agriculture food technology
Assigned Numbers - 2025 - Bluetooth® Document
Unlocking AI with Model Context Protocol (MCP)
A Presentation on Artificial Intelligence
Encapsulation_ Review paper, used for researhc scholars
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Encapsulation theory and applications.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
MYSQL Presentation for SQL database connectivity
Mobile App Security Testing_ A Comprehensive Guide.pdf
Tartificialntelligence_presentation.pptx
Approach and Philosophy of On baking technology
A comparative analysis of optical character recognition models for extracting...
Big Data Technologies - Introduction.pptx
Programs and apps: productivity, graphics, security and other tools
Network Security Unit 5.pdf for BCA BBA.

Project Gesture & RealSense: gestures in a simple way!!

  • 1. Sviluppo di applicazioni per Mobile, Web ed IoT Cross-Platform & Open Source #dotnetday2018
  • 2. M assimo Bonanni Paranormal Developer, with the head in the Cloud and all the REST in microservices! massimo.bonanni@tiscali.it @massimobonanni Project Prague & RealSense: gestures in a simple way!!
  • 4. “… the idea of gesture input will become mainstream – both when working far away from the screen (TV, big meeting room) and when working at your desk (PC).” Microsoft’s Focused Dreams to Survive and Thrive, Bill Gates, January 2016
  • 6. What is Project Prague? Is an easy-to-use SDK that helps developers to incorporate gesture- based controls into their apps. Use a machine learning algorithm called DFE (Discriminative Ferns Ensemble) to obtain the hand skeleton. The gesture detection is implemented using a straight forward heuristic, with very few manually tuned parameters. Gesture
  • 7. What do I need? Intel® RealSense™ SR300 https://aka.ms/IntelRS300 Intel® RealSense™ F200
  • 8. Requirements Category Recommended Minimal CPU Intel® Core™ i7 series, 8 logical cores Intel® Core™ i5 series, 4 logical cores Free RAM 2GB or more 1GB Operating System Windows 10 with Creator Update installed Windows 10 Brand Gesture Detection Range Experience Intel® RealSense™ SR300 camera 20-60 [cm] Best Intel® RealSense™ F200 camera 20-60 [cm] Good Kinect for Windows v2 60-110 [cm] Good http://aka.ms/gestures/download
  • 10. Palm Pose Finger Poses Fingertip Placement Relations + + Fingertip Distance Relations+ HandPose = Direction: {left, right, up, down, backward, forward} Flexion: {opened, openedStretched, folded, foldedTucked} RelativePlacement: {left, right, above, below, behind, inFront} RelativeDistance: {notTouching, touching} Direction: {left, right, up, down, backward, forward} Orientation: {left, right, up, down, backward, forward} Hand Pose A hand pose refers to a snapshot of the hand at a given moment and contains a complete description of the state of the palm and the fingers in that snapshot
  • 11. Pinch pose Hand Pose palm facing {forward}, orientation {up} {index, thumb} are {touching} {middle, ring, pinky} are {above} {index, thumb} {index} is {above} the {thumb} {left} hand {thumb, index, middle, ring, pinky} are {opened}
  • 12. <svg> <path d="M 100 350 q 50 -50 100 0 q 50 -50 100 0 q 50 -50 100"/> </svg> HandMotion = MotionScript Upward, Downward, Right,Left, ClockwiseArcRightUpward, ClockwiseArcRightDownward, ClockwiseArcLeftUpward, ClockwiseArcLeftDownward, CounterClockwiseArcLeftDownward, CounterClockwiseArcLeftUpward, CounterClockwiseArcRightDownward, CounterClockwiseArcRightUpward, For example, the SVG curve above can be simply described by: ClockwiseArcRightUpward, ClockwiseArcRightDownward, ClockwiseArcRightUpward, ClockwiseArcRightDownward, ClockwiseArcRightUpward, ClockwiseArcRightDownward, DiagonalLeftUpward, DiagonalRightDownward, DiagonalRightUpward, DiagonalLeftDownward, Hand Motion As you move your hand, your fingertips trace a curve through space: this curve is a "hand motion"
  • 13. A Gesture is a finite state machine that its states are either Pose objects, Motion objects or other Gesture object Basic templates: A gesture should be Un/Registered with respect to the application context. Only registered gestures trigger ( ). Gesture Pose Motion Pose Pose Pose Gesture = Gesture Pose Gesture Motion
  • 14. hand facing {forward}, orientation {up} {index, thumb} are {touching} {index} is {above} {thumb} {left, right} hand {thumb, index} are {opened} Pinch Retract NotPinchingSlingshot = {index, thumb} are {opened} {left, right} hand {index, thumb} are {notTouching} {index, thumb} are {opened} {left, right} hand {index, thumb} are {notTouching} move {backward} {left, right} hand NotPinching Slingshot Example
  • 16. Gestures Service The Gestures Service provides gesture detection as a local service for client applications. After you install Project Prague, the Gestures Service will be launched every time your machine starts.
  • 18. Using Gesture Service The detection is performed in the Microsoft.Gestures.Service.exe process that acts as a service for gesture detection. You have to use the GesturesServiceEndpoint class in order to communicate with the service.
  • 20. Detect a gesture You need to hook up the event indicating gesture detection to the appropriate handler: You can detect when the single pose is triggered by the user:
  • 21. Declare a Gesture as XAML
  • 22. Skeleton tracking Project Gesture also provides API for the skeleton tracking. For each hand: Position of the fingertips Fingers direction Palm position Palm orientation
  • 24. V1 Released July ‘17 Runtime ◦ Supported sensors: Intel RealSense SR300 & F200, Kinect v2 ◦ Gestures support injected into ◦ Windows Shell, PowerPoint, Skype, YouTube and Photos App ◦ Wolfly Unity Game ◦ Camera Gesture-triggered overlays (can be used in skype) Docs ◦ Great Overview + tutorials Samples @Github ◦ .NET ◦ Unity
  • 26. Key takeaways Human Interaction is the new challenge. Project Gesture may be one of the solution. In the roadmap will be different kind of camera (e.g. IR camera) Keep in mind: Project Gesture is an experimental project. If we’ll use it, it will become a supported project.
  • 28. Project Gesture Web Site https://labs.cognitive.microsoft.com/en-us/project-gesture Project Gesture documentation https://docs.microsoft.com/en-us/gestures/ Twitter/mail account @ProjectPrague / gestures@microsoft.com Project Gesture GitHub https://github.com/Microsoft/Gestures-Samples Toward Realistic Hands Gesture Interface: Keeping it Simple for Developers and Machines [PDF] https://aka.ms/TRHGI Sample GitHub https://github.com/massimobonanni/ProjectPragueSamples Project Prague & RealSense: il potere nelle mani!!! (dotNet{podcast} meet{cast}) http://bit.ly/ProjectPragueMeetCast Reference
  • 29. GRAZIE A TUTTI VOI … #DOTNETDAY2018 33