SlideShare a Scribd company logo
NUI e Biometrics in Windows 10
Andrea Sassetti
andrea.sassetti@live.it
@andreasassetti
andreasassetti.wordpres.com
Software Engineer, Siemens
Marco Dal Pino
SW Eng - Consultant
@MarcoDalPino
mobileprog.com (ENG)
mobileprog.net (ITA)
Microsoft MVP
Intel Black Belt Software Developer
Intel Realsense Innovator Realsense & IoT
about.me/marcodalpino
m.dalpino@dpcons.com
User interaction evolution
CLI
GUI
NUI
Natural User Interface
• Use movements / gestures inherent in human nature or in the actions
of every day
• Rapid functionality learning
• Can help people with disabilities to use the software
Microsoft Kinect v2
Kinect for Windows gives computers
eyes, ears. With Kinect for Windows,
businesses and developers are creating
applications that allow their customers
to interact naturally with computers by
simply gesturing and speaking.
Kinect v2 - Sensor Components
Kinect v2 - Sensor Components
Power Light
RGB Camera
IR Emitters
IR Emitters
Depth Sensor
Depth Sensor
Microphone Array
Kinect v2 - Hardware requirements
• Physical dual-core 3.1 GHz (2 logical cores per physical) or faster
• USB 3.0 port dedicated to the Kinect for Windows v2 sensor
• 2 GB of RAM
• Graphics card that supports DirectX 11
• Windows or Windows Embedded 8 or 8.1, 10
Kinect Configuration Verifier tool
http://go.microsoft.com/fwlink/?LinkID=513889
Kinect v2 - High level architecture
Kinect Drivers
Kinect Runtime
.NET
API
.NET
Apps
Native API
Native Apps
WinRT API
Windows Store Apps
C#, VB, JS, C++/CX
Physical Kinect Sensor
Kinect v2 - High level architecture
Kinect
Service
Source
Kinect
Reader
Kinect
Reader
Kinect
Reader
Application
Application
Application
Multiple Kinect-enabled applications can run simultaneously
Kinect v2 - High level architecture
PC
PC
PC
PC
HUB SERVER
Multiple connectionOne connection
Kinect v2 – Frame source
Color Depth Infrared
Body index Body Audio
Kinect v2 – Color frame source
• 1920 x 1080 array of pixel
• Different sensor than depth
• 30 fps
• Will maintain brightness and quality
by dropping to 15 fps in low-light
Kinect v2 – Depth frame source
• 512 x 424 array of pixel
• 30 fps
• Distance range 0.5 – 4.5 meters
Kinect v2 – Infrared frame source
• 512 x 424 array of pixel
• 30 fps
• Ambient light removed
• From the same physical sensor as
depth
Kinect v2 – Body index frame source
• 512 x 424 array of pixel
• Up to 6 simultaneous bodies
• 30 fps
• Same resolution as depth
Kinect v2 – Body frame source
• Frame data is a collection of Body
object each with 25 joints (each joint
has position in 3D space and
orientation)
• Up to 6 simultaneous bodies
• 30 fps
• Hand state (Open, Closed, Lasso)
• Lean
Kinect v2 – Body frame source
Kinect v2 – Audio source
• Data is audio samples captured over
a specific interval of time
• Audio is associated with an “audio
beam”
Kinect v2 – Multi frame source
• Allows to get a matched set of frames
form multiple source on a single time.
• Delivers frames at the lowest fps of
the selected sources.
Kinect v2 – Coordinate Mapper
It provides conversion between each
systems. It is possible perform single
or multiple conversion.
Name Applies to Dimension Units Range Origin
ColorSpacepoint Color 2 pixel 1920x1080 Top left
DepthSpacePoint Depth, Infrared, Body
index
2 pixel 512x424 Top left
CameraSpacePoint Body 3 meter NA Infrared / Depth camera
Kinect v2 – Application Lifecycle
KinectSensor kinectSensor = KinectSensor.GetDefault();
if (!kinectSensor.IsAvailable)
return;
if(!kinectSensor.IsOpen)
kinectSensor.Open();
// CODE HERE
kinectSensor.Close();
First step:
Add reference to Microsoft.Kinect assembly
Microsoft Kinect NuGet Packages available
Kinect v2 – Basic flow of programming
KinectSensor.GetDefault().DepthFrameSource.OpenReader().AcquireLatestFrame().CopyFrameDataToArray(frameData);
Kinect v2 – Basic flow of programming
Readers allow to access to the Kinect frame.
It is possible to read the frame via pooling:
var colorFrameReader = kinectSensor.ColorFrameSource.OpenReader();
using (var colorFrame = colorFrameReader.AcquireLatestFrame())
{
if (colorFrame == null)
return;
// CODE HERE
}
var colorFrameReader = kinectSensor.ColorFrameSource.OpenReader();
colorFrameReader.FrameArrived += OnColorFrameReader;
---
private void OnColorFrameReader(object sender, ColorFrameArrivedEventArgs e)
{
using (var colorFrame = e.FrameReference.AcquireFrame())
{
if (colorFrame == null)
return;
// CODE HERE
}
}
or by event:
Kinect v2 – Face Detection and
Alinement
Through Kinect Face it is possibile detects body faces point and expression.
Face points:
• The user's left eye point
• The user's right eye point
• The user's nose point
• The user's left corner of the mouth point
• The user's right corner of the mouth point
Each point can be visualized in color or Infrared space.
Kinect v2 – Face Expression
Face expressions:
• The user's happy facial expression
• The user's right eye is closed
• The user's left eye is closed
• The user's mouth is open
• The user's mouth has moved since the previous frame
• The user is looking at the sensor
• The user is wearing glasses
Kinect v2 – Face Detection and
Alinement
• Add reference to Microsoft.Kinect.Face assembly
• Use FaceFrameSource and FaceFrameReader classes
• Use FaceFrame class in order to get face information
Microsoft Kinect NuGet Packages available
Kinect v2 – High Definition Face
Through Kinect High Definition Face it is possibile
detects over 1000 facial points in the 3D space.
• 1347 facial points
• 2340 triangles
• Hair color
• Body color
• Face 3D Model
Not sufficiently documented
Many API are available only in C++
Kinect v2 – High Definition Face
• Add reference to Microsoft.Kinect.Face assembly
• Use HighDefinitionFaceFrameSource and HighDefinitionFaceFrameReader classes
• Use HighDefinitionFaceFrame class in order to get high definition face information
Microsoft Kinect NuGet Packages available
Kinect v2 – Hand Pointer Gestures
Engagement
Press Panning / ZoomTargeting
Kinect v2 – Hand Pointer Gestures -
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
Kinect v2 – Hand Pointer Gestures -
WPF
• Add Reference to Microsoft.Kinect.Wpf.Controls
• Add KinectRegion as container for your Windows Control
• Run it!
Kinect v2 – Hand Pointer Gestures –
Store App
• Add Reference to Microsoft.Kinect.Xaml.Controls
• Enable Microphone + Camera capabilities in App Manifest
• Add KinectRegion as container for rootFrame in App.xaml.cs
• Run it!
Demo
Hand Pointer Gestures
and Frame source
Kinect v2 – Recording and Playback
Kinect Studio
• Record sample clip of data from the Kinect v2 device.
• Playback a recorded sample clip of data
• Play data from a live stream directly from a connected Kinect v2 Device
Kinect v2 – Visual Studio Visualizer
Visualizers are components of the Visual
Studio debugger user interface. A visualizer
creates a dialog box or another interface to
display a variable or object in a manner
that is appropriate to its data type.
It is possible to create custom visualizer just
implementing some .NET interfaces.
Kinect v2 – Fusion
Microsoft KinectFusion provides 3D
object scanning and model creation
using a Kinect for Windows sensor. The
user can paint a scene with the Kinect
camera and simultaneously see, and
interact with, a detailed 3D model of the
scene.
Kinect v2 – Custom gesture / pose
Inside Kinect v2 SDK it is available a tool that allow you to create
custom gesture.
Visual Gesture Builder
It is possible define discrete or continuous gesture using Machine
Learning technology
• Adaptive Boosting (AdaBoost) Trigger: Determine if player is
performing a gesture
• Random Forest Regression (RFR) Progress: Determine the
progress of the gesture performed by the player
Kinect v2 – Custom gesture / pose
Visual Gesture Builder
• Organize data using Project/Solution
• Give meaning to data by tagging gesture
• Build gesture using Machine Learning technology
• Analyze & Test the result of the gesture detection
• Live preview of result
Kinect v2 – Visual Gesture Builder
Basic steps for using Visual Gesture Builder:
1. Create a solution.
2. Create one or more projects.
3. Add a set of clip files to each project.
4. Tag the frames in the clip files associated
with each gesture.
5. Build a training gesture database.
6. Use the built gesture database into your
application.
Kinect v2 – Custom gesture/pose
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
ML with Visual Gesture Builder
• 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
Demo
Custom Gestures
Kinect v2 – Other Framework
Kinect v2 – Other Framework
Computer Vision APIs
Face APIs
Kinect v2 – Official Resources
• General Info & Blog
http://kinectforwindows.com
• Developer Forums
http://aka.ms/k4wv2forum
• Download Kinect v2 SDK
http://aka.ms/k4wv2sdk
• Twitter
@KinectWindows
Intel Realsense Camera & SDK
Nui e biometrics in windows 10
Intel® RealSense™ 3D Camera F200
F200 Camera Specs
Spec Color Depth (IR)
Resolution 1080p VGA
Aspect Ratio 16:9 4:3
Frame Rate 30/60/120 FPS
FOV (D X V X H) 77º x 43º x 70º 90º x 59º x 73º
Other
Effective Range 0.2 – 1.2 m
Environment Indoor/Outdoor
Intel Information Technology
51
Where to find the Intel® RealSense™ technology?
Intel® RealSense™ 3D Cameras
Intel® RealSense™ 3D
Camera (Front F200)
Intel® RealSense™
Snapshot
Intel® RealSense™ 3D
Camera (Rear R200)
Nui e biometrics in windows 10
Intel Information Technology
• Free tools and APIs to develop
apps with NUI in a simple way
• Focus where is important: the
content
• Acessible for beginners and
extensible for experts
Intel Information Technology
Hands -
Tracking and Joints
• 22 Joints
• Detects Body Side
• Tracks X, Y and Z positions from
detected hands
Hands – Gestures and Poses
Intel Information Technology
Face – Tracking
• Tracking ( 4 faces)
• Landmarks Tracking (1 Face)
• X, Y, Width and Height
• Average Depth
Intel Information Technology
Face – Landmarks
• 78 landmark points:
• Nose
• Mouth
• Jaw
• Eyes
• Eyebrows
Face – Pose
Face – Expressions
Face – Emotions (Experimental)
Speech – Recognition
Switch
Weapon!
Speech – Synthesis
Your Score is: Five
Hundred and Sixty
Five!
Segmentation
Object Tracking
2D 3D
3D Scanning
Microsoft Passport e Windows Hello
Going beyond passwords
Problems:
• Passwords are hard to remember
• Passwords are re-used -> server breach attacks
Microsoft passport solution:
• User has to remember only one PIN or can use
Windows Hello
• No secret is stored on servers -> Two factor
authentication with asymmetric keys
Windows 10 and Microsoft Passport Simple for
Developer
• Reduces the cost associated with password
compromise and reset
• Native API support for strong authentication via
Universal Windows Platform
• JavaScript API support for browsers coming later this
year.
Windows Hello: Sensor Support
• Fingerprint
• All current fingerprint capable devices are supported
• Face
• All current (f200) and future Intel® RealSense™ are supported for Windows Hello face
authentication
• All devices that include an IR sensor that meets Microsoft sensor spec
• Iris
• A selection of devices will be arriving to market within the next 12 months
• More details on sensor requirements and support coming soon
Windows Hello
• Windows 10 support three type of biometric Auth:
• Fingerprint
• Face
• Iris
• All of three provide gesture and action recommended on the
hardware supported
• Integrated with the Windows Biometric Framework
• use the same scenary and experience
• Share the same language for use and definition
Microsoft Passport: Provisioning
Two Step
Verification
Create Microsoft
Passport
Register Public
key with Server
• KeyCredentialRetrievalResult kcResult = await
• KeyCredentialManager.RequestCreateAsync(accountID,
KeyCredentialCreationOption.FailIfExists);
Microsoft Passport: Usage
Open Microsoft Passport
Sign challenge from Server
with Microsoft Passport
Send digital signature to
server
• KeyCredentialOperationResult kcOpResult = await
kcResult.Credential.RequestSignAsync(serverChallenge);
Microsoft Passport: Deletion
Open Microsoft
Passport
Delete Passport
Delete Public
Key on Server
• KeyCredentialRetrievalResult kcResult = await
KeyCredentialManager.OpenAsync(accountID);
DEMO SharpSenses
Reference
• Build Session
• Microsoft Passport and Windows Hello: Moving Beyond Passwords and Credential Theft
• https://channel9.msdn.com/events/Build/2015/2-639
• API
• Windows.Security.Credentials namespace
• Https://msdn.microsoft.com/en-us/library/windows/apps/windows.security.credentials.aspx
Q&A
Thank you!

