Session 1: Gesture Recognition & Machine Learning Fundamentals

Similar documents
Lecture 1: Machine Learning Basics

Python Machine Learning

Module 12. Machine Learning. Version 2 CSE IIT, Kharagpur

Human Emotion Recognition From Speech

CS Machine Learning

Twitter Sentiment Classification on Sanders Data using Hybrid Approach

(Sub)Gradient Descent

CSL465/603 - Machine Learning

Assignment 1: Predicting Amazon Review Ratings

Speech Emotion Recognition Using Support Vector Machine

Modeling function word errors in DNN-HMM based LVCSR systems

CLASSIFICATION OF TEXT DOCUMENTS USING INTEGER REPRESENTATION AND REGRESSION: AN INTEGRATED APPROACH

Learning From the Past with Experiment Databases

Modeling function word errors in DNN-HMM based LVCSR systems

The 9 th International Scientific Conference elearning and software for Education Bucharest, April 25-26, / X

Analysis of Emotion Recognition System through Speech Signal Using KNN & GMM Classifier

Switchboard Language Model Improvement with Conversational Data from Gigaword

Introduction to Ensemble Learning Featuring Successes in the Netflix Prize Competition

Reducing Features to Improve Bug Prediction

Generative models and adversarial training

Rule Learning With Negation: Issues Regarding Effectiveness

Semi-supervised methods of text processing, and an application to medical concept extraction. Yacine Jernite Text-as-Data series September 17.

Lecture 1: Basic Concepts of Machine Learning

A Case Study: News Classification Based on Term Frequency

ScienceDirect. A Framework for Clustering Cardiac Patient s Records Using Unsupervised Learning Techniques

A study of speaker adaptation for DNN-based speech synthesis

Speech Recognition at ICSI: Broadcast News and beyond

Rule Learning with Negation: Issues Regarding Effectiveness

Indian Institute of Technology, Kanpur

Learning Methods in Multilingual Speech Recognition

Activity Recognition from Accelerometer Data

Multivariate k-nearest Neighbor Regression for Time Series data -

Machine Learning from Garden Path Sentences: The Application of Computational Linguistics

WHEN THERE IS A mismatch between the acoustic

Predicting Student Attrition in MOOCs using Sentiment Analysis and Neural Networks

A Vector Space Approach for Aspect-Based Sentiment Analysis

AUTOMATIC DETECTION OF PROLONGED FRICATIVE PHONEMES WITH THE HIDDEN MARKOV MODELS APPROACH 1. INTRODUCTION

Word Segmentation of Off-line Handwritten Documents

CS 446: Machine Learning

Deep search. Enhancing a search bar using machine learning. Ilgün Ilgün & Cedric Reichenbach

arxiv: v2 [cs.cv] 30 Mar 2017

Machine Learning and Data Mining. Ensembles of Learners. Prof. Alexander Ihler

Large-Scale Web Page Classification. Sathi T Marath. Submitted in partial fulfilment of the requirements. for the degree of Doctor of Philosophy

Using Web Searches on Important Words to Create Background Sets for LSI Classification

Speech Recognition by Indexing and Sequencing

Australian Journal of Basic and Applied Sciences

Semi-Supervised GMM and DNN Acoustic Model Training with Multi-system Combination and Confidence Re-calibration

Unsupervised Learning of Word Semantic Embedding using the Deep Structured Semantic Model

ADVANCES IN DEEP NEURAL NETWORK APPROACHES TO SPEAKER RECOGNITION

System Implementation for SemEval-2017 Task 4 Subtask A Based on Interpolated Deep Neural Networks

Time series prediction

Iterative Cross-Training: An Algorithm for Learning from Unlabeled Web Pages

Probabilistic Latent Semantic Analysis

SINGLE DOCUMENT AUTOMATIC TEXT SUMMARIZATION USING TERM FREQUENCY-INVERSE DOCUMENT FREQUENCY (TF-IDF)

Speech Segmentation Using Probabilistic Phonetic Feature Hierarchy and Support Vector Machines

Issues in the Mining of Heart Failure Datasets

Lecture 10: Reinforcement Learning

