Capita Selecta Multimedia Presentatie 2

Post on 01-Jul-2015

1.159 views 0 download

description

Over gesture herkenning bij (multi) touch schermen.

Transcript of Capita Selecta Multimedia Presentatie 2

G E S T U R E R E C O G N I T I O N

&

A P I D E S I G N

Multi-touch

Davy Debacker, Ruben Lagatie, Sven Michiels

Inhoud

1. Introductie1. Geschiedenis

2. Motivatie

2. Gestures1. Multi-touch UI gestures

2. Template gestures

3. Gesture recognition1. Bepalen positie vingertoppen

2. Herkenningstechnieken

4. Gesture API

Papers

Visual Tracking of Bare Fingers for Interactive Surfaces

Letessier, Bédard (2004)

Gestures without Libraries, Toolkits or Training: A $1 Recognizer for User Interface Prototypes

Wobbrock, Wilson, Li (2007)

Gesture Analyzing for Multi-Touch Screen Interfaces

Thörnlund (2007)

A Survey of Gesture Recognition Techniques

Watson (1993)

Constructing Finite State Machines for Fast Gesture Recognition

Hong, Turk, Huang (2000)

Implementation of Multi-touch Tabletop Display for HCI

Kim, Kim, Lee (2007)

Programming for Multiple Touches and Multiple Users: A Toolkit for the DiamondTouch Hardware

Diaz-Marino, Tse, Greenberg (2003)

Mouse Gesture Recognition by using Hidden Markov Model

Jang, Ko, Khamidov (2004)

Multi-finger and whole hand gestural interaction techniques for multi-user tabletop displays

Mike Wu, Ravin Balakrishnan(2003)

1 . G E S C H I E D E N I S

2 . M O T I V A T I E

Introductie

Geschiedenis

Mouse gestures 1983 Apple: “drag”

>1997 Games

2001 Opera

2004 KDE 3.2

Hand gestures in CS lezen van gebarentaal

robotica

multi-touch

Motivatie

Intuïtiever

Sneller

26% sneller dan selecteren van knoppen1

1 Dulberg, M.S., Amant, R.S., and Zettlemoyer, L. An Imprecise Mouse Gesture for the Fast Activation of Controls. In Proceedings of INTERACT’99. 1999. 375–382

1 . M U L T I - T O U C H U I G E S T U R E S

• 1 F I N G E R

• 2 F I N G E R S

• H A N D S

2 . T E M P L A T E G E S T U R E S

Gestures

Multi-touch UI gestures: 1 finger

Moveverplaatsen van object

Selectselecteren door omcirkelen

Double tap context menu rond vinger (pie chart)

Flicking and catchingeen object gooien/opvangen(snelheid threshold)

Multi-touch UI gestures: 2 fingers

Rotateroteren a.d.v. 2 punten

Scalevergroten/verkleinen a.d.v. 2 punten

Multiselectselecteren door omcirkelen

Multi-touch UI gestures: hands

Flat handopenen menu

Vertical handscheiding maken door verticale lijn

2 Vertical handsgroeperen door samenduwen

2 Corner shaped handsselecteren door afbakenen rechthoekig gebied

Template gestures

1 . B E P A L E N P O S I T I E V I N G E R T O P P E N

2 . H E R K E N N I N G S T E C H N I E K E N

Gesture recognition

Bepalen positie vingertoppen

1. voorgrond extractie door IDS grayscale difference map

2. automatische thresholding binary map

3. shape filtering fingertip positions

1. Voorgrond extractie door IDS

Computer Vision techniek:

Image Differencing Segmentation (IDS)

grayscale difference map

2. Automatische thresholding

Verwijderen van ruis en omvormen naar binaire map

binaire map

3. shape filtering

1. Pixel per pixel vergelijking met patroon(vinger, blok, pen, GSM…)

2. Fast Rejection Filters (FRF)3. Mediaan van clusters = posities vingers

Fast Rejection Filters

Patroon vingertop

1 . B E P A L E N P O S I T I E V I N G E R T O P P E N

2 . H E R K E N N I N G S T E C H N I E K E N

Gesture recognition

Herkenningstechnieken

Hardcoded

Template Matching

Neural Networks

Statistical classification

Discontinuity Matching

Hardcoded

Rotate:if((dx(pi) * dx(pj) < 0) && (dy (pi) * dy(pj) < 0))

Scale:if((dx(pi) * dx (pj) < 0) || (dy(pi) * dy(pj) < 0))

Move:if((dx(pi) * dx (pj) > 0) || (dy(pi) * dy(pj) > 0))

Template Matching

$1 algoritmerotatieonafhankelijk template matching algoritme

Concept

1. registreren van punten op interval

2. minimaliseren gemiddelde afstand tussen punten:

Template Matching

$1 algoritmerotatieonafhankelijk template matching algoritme

Problemen

1. afstand en locatie punten afhankelijk van snelheid

2. rotatieonafhankelijkheid

1. Afstand en locatie punten afhankelijk van snelheid

Resample

2. rotatieonafhankelijkheid

1. roteren volgens indicatieve hoek

2. scalering en translatie

3. zoeken optimale rotatie

1. roteren volgens indicatieve hoek

startpunt

Probleem:

deze rotatie is meestal niet optimaal

indicatieve hoek

2. scalering en translatie

Scaleren naar referentie vierkant, zodat:

punten niet beïnvloed worden door ratio

eenvoudig kan roteren rond middelpunt

Nadeel: sommige patronen niet meer te onderscheiden (bv. ovaal - cirkel)

3. zoek optimale hoek

Hill Climbing Golden Section Search

gelijke patronen verschillende patronen

• trager voor gelijkaardige patronen• sneller voor verschillende patronen

1 . B I B L I O T H E E K M E T G E S T U R E S

2 . L I S T E N E R M E T H O D E S

Gesture API

1. Bibliotheek met gestures

SDK zoals DiamondTouch: DTFlash

• Standaard gestures in een bibliotheek bewaren (bv scale, move, rotate…)

• Toevoegen van gestures kan eenvoudig door overerving

2. Listener methodes

Programma kan zichzelf registreren als listener Listener aangeroepen wanneer gesture wordt herkend

Listener aangeroepen wanneer scherm wordt aangeraakt

Mogelijk om huidige positie vingers op te vragen

Einde

Vragen?