More Related Content

PDF
Kinect v2 Introduction and Tutorial
PPTX
Develop Store Apps with Kinect for Windows v2
PPTX
Kinect2 hands on
PDF
Programming with kinect v2
PDF
Human interface guidelines_v1.8.0
PDF
Kinect for Windows SDK - Programming Guide
PPTX
Visug: Say Hello to my little friend: a session on Kinect
Kinect v2 Introduction and Tutorial
Develop Store Apps with Kinect for Windows v2
Kinect2 hands on
Programming with kinect v2
Human interface guidelines_v1.8.0
Kinect for Windows SDK - Programming Guide
Visug: Say Hello to my little friend: a session on Kinect

What's hot (20)

PDF
Kinect Hacks for Dummies
PDF
Kinect Sensors as Natural User Interfaces
PDF
Develop store apps with kinect for windows v2
PDF
How Augment your Reality: Different perspective on the Reality / Virtuality C...
PPTX
Kinectic vision looking deep into depth
PDF
Introduction to development
PDF
Introduction to Kinect v2
PPTX
Dev09 – la battaglia del touchless
PPTX
Azure Digital Twins
PDF
Arbusta Empowering Women & Youth Through Impact Sourcing
PPTX
Azure Digital Twins
PPTX
The power of Kinect in 10 minutes
PPTX
Azure Digital Twins
PPTX
Kinect connect
PDF
4 track kinect@Bicocca - skeletal tracking
PPTX
Kinect for Xbox 360: the world's first viral 3D technology
KEY
Getmoving as3kinect
PDF
Using intel's real sense to create games with natural user interfaces justi...
PPTX
Communitydays2015
PDF
Adaptive Neighbor Discovery for Mobile and Low Power Wireless Sensor Networks
Kinect Hacks for Dummies
Kinect Sensors as Natural User Interfaces
Develop store apps with kinect for windows v2
How Augment your Reality: Different perspective on the Reality / Virtuality C...
Kinectic vision looking deep into depth
Introduction to development
Introduction to Kinect v2
Dev09 – la battaglia del touchless
Azure Digital Twins
Arbusta Empowering Women & Youth Through Impact Sourcing
Azure Digital Twins
The power of Kinect in 10 minutes
Azure Digital Twins
Kinect connect
4 track kinect@Bicocca - skeletal tracking
Kinect for Xbox 360: the world's first viral 3D technology
Getmoving as3kinect
Using intel's real sense to create games with natural user interfaces justi...
Communitydays2015
Adaptive Neighbor Discovery for Mobile and Low Power Wireless Sensor Networks
Ad