Linking Task: Identifying authors and book titles in verbose queries

Computerized Adaptive Psychological Testing A Personalisation Perspective

QuickStroke: An Incremental On-line Chinese Handwriting Recognition System

Artificial Neural Networks written examination

OPTIMIZATINON OF TRAINING SETS FOR HEBBIAN-LEARNING- BASED CLASSIFIERS

ReinForest: Multi-Domain Dialogue Management Using Hierarchical Policies and Knowledge Ontology

OCR for Arabic using SIFT Descriptors With Online Failure Prediction

A Comparison of DHMM and DTW for Isolated Digits Recognition System of Arabic Language

Business Analytics and Information Tech COURSE NUMBER: 33:136:494 COURSE TITLE: Data Mining and Business Intelligence

POS tagging of Chinese Buddhist texts using Recurrent Neural Networks

Universidade do Minho Escola de Engenharia

Feature Selection based on Sampling and C4.5 Algorithm to Improve the Quality of Text Classification using Naïve Bayes

Historical maintenance relevant information roadmap for a self-learning maintenance prediction procedural approach

BUILDING CONTEXT-DEPENDENT DNN ACOUSTIC MODELS USING KULLBACK-LEIBLER DIVERGENCE-BASED STATE TYING

A New Perspective on Combining GMM and DNN Frameworks for Speaker Adaptation

Beyond the Pipeline: Discrete Optimization in NLP

An Online Handwriting Recognition System For Turkish

Phonetic- and Speaker-Discriminant Features for Speaker Recognition. Research Project

Experiments with SMS Translation and Stochastic Gradient Descent in Spanish Text Author Profiling

Course Outline. Course Grading. Where to go for help. Academic Integrity. EE-589 Introduction to Neural Networks NN 1 EE

Applications of data mining algorithms to analysis of medical data

CS4491/CS 7265 BIG DATA ANALYTICS INTRODUCTION TO THE COURSE. Mingon Kang, PhD Computer Science, Kennesaw State University

Axiom 2013 Team Description Paper

Corrective Feedback and Persistent Learning for Information Extraction

Autoregressive product of multi-frame predictions can improve the accuracy of hybrid models

ACOUSTIC EVENT DETECTION IN REAL LIFE RECORDINGS

Cross-lingual Short-Text Document Classification for Facebook Comments

Training a Neural Network to Answer 8th Grade Science Questions Steven Hewitt, An Ju, Katherine Stasaski

TRANSFER LEARNING IN MIR: SHARING LEARNED LATENT REPRESENTATIONS FOR MUSIC AUDIO CLASSIFICATION AND SIMILARITY

Using dialogue context to improve parsing performance in dialogue systems

Active Learning. Yingyu Liang Computer Sciences 760 Fall

First Grade Standards

Edinburgh Research Explorer

Chinese Language Parsing with Maximum-Entropy-Inspired Parser

Module 9: Performing HIV Rapid Tests (Demo and Practice)

A survey of multi-view machine learning

*Net Perceptions, Inc West 78th Street Suite 300 Minneapolis, MN

Robust Speech Recognition using DNN-HMM Acoustic Model Combining Noise-aware training with Spectral Subtraction

Extracting Opinion Expressions and Their Polarities Exploration of Pipelines and Joint Models

Calibration of Confidence Measures in Speech Recognition

CS 1103 Computer Science I Honors. Fall Instructor Muller. Syllabus

Mining Student Evolution Using Associative Classification and Clustering

Experiment Databases: Towards an Improved Experimental Methodology in Machine Learning

Transcription:

IAP Gesture Recognition Workshop Session 1: Gesture Recognition & Machine Learning Fundamentals Nicholas Gillian Responsive Environments, MIT Media Lab Tuesday 8th January, 2013

My Research

My Research Gesture Recognition for Musician Computer Interaction

My Research Gesture Recognition for Musician Computer Interaction Rapid Learning

My Research Gesture Recognition for Musician Computer Interaction Rapid Learning Free-air Gestures & Fine-grain Control

