SlideShare a Scribd company logo
1 of 29
Download to read offline
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
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
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
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.
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
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

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

Delegateless Coordinators - take 2
Delegateless Coordinators - take 2Delegateless Coordinators - take 2
Delegateless Coordinators - take 2Tales Andrade
 
Animate Me! if you don't do it for me, do it for Chet - DroidconLondon2015
Animate Me! if you don't do it for me, do it for Chet - DroidconLondon2015Animate Me! if you don't do it for me, do it for Chet - DroidconLondon2015
Animate Me! if you don't do it for me, do it for Chet - DroidconLondon2015Mathias Seguy
 
augmented reality paper presentation
augmented reality paper presentationaugmented reality paper presentation
augmented reality paper presentationVaibhav Mehta
 
Advance ui development and design
Advance ui  development and design Advance ui  development and design
Advance ui development and design Rakesh Jha
 
Sixth sense technology
Sixth sense technologySixth sense technology
Sixth sense technologyRahul Baghla
 
Multi Touch And Gesture Event Interface And Types
Multi Touch And Gesture Event Interface And TypesMulti Touch And Gesture Event Interface And Types
Multi Touch And Gesture Event Interface And TypesEthan Cha
 
Design in motion. The new frontier of interaction design
Design in motion. The new frontier of interaction designDesign in motion. The new frontier of interaction design
Design in motion. The new frontier of interaction designAntonio De Pasquale
 
Angular.js & hammer.js - Clayton Meador & Canyon Boak
Angular.js & hammer.js - Clayton Meador & Canyon BoakAngular.js & hammer.js - Clayton Meador & Canyon Boak
Angular.js & hammer.js - Clayton Meador & Canyon Boakcmeador
 
Sixth sense technology(seminar presentation)
Sixth sense technology(seminar presentation)Sixth sense technology(seminar presentation)
Sixth sense technology(seminar presentation)guddu yadav
 
Developing Multi Touch Applications
Developing Multi Touch ApplicationsDeveloping Multi Touch Applications
Developing Multi Touch ApplicationsBrian Blanchard
 

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

Gesture Recognation
Gesture RecognationGesture Recognation
Gesture Recognation
 
Leap Motion - Aydin Akcasu
Leap Motion - Aydin AkcasuLeap Motion - Aydin Akcasu
Leap Motion - Aydin Akcasu
 
Delegateless Coordinators - take 2
Delegateless Coordinators - take 2Delegateless Coordinators - take 2
Delegateless Coordinators - take 2
 
Mobile Application Development class 005
Mobile Application Development class 005Mobile Application Development class 005
Mobile Application Development class 005
 
Animate Me! if you don't do it for me, do it for Chet - DroidconLondon2015
Animate Me! if you don't do it for me, do it for Chet - DroidconLondon2015Animate Me! if you don't do it for me, do it for Chet - DroidconLondon2015
Animate Me! if you don't do it for me, do it for Chet - DroidconLondon2015
 
augmented reality paper presentation
augmented reality paper presentationaugmented reality paper presentation
augmented reality paper presentation
 
Advance ui development and design
Advance ui  development and design Advance ui  development and design
Advance ui development and design
 
Sixth Sense Technology
Sixth Sense TechnologySixth Sense Technology
Sixth Sense Technology
 
Sixth sense technology
Sixth sense technologySixth sense technology
Sixth sense technology
 
Sixth sense technology
Sixth sense technologySixth sense technology
Sixth sense technology
 
Multi Touch And Gesture Event Interface And Types
Multi Touch And Gesture Event Interface And TypesMulti Touch And Gesture Event Interface And Types
Multi Touch And Gesture Event Interface And Types
 
virtual_chess
virtual_chessvirtual_chess
virtual_chess
 
Design in motion. The new frontier of interaction design
Design in motion. The new frontier of interaction designDesign in motion. The new frontier of interaction design
Design in motion. The new frontier of interaction design
 
Sixth sense technology
Sixth sense technologySixth sense technology
Sixth sense technology
 
Angular.js & hammer.js - Clayton Meador & Canyon Boak
Angular.js & hammer.js - Clayton Meador & Canyon BoakAngular.js & hammer.js - Clayton Meador & Canyon Boak
Angular.js & hammer.js - Clayton Meador & Canyon Boak
 
AR & VR technology
AR & VR technologyAR & VR technology
AR & VR technology
 
Sixth sense technology(seminar presentation)
Sixth sense technology(seminar presentation)Sixth sense technology(seminar presentation)
Sixth sense technology(seminar presentation)
 
researchPaper
researchPaperresearchPaper
researchPaper
 
Developing Multi Touch Applications
Developing Multi Touch ApplicationsDeveloping Multi Touch Applications
Developing Multi Touch Applications
 
Location Based Services Without the Cocoa
Location Based Services Without the CocoaLocation Based Services Without the Cocoa
Location Based Services Without the Cocoa
 

More from Massimo Bonanni

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

More from Massimo Bonanni (20)

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

Recently uploaded

Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
QMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdfQMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdfROWELL MARQUINA
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
WomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneWomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneUiPathCommunity
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...amber724300
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialJoão Esperancinha
 

Recently uploaded (20)

Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
QMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdfQMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdf
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
WomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneWomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyone
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorial
 

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
  • 5.
  • 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
  • 9.
  • 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
  • 15.
  • 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.
  • 17.
  • 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
  • 23.
  • 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