SlideShare a Scribd company logo
1 of 30
Download to read offline
Multi-touch

      GESTURE RECOGNITION
                &
           API DESIGN




Davy Debacker, Ruben Lagatie, Sven Michiels
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
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)
    
Introductie

        GESCHIEDENIS
 1.
      2. MOTIVATIE
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
Gestures

     MULTI - TOUCH UI GES TURES
1.
            •    1 FINGER
          •     2 FINGERS
              •   HANDS
     2. TEMPLATE GESTURES
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)
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
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
Template gestures
Gesture recognition

     BEPALEN POSITIE VINGERTOPPEN
1.
     2. HERKENNINGSTECHNIEKEN
Bepalen positie vingertoppen



       voorgrond extractie door IDS
1.
      grayscale difference map
       automatische thresholding
2.
      binary map
       shape filtering
3.
      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




                              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
Gesture recognition

     BEPALEN POSITIE VINGERTOPPEN
1.
     2. HERKENNINGSTECHNIEKEN
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 algoritme
 rotatieonafhankelijk template matching algoritme


                      Concept

            registreren van punten op interval
         1.
  2. minimaliseren gemiddelde afstand tussen punten:
Template Matching

$1 algoritme
 rotatieonafhankelijk 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



   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 meestal niet optimaal
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

gelijke patronen   verschillende patronen




                     Golden Section Search
  Hill Climbing
                           • trager voor gelijkaardige patronen
                           • sneller voor verschillende patronen
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, 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?

More Related Content

Viewers also liked

1,000,000 foot view of Hadoop-like parallel data processing systems
1,000,000 foot view of Hadoop-like parallel data processing systems1,000,000 foot view of Hadoop-like parallel data processing systems
1,000,000 foot view of Hadoop-like parallel data processing systemsHiroyuki Yamada
 
Improving Health through technology
Improving Health through technologyImproving Health through technology
Improving Health through technologyslandry
 
Implica't amb activitats solidàries. CEE Esperança
Implica't amb activitats solidàries. CEE EsperançaImplica't amb activitats solidàries. CEE Esperança
Implica't amb activitats solidàries. CEE EsperançaLLuelles Perera Maria del Mar
 
Open Innovation at BBC
Open Innovation at BBCOpen Innovation at BBC
Open Innovation at BBCguestdeccef
 
Veio Di Minas Uai
Veio Di Minas UaiVeio Di Minas Uai
Veio Di Minas Uaigarotodalua
 
Hotel Direct Booking
Hotel Direct BookingHotel Direct Booking
Hotel Direct BookingMargaux
 
SLOODLE 33 Slide In Italiano
SLOODLE 33 Slide In ItalianoSLOODLE 33 Slide In Italiano
SLOODLE 33 Slide In ItalianoEleonora Porta
 
Development w ręce ludu - czyli wielki powrót twórców niezależnych w czasach ...
Development w ręce ludu - czyli wielki powrót twórców niezależnych w czasach ...Development w ręce ludu - czyli wielki powrót twórców niezależnych w czasach ...
Development w ręce ludu - czyli wielki powrót twórców niezależnych w czasach ...Fundacja Rozwoju Branży Internetowej Netcamp
 
2007 04 27 Japan
2007 04 27 Japan2007 04 27 Japan
2007 04 27 JapanTRIC Tools
 

Viewers also liked (20)

Anna Orecka, Sebastian Dawid - Projekt jakość, czyli jak skutecznie podnosić ...
Anna Orecka, Sebastian Dawid - Projekt jakość, czyli jak skutecznie podnosić ...Anna Orecka, Sebastian Dawid - Projekt jakość, czyli jak skutecznie podnosić ...
Anna Orecka, Sebastian Dawid - Projekt jakość, czyli jak skutecznie podnosić ...
 
Jak Opera Mini wygrała z Apple
Jak Opera Mini wygrała z AppleJak Opera Mini wygrała z Apple
Jak Opera Mini wygrała z Apple
 