My Research Gesture Recognition for Musician Computer Interaction Rapid Learning Free-air Gestures & Fine-grain Control Creating tools and software that enable a more diverse group of individuals to integrate gesture-recognition into their own interfaces, art installations, and musical instruments

My Research Gesture Recognition for Musician Computer Interaction Rapid Learning Free-air Gestures & Fine-grain Control Creating tools and software that enable a more diverse group of individuals to integrate gesture-recognition into their own interfaces, art installations, and musical instruments EyesWeb Gesture Recognition Toolkit

Schedule Machine Learning 101 Hello World Gesture Recognition Installation & Setup Introduction to the Gesture Recognition Toolkit Lunch Hands-on Coding Sessions

Basic Pattern Recognition Problem

Basic Pattern Recognition Problem

Basic Pattern Recognition Problem Might work for simple cases...

Basic Pattern Recognition Problem Can be more difficult with multidimensional data!

Basic Pattern Recognition Problem Event B Can be more difficult with multiple events!

Machine Learning Machine Learning 101

Machine Learning Dataset

Machine Learning ML can automatically infer the underlying behavior/rules of this data

Machine Learning These rules can then be used to make predictions about future data

Machine Learning

Machine Learning The three main phases of machine learning: Data Collection Learning Prediction

Machine Learning Machine Learning is commonly used to solve two main problems:

Machine Learning Machine Learning is commonly used to solve two main problems: CLASSIFICATION

Machine Learning Machine Learning is commonly used to solve two main problems: CLASSIFICATION

Machine Learning Machine Learning is commonly used to solve two main problems: CLASSIFICATION

Machine Learning Machine Learning is commonly used to solve two main problems: CLASSIFICATION

Machine Learning Machine Learning is commonly used to solve two main problems: CLASSIFICATION REGRESSION

Machine Learning Machine Learning is commonly used to solve two main problems: CLASSIFICATION REGRESSION

Machine Learning Machine Learning is commonly used to solve two main problems: CLASSIFICATION Discrete Output, representing the most likely class that the input x belongs to REGRESSION

Machine Learning Machine Learning is commonly used to solve two main problems: CLASSIFICATION Discrete Output, representing the most likely class that the input x belongs to REGRESSION Continuous Output, mapping the N dimensional input vector x to an M dimensional vector y

Machine Learning Main types of learning:

Machine Learning Main types of learning: SUPERVISED LEARNING

Machine Learning Main types of learning: Class A Class B SUPERVISED LEARNING

Machine Learning Main types of learning: Class A Class B SUPERVISED LEARNING UNSUPERVISED LEARNING

Machine Learning Main types of learning: Class A Class B SUPERVISED LEARNING UNSUPERVISED LEARNING

Machine Learning Main types of learning: Class A Class B SUPERVISED LEARNING UNSUPERVISED LEARNING

Machine Learning Main types of learning: Class A Class B SUPERVISED LEARNING UNSUPERVISED LEARNING many others, such as semi-supervised learning, reinforcement learning, active learning, deep learning, etc..

Machine Learning Main types of learning: Class A Class B SUPERVISED LEARNING UNSUPERVISED LEARNING many others, such as semi-supervised learning, reinforcement learning, active learning, deep learning, etc..

Machine Learning Supervised Learning

Machine Learning Training Data

Machine Learning Training Data

Machine Learning Training Data Input Vector

Machine Learning Training Data Input Vector Target Vector

Machine Learning Training Data Learning Algorithm Input Vector Target Vector

Machine Learning Model Training Data Learning Algorithm Input Vector Target Vector

Machine Learning Model Training Data Learning Algorithm New Datum Prediction

Machine Learning Model Training Data Learning Algorithm Class A New Datum Predicted Class Prediction

Machine Learning Model Training Data Learning Algorithm Class A New Datum Predicted Class Prediction

Machine Learning Offline Model Training Data Learning Algorithm Class A New Datum Predicted Class Prediction

Machine Learning Model Training Data Learning Algorithm Online Class A New Datum Predicted Class Prediction

The Learning Process Model Training Data Learning Algorithm Class A New Datum Predicted Class Prediction

The Learning Process

The Learning Process

The Learning Process DECISION BOUNDARY

