Multi-touch

      GESTURE RECOGNITION
                &
           API DESIGN




Davy Debacker, Ruben Lagatie, Sven Mich...
Inhoud

          Introductie
1.
           Geschiedenis
     1.

           Motivatie
     2.

          Gestures
2.
    ...
Papers

    Visual Tracking of Bare Fingers for Interactive Surfaces

        Letessier, Bédard (2004)
    

    Gesture...
Introductie

        GESCHIEDENIS
 1.
      2. MOTIVATIE
Geschiedenis

 Mouse gestures
   1983   Apple: “drag”
   >1997  Games
   2001   Opera
   2004   KDE 3.2


 Hand gest...
Motivatie

   Intuïtiever
   Sneller
     26% sneller dan selecteren van knoppen1




1 Dulberg,   M.S., Amant, R.S., a...
Gestures

     MULTI - TOUCH UI GES TURES
1.
            •    1 FINGER
          •     2 FINGERS
              •   HANDS
 ...
Multi-touch UI gestures: 1 finger

 Move
  verplaatsen van object


 Select
  selecteren door omcirkelen


 Double tap
...
Multi-touch UI gestures: 2 fingers

 Rotate
  roteren a.d.v. 2 punten


 Scale
  vergroten/verkleinen a.d.v. 2 punten


...
Multi-touch UI gestures: hands

 Flat hand
  openen menu


 Vertical hand
  scheiding maken door verticale lijn


 2 Ve...
Template gestures
Gesture recognition

     BEPALEN POSITIE VINGERTOPPEN
1.
     2. HERKENNINGSTECHNIEKEN
Bepalen positie vingertoppen



       voorgrond extractie door IDS
1.
      grayscale difference map
       automatische...
1. Voorgrond extractie door IDS

            Computer Vision techniek:

            Image Differencing Segmentation (IDS)
...
2. Automatische thresholding


Verwijderen van ruis en omvormen naar binaire map




                                    b...
3. shape filtering




                              Fast Rejection Filters


     Patroon vingertop


1. Pixel per pixel ...
Gesture recognition

     BEPALEN POSITIE VINGERTOPPEN
1.
     2. HERKENNINGSTECHNIEKEN
Herkenningstechnieken

 Hardcoded
 Template Matching
 Neural Networks
 Statistical classification
 Discontinuity Matc...
Hardcoded

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


 Scale:
  if((dx(pi) * dx (pj) < 0) || (dy(p...
Template Matching

$1 algoritme
 rotatieonafhankelijk template matching algoritme


                      Concept

       ...
Template Matching

$1 algoritme
 rotatieonafhankelijk template matching algoritme


                        Problemen

   ...
1. Afstand en locatie punten afhankelijk van snelheid




                            Resample
2. rotatieonafhankelijkheid



   roteren volgens indicatieve hoek
1.
2. scalering en translatie
3. zoeken optimale rotatie
1. roteren volgens indicatieve hoek



                      indicatieve hoek
 startpunt




Probleem:

deze rotatie is me...
2. scalering en translatie

Scaleren naar referentie vierkant, zodat:

 punten niet beïnvloed worden door ratio
 eenvoud...
3. zoek optimale hoek

gelijke patronen   verschillende patronen




                     Golden Section Search
  Hill Cli...
Gesture API

     BIBLIOTHEEK MET GESTURES
1.
      2. LISTENER METHODES
1. Bibliotheek met gestures

SDK zoals DiamondTouch: DTFlash

• Standaard gestures in een bibliotheek bewaren (bv
  scale,...
2. Listener methodes

 Programma kan zichzelf registreren als listener
      Listener aangeroepen wanneer gesture wordt h...
Einde




Vragen?
Upcoming SlideShare
Loading in …5
×

Capita Selecta Multimedia Presentatie 2

1,235 views
1,205 views

Published on

Over gesture herkenning bij (multi) touch schermen.

Published in: Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,235
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
13
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Capita Selecta Multimedia Presentatie 2

  1. 1. Multi-touch GESTURE RECOGNITION & API DESIGN Davy Debacker, Ruben Lagatie, Sven Michiels
  2. 2. Inhoud Introductie 1. Geschiedenis 1. Motivatie 2. Gestures 2. Multi-touch UI gestures 1. Template gestures 2. Gesture recognition 3. Bepalen positie vingertoppen 1. Herkenningstechnieken 2. 4. Gesture API
  3. 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) 
  4. 4. Introductie GESCHIEDENIS 1. 2. MOTIVATIE
  5. 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. 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
  7. 7. Gestures MULTI - TOUCH UI GES TURES 1. • 1 FINGER • 2 FINGERS • HANDS 2. TEMPLATE GESTURES
  8. 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)
  9. 9. Multi-touch UI gestures: 2 fingers  Rotate roteren a.d.v. 2 punten  Scale vergroten/verkleinen a.d.v. 2 punten  Multiselect selecteren door omcirkelen
  10. 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
  11. 11. Template gestures
  12. 12. Gesture recognition BEPALEN POSITIE VINGERTOPPEN 1. 2. HERKENNINGSTECHNIEKEN
  13. 13. Bepalen positie vingertoppen voorgrond extractie door IDS 1.  grayscale difference map automatische thresholding 2.  binary map shape filtering 3.  fingertip positions
  14. 14. 1. Voorgrond extractie door IDS Computer Vision techniek: Image Differencing Segmentation (IDS) grayscale difference map
  15. 15. 2. Automatische thresholding Verwijderen van ruis en omvormen naar binaire map binaire map
  16. 16. 3. shape filtering Fast Rejection Filters Patroon vingertop 1. Pixel per pixel vergelijking met patroon (vinger, blok, pen, GSM…) 2. Fast Rejection Filters (FRF) 3. Mediaan van clusters = posities vingers
  17. 17. Gesture recognition BEPALEN POSITIE VINGERTOPPEN 1. 2. HERKENNINGSTECHNIEKEN
  18. 18. Herkenningstechnieken  Hardcoded  Template Matching  Neural Networks  Statistical classification  Discontinuity Matching
  19. 19. 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))
  20. 20. Template Matching $1 algoritme rotatieonafhankelijk template matching algoritme Concept registreren van punten op interval 1. 2. minimaliseren gemiddelde afstand tussen punten:
  21. 21. Template Matching $1 algoritme rotatieonafhankelijk template matching algoritme Problemen 1. afstand en locatie punten afhankelijk van snelheid 2. rotatieonafhankelijkheid
  22. 22. 1. Afstand en locatie punten afhankelijk van snelheid Resample
  23. 23. 2. rotatieonafhankelijkheid roteren volgens indicatieve hoek 1. 2. scalering en translatie 3. zoeken optimale rotatie
  24. 24. 1. roteren volgens indicatieve hoek indicatieve hoek startpunt Probleem: deze rotatie is meestal niet optimaal
  25. 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. 26. 3. zoek optimale hoek gelijke patronen verschillende patronen Golden Section Search Hill Climbing • trager voor gelijkaardige patronen • sneller voor verschillende patronen
  27. 27. Gesture API BIBLIOTHEEK MET GESTURES 1. 2. LISTENER METHODES
  28. 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. 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 …
  30. 30. Einde Vragen?

×