SlideShare a Scribd company logo
1 of 28
Download to read offline
´
       UNIVERSITA DEGLI STUDI DI MILANO BICOCCA
         ´
   FACOLTA DI SCIENZE MATEMATICHE FISICHE E NATURALI




     Dipartimento di Informatica Sistemistica e Comunicazione
             Corso di Laurea Magistrale in Informatica


DEVELOPMENT OF A HUMAN-COMPUTER INTERFACE
         BASED ON HAND GESTURES
                      Relatore: Raimondo Schettini
                      Correlatore: Gianluigi Ciocca
                 Tesi di laurea di: Luca Piccinelli
Introduzione




Introduzione
     La tesi si inserisce nell’ambito di ricerca HCI.
     Problema generale: riconoscimento di data pattern. Nello
     specifico:
         localizzazione e tracciamento
         delle mani;
         riconoscimento di traiettorie
         eseguite dall’utente,
         utilizzando le mani.
         riconoscimento di
         configurazioni assunte dalla
         mano;
Introduzione




Introduzione: overview
Tracciamento delle mani




Tracciamento delle mani


     Sottoproblemi:
            localizzare (dimensione spaziale);
            tracciare (dimensione temporale).
     Soluzioni proposte:
         localizzazione
                    immagine residua;
                    rilevamento della pelle;
            tracciamento
                    tracciamento di blob.
Tracciamento delle mani
   Immagine residua



Tracciamento delle mani: immagine residua

     Osservazione: Le mani sono oggetti non rigidi la cui apparenza
     varia rapidamente.
     Individuazione delle regioni di un frame che subiscono maggiori
     variazioni rispetto al frame precedente.
            Algoritmo Block flow estimation tra frame successivi.
            Valore residuo dato dal modulo della differenza dei valori medi
            tra due blocchi corrispondenti
Tracciamento delle mani
   rilevamento della pelle



Tracciamento delle mani: rilevamento della pelle
            Problema di decisione: classificazione di un pixel come
            “pelle” o “non pelle”;
            stima della distribuzione del colore della pelle;
            assegnazione di un valore di probabilit´ al colore di ogni pixel e
                                                    a
            sogliatura utilizzando una combinazione lineare di due
            classificatori bayesiani:

                             P(skin|c) = αPoff (skin|c) + (1 − α)Pn (skin|c)


                 - Poff (skin|c) : training off-line;
                 - Pn (skin|c) : training sulla distribuzione di skin rilevata nei
                   precedenti n frame;
                 - α : parametro di adattamento.
Tracciamento delle mani
   rilevamento della pelle



Tracciamento delle mani: procedimento
     Le immagini sono mascherate con l’immagine residua: sul risultato
     del mascheramento ´ applicato l’algoritmo di skin detection.
                       e




     Applicazione di filtro di blurring e sogliatura.
Tracciamento delle mani
   Blobs tracking



Tracciamento delle mani: algoritmo di tracciamento di
blobs
            Blob approssimati ad ellissi;
            ogni ellisse corrisponde ad un’ipotesi di localizzazione di un
            oggetto;
            gestione ipotesi:
Tracciamento delle mani
   Blobs tracking



Tracciamento delle mani: algoritmo di tracciamento di
blobs
            Blob approssimati ad ellissi;
            ogni ellisse corrisponde ad un’ipotesi di localizzazione di un
            oggetto;
            gestione ipotesi:

         generazione;
Tracciamento delle mani
   Blobs tracking



Tracciamento delle mani: algoritmo di tracciamento di
blobs
            Blob approssimati ad ellissi;
            ogni ellisse corrisponde ad un’ipotesi di localizzazione di un
            oggetto;
            gestione ipotesi:

         generazione;
Tracciamento delle mani
   Blobs tracking



Tracciamento delle mani: algoritmo di tracciamento di
blobs
            Blob approssimati ad ellissi;
            ogni ellisse corrisponde ad un’ipotesi di localizzazione di un
            oggetto;
            gestione ipotesi:

         generazione;
         aggiornamento;
Tracciamento delle mani
   Blobs tracking



