SlideShare une entreprise Scribd logo
1  sur  67
Télécharger pour lire hors ligne
smart room gesture control using kinect
skeletal data
Diploma Thesis Presentation
Giwrgos Paraskevopoulos
10 July 2016
School of Electrical and Computer Engineering
National Technical University of Athens
Institute of Informatics and Telecommunications
NCSR Demokritos
goals of this work
• Build a simple and intuitive Natural User Interface for a smart
conference room.
• Use the Kinect skeletal information to devise some novel and
accurate techniques for pose and gesture recognition focused
on real-time systems.
• Create efficient implementations of the devised algorithms as
microservices.
• Demonstrate how Machine to Machine communication can be
used to compose these microservices into non trivial
applications for the Internet of Things ecosystem.
• Integrate our work into the Synaisthisi platform.
2
demo time
Demo Link
3
contents
1. Pose Detection
2. Gesture Recognition
3. Use Case: Smart Room Control
4. Conclusions and Future Work
5. Backup Slides
4
pose detection
problem definition
• A pose is the temporary suspension of the animation of the
body joints in a discrete configuration.
• Pose detection is the problem of automatically classifying a
pose.
• Poses can be used as control signals
6
assumptions
• Sufficient room lighting conditions for the operation of the
Kinect sensor
• User is positioned inside the operating area of the Kinect
sensor and is facing the sensor
• Predefined set of target poses
7
design prerequisites
Detection is
• real-time
• invariant to the user position and distance from the camera
• invariant to the user physical characteristics (height, weight etc.)
• able to support multiple users (a limit of 2 is imposed by the
Kinect sensor)
8
the proposed algorithm
• Template matching to a set of geometric features
• Poses are predefined templates
• We compare the current feature vector to the template, and if it
is within a predefined error margin the pose is recognized
Simple, fast and performs well in real world scenarios.
9
The Microsoft Kinect SDK
data streams
Color Stream Depth Stream Skeleton Stream
11
skeleton joints
• A total of 20 inferred joints
• Organized in a hierarchical structure (we make use of this later)
Shoulder
Left
Hip Center
Elbow Left
Wrist Left
Hip Left
Hand Left
Knee RightKnee Left
Shoulder
Right
Elbow Right
Wrist Right
Hand Right
Hip Right
Shoulder
Center
Head
Skeletal Joints
HipCenter
Hip Right
Knee Right
Ankle Right
Foo tRight
Hip Left
Knee Left
Ankle Left
Foot Left
Spine
Shoulder Center
Shoulder Right
Elbow Right
Wrist Right
Hand Right
HeadShoulder Left
Elbow Left
Wrist Left
Hand Left
Joints in a tree structure
12
The Algorithm
geometric features
• Make use of the joints hierarchical structure to compute the
angles between each parent and child joint.
• This single feature provides by default the position and depth
invariance and is enough to classify a large set of poses.
14
feature calculation
B
c
C
a
A
b
The triangle that is formed between the father joint A, the child joint B and
the point (A.x, 0)
Using the law of cosines, we calculate the ∠ACB as
C = cos−1 a2
+ b2
− c2
2ab
(1)
15
example pose template
<?xml version=”1.0” encoding=”utf−8” ?>
<Pose id=”HANDSAPART”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema−instance”
xsi:schemaLocation=”urn:PoseRules PoseRules.xsd”>
<DisplayName>Jack I’m Flying</DisplayName>
<AngleConstraints units=”degrees”>
<ElbowLeft>
<Desired>180</Desired>
<Deviation>15</Deviation>
</ElbowLeft>
<HandLeft>
<Desired>180</Desired>
<Deviation>15</Deviation>
</HandLeft>
<ElbowRight>
<Desired>0</Desired>
<Deviation>15</Deviation>
</ElbowRight>
<HandRight>
<Desired>0</Desired>
<Deviation>15</Deviation>
</HandRight>
</AngleConstraints>
</Pose>
16
gesture recognition
what is a gesture?
• A continuous stream of poses
• The transfer of a subset of joints from point A to B, using a
vaguely predefined trajectory
18
what is a gesture?
• A continuous stream of poses
• The transfer of a subset of joints from point A to B, using a
vaguely predefined trajectory
19
gesture example
Swipe In (Right Hand)
Swipe Up (Right Hand)
20
the proposed approach
• Extract a set of low level geometric features
• Evaluate the performance (classification accuracy and time) of a
set of well known machine learning techniques on this set of
features
21
Feature Extraction
feature extraction
• We are interested in gestures; use only elbows, wrists and hands
(LeftElbow, RightElbow, LeftWrist, RightWrist, LeftHand,
RightHand)
• For each we calculate a set of features, for the set of N frames
that correspond to the gesture and based on their 3D
coordinates
23
feature properties
Our features satisfy the following
• They require constant time O(1) in each frame to compute
• Small gesture changes are reflected to small feature changes
(angle and displacement are able to discriminate between
small movements)
• They are aggregate features that summarize the gesture over all
the frames
• They are small in size (a feature vector in minified JSON format
is about 3KB)
24
the features
Features are extracted
• from each skeletal
joint
• from a set of the
frames depicting the
gesture
• using the 3D
coordinates of the
joints
Feature name Frames involved Equation
Spatial angle F2, F1
v
(J)
2 − v
(J)
1
v
(J)
2 − v
(J)
1
Spatial angle Fn, Fn−1
v
(J)
n − v
(J)
n−1
v
(J)
n − v
(J)
n−1
Spatial angle Fn, F1
v
(J)
n − v
(J)
1
v
(J)
n − v
(J)
1
Total vector angle F1, . . . , Fn
n∑
i=1
arccos


v
(J)
i · v
(J)
i−1
v
(J)
i v
(J)
i−1


Squared total vector angle F1, . . . , Fn
n∑
i=1
arccos


v
(J)
i · v
(J)
i−1
v
(J)
i v
(J)
i−1