Viewers also liked (13)

PDF
Intel real sense handson
PDF
[PDF] the molecular control toolkit - Controlling 3D molecular graphics via g...
PDF
第2回名古屋CV・PRML勉強会 「Kinectの導入」
PDF
Glanceable NAVI @HMCN
PPTX
HMCNスライド(存在感を伝達する対話システム)
PPTX
ViEW2013 「SS-01 画像センサと応用事例の紹介」
PDF
Leap Motion - 1st Review
PDF
KinectやRealSenseの概要とさまざまな使い方
PDF
HMCN - センサー&デバイスでできる楽しい事例紹介
PDF
Hiroshima Motion Control Network 12, September, 2015
PDF
2 track kinect@Bicocca - hardware e funzinamento
PDF
第38回 名古屋CV・PRML勉強会 「Kinect v2本の紹介とPCLの概要」
PPTX
Kinect
Intel real sense handson
[PDF] the molecular control toolkit - Controlling 3D molecular graphics via g...
第2回名古屋CV・PRML勉強会 「Kinectの導入」
Glanceable NAVI @HMCN
HMCNスライド(存在感を伝達する対話システム)
ViEW2013 「SS-01 画像センサと応用事例の紹介」
Leap Motion - 1st Review
KinectやRealSenseの概要とさまざまな使い方
HMCN - センサー&デバイスでできる楽しい事例紹介
Hiroshima Motion Control Network 12, September, 2015
2 track kinect@Bicocca - hardware e funzinamento
第38回 名古屋CV・PRML勉強会 「Kinect v2本の紹介とPCLの概要」
Kinect
Ad