Tracciamento delle mani: algoritmo di tracciamento di
blobs
            Blob approssimati ad ellissi;
            ogni ellisse corrisponde ad un’ipotesi di localizzazione di un
            oggetto;
            gestione ipotesi:

         generazione;
         aggiornamento;
Tracciamento delle mani
   Blobs tracking



Tracciamento delle mani: algoritmo di tracciamento di
blobs
            Blob approssimati ad ellissi;
            ogni ellisse corrisponde ad un’ipotesi di localizzazione di un
            oggetto;
            gestione ipotesi:

         generazione;
         aggiornamento;
         rimozione.
Tracciamento delle mani
   Blobs tracking



Tracciamento delle mani: algoritmo di tracciamento di
blobs
            Blob approssimati ad ellissi;
            ogni ellisse corrisponde ad un’ipotesi di localizzazione di un
            oggetto;
            gestione ipotesi:

         generazione;
         aggiornamento;
         rimozione.
Riconoscimento delle traiettorie




Riconoscimento delle traiettorie




     Sottoproblemi:
         confronto tra sequenze di dati;
         segmentazione nel tempo di una sequenza di dati;
         riconoscimento dell’effettiva presenza di un pattern noto.
     Soluzioni proposte:
         modifiche all’ algoritmo Dynamic Time Warping (DTW);
         definizione di un insieme di regole per lo spotting.
Riconoscimento delle traiettorie
   confronto tra sequenze



Riconoscimento delle traiettorie: Dynamic Time Warping
     date M e Q di lunghezza m e n, rispettivamente,
     w = (i, j) accoppiamento tra stato Mi e Qj ,
     percorso di allineamento W = {w1 , . . . , wT }:




     WMQ = {(1, 1), (2, 2), (3, 3), (4, 3), (5, 4)}:
Riconoscimento delle traiettorie
   confronto tra sequenze



Riconoscimento delle traiettorie: Continous Dynamic Time
Warping (CDTW)
     Boundary condition preservata dalla prima riga. La B.C. limita le
     possibilit´ di allineamento a sequenze di cui ` nota a priori la
               a                                   e
     segmentazione nel tempo.
Riconoscimento delle traiettorie
   confronto tra sequenze



Riconoscimento delle traiettorie: Continous Dynamic Time
Warping (CDTW)
     Boundary condition preservata dalla prima riga. La B.C. limita le
     possibilit´ di allineamento a sequenze di cui ` nota a priori la
               a                                   e
     segmentazione nel tempo.
Riconoscimento delle traiettorie
   confronto tra sequenze



