#IoTDayAQ17
Project Prague & RealSense:
il potere nelle mani!!
Massimo Bonanni
Paranormal Developer, with the head in the Cloud and all the REST in
microservices!
massimo.bonanni@microsoft.com
@massimobonanni
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 Prague & RealSense: il potere nelle mani!!
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.
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
Hand pose, Hand Motion & Gestures
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, inFornt}
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
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}
Pinch pose
Hand Pose
<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 ( ).
Pose Motion
Pose
Pose Pose
Gesture =
Gesture
Gesture
Pose
Motion
Gesture
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
Developers, developers, developers….
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.
Demo
Project Prague SDK and Tools
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.
Reference the following assemblies:
• Microsoft.Gestures.dll
• Microsoft.Gestures.Endpoint.dll
• Microsoft.Gestures.Protocol.dll
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 Prague also provides API for the skeleton tracking.
For each hand:
Position of the fingertips
Fingers direction
Palm position
Palm orientation
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
Demo
Using Project Prague SDK
Cognitive Service Labs
https://labs.cognitive.microsoft.com/
Trials have both rate
limit, in terms of
transactions per
second or minute, and
a monthly usage cap.
Key takeaways
Human Interaction is the new challenge.
Project Prague may be one of the solution.
In the roadmap will be different kind of camera (e.g. IR
camera)
Keep in mind: Project Prague is an experimental project.
If we’ll use it, it will become a supported project.
Feedback & Questions
Grazie!!!!!
Massimo Bonanni
massimo.bonanni@microsoft.com
@massimobonanni
https://www.linkedin.com/in/massimobonanni/
#ProjectPragueCT
Project Prague Reference
Project Prague Web Site
https://labs.cognitive.microsoft.com/en-us/project-prague
Project Prague documentation
https://docs.microsoft.com/en-us/gestures/
Twitter/mail account
@ProjectPrague / gestures@Microsoft.com
Project Prague 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

More Related Content

PPTX
Project Gesture & Real Sense: il potere nelle mani!!
PPTX
Project Gesture & RealSense: gestures in a simple way!!
PDF
Augmented Reality with Open Source Software
PPT
Kinect Arabic Interfaced Drawing Application
PPTX
HCI_PROJECT_USING_HANDGESTURE_AND_CONTROL
PDF
Delegateless Coordinators - take 2
PDF
Hacking ingress
PPT
Location Based Services Without the Cocoa
Project Gesture & Real Sense: il potere nelle mani!!
Project Gesture & RealSense: gestures in a simple way!!
Augmented Reality with Open Source Software
Kinect Arabic Interfaced Drawing Application
HCI_PROJECT_USING_HANDGESTURE_AND_CONTROL
Delegateless Coordinators - take 2
Hacking ingress
Location Based Services Without the Cocoa

Similar to Project Prague & RealSense: il potere nelle mani!! (20)

PDF
Andriy Vandakurov about "Frontend. Global domination"
PDF
Pivorak.javascript.global domination
PDF
Intro to computer vision in .net
PPTX
Animate Me! if you don't do it for me, do it for Chet - DroidconLondon2015
PDF
virtual_chess
PDF
A SOFTWARE TOOL FOR EXPERIMENTAL STUDY LEAP MOTION
PDF
Codemotion2013depasquale
PDF
Motion & Gesture Interactions in the digital age
PDF
Magic Leap Developers Presentation by Cliff Baldridge 2018
PDF
Automate Mobile Gestures in Appium_ A Detailed Guide for Developers.pdf
PPTX
Advance ui development and design
PDF
Affect- and Personality-based Recommender Systems Hands-on: Unobtrusive Acqui...
PDF
IRJET- 3D Drawing with Augmented Reality
PPTX
Animate Me, if you don't do it for me do it for chet (DroidCon Paris)
PDF
Automate Mobile Gestures in Appium_ A Detailed Guide for Developers.pdf
DOCX
PDF
Introduction to development
PDF
(Js) Export your own WebGL Viewer
PDF
The Death of a Mouse
PDF
Ajax-Tutorial
Andriy Vandakurov about "Frontend. Global domination"
Pivorak.javascript.global domination
Intro to computer vision in .net
Animate Me! if you don't do it for me, do it for Chet - DroidconLondon2015
virtual_chess
A SOFTWARE TOOL FOR EXPERIMENTAL STUDY LEAP MOTION
Codemotion2013depasquale
Motion & Gesture Interactions in the digital age
Magic Leap Developers Presentation by Cliff Baldridge 2018
Automate Mobile Gestures in Appium_ A Detailed Guide for Developers.pdf
Advance ui development and design
Affect- and Personality-based Recommender Systems Hands-on: Unobtrusive Acqui...
IRJET- 3D Drawing with Augmented Reality
Animate Me, if you don't do it for me do it for chet (DroidCon Paris)
Automate Mobile Gestures in Appium_ A Detailed Guide for Developers.pdf
Introduction to development
(Js) Export your own WebGL Viewer
The Death of a Mouse
Ajax-Tutorial
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)

