ݺߣ

ݺߣShare a Scribd company logo
´
       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 (20)

PDF
2024 State of Marketing Report – by Hubspot
Marius Sescu
PDF
Everything You Need To Know About ChatGPT
Expeed Software
PDF
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
PDF
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
PDF
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
PDF
Skeleton Culture Code
Skeleton Technologies
PDF
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
PDF
Content Methodology: A Best Practices Report (Webinar)
contently
PPTX
How to Prepare For a Successful Job Search for 2024
Albert Qian
PDF
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
PDF
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
PDF
5 Public speaking tips from TED - Visualized summary
SpeakerHub
PDF
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
PDF
Getting into the tech field. what next
Tessa Mero
PDF
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
PDF
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
PDF
Introduction to Data Science
Christy Abraham Joy
PDF
Time Management & Productivity - Best Practices
Vit Horky
PDF
The six step guide to practical project management
MindGenius
PDF
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson36
2024 State of Marketing Report – by Hubspot
Marius Sescu
Everything You Need To Know About ChatGPT
Expeed Software
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
Skeleton Culture Code
Skeleton Technologies
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
Content Methodology: A Best Practices Report (Webinar)
contently
How to Prepare For a Successful Job Search for 2024
Albert Qian
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
5 Public speaking tips from TED - Visualized summary
SpeakerHub
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
Getting into the tech field. what next
Tessa Mero
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
Introduction to Data Science
Christy Abraham Joy
Time Management & Productivity - Best Practices
Vit Horky
The six step guide to practical project management
MindGenius
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson36

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;