Riconoscimento delle traiettorie: Continous Dynamic Time
Warping (CDTW)
     Boundary condition preservata dalla prima riga. La B.C. limita le
     possibilit´ di allineamento a sequenze di cui ` nota a priori la
               a                                   e
     segmentazione nel tempo.
                                            Alcuni percorsi di allinemento
                                            sono scartati, utilizzando una
                                            tecnica di pruning, sulla base
                                            del costo di matching dei
                                            singoli elementi del percorso
                                            e del costo di allineanento tra
                                            sottosequenze
Riconoscimento delle traiettorie
   confronto tra sequenze



Riconoscimento delle traiettorie: spotting


             L’algoritmo CDTW fornisce il miglior allineamento e il
             corrispondente costo tra la serie di dati osservati e tutti i
             modelli memorizzati;
             nulla viene calcolato riguardo l’effettiva osservazione di uno
             dei modelli;
             si definiscono una serie di regole per verificare l’occorrenza di
             una traiettoria nota sulla base di:
                      costo di matching;
                      intersezione temporale tra candidati allo spotting;
                      intersezione temporale tra candidati allo spotting e tra nuove
                      ipotesi di allineamento con altri modelli.
Riconoscimento delle traiettorie
   confronto tra sequenze



Riconoscimento delle traiettorie: test
     Datasets di test: 150 video Dataset 1, 120 video Dataset 2
         gesture label      classification percentage
               0                      100%
               1                     93.34%
               2                     93.34%
               3                     93.34%
               4                      100%
               5                      100%
               6                      100%
               7                      100%
               8                      100%
               9                      100%
          Total classification percentage      98%

         gesture label      classification percentage
               0                      100%
               1                     93.34%
               2                      100%
               3                      100%
               4                     86.67%
               5                     86.67%
               6                      100%
               7                      100%
         Total classification percentage      95.84%
Riconoscimento della configurazione della mano




Riconoscimento della configurazione della mano



     Problema: riconoscere la configurazione assunta da una mano. Per
     configurazione si intende il numero di dita mostrate e l’angolazione
     della mano.
     Soluzione proposta:
            mappatura delle punte delle dita;
            costruzione di un istrogramma caratteristico.
Riconoscimento della configurazione della mano
   mappatura delle punte delle dita



Riconoscimento della configurazione della mano:
mappatura delle punte delle dita
     Gradiente sulle punte delle dita:




            tracciamento dei vettori, con magnitudo scelto;
            pixel usati come contatori: numero di vettori intersecanti ogni
            pixel.
Riconoscimento della configurazione della mano
   mappatura delle punte delle dita



Riconoscimento della configurazione della mano:
mappatura delle punte delle dita
     Pesatura:
Riconoscimento della configurazione della mano
   mappatura delle punte delle dita



Riconoscimento della configurazione della mano:
mappatura delle punte delle dita
     Pesatura:
         Θ = angolo coperto dai vettori
         intersecanti p

                                      (Θ − 180)2
                wp = exp −
                                         2σ 2
Riconoscimento della configurazione della mano
   mappatura delle punte delle dita



Riconoscimento della configurazione della mano:
mappatura delle punte delle dita
     Pesatura:
         Θ = angolo coperto dai vettori
         intersecanti p

                                          (Θ − 180)2
                wp = exp −
                                             2σ 2

                                            1
                       wp =
                                      θ    p − pθ
         pθ = primo punto di contorno
         incontrato a partire da p
         percorrendo la direzione θ
Riconoscimento della configurazione della mano
   test



Riconoscimento della configurazione della mano: test
     Quattro configurazioni di test:




                                                 Classificati   1101 su 1560   70.58%
Conclusioni e sviluppi futuri




Conclusioni e sviluppi futuri

 Conclusioni:                                  Sviluppi futuri:
          Si sono implementati algoritmi            background substraction per
          per:                                      sostituire l’immagine residua;
                   tracciamento delle mani;         miglioramento della stima del
                   riconoscimento                   gradiente, per una pi` robusta
                                                                           u
                   dell’esecuzione di               rilevazione delle dita;
                   traiettorie note;
                                                    miglioramento
          Si sono proposti e                        dell’apprendimento dei modelli;
          implementati metodi per:
                                                    test su pi´ utenti.
                                                              u
                   riconoscimento della
                   configurazione delle mani;

More Related Content

Featured

Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 