The Learning Process DECISION BOUNDARY

The Learning Process DECISION BOUNDARY

The Learning Process There are many possible decision boundaries! How do we choose the best one?

The Learning Process Minimize some error: Num Correctly Classified Examples Num Examples

The Learning Process Minimize some error: Num Correctly Classified Examples Num Examples 22 32 Error = 0.31

The Learning Process Minimize some error: Num Correctly Classified Examples Num Examples 25 32 Error = 0.22

The Learning Process Minimize some error: Num Correctly Classified Examples Num Examples 28 32 Error = 0.12

The Learning Process Stop when this error is small 32 32 Error = 0

The Learning Process Need to be careful that we don t overtrain the model...

The Learning Process Need to be careful that we don t overtrain the model... Complex decision boundary gets a perfect result on the training data

The Learning Process Need to be careful that we don t overtrain the model... Complex decision boundary gets a perfect result on the training data But it might fail terribly with new data

The Learning Process Need to be careful that we don t overtrain the model... Complex decision boundary gets a perfect result on the training data But it might fail terribly with new data This is know as OVERFITTING

The Learning Process Need to be careful that we don t overtrain the model... A very simple decision boundary might not work either

The Learning Process Need to be careful that we don t overtrain the model... A very simple decision boundary might not work either This is know as UNDERFITTING

The Learning Process Need to be careful that we don t overtrain the model... Instead, a less complex decision boundary might work much better, even if it does not perfectly reduce the error on the training data

The Learning Process Need to be careful that we don t overtrain the model... Instead, a less complex decision boundary might work much better, even if it does not perfectly reduce the error on the training data A model s ability to correctly predict the values of unseen data is know as GENERALIZATION

Testing a Model s Generalization Ability

Testing a Model s Generalization Ability Important not to use the training data to test a model!

Testing a Model s Generalization Ability Important not to use the training data to test a model! Instead use a test dataset

Testing a Model s Generalization Ability Important not to use the training data to test a model! Instead use a test dataset Dataset

Testing a Model s Generalization Ability Important not to use the training data to test a model! Instead use a test dataset Random Spilt Dataset

Testing a Model s Generalization Ability Important not to use the training data to test a model! Instead use a test dataset Random Spilt Training Dataset Dataset

Testing a Model s Generalization Ability Important not to use the training data to test a model! Instead use a test dataset Random Spilt Training Dataset Dataset Test Dataset

Testing a Model s Generalization Ability Sometimes there is not enough data to create a test dataset

Testing a Model s Generalization Ability Sometimes there is not enough data to create a test dataset Instead use K-FOLD CROSS VALIDATION

Testing a Model s Generalization Ability Sometimes there is not enough data to create a test dataset Instead use K-FOLD CROSS VALIDATION Dataset

Testing a Model s Generalization Ability Sometimes there is not enough data to create a test dataset Instead use K-FOLD CROSS VALIDATION Random Partition Dataset Partition Data into K Folds

Testing a Model s Generalization Ability Sometimes there is not enough data to create a test dataset Instead use K-FOLD CROSS VALIDATION Training Dataset Random Partition Dataset Fold 1

Testing a Model s Generalization Ability Sometimes there is not enough data to create a test dataset Instead use K-FOLD CROSS VALIDATION Training Dataset Random Partition Dataset Test Dataset Fold 1

Testing a Model s Generalization Ability Sometimes there is not enough data to create a test dataset Instead use K-FOLD CROSS VALIDATION Test Dataset Random Partition Training Dataset Dataset Fold 2

Testing a Model s Generalization Ability Sometimes there is not enough data to create a test dataset Instead use K-FOLD CROSS VALIDATION Test Dataset Random Partition Training Dataset Dataset Fold 3

Testing a Model s Generalization Ability Classification Accuracy = Num Correctly Classified Examples Num Test Examples

Testing a Model s Generalization Ability Classification Accuracy = Num Correctly Classified Examples Num Test Examples Precision k = Num Correctly Classified Examples for Class k Num Examples Classified as Class k

