3. 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)
5. Geschiedenis
Mouse gestures
1983 Apple: “drag”
>1997 Games
2001 Opera
2004 KDE 3.2
Hand gestures in CS
lezen van gebarentaal
robotica
multi-touch
6. 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
8. Multi-touch UI gestures: 1 finger
Move
verplaatsen van object
Select
selecteren door omcirkelen
Double tap
context menu rond vinger (pie chart)
Flicking and catching
een object gooien/opvangen(snelheid threshold)
10. Multi-touch UI gestures: hands
Flat hand
openen menu
Vertical hand
scheiding maken door verticale lijn
2 Vertical hands
groeperen door samenduwen
2 Corner shaped hands
selecteren door afbakenen rechthoekig gebied
20. Template Matching
$1 algoritme
rotatieonafhankelijk template matching algoritme
Concept
registreren van punten op interval
1.
2. minimaliseren gemiddelde afstand tussen punten:
21. Template Matching
$1 algoritme
rotatieonafhankelijk template matching algoritme
Problemen
1. afstand en locatie punten afhankelijk van snelheid
2. rotatieonafhankelijkheid
22. 1. Afstand en locatie punten afhankelijk van snelheid
Resample
23. 2. rotatieonafhankelijkheid
roteren volgens indicatieve hoek
1.
2. scalering en translatie
3. zoeken optimale rotatie
24. 1. roteren volgens indicatieve hoek
indicatieve hoek
startpunt
Probleem:
deze rotatie is meestal niet optimaal
25. 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)
26. 3. zoek optimale hoek
gelijke patronen verschillende patronen
Golden Section Search
Hill Climbing
• trager voor gelijkaardige patronen
• sneller voor verschillende patronen
27. Gesture API
BIBLIOTHEEK MET GESTURES
1.
2. LISTENER METHODES
28. 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
29. 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
…