2
Total vector displacement Fn, F1 v
(J)
n − v
(J)
1
Total displacement F1, . . . , Fn
n∑
i=1
v
(J)
i − v
(J)
i−1
Maximum displacement F1, . . . , Fn max
n
(
v
(J)
i − v
(J)
i−1
)
Bounding box diagonal length∗
F1, . . . , Fn
√
a2
B(V(J ))
+ b2
B(V(J ))
Bounding box angle∗
F1, . . . , Fn arctan
bB(V(J ))
aB(V(J ))
25
the features (cont’d)
We also extract the initial and final (i.e., at F1 and FN, respectively),
mean and maximum angle (i.e., for F1, . . . FN) between any pair of
joints (pc = parent-child )
θpc = cos−1
(
a2
pc + b2
pc − c2
pc
2apcbpc
)
(2)
where
apc =
(
v(J)
− v
(Jc)
x
)2
+
(
v
(J)
y − v
(Jc)
y
)2
, (3)
bpc = v
(J)
x και (4)
cpc = (v
(Jp)
x )2
+ (v
(J)
y − v
(Jp)
y )2
. (5)
26
the features (cont’d)
Finally between HandLeft and HandRight and within the gesture we
extract
• The max...
dmax = max
i,j
{
d
(
vHR
i , vHL
j
)}
, (6)
• ... and the mean distance
dmean =
1
F(J)
∑
i,j
d
(
vHR
i , vHL
j
)
, (7)
27
Experiments
machine learning approaches
For gesture recognition based on the aforementioned features, we
investigated the following techniques:
• SVM Linear/RBF kernel (LSVM/RBFSVM)
• Linear Discriminant Analysis (LDA)
• Quadratic Discriminant Analysis (QDA)
• Naive Bayes (NB)
• K-nearest neighbors (KNN)
• Decision Trees (DT)
• Random Forests (RF)
• Extra Trees (ET)
• Adaboost with Decision Trees / Extra Trees (ABDT/ABET)
29
experiments preparation - dataset construction
• We constructed a real-life data set of 10 users (7M/3F), ages:
22–36
• We selected a set of “swipes” (in/out/up/down) for both hands
(8 gestures)
• Each user performed a gesture at least 10 times
• We manually “cleaned” the dataset from obviously “wrongly”
performed gestures
• Each user was equipped with a push button, used to signify the
beginning/ending of a gesture
30
experiments preparation - optimal parameters
Find the optimal parameter set for each algorithm using Exhaustive
Grid Search
α learning rate n number of neighbors
e number of estimators s search algorithm
d maximum depth m metric between point p and q
f maximum number of features r regularization parameter
Classifier Parameters
ABDT e = 103, α = 621.6
ABET e = 82, α = 241.6
DT d = 48, f = 49
ET d = 17, f = 70, e = 70
KNN n = 22, s = kd_tree, m =
∑n
i=1(|pi − qi|)
LSVM C = 0.0091
QDA r = 0.88889
RBFSVM C = 44.445, γ = 0.0001
RF d = 27, f = 20, e = 75
31
experiment 1 - performance for a known set of users
TARGET
• Find the optimal machine learning approach to split our feature
space
METHOD
• Train using gestures from all users
• Evaluate using different gestures from all users
• Use standard Stratified K-fold Cross Validation
32
experiment 1 - results
33
experiment 2 - performance against unknown users
TARGET
What is
• the performance for new / unknown users?
• the minimum number of users that can be used for training and
get an adequate classifier?
• the effect of “bad users”?
METHOD
• Split the data per user
• Use a varying number of users for training and the rest for
testing
34
experiment 2 - results per user (f1 score)
User 1 User 2 User 3 User 4 User 5 User 6 User 7 User 8 User 9 User 10 Mean w/o User 1
LH-SwipeDown 0.76 0.83 1.00 0.82 1.00 0.80 1.00 1.00 1.00 0.96 0.934
LH-SwipeIn 0.38 0.92 0.84 1.00 1.00 0.92 1.00 1.00 1.00 1.00 0.964
LH-SwipeOut 0.61 0.93 0.86 1.00 1.00 0.89 1.00 1.00 0.97 1.00 0.961
LH-SwipeUp 0.69 0.90 1.00 0.84 1.00 0.83 1.00 1.00 0.97 0.96 0.944
RH-SwipeDown 0.78 1.00 0.95 - 1.00 1.00 0.92 1.00 0.87 1.00 0.968
RH-SwipeIn 0.64 1.00 0.67 - 1.00 1.00 1.00 1.00 0.89 0.96 0.940
RH-SwipeOut 0.61 1.00 0.80 - 1.00 1.00 0.95 1.00 1.00 0.95 0.963
RH-SwipeUp 0.40 1.00 0.95 - 1.00 1.00 1.00 1.00 0.96 1.00 0.989
Average 0.62 0.94 0.88 0.92 1.00 0.92 0.99 1.00 0.96 0.97
35
experiment 2 - results
36
experiment 3 - benchmarks
TARGET
• Test the prediction time in different architectures
METHOD
Construct a custom benchmark where:
• Split the data randomly in train/test sets (80/20 split)
• Classify every sample in the test data 1000 times
• Calculate the average prediction time for each classifier
• Evaluate in different architectures
37
experiment 3 - results
38
use case: smart room control
use case
The described algorithms are combined into an IOT application
implementing a NUI system that is integrated into the SYNAISTHISI
platform.
This system is used to control the devices inside in the Aigaio
meeting room which is located in IIT Demokritos.
40
The Internet of Things
iot definition
The Internet of Things is <insert preferred definition>.
42
iot definition
The Internet of Things is a generalization of the World Wide Web to
incorporate “things” that exist in the physical world.
43
iot definition
The Internet of Things is the convergence of all virtual and physical
entities that are able to produce, consume and act upon data under
a common communications infrastructure.
44
synaisthisi platform
The Synaisthisi platform is a project developed in NCSR Demokritos
that aims to facilitate the development of Internet of Things
applications.
It provides
• A Service Oriented Architecture where applications can be
developed as the composition of small functional building
blocks (services)
• A categorization of services in Sensing, Processing and Actuating
(SPA services)
• A Message Oriented Middleware that provides a pub/sub
message passing infrastructure based on MQTT for inter-service
communication
• Mechanisms for logging, security, persistent storage, data
replication and administration of the applications and the
system
45
synaisthisi architecture
46
Machine to Machine Communication
publish/subscribe protocols
Pros:
• Asynchronous communication
• Decoupling of the communicating entities
• Many to many communication
• Scalable
Cons:
• Semantic coupling (message type needs to be statically defined)
• Loose message delivery guarantees
48
mqtt
All of the above plus
• Lightweight
• Small code footprint
• Small header overhead
• QoS Levels
49
System Design
aigaio devices
51
aigaio devices
/pw2 Projector /pw3 Lights Front
/pw4 A/C /pw5 Fan Coils
/pw6 Fan Coils /pw8 Lights Rear
/ir_control/action IR Module
/demokritos/iit/aigaio
/ir_control/action /plugwise/action
/pw2 /pw3 /pw4 /pw5 /pw6 /pw8
52
aigaio nui components
53
aigaio nui services
54
aigaio nui technology stack
55
conclusions and future work
conclusions
In this project we have
• Implemented a simple and efficient pose detection algorithm
• Constructed a real-time machine learning approach to gesture
recognition
• Integrated these techniques to a real life IOT application for a
Natural User Interface
57
publications
• G. Paraskevopoulos, E. Spyrou and D. Sgouropoulos, A Real-Time
Approach for Gesture Recognition using the Kinect Sensor. In
Proc. of Hellenic Conference on Artificial Intelligence (SETN),
2016
• 2 more upcoming
58
future work
• Apply the aforementioned techniques to new / more
challenging problem domains
• Construct a larger data set with more users performing a bigger
variety of gestures
• Reduce the size/cost of the needed computing devices
• Implement a dynamic time segmentation method for gesture
detection
59
Questions?
60
Thank you!
61
backup slides
what about gesture detection?
63
why not a stream of poses?
2 main approaches
• FSM of intermediate poses: Every new gesture needs to be hard
coded
• HMM with intermediate poses as observations: Generalizes but
couples recognition accuracy with frame rate / network stability
64
kinect on raspberry pi
APPROACH
Use Windows 10 IOT Edition
PROBLEMS
• Does not support Kinect drivers and Kinect SDK
• Not enough voltage provided through USB hub to sustain the
Kinect sensor
65
kinect on raspberry pi
APPROACH
• Use USB over IP to stream the low level Kinect data from a
Raspberry Pi to a Windows Server so that it appears the Kinect
sensor is connected to the server
• Cross-Compile the Linux kernel with USB-IP modules support
PROBLEMS
• USB-IP modules do not support USB hubs
• Bandwidth limitations
66
why c#? why python? why js?
C#
• Kinect SDK
Python
• scikit-learn
JS
• async . p a r a l l e l (
// L i s t of pose detectors to run concurrently
Object . keys ( poseDetectors )
. reduce ( ( prev , pose ) => {
prev [ pose ] = poseDetectors [ pose ] ( features )
return prev
} , { } ) ,
( err , result ) => {
/* handle l i s t of results . . . */
} )
67