Testing a Model s Generalization Ability Classification Accuracy = Num Correctly Classified Examples Num Test Examples Precision k = Num Correctly Classified Examples for Class k Num Examples Classified as Class k Recall k = Num Correctly Classified Examples for Class k Num Class k Examples

Testing a Model s Generalization Ability Classification Accuracy = Num Correctly Classified Examples Num Test Examples Precision k = Num Correctly Classified Examples for Class k Num Examples Classified as Class k Recall k = Num Correctly Classified Examples for Class k Num Class k Examples F-measure k = 2 * Precision k * Recall k Precision k + Recall k

Testing a Model s Generalization Ability Classification Task: Detect the coffee mugs in the image

Testing a Model s Generalization Ability Segmentation algorithm gives us 13 possible candidates

Testing a Model s Generalization Ability The classification algorithm predicts that the following 5 objects are coffee mugs

Testing a Model s Generalization Ability Accuracy =? The classification algorithm predicts that the following 5 objects are coffee mugs

Testing a Model s Generalization Ability Accuracy = 10/13 = 0.78 10 items were classified correctly, 3 were not

Testing a Model s Generalization Ability Accuracy = 10/13 = 0.78 Precision =? Precision k = Num Correctly Classified Examples as Class k Num Examples Classified as Class k

Testing a Model s Generalization Ability Accuracy = 10/13 = 0.78 Precision = 4/5 = 0.8 Precision k = Num Correctly Classified Examples as Class k Num Examples Classified as Class k

Testing a Model s Generalization Ability Accuracy = 10/13 = 0.78 Precision = 4/5 = 0.8 Recall =? Recall k = Num Correctly Classified Examples as Class k Num Class k Examples

Testing a Model s Generalization Ability Accuracy = 10/13 = 0.78 Precision = 4/5 = 0.8 Recall = 4/6 = 0.6 Recall k = Num Correctly Classified Examples as Class k Num Class k Examples

Testing a Model s Generalization Ability Accuracy = 10/13 = 0.78 Precision = 4/5 = 0.8 Recall = 4/6 = 0.6 F-Measure = 2 * 0.8 * 0.6 0.8 + 0.6 = 0.69 Recall k = Num Correctly Classified Examples as Class k Num Class k Examples

A Simple Classifier Example

K-Nearest Neighbor Classifier (KNN)

K-Nearest Neighbor Classifier (KNN) Training Data Training Data: - M Labelled Training Examples - Each example is an N- Dimensional Vector

K-Nearest Neighbor Classifier (KNN) Training Data Learning Algorithm Training Phase: - Simply save the labelled training examples

K-Nearest Neighbor Classifier (KNN) Training Data Learning Algorithm Model Model: - Labelled training examples

K-Nearest Neighbor Classifier (KNN) Class? Training Data Learning Algorithm Model New Datum Predicted Class Prediction Phase: - Given a new N-Dimensional Vector, predict which class it belongs to

K-Nearest Neighbor Classifier (KNN) Class? Training Data Learning Algorithm Model New Datum Predicted Class Prediction Phase: - Given a new N-Dimensional Vector, predict which class it belongs to - Find the K Nearest Neighbors in the training examples - Classify x as the most likely class (i.e. the most common class in the K Nearest Neighbors) Class A: 2 Class B: 1 Likelihood of belonging to Class A = 0.6

K-Nearest Neighbor Classifier (KNN) Class? Training Data Learning Algorithm Model New Datum Predicted Class Prediction Phase: - Given a new N-Dimensional Vector, predict which class it belongs to - Find the K Nearest Neighbors in the training examples - Classify x as the most likely class (i.e. the most common class in the K Nearest Neighbors) Class A: 4 Class B: 6 Likelihood of belonging to Class B = 0.6

Hello World - KNN Demo

Gesture Recognition

Gesture Recognition

Gesture Recognition Instead of using the raw data as input to the learning algorithm, we might want to pre-process the data (i.e. scale it, smooth it) and also compute some features from the data which make the classification task easier for the machine-learning algorithm

Gesture Recognition Important that we also use the same pre-processing and feature extraction methods when predicting the new data!

Gesture Recognition Important that we also use the same pre-processing and feature extraction methods when predicting the new data!