2007 0419 Ca
2007 0419 Ca2007 0419 Ca
2007 0419 Ca
 
2004_0619CA
2004_0619CA2004_0619CA
2004_0619CA
 
Marketing w serwisach społecznościowych - Netcamp #14
Marketing w serwisach społecznościowych - Netcamp #14Marketing w serwisach społecznościowych - Netcamp #14
Marketing w serwisach społecznościowych - Netcamp #14
 
1,000,000 foot view of Hadoop-like parallel data processing systems
1,000,000 foot view of Hadoop-like parallel data processing systems1,000,000 foot view of Hadoop-like parallel data processing systems
1,000,000 foot view of Hadoop-like parallel data processing systems
 
Improving Health through technology
Improving Health through technologyImproving Health through technology
Improving Health through technology
 
Implica't amb activitats solidàries. CEE Esperança
Implica't amb activitats solidàries. CEE EsperançaImplica't amb activitats solidàries. CEE Esperança
Implica't amb activitats solidàries. CEE Esperança
 
Open Innovation at BBC
Open Innovation at BBCOpen Innovation at BBC
Open Innovation at BBC
 
Branding Final
Branding FinalBranding Final
Branding Final
 
Veio Di Minas Uai
Veio Di Minas UaiVeio Di Minas Uai
Veio Di Minas Uai
 
Vicens Vives
Vicens VivesVicens Vives
Vicens Vives
 
Fresco 2 0
Fresco 2 0Fresco 2 0
Fresco 2 0
 
Hotel Direct Booking
Hotel Direct BookingHotel Direct Booking
Hotel Direct Booking
 
Netcamp #3 - Pozycjonowanie stron w wyszukiwarkach, czyli zwiększanie widoczn...
Netcamp #3 - Pozycjonowanie stron w wyszukiwarkach, czyli zwiększanie widoczn...Netcamp #3 - Pozycjonowanie stron w wyszukiwarkach, czyli zwiększanie widoczn...
Netcamp #3 - Pozycjonowanie stron w wyszukiwarkach, czyli zwiększanie widoczn...
 
SLOODLE 33 Slide In Italiano
SLOODLE 33 Slide In ItalianoSLOODLE 33 Slide In Italiano
SLOODLE 33 Slide In Italiano
 
Development w ręce ludu - czyli wielki powrót twórców niezależnych w czasach ...
Development w ręce ludu - czyli wielki powrót twórców niezależnych w czasach ...Development w ręce ludu - czyli wielki powrót twórców niezależnych w czasach ...
Development w ręce ludu - czyli wielki powrót twórców niezależnych w czasach ...
 
2006 0515 Ca
2006 0515 Ca2006 0515 Ca
2006 0515 Ca
 
2007 04 27 Japan
2007 04 27 Japan2007 04 27 Japan
2007 04 27 Japan
 
About Lux IO
About Lux IOAbout Lux IO
About Lux IO
 

More from Davy Debacker

Resultaten DCT en Wavelet gebaseerde Ray Tracer
Resultaten DCT en Wavelet gebaseerde Ray TracerResultaten DCT en Wavelet gebaseerde Ray Tracer
Resultaten DCT en Wavelet gebaseerde Ray TracerDavy Debacker
 
Enkele Problemen met DCT gebaseerde Ray Tracer
Enkele Problemen met DCT gebaseerde Ray TracerEnkele Problemen met DCT gebaseerde Ray Tracer
Enkele Problemen met DCT gebaseerde Ray TracerDavy Debacker
 
Thesis presentatie Adaptieve en Progressieve ray tracing
Thesis presentatie Adaptieve en Progressieve ray tracingThesis presentatie Adaptieve en Progressieve ray tracing
Thesis presentatie Adaptieve en Progressieve ray tracingDavy Debacker
 
User Study Multitouch on Safari
User Study Multitouch on SafariUser Study Multitouch on Safari
User Study Multitouch on SafariDavy Debacker
 