Contenu connexe

Tendances

An Application of Stereo Image Reprojection from Multi-Angle Images fo...
An  Application  of  Stereo  Image  Reprojection  from  Multi-Angle Images fo...An  Application  of  Stereo  Image  Reprojection  from  Multi-Angle Images fo...
An Application of Stereo Image Reprojection from Multi-Angle Images fo...Tatsuro Matsubara
 
IRJET- Robust Edge Detection using Moore’s Algorithm with Median Filter
IRJET- Robust Edge Detection using Moore’s Algorithm with Median FilterIRJET- Robust Edge Detection using Moore’s Algorithm with Median Filter
IRJET- Robust Edge Detection using Moore’s Algorithm with Median FilterIRJET Journal
 
The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)theijes
 
Image restoration
Image restorationImage restoration
Image restorationAzad Singh
 
A Detailed Analysis on Feature Extraction Techniques of Panoramic Image Stitc...
A Detailed Analysis on Feature Extraction Techniques of Panoramic Image Stitc...A Detailed Analysis on Feature Extraction Techniques of Panoramic Image Stitc...
A Detailed Analysis on Feature Extraction Techniques of Panoramic Image Stitc...IJEACS
 
Ijartes v1-i2-008
Ijartes v1-i2-008Ijartes v1-i2-008
Ijartes v1-i2-008IJARTES
 
AUTOMATED IMAGE MOSAICING SYSTEM WITH ANALYSIS OVER VARIOUS IMAGE NOISE
AUTOMATED IMAGE MOSAICING SYSTEM WITH ANALYSIS OVER VARIOUS IMAGE NOISEAUTOMATED IMAGE MOSAICING SYSTEM WITH ANALYSIS OVER VARIOUS IMAGE NOISE
AUTOMATED IMAGE MOSAICING SYSTEM WITH ANALYSIS OVER VARIOUS IMAGE NOISEijcsa
 
Survey on Image Integration of Misaligned Images
Survey on Image Integration of Misaligned ImagesSurvey on Image Integration of Misaligned Images
Survey on Image Integration of Misaligned ImagesIRJET Journal
 
47549379 paper-on-image-processing
47549379 paper-on-image-processing47549379 paper-on-image-processing
47549379 paper-on-image-processingmaisali4
 
IRJET- Cantilever Beam Crack Detection using FEA and FFT Analyser
IRJET- Cantilever Beam Crack Detection using FEA and FFT AnalyserIRJET- Cantilever Beam Crack Detection using FEA and FFT Analyser
IRJET- Cantilever Beam Crack Detection using FEA and FFT AnalyserIRJET Journal
 
A calibration technique for a two axis magnetic compass in telematics devices
A calibration technique for a two axis magnetic compass in telematics devicesA calibration technique for a two axis magnetic compass in telematics devices
A calibration technique for a two axis magnetic compass in telematics devicesPham van Tang
 
The accuracy of mobile phone camera instead of high resolution camera in digi...
The accuracy of mobile phone camera instead of high resolution camera in digi...The accuracy of mobile phone camera instead of high resolution camera in digi...
The accuracy of mobile phone camera instead of high resolution camera in digi...IAEME Publication
 
Automatic Detection of Radius of Bone Fracture
Automatic Detection of Radius of Bone FractureAutomatic Detection of Radius of Bone Fracture
Automatic Detection of Radius of Bone FractureIRJET Journal
 