Gesture Recognition Classification Task: Recognize different postures of a dancer

Gesture Recognition Classification Task: Recognize different postures of a dancer Input Vector:.... 640 * 480 * 3 = 921600

Gesture Recognition Preprocessing: Background Subtraction

Gesture Recognition Preprocessing: Background Subtraction Input Vector:.... 640 * 480 = 307200

Gesture Recognition Feature Extraction: Bounding Box Input Vector: = 2

Gesture Recognition Important that we also use the same pre-processing and feature extraction methods when predicting the new data!

Gesture Recognition As well as pre-processing the input to the classification algorithm, we might also want to process the output of the classifier

Gesture Recognition Choosing the right features is REALLY IMPORTANT!

Gesture Recognition Choosing the right features is REALLY IMPORTANT! Choosing the right ML algorithm is also REALLY IMPORTANT!

Gesture Recognition Choosing the right algorithm to solve your problem:

Gesture Recognition Choosing the right algorithm to solve your problem: First you need to categorize your problem:

Gesture Recognition Choosing the right algorithm to solve your problem: First you need to categorize your problem: Problem Discrete or Continuous Output?

Gesture Recognition Choosing the right algorithm to solve your problem: First you need to categorize your problem: Problem Discrete or Continuous Output? Continuous

Gesture Recognition Choosing the right algorithm to solve your problem: First you need to categorize your problem: Problem Discrete or Continuous Output? Continuous REGRESSION PROBLEM

Gesture Recognition Choosing the right algorithm to solve your problem: First you need to categorize your problem: Discrete Static Posture or Temporal Gesture? Problem Discrete or Continuous Output? Continuous REGRESSION PROBLEM

Gesture Recognition Choosing the right algorithm to solve your problem: First you need to categorize your problem: Discrete Static Posture or Temporal Gesture? STATIC CLASSIFICATION PROBLEM Problem Discrete or Continuous Output? Continuous REGRESSION PROBLEM

Gesture Recognition Choosing the right algorithm to solve your problem: First you need to categorize your problem: Problem Discrete Discrete or Continuous Output? Static Posture or Temporal Gesture? STATIC CLASSIFICATION PROBLEM TEMPORAL CLASSIFICATION PROBLEM Continuous REGRESSION PROBLEM

Gesture Recognition Choosing the right algorithm to solve your problem: STATIC CLASSIFICATION PROBLEM TEMPORAL CLASSIFICATION PROBLEM PROBLEM

Gesture Recognition Choosing the right algorithm to solve your problem: STATIC CLASSIFICATION PROBLEM Adaptive Naive Bayes Classifier (ANBC) TEMPORAL CLASSIFICATION PROBLEM PROBLEM

Gesture Recognition Choosing the right algorithm to solve your problem: STATIC CLASSIFICATION PROBLEM TEMPORAL CLASSIFICATION PROBLEM Adaptive Naive Bayes Classifier (ANBC) K-Nearest Neighbor (KNN) PROBLEM

Gesture Recognition Choosing the right algorithm to solve your problem: STATIC CLASSIFICATION PROBLEM TEMPORAL CLASSIFICATION PROBLEM Adaptive Naive Bayes Classifier (ANBC) K-Nearest Neighbor (KNN) AdaBoost PROBLEM

Gesture Recognition Choosing the right algorithm to solve your problem: STATIC CLASSIFICATION PROBLEM TEMPORAL CLASSIFICATION PROBLEM Adaptive Naive Bayes Classifier (ANBC) K-Nearest Neighbor (KNN) AdaBoost Decision Trees PROBLEM

Gesture Recognition Choosing the right algorithm to solve your problem: STATIC CLASSIFICATION PROBLEM TEMPORAL CLASSIFICATION PROBLEM Adaptive Naive Bayes Classifier (ANBC) K-Nearest Neighbor (KNN) AdaBoost Decision Trees Support Vector Machine (SVM) PROBLEM

Gesture Recognition Choosing the right algorithm to solve your problem: STATIC CLASSIFICATION PROBLEM TEMPORAL CLASSIFICATION PROBLEM PROBLEM

