Capita Selecta Multimedia Presentatie 2
-
Upload
davy-debacker -
Category
Business
-
view
1.159 -
download
0
description
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?