Motion capture technology
Motion capture technologyMotion capture technology
Motion capture technologyAnvesh Ranga
 
IRJET-Motion Segmentation
IRJET-Motion SegmentationIRJET-Motion Segmentation
IRJET-Motion SegmentationIRJET Journal
 
Spot Edge Detection in cDNA Microarray Images using Window based Bi-Dimension...
Spot Edge Detection in cDNA Microarray Images using Window based Bi-Dimension...Spot Edge Detection in cDNA Microarray Images using Window based Bi-Dimension...
Spot Edge Detection in cDNA Microarray Images using Window based Bi-Dimension...idescitation
 
ESPI - Project Report
ESPI - Project Report ESPI - Project Report
ESPI - Project Report Akash Marakani
 

Tendances (20)

An Application of Stereo Image Reprojection from Multi-Angle Images fo...
An  Application  of  Stereo  Image  Reprojection  from  Multi-Angle Images fo...An  Application  of  Stereo  Image  Reprojection  from  Multi-Angle Images fo...
An Application of Stereo Image Reprojection from Multi-Angle Images fo...
 
Aberration_Errors
Aberration_ErrorsAberration_Errors
Aberration_Errors
 
IRJET- Robust Edge Detection using Moore’s Algorithm with Median Filter
IRJET- Robust Edge Detection using Moore’s Algorithm with Median FilterIRJET- Robust Edge Detection using Moore’s Algorithm with Median Filter
IRJET- Robust Edge Detection using Moore’s Algorithm with Median Filter
 
x-ray tomography
x-ray tomographyx-ray tomography
x-ray tomography
 
The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)
 
Image restoration
Image restorationImage restoration
Image restoration
 
A Detailed Analysis on Feature Extraction Techniques of Panoramic Image Stitc...
A Detailed Analysis on Feature Extraction Techniques of Panoramic Image Stitc...A Detailed Analysis on Feature Extraction Techniques of Panoramic Image Stitc...
A Detailed Analysis on Feature Extraction Techniques of Panoramic Image Stitc...
 
Final Beam Paper
Final Beam PaperFinal Beam Paper
Final Beam Paper
 
Ijartes v1-i2-008
Ijartes v1-i2-008Ijartes v1-i2-008
Ijartes v1-i2-008
 
AUTOMATED IMAGE MOSAICING SYSTEM WITH ANALYSIS OVER VARIOUS IMAGE NOISE
AUTOMATED IMAGE MOSAICING SYSTEM WITH ANALYSIS OVER VARIOUS IMAGE NOISEAUTOMATED IMAGE MOSAICING SYSTEM WITH ANALYSIS OVER VARIOUS IMAGE NOISE
AUTOMATED IMAGE MOSAICING SYSTEM WITH ANALYSIS OVER VARIOUS IMAGE NOISE
 
Survey on Image Integration of Misaligned Images
Survey on Image Integration of Misaligned ImagesSurvey on Image Integration of Misaligned Images
Survey on Image Integration of Misaligned Images
 
47549379 paper-on-image-processing
47549379 paper-on-image-processing47549379 paper-on-image-processing
47549379 paper-on-image-processing
 
IRJET- Cantilever Beam Crack Detection using FEA and FFT Analyser
IRJET- Cantilever Beam Crack Detection using FEA and FFT AnalyserIRJET- Cantilever Beam Crack Detection using FEA and FFT Analyser
IRJET- Cantilever Beam Crack Detection using FEA and FFT Analyser
 
A calibration technique for a two axis magnetic compass in telematics devices
A calibration technique for a two axis magnetic compass in telematics devicesA calibration technique for a two axis magnetic compass in telematics devices
A calibration technique for a two axis magnetic compass in telematics devices
 
The accuracy of mobile phone camera instead of high resolution camera in digi...
The accuracy of mobile phone camera instead of high resolution camera in digi...The accuracy of mobile phone camera instead of high resolution camera in digi...
The accuracy of mobile phone camera instead of high resolution camera in digi...
 
Automatic Detection of Radius of Bone Fracture
Automatic Detection of Radius of Bone FractureAutomatic Detection of Radius of Bone Fracture
Automatic Detection of Radius of Bone Fracture
 
Motion capture technology
Motion capture technologyMotion capture technology
Motion capture technology
 
IRJET-Motion Segmentation
IRJET-Motion SegmentationIRJET-Motion Segmentation
IRJET-Motion Segmentation
 
Spot Edge Detection in cDNA Microarray Images using Window based Bi-Dimension...
Spot Edge Detection in cDNA Microarray Images using Window based Bi-Dimension...Spot Edge Detection in cDNA Microarray Images using Window based Bi-Dimension...
Spot Edge Detection in cDNA Microarray Images using Window based Bi-Dimension...
 
ESPI - Project Report
ESPI - Project Report ESPI - Project Report
ESPI - Project Report
 

En vedette

Kinectic vision looking deep into depth
Kinectic vision   looking deep into depthKinectic vision   looking deep into depth
Kinectic vision looking deep into depthppd1961
 
Hand gesture recognition system(FYP REPORT)
Hand gesture recognition system(FYP REPORT)Hand gesture recognition system(FYP REPORT)
Hand gesture recognition system(FYP REPORT)Afnan Rehman
 
Hand gesture based wheel chair for disable
Hand gesture based wheel chair for disableHand gesture based wheel chair for disable
Hand gesture based wheel chair for disablevedabobbala
 
Presentation Smart Home With Home Automation
Presentation Smart Home With Home AutomationPresentation Smart Home With Home Automation
Presentation Smart Home With Home AutomationArifur Rahman
 
Google glass glasses presentation ppt
Google glass glasses presentation pptGoogle glass glasses presentation ppt
Google glass glasses presentation pptParth Godhani
 

En vedette (12)

Smart Room Components
Smart Room ComponentsSmart Room Components
Smart Room Components
 
Cgfp3
Cgfp3Cgfp3
Cgfp3
 
Kinectic vision looking deep into depth
Kinectic vision   looking deep into depthKinectic vision   looking deep into depth
Kinectic vision looking deep into depth
 