Gesture Recognition Choosing the right algorithm to solve your problem: STATIC CLASSIFICATION PROBLEM TEMPORAL CLASSIFICATION PROBLEM Hidden Markov Model (HMM) PROBLEM

Gesture Recognition Choosing the right algorithm to solve your problem: STATIC CLASSIFICATION PROBLEM TEMPORAL CLASSIFICATION PROBLEM Hidden Markov Model (HMM) Dynamic Time Warping (DTW) PROBLEM

Gesture Recognition Choosing the right algorithm to solve your problem: STATIC CLASSIFICATION PROBLEM TEMPORAL CLASSIFICATION PROBLEM PROBLEM

Gesture Recognition Choosing the right algorithm to solve your problem: Static Posture or Temporal Gesture? STATIC CLASSIFICATION PROBLEM TEMPORAL CLASSIFICATION PROBLEM REGRESSION PROBLEM

Gesture Recognition Choosing the right algorithm to solve your problem: Static Posture or Temporal Gesture? STATIC CLASSIFICATION PROBLEM TEMPORAL CLASSIFICATION PROBLEM REGRESSION PROBLEM Artificial Neural Network (ANN)

Gesture Recognition Choosing the right algorithm to solve your problem: Static Posture or Temporal Gesture? STATIC CLASSIFICATION PROBLEM TEMPORAL CLASSIFICATION PROBLEM REGRESSION PROBLEM

Gesture Recognition Choosing the right algorithm to solve your problem:

Machine Learning Resources - Great books to get started: Marsland (2009): Machine Learning: An Algorithmic Perspective Witten (2011): Data Mining: Practical Machine Learning Tools and Techniques - More detailed books: Bishop (2007): Pattern Recognition and Machine Learning - Online Lectures: Duda (2001): Pattern Classification Prof. Andrew Ng (Stanford University), Machine Learning Lectures (search for Machine Learning (Stanford) in youtube)

Gesture Recognition Toolkit

Gesture Recognition Toolkit Adaptive Naive Bayes Classifier K-Nearest Neighbor Dynamic Time Warping Support Vector Machine Classification Modules Regression Modules Artificial Neural Networks Gaussian Mixture Model

Gesture Recognition Toolkit Adaptive Naive Bayes Classifier K-Nearest Neighbor Dynamic Time Warping Support Vector Machine Classification Modules Regression Modules Artificial Neural Networks Gaussian Mixture Model Circular Buffer Data Linear Algebra Utils Structures Matrix Timer Training Data Structures Random Range Tracker

Gesture Recognition Toolkit Filters FFT Pre Processing Modules Adaptive Naive Bayes Classifier Derivative Zero Crossing Feature Extraction Modules Peak Detection Zero Crossing Counter Movement Trajectory Features Post Processing Modules K-Nearest Neighbor Dynamic Time Warping Support Vector Machine Classification Modules Regression Modules Class Label Filters Artificial Neural Networks Gaussian Mixture Model Circular Buffer Data Linear Algebra Utils Structures Matrix Timer Training Data Structures Random Range Tracker

Gesture Recognition Toolkit Classification Modules Pre Processing Modules Feature Extraction Modules Regression Post Processing Modules Modules

Gesture Recognition Toolkit Classification Modules Pre Processing Modules Feature Extraction Modules Regression Post Processing Modules Modules Gesture Recognition Pipeline

Gesture Recognition Toolkit This is how you setup a new pipeline and set the classifier

Gesture Recognition Toolkit This is how you would change the classifier

Gesture Recognition Toolkit This is how you setup a more complex pipeline

Gesture Recognition Toolkit This is how you train the algorithm at the core of the pipeline

Gesture Recognition Toolkit This is how you test the accuracy of the pipeline

Gesture Recognition Toolkit You can then easily access the accuracy, precision, recall, etc.

Gesture Recognition Toolkit If you want to run k-fold cross validation, then simply state the k-value when you call the train method and the pipeline will do the rest

Gesture Recognition Toolkit This is how you perform real-time classification

Gesture Recognition Toolkit After the prediction you can then get the predicted class label, predication likelihoods, etc.