Similar to Nui e biometrics in windows 10 (20)

PPTX
Writing applications using the Microsoft Kinect Sensor
PPT
Kinect Arabic Interfaced Drawing Application
PPTX
Natural User Interface Microsoft Kinect and Surface Computing
PPTX
GWAB - Kinecting the Cloud.
PDF
Jancke kinect programming
PPTX
Sensor based interaction
PPT
Using the Kinect for Fun and Profit by Tam Hanna
PPTX
Kinect for Windows
PPTX
March.2012.KinectForWindows
PDF
Introduction to Kinect - Update v 1.8
PPTX
Lidnug Presentation - Kinect - The How, Were and When of developing with it
PPTX
Community Day 2013 - The Power of Kinect
PPTX
Programming with RealSense using .NET
PPT
Kinect krishna kumar-itkan
PPT
Kinect krishna kumar-itkan
PPTX
Kinect sensor
PDF
Gam02 kinect1, kinect2
PDF
Xbox One Kinect
PPTX
Becoming a kinect hacker innovator v2
PPTX
Odessa .NET User Group - Kinect v2
Writing applications using the Microsoft Kinect Sensor
Kinect Arabic Interfaced Drawing Application
Natural User Interface Microsoft Kinect and Surface Computing
GWAB - Kinecting the Cloud.
Jancke kinect programming
Sensor based interaction
Using the Kinect for Fun and Profit by Tam Hanna
Kinect for Windows
March.2012.KinectForWindows
Introduction to Kinect - Update v 1.8
Lidnug Presentation - Kinect - The How, Were and When of developing with it
Community Day 2013 - The Power of Kinect
Programming with RealSense using .NET
Kinect krishna kumar-itkan
Kinect krishna kumar-itkan
Kinect sensor
Gam02 kinect1, kinect2
Xbox One Kinect
Becoming a kinect hacker innovator v2
Odessa .NET User Group - Kinect v2

Recently uploaded (20)

PPTX
Introduction to Artificial Intelligence
PDF
top salesforce developer skills in 2025.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Nekopoi APK 2025 free lastest update
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
System and Network Administration Chapter 2
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
medical staffing services at VALiNTRY
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
Introduction to Artificial Intelligence
top salesforce developer skills in 2025.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Nekopoi APK 2025 free lastest update
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Upgrade and Innovation Strategies for SAP ERP Customers
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
How Creative Agencies Leverage Project Management Software.pdf
PTS Company Brochure 2025 (1).pdf.......
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
System and Network Administration Chapter 2
Navsoft: AI-Powered Business Solutions & Custom Software Development
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
How to Choose the Right IT Partner for Your Business in Malaysia
Internet Downloader Manager (IDM) Crack 6.42 Build 41
medical staffing services at VALiNTRY
Which alternative to Crystal Reports is best for small or large businesses.pdf