PDF
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
PDF
Aug23rd - Mulesoft Community Workshop - Hyd, India.pdf
PDF
A hybrid framework for wild animal classification using fine-tuned DenseNet12...
PDF
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
PDF
A symptom-driven medical diagnosis support model based on machine learning te...
PDF
Electrocardiogram sequences data analytics and classification using unsupervi...
PDF
Introduction to MCP and A2A Protocols: Enabling Agent Communication
PDF
NewMind AI Weekly Chronicles – August ’25 Week IV
PPTX
AI-driven Assurance Across Your End-to-end Network With ThousandEyes
DOCX
Basics of Cloud Computing - Cloud Ecosystem
PDF
EIS-Webinar-Regulated-Industries-2025-08.pdf
PDF
giants, standing on the shoulders of - by Daniel Stenberg
PDF
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
PDF
“The Future of Visual AI: Efficient Multimodal Intelligence,” a Keynote Prese...
PDF
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
PDF
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
PDF
Human Computer Interaction Miterm Lesson
PDF
Rapid Prototyping: A lecture on prototyping techniques for interface design
PDF
Ensemble model-based arrhythmia classification with local interpretable model...
PDF
Auditboard EB SOX Playbook 2023 edition.
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
Aug23rd - Mulesoft Community Workshop - Hyd, India.pdf
A hybrid framework for wild animal classification using fine-tuned DenseNet12...
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
A symptom-driven medical diagnosis support model based on machine learning te...
Electrocardiogram sequences data analytics and classification using unsupervi...
Introduction to MCP and A2A Protocols: Enabling Agent Communication
NewMind AI Weekly Chronicles – August ’25 Week IV
AI-driven Assurance Across Your End-to-end Network With ThousandEyes
Basics of Cloud Computing - Cloud Ecosystem
EIS-Webinar-Regulated-Industries-2025-08.pdf
giants, standing on the shoulders of - by Daniel Stenberg
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
“The Future of Visual AI: Efficient Multimodal Intelligence,” a Keynote Prese...
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
Human Computer Interaction Miterm Lesson
Rapid Prototyping: A lecture on prototyping techniques for interface design
Ensemble model-based arrhythmia classification with local interpretable model...
Auditboard EB SOX Playbook 2023 edition.

Project Prague & RealSense: il potere nelle mani!!

  • 2. Project Prague & RealSense: il potere nelle mani!! Massimo Bonanni Paranormal Developer, with the head in the Cloud and all the REST in microservices! [email protected] @massimobonanni
  • 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.
  • 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
  • 9. Hand pose, Hand Motion & Gestures
  • 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, inFornt} 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. 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} Pinch pose Hand Pose
  • 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 ( ). Pose Motion Pose Pose Pose Gesture = Gesture Gesture Pose Motion Gesture
  • 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. Reference the following assemblies: • Microsoft.Gestures.dll • Microsoft.Gestures.Endpoint.dll • Microsoft.Gestures.Protocol.dll
  • 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 Prague also provides API for the skeleton tracking. For each hand: Position of the fingertips Fingers direction Palm position Palm orientation
  • 23. 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
  • 25. Cognitive Service Labs https://labs.cognitive.microsoft.com/ Trials have both rate limit, in terms of transactions per second or minute, and a monthly usage cap.
  • 26. Key takeaways Human Interaction is the new challenge. Project Prague may be one of the solution. In the roadmap will be different kind of camera (e.g. IR camera) Keep in mind: Project Prague is an experimental project. If we’ll use it, it will become a supported project.
  • 27. Feedback & Questions Grazie!!!!! Massimo Bonanni [email protected] @massimobonanni https://www.linkedin.com/in/massimobonanni/ #ProjectPragueCT
  • 28. Project Prague Reference Project Prague Web Site https://labs.cognitive.microsoft.com/en-us/project-prague Project Prague documentation https://docs.microsoft.com/en-us/gestures/ Twitter/mail account @ProjectPrague / [email protected] Project Prague 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