Thesis work presentation

  • 1. ´ UNIVERSITA DEGLI STUDI DI MILANO BICOCCA ´ FACOLTA DI SCIENZE MATEMATICHE FISICHE E NATURALI Dipartimento di Informatica Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica DEVELOPMENT OF A HUMAN-COMPUTER INTERFACE BASED ON HAND GESTURES Relatore: Raimondo Schettini Correlatore: Gianluigi Ciocca Tesi di laurea di: Luca Piccinelli
  • 2. Introduzione Introduzione La tesi si inserisce nell’ambito di ricerca HCI. Problema generale: riconoscimento di data pattern. Nello specifico: localizzazione e tracciamento delle mani; riconoscimento di traiettorie eseguite dall’utente, utilizzando le mani. riconoscimento di configurazioni assunte dalla mano;
  • 4. Tracciamento delle mani Tracciamento delle mani Sottoproblemi: localizzare (dimensione spaziale); tracciare (dimensione temporale). Soluzioni proposte: localizzazione immagine residua; rilevamento della pelle; tracciamento tracciamento di blob.
  • 5. Tracciamento delle mani Immagine residua Tracciamento delle mani: immagine residua Osservazione: Le mani sono oggetti non rigidi la cui apparenza varia rapidamente. Individuazione delle regioni di un frame che subiscono maggiori variazioni rispetto al frame precedente. Algoritmo Block flow estimation tra frame successivi. Valore residuo dato dal modulo della differenza dei valori medi tra due blocchi corrispondenti
  • 6. Tracciamento delle mani rilevamento della pelle Tracciamento delle mani: rilevamento della pelle Problema di decisione: classificazione di un pixel come “pelle” o “non pelle”; stima della distribuzione del colore della pelle; assegnazione di un valore di probabilit´ al colore di ogni pixel e a sogliatura utilizzando una combinazione lineare di due classificatori bayesiani: P(skin|c) = αPoff (skin|c) + (1 − α)Pn (skin|c) - Poff (skin|c) : training off-line; - Pn (skin|c) : training sulla distribuzione di skin rilevata nei precedenti n frame; - α : parametro di adattamento.
  • 7. Tracciamento delle mani rilevamento della pelle Tracciamento delle mani: procedimento Le immagini sono mascherate con l’immagine residua: sul risultato del mascheramento ´ applicato l’algoritmo di skin detection. e Applicazione di filtro di blurring e sogliatura.
  • 8. Tracciamento delle mani Blobs tracking Tracciamento delle mani: algoritmo di tracciamento di blobs Blob approssimati ad ellissi; ogni ellisse corrisponde ad un’ipotesi di localizzazione di un oggetto; gestione ipotesi:
  • 9. Tracciamento delle mani Blobs tracking Tracciamento delle mani: algoritmo di tracciamento di blobs Blob approssimati ad ellissi; ogni ellisse corrisponde ad un’ipotesi di localizzazione di un oggetto; gestione ipotesi: generazione;
  • 10. Tracciamento delle mani Blobs tracking Tracciamento delle mani: algoritmo di tracciamento di blobs Blob approssimati ad ellissi; ogni ellisse corrisponde ad un’ipotesi di localizzazione di un oggetto; gestione ipotesi: generazione;
  • 11. Tracciamento delle mani Blobs tracking Tracciamento delle mani: algoritmo di tracciamento di blobs Blob approssimati ad ellissi; ogni ellisse corrisponde ad un’ipotesi di localizzazione di un oggetto; gestione ipotesi: generazione; aggiornamento;
  • 12. Tracciamento delle mani Blobs tracking Tracciamento delle mani: algoritmo di tracciamento di blobs Blob approssimati ad ellissi; ogni ellisse corrisponde ad un’ipotesi di localizzazione di un oggetto; gestione ipotesi: generazione; aggiornamento;
  • 13. Tracciamento delle mani Blobs tracking Tracciamento delle mani: algoritmo di tracciamento di blobs Blob approssimati ad ellissi; ogni ellisse corrisponde ad un’ipotesi di localizzazione di un oggetto; gestione ipotesi: generazione; aggiornamento; rimozione.
  • 14. Tracciamento delle mani Blobs tracking Tracciamento delle mani: algoritmo di tracciamento di blobs Blob approssimati ad ellissi; ogni ellisse corrisponde ad un’ipotesi di localizzazione di un oggetto; gestione ipotesi: generazione; aggiornamento; rimozione.
  • 15. Riconoscimento delle traiettorie Riconoscimento delle traiettorie Sottoproblemi: confronto tra sequenze di dati; segmentazione nel tempo di una sequenza di dati; riconoscimento dell’effettiva presenza di un pattern noto. Soluzioni proposte: modifiche all’ algoritmo Dynamic Time Warping (DTW); definizione di un insieme di regole per lo spotting.
  • 16. Riconoscimento delle traiettorie confronto tra sequenze Riconoscimento delle traiettorie: Dynamic Time Warping date M e Q di lunghezza m e n, rispettivamente, w = (i, j) accoppiamento tra stato Mi e Qj , percorso di allineamento W = {w1 , . . . , wT }: WMQ = {(1, 1), (2, 2), (3, 3), (4, 3), (5, 4)}:
  • 17. Riconoscimento delle traiettorie confronto tra sequenze Riconoscimento delle traiettorie: Continous Dynamic Time Warping (CDTW) Boundary condition preservata dalla prima riga. La B.C. limita le possibilit´ di allineamento a sequenze di cui ` nota a priori la a e segmentazione nel tempo.
  • 18. Riconoscimento delle traiettorie confronto tra sequenze Riconoscimento delle traiettorie: Continous Dynamic Time Warping (CDTW) Boundary condition preservata dalla prima riga. La B.C. limita le possibilit´ di allineamento a sequenze di cui ` nota a priori la a e segmentazione nel tempo.
  • 19. Riconoscimento delle traiettorie confronto tra sequenze Riconoscimento delle traiettorie: Continous Dynamic Time Warping (CDTW) Boundary condition preservata dalla prima riga. La B.C. limita le possibilit´ di allineamento a sequenze di cui ` nota a priori la a e segmentazione nel tempo. Alcuni percorsi di allinemento sono scartati, utilizzando una tecnica di pruning, sulla base del costo di matching dei singoli elementi del percorso e del costo di allineanento tra sottosequenze
  • 20. Riconoscimento delle traiettorie confronto tra sequenze Riconoscimento delle traiettorie: spotting L’algoritmo CDTW fornisce il miglior allineamento e il corrispondente costo tra la serie di dati osservati e tutti i modelli memorizzati; nulla viene calcolato riguardo l’effettiva osservazione di uno dei modelli; si definiscono una serie di regole per verificare l’occorrenza di una traiettoria nota sulla base di: costo di matching; intersezione temporale tra candidati allo spotting; intersezione temporale tra candidati allo spotting e tra nuove ipotesi di allineamento con altri modelli.
  • 21. Riconoscimento delle traiettorie confronto tra sequenze Riconoscimento delle traiettorie: test Datasets di test: 150 video Dataset 1, 120 video Dataset 2 gesture label classification percentage 0 100% 1 93.34% 2 93.34% 3 93.34% 4 100% 5 100% 6 100% 7 100% 8 100% 9 100% Total classification percentage 98% gesture label classification percentage 0 100% 1 93.34% 2 100% 3 100% 4 86.67% 5 86.67% 6 100% 7 100% Total classification percentage 95.84%
  • 22. Riconoscimento della configurazione della mano Riconoscimento della configurazione della mano Problema: riconoscere la configurazione assunta da una mano. Per configurazione si intende il numero di dita mostrate e l’angolazione della mano. Soluzione proposta: mappatura delle punte delle dita; costruzione di un istrogramma caratteristico.
  • 23. Riconoscimento della configurazione della mano mappatura delle punte delle dita Riconoscimento della configurazione della mano: mappatura delle punte delle dita Gradiente sulle punte delle dita: tracciamento dei vettori, con magnitudo scelto; pixel usati come contatori: numero di vettori intersecanti ogni pixel.
  • 24. Riconoscimento della configurazione della mano mappatura delle punte delle dita Riconoscimento della configurazione della mano: mappatura delle punte delle dita Pesatura:
  • 25. Riconoscimento della configurazione della mano mappatura delle punte delle dita Riconoscimento della configurazione della mano: mappatura delle punte delle dita Pesatura: Θ = angolo coperto dai vettori intersecanti p (Θ − 180)2 wp = exp − 2σ 2
  • 26. Riconoscimento della configurazione della mano mappatura delle punte delle dita Riconoscimento della configurazione della mano: mappatura delle punte delle dita Pesatura: Θ = angolo coperto dai vettori intersecanti p (Θ − 180)2 wp = exp − 2σ 2 1 wp = θ p − pθ pθ = primo punto di contorno incontrato a partire da p percorrendo la direzione θ
  • 27. Riconoscimento della configurazione della mano test Riconoscimento della configurazione della mano: test Quattro configurazioni di test: Classificati 1101 su 1560 70.58%
  • 28. Conclusioni e sviluppi futuri Conclusioni e sviluppi futuri Conclusioni: Sviluppi futuri: Si sono implementati algoritmi background substraction per per: sostituire l’immagine residua; tracciamento delle mani; miglioramento della stima del riconoscimento gradiente, per una pi` robusta u dell’esecuzione di rilevazione delle dita; traiettorie note; miglioramento Si sono proposti e dell’apprendimento dei modelli; implementati metodi per: test su pi´ utenti. u riconoscimento della configurazione delle mani;