Jc on frontal fracture
Jc on frontal fractureJc on frontal fracture
Jc on frontal fracture
 
Hand gesture recognition
Hand gesture recognitionHand gesture recognition
Hand gesture recognition
 
I twin technology
I twin technologyI twin technology
I twin technology
 
Hand gesture recognition system(FYP REPORT)
Hand gesture recognition system(FYP REPORT)Hand gesture recognition system(FYP REPORT)
Hand gesture recognition system(FYP REPORT)
 
Hand motion based_wheelchair
Hand motion based_wheelchairHand motion based_wheelchair
Hand motion based_wheelchair
 
Hand gesture based wheel chair for disable
Hand gesture based wheel chair for disableHand gesture based wheel chair for disable
Hand gesture based wheel chair for disable
 
Smart homes
Smart homesSmart homes
Smart homes
 
Presentation Smart Home With Home Automation
Presentation Smart Home With Home AutomationPresentation Smart Home With Home Automation
Presentation Smart Home With Home Automation
 
Google glass glasses presentation ppt
Google glass glasses presentation pptGoogle glass glasses presentation ppt
Google glass glasses presentation ppt
 

Similaire à Smart Room Gesture Control

Human action recognition with kinect using a joint motion descriptor
Human action recognition with kinect using a joint motion descriptorHuman action recognition with kinect using a joint motion descriptor
Human action recognition with kinect using a joint motion descriptorSoma Boubou
 
CHI'16 Journal "A Mouse With Two Optical Sensors That Eliminates Coordinate D...
CHI'16 Journal "A Mouse With Two Optical Sensors That Eliminates Coordinate D...CHI'16 Journal "A Mouse With Two Optical Sensors That Eliminates Coordinate D...
CHI'16 Journal "A Mouse With Two Optical Sensors That Eliminates Coordinate D...Byungjoo Lee
 