Nui e biometrics in windows 10

  • 1. NUI e Biometrics in Windows 10
  • 3. Marco Dal Pino SW Eng - Consultant @MarcoDalPino mobileprog.com (ENG) mobileprog.net (ITA) Microsoft MVP Intel Black Belt Software Developer Intel Realsense Innovator Realsense & IoT about.me/marcodalpino m.dalpino@dpcons.com
  • 5. Natural User Interface • Use movements / gestures inherent in human nature or in the actions of every day • Rapid functionality learning • Can help people with disabilities to use the software
  • 6. Microsoft Kinect v2 Kinect for Windows gives computers eyes, ears. With Kinect for Windows, businesses and developers are creating applications that allow their customers to interact naturally with computers by simply gesturing and speaking.
  • 7. Kinect v2 - Sensor Components
  • 8. Kinect v2 - Sensor Components Power Light RGB Camera IR Emitters IR Emitters Depth Sensor Depth Sensor Microphone Array
  • 9. Kinect v2 - Hardware requirements • Physical dual-core 3.1 GHz (2 logical cores per physical) or faster • USB 3.0 port dedicated to the Kinect for Windows v2 sensor • 2 GB of RAM • Graphics card that supports DirectX 11 • Windows or Windows Embedded 8 or 8.1, 10 Kinect Configuration Verifier tool http://go.microsoft.com/fwlink/?LinkID=513889
  • 10. Kinect v2 - High level architecture Kinect Drivers Kinect Runtime .NET API .NET Apps Native API Native Apps WinRT API Windows Store Apps C#, VB, JS, C++/CX Physical Kinect Sensor
  • 11. Kinect v2 - High level architecture Kinect Service Source Kinect Reader Kinect Reader Kinect Reader Application Application Application Multiple Kinect-enabled applications can run simultaneously
  • 12. Kinect v2 - High level architecture PC PC PC PC HUB SERVER Multiple connectionOne connection
  • 13. Kinect v2 – Frame source Color Depth Infrared Body index Body Audio
  • 14. Kinect v2 – Color frame source • 1920 x 1080 array of pixel • Different sensor than depth • 30 fps • Will maintain brightness and quality by dropping to 15 fps in low-light
  • 15. Kinect v2 – Depth frame source • 512 x 424 array of pixel • 30 fps • Distance range 0.5 – 4.5 meters
  • 16. Kinect v2 – Infrared frame source • 512 x 424 array of pixel • 30 fps • Ambient light removed • From the same physical sensor as depth
  • 17. Kinect v2 – Body index frame source • 512 x 424 array of pixel • Up to 6 simultaneous bodies • 30 fps • Same resolution as depth
  • 18. Kinect v2 – Body frame source • Frame data is a collection of Body object each with 25 joints (each joint has position in 3D space and orientation) • Up to 6 simultaneous bodies • 30 fps • Hand state (Open, Closed, Lasso) • Lean
  • 19. Kinect v2 – Body frame source
  • 20. Kinect v2 – Audio source • Data is audio samples captured over a specific interval of time • Audio is associated with an “audio beam”
  • 21. Kinect v2 – Multi frame source • Allows to get a matched set of frames form multiple source on a single time. • Delivers frames at the lowest fps of the selected sources.
  • 22. Kinect v2 – Coordinate Mapper It provides conversion between each systems. It is possible perform single or multiple conversion. Name Applies to Dimension Units Range Origin ColorSpacepoint Color 2 pixel 1920x1080 Top left DepthSpacePoint Depth, Infrared, Body index 2 pixel 512x424 Top left CameraSpacePoint Body 3 meter NA Infrared / Depth camera
  • 23. Kinect v2 – Application Lifecycle KinectSensor kinectSensor = KinectSensor.GetDefault(); if (!kinectSensor.IsAvailable) return; if(!kinectSensor.IsOpen) kinectSensor.Open(); // CODE HERE kinectSensor.Close(); First step: Add reference to Microsoft.Kinect assembly Microsoft Kinect NuGet Packages available
  • 24. Kinect v2 – Basic flow of programming KinectSensor.GetDefault().DepthFrameSource.OpenReader().AcquireLatestFrame().CopyFrameDataToArray(frameData);
  • 25. Kinect v2 – Basic flow of programming Readers allow to access to the Kinect frame. It is possible to read the frame via pooling: var colorFrameReader = kinectSensor.ColorFrameSource.OpenReader(); using (var colorFrame = colorFrameReader.AcquireLatestFrame()) { if (colorFrame == null) return; // CODE HERE } var colorFrameReader = kinectSensor.ColorFrameSource.OpenReader(); colorFrameReader.FrameArrived += OnColorFrameReader; --- private void OnColorFrameReader(object sender, ColorFrameArrivedEventArgs e) { using (var colorFrame = e.FrameReference.AcquireFrame()) { if (colorFrame == null) return; // CODE HERE } } or by event:
  • 26. Kinect v2 – Face Detection and Alinement Through Kinect Face it is possibile detects body faces point and expression. Face points: • The user's left eye point • The user's right eye point • The user's nose point • The user's left corner of the mouth point • The user's right corner of the mouth point Each point can be visualized in color or Infrared space.
  • 27. Kinect v2 – Face Expression Face expressions: • The user's happy facial expression • The user's right eye is closed • The user's left eye is closed • The user's mouth is open • The user's mouth has moved since the previous frame • The user is looking at the sensor • The user is wearing glasses
  • 28. Kinect v2 – Face Detection and Alinement • Add reference to Microsoft.Kinect.Face assembly • Use FaceFrameSource and FaceFrameReader classes • Use FaceFrame class in order to get face information Microsoft Kinect NuGet Packages available
  • 29. Kinect v2 – High Definition Face Through Kinect High Definition Face it is possibile detects over 1000 facial points in the 3D space. • 1347 facial points • 2340 triangles • Hair color • Body color • Face 3D Model Not sufficiently documented Many API are available only in C++
  • 30. Kinect v2 – High Definition Face • Add reference to Microsoft.Kinect.Face assembly • Use HighDefinitionFaceFrameSource and HighDefinitionFaceFrameReader classes • Use HighDefinitionFaceFrame class in order to get high definition face information Microsoft Kinect NuGet Packages available
  • 31. Kinect v2 – Hand Pointer Gestures Engagement Press Panning / ZoomTargeting
  • 32. Kinect v2 – Hand Pointer Gestures - 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
  • 33. Kinect v2 – Hand Pointer Gestures - WPF • Add Reference to Microsoft.Kinect.Wpf.Controls • Add KinectRegion as container for your Windows Control • Run it!
  • 34. Kinect v2 – Hand Pointer Gestures – Store App • Add Reference to Microsoft.Kinect.Xaml.Controls • Enable Microphone + Camera capabilities in App Manifest • Add KinectRegion as container for rootFrame in App.xaml.cs • Run it!
  • 36. Kinect v2 – Recording and Playback Kinect Studio • Record sample clip of data from the Kinect v2 device. • Playback a recorded sample clip of data • Play data from a live stream directly from a connected Kinect v2 Device
  • 37. Kinect v2 – Visual Studio Visualizer Visualizers are components of the Visual Studio debugger user interface. A visualizer creates a dialog box or another interface to display a variable or object in a manner that is appropriate to its data type. It is possible to create custom visualizer just implementing some .NET interfaces.
  • 38. Kinect v2 – Fusion Microsoft KinectFusion provides 3D object scanning and model creation using a Kinect for Windows sensor. The user can paint a scene with the Kinect camera and simultaneously see, and interact with, a detailed 3D model of the scene.
  • 39. Kinect v2 – Custom gesture / pose Inside Kinect v2 SDK it is available a tool that allow you to create custom gesture. Visual Gesture Builder It is possible define discrete or continuous gesture using Machine Learning technology • Adaptive Boosting (AdaBoost) Trigger: Determine if player is performing a gesture • Random Forest Regression (RFR) Progress: Determine the progress of the gesture performed by the player
  • 40. Kinect v2 – Custom gesture / pose Visual Gesture Builder • Organize data using Project/Solution • Give meaning to data by tagging gesture • Build gesture using Machine Learning technology • Analyze & Test the result of the gesture detection • Live preview of result
  • 41. Kinect v2 – Visual Gesture Builder Basic steps for using Visual Gesture Builder: 1. Create a solution. 2. Create one or more projects. 3. Add a set of clip files to each project. 4. Tag the frames in the clip files associated with each gesture. 5. Build a training gesture database. 6. Use the built gesture database into your application.
  • 42. Kinect v2 – Custom gesture/pose 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 ML with Visual Gesture Builder • 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
  • 44. Kinect v2 – Other Framework
  • 45. Kinect v2 – Other Framework Computer Vision APIs Face APIs
  • 46. Kinect v2 – Official Resources • General Info & Blog http://kinectforwindows.com • Developer Forums http://aka.ms/k4wv2forum • Download Kinect v2 SDK http://aka.ms/k4wv2sdk • Twitter @KinectWindows
  • 49. Intel® RealSense™ 3D Camera F200
  • 50. F200 Camera Specs Spec Color Depth (IR) Resolution 1080p VGA Aspect Ratio 16:9 4:3 Frame Rate 30/60/120 FPS FOV (D X V X H) 77º x 43º x 70º 90º x 59º x 73º Other Effective Range 0.2 – 1.2 m Environment Indoor/Outdoor
  • 51. Intel Information Technology 51 Where to find the Intel® RealSense™ technology?
  • 52. Intel® RealSense™ 3D Cameras Intel® RealSense™ 3D Camera (Front F200) Intel® RealSense™ Snapshot Intel® RealSense™ 3D Camera (Rear R200)
  • 54. Intel Information Technology • Free tools and APIs to develop apps with NUI in a simple way • Focus where is important: the content • Acessible for beginners and extensible for experts
  • 55. Intel Information Technology Hands - Tracking and Joints • 22 Joints • Detects Body Side • Tracks X, Y and Z positions from detected hands
  • 56. Hands – Gestures and Poses
  • 57. Intel Information Technology Face – Tracking • Tracking ( 4 faces) • Landmarks Tracking (1 Face) • X, Y, Width and Height • Average Depth
  • 58. Intel Information Technology Face – Landmarks • 78 landmark points: • Nose • Mouth • Jaw • Eyes • Eyebrows
  • 61. Face – Emotions (Experimental)
  • 63. Speech – Synthesis Your Score is: Five Hundred and Sixty Five!
  • 67. Microsoft Passport e Windows Hello
  • 68. Going beyond passwords Problems: • Passwords are hard to remember • Passwords are re-used -> server breach attacks Microsoft passport solution: • User has to remember only one PIN or can use Windows Hello • No secret is stored on servers -> Two factor authentication with asymmetric keys
  • 69. Windows 10 and Microsoft Passport Simple for Developer • Reduces the cost associated with password compromise and reset • Native API support for strong authentication via Universal Windows Platform • JavaScript API support for browsers coming later this year.
  • 70. Windows Hello: Sensor Support • Fingerprint • All current fingerprint capable devices are supported • Face • All current (f200) and future Intel® RealSense™ are supported for Windows Hello face authentication • All devices that include an IR sensor that meets Microsoft sensor spec • Iris • A selection of devices will be arriving to market within the next 12 months • More details on sensor requirements and support coming soon
  • 71. Windows Hello • Windows 10 support three type of biometric Auth: • Fingerprint • Face • Iris • All of three provide gesture and action recommended on the hardware supported • Integrated with the Windows Biometric Framework • use the same scenary and experience • Share the same language for use and definition
  • 72. Microsoft Passport: Provisioning Two Step Verification Create Microsoft Passport Register Public key with Server • KeyCredentialRetrievalResult kcResult = await • KeyCredentialManager.RequestCreateAsync(accountID, KeyCredentialCreationOption.FailIfExists);
  • 73. Microsoft Passport: Usage Open Microsoft Passport Sign challenge from Server with Microsoft Passport Send digital signature to server • KeyCredentialOperationResult kcOpResult = await kcResult.Credential.RequestSignAsync(serverChallenge);
  • 74. Microsoft Passport: Deletion Open Microsoft Passport Delete Passport Delete Public Key on Server • KeyCredentialRetrievalResult kcResult = await KeyCredentialManager.OpenAsync(accountID);
  • 76. Reference • Build Session • Microsoft Passport and Windows Hello: Moving Beyond Passwords and Credential Theft • https://channel9.msdn.com/events/Build/2015/2-639 • API • Windows.Security.Credentials namespace • Https://msdn.microsoft.com/en-us/library/windows/apps/windows.security.credentials.aspx
  • 77. Q&A

Editor's Notes

  • #49: Explorar o público (colocar essas perguntas na pesquisa final) Quem conhece RealSense? Quem desenvolve utilizando o RealSense SDK versão 2014? Quem desenvolve outros SDKs que trabalham com este tipo de tecnologia? (Leap Motion, Kinect, etc)
  • #50: A principal câmera que temos no momento é a F200 que vocês podem ver nessa foto.
  • #51: Color Camera Resolution: 1080p@30FPS (FHD) Active Pixels: 1920x1080 (2M) Aspect Ratio: 16:9 Frame Rate: 30/60/120 FPS Field of View: 77º x 43º x 70º (Cone) (D x V x H) Color Formats: YUV4:2:2 (Skype/Lync Modes**) Depth (IR) Camera Resolution: 640x480@60FPS (VGA), HVGA@120FPS 640x480@120FPS (IR) Active Pixels: 640x480(VGA) Aspect Ratio: 4:3 Frame Rate: 30/60/120 FPS (Depth) 120FPS (IR) Field of View: 90º x 59º x 73º (Cone) IR Projector FOV: N/A x 56º x 72º (Pyramid) Color Formats: N/A
  • #52: Onde está o RealSense? Até o ano passado estivemos trabalhando com o ecosistema para distibuir kits de desenvolvimento e garantir que desenvolvedores como vocês começassem a criar usos bacanas para essa tecnologia. E agora estamos trabalhando para espalhar o RealSense por vários devices junto com vários parceiros do ecosistema para que os primeiros devices cheguem ao mercado entre 2014 e 2015. Inclusive alguns já foram anunciados na CES: mostram alguns deles.
  • #53: Basicamente trabalhamos com duas partes: A Intel RealSense 3D Camera Intel RealSense SDK Mas além disso estamos trabalhando em duas câmeras adicionais para ampliar os modelos de uso e possibilidade de integração, e teremos: R200 Snapshot: camera mais simples com foco em telefones e tablets e uso mais casual. Trabalha com pós processamento das imagens depois da captura. Sim é a camera que esta no tablet da Dell. R200: a F200 é uma camera com objetivo de capturar interações com o usuário (Front or User Facing). Já a R200 é conhecida como World Facing camera e tem a proposta de capturar informações sobre o ambiente onde o device esta inserido. F200: Interações naturais, imersivas, colaboração, jogos, aprendizagem e scaneamento 3D Snapshot: Medições de distância, foco e cor, filtros de movimento R200: Realidade Aumentada, criação de conteúdo, scaneamento de objetos
  • #54: Explorar o público (colocar essas perguntas na pesquisa final) Quem conhece RealSense? Quem desenvolve utilizando o RealSense SDK versão 2014? Quem desenvolve outros SDKs que trabalham com este tipo de tecnologia? (Leap Motion, Kinect, etc)
  • #55: APIs e ferramentas para implementação de NUI Acessível para iniciantes e extensível para experts Foco do app aonde mais importa: conteúdo
  • #56: Arrumar fundo azul da imagem ** Reference Links: https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_programming_guide_gesture.html https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_programming_guide_gesture.html https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_general_procedure_2.html https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_hand_calibration_data.html https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_alternative_hand_tracking_solu.html Em Rastreamento e Pontos, podemos colher os dados de cada um dos 22 pontos, sabendo também qual o lado do corpo (esquerda ou direira) pertencem.
  • #57: Reference Links: https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_pose_and_gesture_recognition.html https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_gesture_interaction_guide.html ** ERRO NAS IMAGENS ** TAP GESTURE Aqui observamos os gestos que compõem a RealSense SDK: SpreadFingers ou Big5, gesto estático, o mais simples identificando uma mão aberta; V-Sign, ou mais conhecido V de vitória. Também estático; Tap, representa um gesto dinâmico de pressionar; Wave, gesto dinâmico que representa para nós um “tchau”;
  • #58: TENTAR ARRUMAR FUNDO AZUL* https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_general_procedure_face.html https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_general_procedure_face.html https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_face_location_data.html Ilustração da detecção de rostos. No máximo 4 rostos podem ser detectados ao mesmo tempo. Apenas 1 desses 4 podem ter todos os pontos do rosto rastreados (landmarks). Mostrar Implementação
  • #59: TENTAR ARRUMAR FUNDO AZUL** https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_face_landmark_data.html Ao todo podem ser detectados 78 pontos no rosto, dividindo-se nos seguintes grupos: Nariz; Boca; Mandíbula; Olho (esquerdo e direito); Sombrancelha (esquerda e direita). Mostrar Implementação
  • #60: Tentar arrumar fundo azul **** https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_face_pose_data.html Ilustração dos ângulos X,Y,Z da cabeça: Pitch (y), para cima e para baixo; Yaw (x), olhar para esquerda ou direita; Roll (z), movimentar cabeça para esquerda ou para direita, mantendo X e Y. ** melhorar descrição... Mostrar Implementação
  • #61: https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_facial_expression_data.html Expressões Faciais; Em uma forma geral conseguimos captar, através do módulo Face, 8 expressões faciais (com a intensidade aplicada): Sorriso; Boca aberta; Beijo (?), Duck face :^ Olho fechado (esquerdo e direito); Movimento das pupilas (esquerda,direita, cima, baixo) de cada olho; Sombrancelha levantada (esquerda e direita); Sombrancelha abaixada (?) (esquerda e direita); Mostrar implementação...
  • #62: https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_emotion_detection_via_senseman.html Apesar de ainda experimental, implementamos um sample utilizando o módulo de emoções. OBS: ele fica separado do módulo Face. Baseando nas expressões detectadas, o algoritmo tenta prever as emoçõs do usuário, apresentando a intensidade de cada uma. 6 emoções podem ser detectadas: Irritado (ou Raiva); Descontente; Com medo; Alegre; Triste; Surpreso. Mostrar implementação...
  • #63: Reference links: https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_speech_recognition_procedure.html https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_command_control_and_dictation.html https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_handle_recognition_events.html https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_about_audio_recording_level.html https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_about_confidence_level.html Neste modo, dizemos quais os comandos podem ser pronunciados, fazendo então um filtro para o algoritmo de detecção. Um exemplo de uso seria o comando “play” para tocar uma música na sua aplicação.
  • #64: https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_speech_synthesis.html Basicamente um text-to-speech. Definimos o texto a ser falado e o módulo encarrega-se de reproduzir através do AudioManager instanciado.
  • #65: https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_user_segmentation.html O módulo de segmentação encarrega-se de gerar as imagens removendo boa parte do background. Feita a remoção, podemos adicionar o fundo que queremos via código.
  • #66: Reference Links: https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_object_tracking.html https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_object_tracking_via_sense_manager.html https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_configuration_and_tracking_dat.html https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_the_metaio_toolbox.html Temos dois modos de rastreamento de objetos: 2d e 3d Iremos mostrar uma implementação do Object Tracking 2d. Passamos uma imagem/foto do objeto (no caso uma tag), carregamos nas configurações do módulo e o mesmo se encarrega de rastrear. Devemos lembrar que, para o reconhecimento de objetos (3d ou 2d), devemos antes de tudo calibrar a câmera (podemos mostrar como fazer isso, mas depende do tempo que tivermos);
  • #67: Reference Links: https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_object_tracking.html https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_object_tracking_via_sense_manager.html https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_configuration_and_tracking_dat.html https://software.intel.com/sites/landingpage/realsense/camera-sdk/2014gold/documentation/html/manuals_the_metaio_toolbox.html Temos dois modos de rastreamento de objetos: 2d e 3d Iremos mostrar uma implementação do Object Tracking 2d. Passamos uma imagem/foto do objeto (no caso uma tag), carregamos nas configurações do módulo e o mesmo se encarrega de rastrear. Devemos lembrar que, para o reconhecimento de objetos (3d ou 2d), devemos antes de tudo calibrar a câmera (podemos mostrar como fazer isso, mas depende do tempo que tivermos);
  • #79: Colocar contatos: Carrara, Felipe e João Pedro