Presentatie alfa facebook app
Presentatie alfa facebook appPresentatie alfa facebook app
Presentatie alfa facebook appDavy Debacker
 
evaluatie-facebook-apps-stanford
evaluatie-facebook-apps-stanfordevaluatie-facebook-apps-stanford
evaluatie-facebook-apps-stanfordDavy Debacker
 
User Study On Multitouch screens
User Study On Multitouch screensUser Study On Multitouch screens
User Study On Multitouch screensDavy Debacker
 
Capita Selecta Multimedia Presentatie 1
Capita Selecta Multimedia Presentatie 1Capita Selecta Multimedia Presentatie 1
Capita Selecta Multimedia Presentatie 1Davy Debacker
 

More from Davy Debacker (10)

Thesis Presentatie
Thesis PresentatieThesis Presentatie
Thesis Presentatie
 
Resultaten DCT en Wavelet gebaseerde Ray Tracer
Resultaten DCT en Wavelet gebaseerde Ray TracerResultaten DCT en Wavelet gebaseerde Ray Tracer
Resultaten DCT en Wavelet gebaseerde Ray Tracer
 
Enkele Problemen met DCT gebaseerde Ray Tracer
Enkele Problemen met DCT gebaseerde Ray TracerEnkele Problemen met DCT gebaseerde Ray Tracer
Enkele Problemen met DCT gebaseerde Ray Tracer
 
Thesis presentatie Adaptieve en Progressieve ray tracing
Thesis presentatie Adaptieve en Progressieve ray tracingThesis presentatie Adaptieve en Progressieve ray tracing
Thesis presentatie Adaptieve en Progressieve ray tracing
 
User Study Multitouch on Safari
User Study Multitouch on SafariUser Study Multitouch on Safari
User Study Multitouch on Safari
 
Ui03
Ui03Ui03
Ui03
 
Presentatie alfa facebook app
Presentatie alfa facebook appPresentatie alfa facebook app
Presentatie alfa facebook app
 
evaluatie-facebook-apps-stanford
evaluatie-facebook-apps-stanfordevaluatie-facebook-apps-stanford
evaluatie-facebook-apps-stanford
 
User Study On Multitouch screens
User Study On Multitouch screensUser Study On Multitouch screens
User Study On Multitouch screens
 
Capita Selecta Multimedia Presentatie 1
Capita Selecta Multimedia Presentatie 1Capita Selecta Multimedia Presentatie 1
Capita Selecta Multimedia Presentatie 1
 

Capita Selecta Multimedia Presentatie 2

  • 1. Multi-touch GESTURE RECOGNITION & API DESIGN Davy Debacker, Ruben Lagatie, Sven Michiels
  • 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. 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. Introductie GESCHIEDENIS 1. 2. MOTIVATIE
  • 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
  • 7. Gestures MULTI - TOUCH UI GES TURES 1. • 1 FINGER • 2 FINGERS • HANDS 2. TEMPLATE GESTURES
  • 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. 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. 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
  • 12. Gesture recognition BEPALEN POSITIE VINGERTOPPEN 1. 2. HERKENNINGSTECHNIEKEN
  • 13. Bepalen positie vingertoppen voorgrond extractie door IDS 1.  grayscale difference map automatische thresholding 2.  binary map shape filtering 3.  fingertip positions
  • 14. 1. Voorgrond extractie door IDS Computer Vision techniek: Image Differencing Segmentation (IDS) grayscale difference map
  • 15. 2. Automatische thresholding Verwijderen van ruis en omvormen naar binaire map binaire map
  • 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. Gesture recognition BEPALEN POSITIE VINGERTOPPEN 1. 2. HERKENNINGSTECHNIEKEN
  • 18. Herkenningstechnieken  Hardcoded  Template Matching  Neural Networks  Statistical classification  Discontinuity Matching
  • 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. 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 …