Wearable Accelerometer Optimal Positions for Human Motion Recognition(LifeTec...
Wearable Accelerometer Optimal Positions for Human Motion Recognition(LifeTec...Wearable Accelerometer Optimal Positions for Human Motion Recognition(LifeTec...
Wearable Accelerometer Optimal Positions for Human Motion Recognition(LifeTec...sugiuralab
 
Machine Learning Essentials Demystified part2 | Big Data Demystified
Machine Learning Essentials Demystified part2 | Big Data DemystifiedMachine Learning Essentials Demystified part2 | Big Data Demystified
Machine Learning Essentials Demystified part2 | Big Data DemystifiedOmid Vahdaty
 
Final Thesis Presentation
Final Thesis PresentationFinal Thesis Presentation
Final Thesis PresentationSajid Rasheed
 
iv10_linear_pose.pptx
iv10_linear_pose.pptxiv10_linear_pose.pptx
iv10_linear_pose.pptxdarmadi ir,mm
 
BallCatchingRobot
BallCatchingRobotBallCatchingRobot
BallCatchingRobotgauravbrd
 
EE660_Report_YaxinLiu_8448347171
EE660_Report_YaxinLiu_8448347171EE660_Report_YaxinLiu_8448347171
EE660_Report_YaxinLiu_8448347171Yaxin Liu
 
A Study of Wearable Accelerometers Layout for Human Activity Recognition(Asia...
A Study of Wearable Accelerometers Layout for Human Activity Recognition(Asia...A Study of Wearable Accelerometers Layout for Human Activity Recognition(Asia...
A Study of Wearable Accelerometers Layout for Human Activity Recognition(Asia...sugiuralab
 
Gesture Recognition?
Gesture Recognition?Gesture Recognition?
Gesture Recognition?Dayo Choul
 
Literature Survey on Interest Points based Watermarking
Literature Survey on Interest Points based WatermarkingLiterature Survey on Interest Points based Watermarking
Literature Survey on Interest Points based WatermarkingPriyatham Bollimpalli
 
DSP_Lab_MAnual_-_Final_Edition.pdf
DSP_Lab_MAnual_-_Final_Edition.pdfDSP_Lab_MAnual_-_Final_Edition.pdf
DSP_Lab_MAnual_-_Final_Edition.pdfParthDoshi66
 
"FingerPrint Recognition Using Principle Component Analysis(PCA)”
"FingerPrint Recognition Using Principle Component Analysis(PCA)”"FingerPrint Recognition Using Principle Component Analysis(PCA)”
"FingerPrint Recognition Using Principle Component Analysis(PCA)”Er. Arpit Sharma
 
DSP_Lab_MAnual_-_Final_Edition[1].docx
DSP_Lab_MAnual_-_Final_Edition[1].docxDSP_Lab_MAnual_-_Final_Edition[1].docx
DSP_Lab_MAnual_-_Final_Edition[1].docxParthDoshi66
 
Palmprint verification using lagrangian decomposition and invariant interest
Palmprint verification using lagrangian decomposition and invariant interestPalmprint verification using lagrangian decomposition and invariant interest
Palmprint verification using lagrangian decomposition and invariant interestDakshina Kisku
 
Palmprint verification using lagrangian decomposition and invariant interest
Palmprint verification using lagrangian decomposition and invariant interestPalmprint verification using lagrangian decomposition and invariant interest
Palmprint verification using lagrangian decomposition and invariant interestDakshina Kisku
 
Gesture Recognition Based Video Game Controller
Gesture Recognition Based Video Game ControllerGesture Recognition Based Video Game Controller
Gesture Recognition Based Video Game ControllerIRJET Journal
 
Object tracking by dtcwt feature vectors 2-3-4
Object tracking by dtcwt feature vectors 2-3-4Object tracking by dtcwt feature vectors 2-3-4
Object tracking by dtcwt feature vectors 2-3-4IAEME Publication
 

Similaire à Smart Room Gesture Control (20)

Human action recognition with kinect using a joint motion descriptor
Human action recognition with kinect using a joint motion descriptorHuman action recognition with kinect using a joint motion descriptor
Human action recognition with kinect using a joint motion descriptor
 
Communityday2013
Communityday2013Communityday2013
Communityday2013
 
CHI'16 Journal "A Mouse With Two Optical Sensors That Eliminates Coordinate D...
CHI'16 Journal "A Mouse With Two Optical Sensors That Eliminates Coordinate D...CHI'16 Journal "A Mouse With Two Optical Sensors That Eliminates Coordinate D...
CHI'16 Journal "A Mouse With Two Optical Sensors That Eliminates Coordinate D...
 
Wearable Accelerometer Optimal Positions for Human Motion Recognition(LifeTec...
Wearable Accelerometer Optimal Positions for Human Motion Recognition(LifeTec...Wearable Accelerometer Optimal Positions for Human Motion Recognition(LifeTec...
Wearable Accelerometer Optimal Positions for Human Motion Recognition(LifeTec...
 
Machine Learning Essentials Demystified part2 | Big Data Demystified
Machine Learning Essentials Demystified part2 | Big Data DemystifiedMachine Learning Essentials Demystified part2 | Big Data Demystified
Machine Learning Essentials Demystified part2 | Big Data Demystified
 
Final Thesis Presentation
Final Thesis PresentationFinal Thesis Presentation
Final Thesis Presentation
 
iv10_linear_pose.pptx
iv10_linear_pose.pptxiv10_linear_pose.pptx
iv10_linear_pose.pptx
 
BallCatchingRobot
BallCatchingRobotBallCatchingRobot
BallCatchingRobot
 
EE660_Report_YaxinLiu_8448347171
EE660_Report_YaxinLiu_8448347171EE660_Report_YaxinLiu_8448347171
EE660_Report_YaxinLiu_8448347171
 
A Study of Wearable Accelerometers Layout for Human Activity Recognition(Asia...
A Study of Wearable Accelerometers Layout for Human Activity Recognition(Asia...A Study of Wearable Accelerometers Layout for Human Activity Recognition(Asia...
A Study of Wearable Accelerometers Layout for Human Activity Recognition(Asia...
 
Mk slides.ppt
Mk slides.pptMk slides.ppt
Mk slides.ppt
 
Gesture Recognition?
Gesture Recognition?Gesture Recognition?
Gesture Recognition?
 
Literature Survey on Interest Points based Watermarking
Literature Survey on Interest Points based WatermarkingLiterature Survey on Interest Points based Watermarking
Literature Survey on Interest Points based Watermarking
 
DSP_Lab_MAnual_-_Final_Edition.pdf
DSP_Lab_MAnual_-_Final_Edition.pdfDSP_Lab_MAnual_-_Final_Edition.pdf
DSP_Lab_MAnual_-_Final_Edition.pdf
 
"FingerPrint Recognition Using Principle Component Analysis(PCA)”
"FingerPrint Recognition Using Principle Component Analysis(PCA)”"FingerPrint Recognition Using Principle Component Analysis(PCA)”
"FingerPrint Recognition Using Principle Component Analysis(PCA)”
 
DSP_Lab_MAnual_-_Final_Edition[1].docx
DSP_Lab_MAnual_-_Final_Edition[1].docxDSP_Lab_MAnual_-_Final_Edition[1].docx
DSP_Lab_MAnual_-_Final_Edition[1].docx
 
Palmprint verification using lagrangian decomposition and invariant interest
Palmprint verification using lagrangian decomposition and invariant interestPalmprint verification using lagrangian decomposition and invariant interest
Palmprint verification using lagrangian decomposition and invariant interest
 
Palmprint verification using lagrangian decomposition and invariant interest
Palmprint verification using lagrangian decomposition and invariant interestPalmprint verification using lagrangian decomposition and invariant interest
Palmprint verification using lagrangian decomposition and invariant interest
 
Gesture Recognition Based Video Game Controller
Gesture Recognition Based Video Game ControllerGesture Recognition Based Video Game Controller
Gesture Recognition Based Video Game Controller
 
Object tracking by dtcwt feature vectors 2-3-4
Object tracking by dtcwt feature vectors 2-3-4Object tracking by dtcwt feature vectors 2-3-4
Object tracking by dtcwt feature vectors 2-3-4
 

Dernier

Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineeringssuserb3a23b
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 

Dernier (20)

Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Odoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting ServiceOdoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting Service
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineering
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 

Smart Room Gesture Control

  • 1. smart room gesture control using kinect skeletal data Diploma Thesis Presentation Giwrgos Paraskevopoulos 10 July 2016 School of Electrical and Computer Engineering National Technical University of Athens Institute of Informatics and Telecommunications NCSR Demokritos
  • 2. goals of this work • Build a simple and intuitive Natural User Interface for a smart conference room. • Use the Kinect skeletal information to devise some novel and accurate techniques for pose and gesture recognition focused on real-time systems. • Create efficient implementations of the devised algorithms as microservices. • Demonstrate how Machine to Machine communication can be used to compose these microservices into non trivial applications for the Internet of Things ecosystem. • Integrate our work into the Synaisthisi platform. 2
  • 4. contents 1. Pose Detection 2. Gesture Recognition 3. Use Case: Smart Room Control 4. Conclusions and Future Work 5. Backup Slides 4
  • 6. problem definition • A pose is the temporary suspension of the animation of the body joints in a discrete configuration. • Pose detection is the problem of automatically classifying a pose. • Poses can be used as control signals 6
  • 7. assumptions • Sufficient room lighting conditions for the operation of the Kinect sensor • User is positioned inside the operating area of the Kinect sensor and is facing the sensor • Predefined set of target poses 7
  • 8. design prerequisites Detection is • real-time • invariant to the user position and distance from the camera • invariant to the user physical characteristics (height, weight etc.) • able to support multiple users (a limit of 2 is imposed by the Kinect sensor) 8
  • 9. the proposed algorithm • Template matching to a set of geometric features • Poses are predefined templates • We compare the current feature vector to the template, and if it is within a predefined error margin the pose is recognized Simple, fast and performs well in real world scenarios. 9
  • 11. data streams Color Stream Depth Stream Skeleton Stream 11
  • 12. skeleton joints • A total of 20 inferred joints • Organized in a hierarchical structure (we make use of this later) Shoulder Left Hip Center Elbow Left Wrist Left Hip Left Hand Left Knee RightKnee Left Shoulder Right Elbow Right Wrist Right Hand Right Hip Right Shoulder Center Head Skeletal Joints HipCenter Hip Right Knee Right Ankle Right Foo tRight Hip Left Knee Left Ankle Left Foot Left Spine Shoulder Center Shoulder Right Elbow Right Wrist Right Hand Right HeadShoulder Left Elbow Left Wrist Left Hand Left Joints in a tree structure 12
  • 14. geometric features • Make use of the joints hierarchical structure to compute the angles between each parent and child joint. • This single feature provides by default the position and depth invariance and is enough to classify a large set of poses. 14
  • 15. feature calculation B c C a A b The triangle that is formed between the father joint A, the child joint B and the point (A.x, 0) Using the law of cosines, we calculate the ∠ACB as C = cos−1 a2 + b2 − c2 2ab (1) 15
  • 16. example pose template <?xml version=”1.0” encoding=”utf−8” ?> <Pose id=”HANDSAPART” xmlns:xsi=”http://www.w3.org/2001/XMLSchema−instance” xsi:schemaLocation=”urn:PoseRules PoseRules.xsd”> <DisplayName>Jack I’m Flying</DisplayName> <AngleConstraints units=”degrees”> <ElbowLeft> <Desired>180</Desired> <Deviation>15</Deviation> </ElbowLeft> <HandLeft> <Desired>180</Desired> <Deviation>15</Deviation> </HandLeft> <ElbowRight> <Desired>0</Desired> <Deviation>15</Deviation> </ElbowRight> <HandRight> <Desired>0</Desired> <Deviation>15</Deviation> </HandRight> </AngleConstraints> </Pose> 16
  • 18. what is a gesture? • A continuous stream of poses • The transfer of a subset of joints from point A to B, using a vaguely predefined trajectory 18
  • 19. what is a gesture? • A continuous stream of poses • The transfer of a subset of joints from point A to B, using a vaguely predefined trajectory 19
  • 20. gesture example Swipe In (Right Hand) Swipe Up (Right Hand) 20
  • 21. the proposed approach • Extract a set of low level geometric features • Evaluate the performance (classification accuracy and time) of a set of well known machine learning techniques on this set of features 21
  • 23. feature extraction • We are interested in gestures; use only elbows, wrists and hands (LeftElbow, RightElbow, LeftWrist, RightWrist, LeftHand, RightHand) • For each we calculate a set of features, for the set of N frames that correspond to the gesture and based on their 3D coordinates 23
  • 24. feature properties Our features satisfy the following • They require constant time O(1) in each frame to compute • Small gesture changes are reflected to small feature changes (angle and displacement are able to discriminate between small movements) • They are aggregate features that summarize the gesture over all the frames • They are small in size (a feature vector in minified JSON format is about 3KB) 24
  • 25. the features Features are extracted • from each skeletal joint • from a set of the frames depicting the gesture • using the 3D coordinates of the joints Feature name Frames involved Equation Spatial angle F2, F1 v (J) 2 − v (J) 1 v (J) 2 − v (J) 1 Spatial angle Fn, Fn−1 v (J) n − v (J) n−1 v (J) n − v (J) n−1 Spatial angle Fn, F1 v (J) n − v (J) 1 v (J) n − v (J) 1 Total vector angle F1, . . . , Fn n∑ i=1 arccos   v (J) i · v (J) i−1 v (J) i v (J) i−1   Squared total vector angle F1, . . . , Fn n∑ i=1 arccos   v (J) i · v (J) i−1 v (J) i v (J) i−1   2 Total vector displacement Fn, F1 v (J) n − v (J) 1 Total displacement F1, . . . , Fn n∑ i=1 v (J) i − v (J) i−1 Maximum displacement F1, . . . , Fn max n ( v (J) i − v (J) i−1 ) Bounding box diagonal length∗ F1, . . . , Fn √ a2 B(V(J )) + b2 B(V(J )) Bounding box angle∗ F1, . . . , Fn arctan bB(V(J )) aB(V(J )) 25
  • 26. the features (cont’d) We also extract the initial and final (i.e., at F1 and FN, respectively), mean and maximum angle (i.e., for F1, . . . FN) between any pair of joints (pc = parent-child ) θpc = cos−1 ( a2 pc + b2 pc − c2 pc 2apcbpc ) (2) where apc = ( v(J) − v (Jc) x )2 + ( v (J) y − v (Jc) y )2 , (3) bpc = v (J) x και (4) cpc = (v (Jp) x )2 + (v (J) y − v (Jp) y )2 . (5) 26
  • 27. the features (cont’d) Finally between HandLeft and HandRight and within the gesture we extract • The max... dmax = max i,j { d ( vHR i , vHL j )} , (6) • ... and the mean distance dmean = 1 F(J) ∑ i,j d ( vHR i , vHL j ) , (7) 27
  • 29. machine learning approaches For gesture recognition based on the aforementioned features, we investigated the following techniques: • SVM Linear/RBF kernel (LSVM/RBFSVM) • Linear Discriminant Analysis (LDA) • Quadratic Discriminant Analysis (QDA) • Naive Bayes (NB) • K-nearest neighbors (KNN) • Decision Trees (DT) • Random Forests (RF) • Extra Trees (ET) • Adaboost with Decision Trees / Extra Trees (ABDT/ABET) 29
  • 30. experiments preparation - dataset construction • We constructed a real-life data set of 10 users (7M/3F), ages: 22–36 • We selected a set of “swipes” (in/out/up/down) for both hands (8 gestures) • Each user performed a gesture at least 10 times • We manually “cleaned” the dataset from obviously “wrongly” performed gestures • Each user was equipped with a push button, used to signify the beginning/ending of a gesture 30
  • 31. experiments preparation - optimal parameters Find the optimal parameter set for each algorithm using Exhaustive Grid Search α learning rate n number of neighbors e number of estimators s search algorithm d maximum depth m metric between point p and q f maximum number of features r regularization parameter Classifier Parameters ABDT e = 103, α = 621.6 ABET e = 82, α = 241.6 DT d = 48, f = 49 ET d = 17, f = 70, e = 70 KNN n = 22, s = kd_tree, m = ∑n i=1(|pi − qi|) LSVM C = 0.0091 QDA r = 0.88889 RBFSVM C = 44.445, γ = 0.0001 RF d = 27, f = 20, e = 75 31
  • 32. experiment 1 - performance for a known set of users TARGET • Find the optimal machine learning approach to split our feature space METHOD • Train using gestures from all users • Evaluate using different gestures from all users • Use standard Stratified K-fold Cross Validation 32
  • 33. experiment 1 - results 33
  • 34. experiment 2 - performance against unknown users TARGET What is • the performance for new / unknown users? • the minimum number of users that can be used for training and get an adequate classifier? • the effect of “bad users”? METHOD • Split the data per user • Use a varying number of users for training and the rest for testing 34
  • 35. experiment 2 - results per user (f1 score) User 1 User 2 User 3 User 4 User 5 User 6 User 7 User 8 User 9 User 10 Mean w/o User 1 LH-SwipeDown 0.76 0.83 1.00 0.82 1.00 0.80 1.00 1.00 1.00 0.96 0.934 LH-SwipeIn 0.38 0.92 0.84 1.00 1.00 0.92 1.00 1.00 1.00 1.00 0.964 LH-SwipeOut 0.61 0.93 0.86 1.00 1.00 0.89 1.00 1.00 0.97 1.00 0.961 LH-SwipeUp 0.69 0.90 1.00 0.84 1.00 0.83 1.00 1.00 0.97 0.96 0.944 RH-SwipeDown 0.78 1.00 0.95 - 1.00 1.00 0.92 1.00 0.87 1.00 0.968 RH-SwipeIn 0.64 1.00 0.67 - 1.00 1.00 1.00 1.00 0.89 0.96 0.940 RH-SwipeOut 0.61 1.00 0.80 - 1.00 1.00 0.95 1.00 1.00 0.95 0.963 RH-SwipeUp 0.40 1.00 0.95 - 1.00 1.00 1.00 1.00 0.96 1.00 0.989 Average 0.62 0.94 0.88 0.92 1.00 0.92 0.99 1.00 0.96 0.97 35
  • 36. experiment 2 - results 36
  • 37. experiment 3 - benchmarks TARGET • Test the prediction time in different architectures METHOD Construct a custom benchmark where: • Split the data randomly in train/test sets (80/20 split) • Classify every sample in the test data 1000 times • Calculate the average prediction time for each classifier • Evaluate in different architectures 37
  • 38. experiment 3 - results 38
  • 39. use case: smart room control
  • 40. use case The described algorithms are combined into an IOT application implementing a NUI system that is integrated into the SYNAISTHISI platform. This system is used to control the devices inside in the Aigaio meeting room which is located in IIT Demokritos. 40
  • 41. The Internet of Things
  • 42. iot definition The Internet of Things is <insert preferred definition>. 42
  • 43. iot definition The Internet of Things is a generalization of the World Wide Web to incorporate “things” that exist in the physical world. 43
  • 44. iot definition The Internet of Things is the convergence of all virtual and physical entities that are able to produce, consume and act upon data under a common communications infrastructure. 44
  • 45. synaisthisi platform The Synaisthisi platform is a project developed in NCSR Demokritos that aims to facilitate the development of Internet of Things applications. It provides • A Service Oriented Architecture where applications can be developed as the composition of small functional building blocks (services) • A categorization of services in Sensing, Processing and Actuating (SPA services) • A Message Oriented Middleware that provides a pub/sub message passing infrastructure based on MQTT for inter-service communication • Mechanisms for logging, security, persistent storage, data replication and administration of the applications and the system 45
  • 47. Machine to Machine Communication
  • 48. publish/subscribe protocols Pros: • Asynchronous communication • Decoupling of the communicating entities • Many to many communication • Scalable Cons: • Semantic coupling (message type needs to be statically defined) • Loose message delivery guarantees 48
  • 49. mqtt All of the above plus • Lightweight • Small code footprint • Small header overhead • QoS Levels 49
  • 52. aigaio devices /pw2 Projector /pw3 Lights Front /pw4 A/C /pw5 Fan Coils /pw6 Fan Coils /pw8 Lights Rear /ir_control/action IR Module /demokritos/iit/aigaio /ir_control/action /plugwise/action /pw2 /pw3 /pw4 /pw5 /pw6 /pw8 52
  • 57. conclusions In this project we have • Implemented a simple and efficient pose detection algorithm • Constructed a real-time machine learning approach to gesture recognition • Integrated these techniques to a real life IOT application for a Natural User Interface 57
  • 58. publications • G. Paraskevopoulos, E. Spyrou and D. Sgouropoulos, A Real-Time Approach for Gesture Recognition using the Kinect Sensor. In Proc. of Hellenic Conference on Artificial Intelligence (SETN), 2016 • 2 more upcoming 58
  • 59. future work • Apply the aforementioned techniques to new / more challenging problem domains • Construct a larger data set with more users performing a bigger variety of gestures • Reduce the size/cost of the needed computing devices • Implement a dynamic time segmentation method for gesture detection 59
  • 63. what about gesture detection? 63
  • 64. why not a stream of poses? 2 main approaches • FSM of intermediate poses: Every new gesture needs to be hard coded • HMM with intermediate poses as observations: Generalizes but couples recognition accuracy with frame rate / network stability 64
  • 65. kinect on raspberry pi APPROACH Use Windows 10 IOT Edition PROBLEMS • Does not support Kinect drivers and Kinect SDK • Not enough voltage provided through USB hub to sustain the Kinect sensor 65
  • 66. kinect on raspberry pi APPROACH • Use USB over IP to stream the low level Kinect data from a Raspberry Pi to a Windows Server so that it appears the Kinect sensor is connected to the server • Cross-Compile the Linux kernel with USB-IP modules support PROBLEMS • USB-IP modules do not support USB hubs • Bandwidth limitations 66
  • 67. why c#? why python? why js? C# • Kinect SDK Python • scikit-learn JS • async . p a r a l l e l ( // L i s t of pose detectors to run concurrently Object . keys ( poseDetectors ) . reduce ( ( prev , pose ) => { prev [ pose ] = poseDetectors [ pose ] ( features ) return prev } , { } ) , ( err , result ) => { /* handle l i s t of results . . . */ } ) 67