thesis work presentation
TRANSCRIPT
UNIVERSITA DEGLI STUDI DI MILANO BICOCCAFACOLTA DI SCIENZE MATEMATICHE FISICHE E NATURALI
Dipartimento di Informatica Sistemistica e ComunicazioneCorso di Laurea Magistrale in Informatica
DEVELOPMENT OF A HUMAN-COMPUTER INTERFACEBASED ON HAND GESTURES
Relatore: Raimondo SchettiniCorrelatore: Gianluigi Ciocca
Tesi di laurea di: Luca Piccinelli
Introduzione
IntroduzioneLa tesi si inserisce nell’ambito di ricerca HCI.Problema generale: riconoscimento di data pattern. Nellospecifico:
localizzazione e tracciamentodelle mani;riconoscimento di traiettorieeseguite dall’utente,utilizzando le mani.riconoscimento diconfigurazioni assunte dallamano;
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 apparenzavaria rapidamente.
Individuazione delle regioni di un frame che subiscono maggiorivariazioni rispetto al frame precedente.
Algoritmo Block flow estimation tra frame successivi.
Valore residuo dato dal modulo della differenza dei valori meditra 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 probabilita al colore di ogni pixel esogliatura utilizzando una combinazione lineare di dueclassificatori 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: procedimentoLe immagini sono mascherate con l’immagine residua: sul risultatodel mascheramento e applicato l’algoritmo di skin detection.
Applicazione di filtro di blurring e sogliatura.
Tracciamento delle mani
Blobs tracking
Tracciamento delle mani: algoritmo di tracciamento diblobs
Blob approssimati ad ellissi;ogni ellisse corrisponde ad un’ipotesi di localizzazione di unoggetto;gestione ipotesi:
generazione;aggiornamento;rimozione.
Tracciamento delle mani
Blobs tracking
Tracciamento delle mani: algoritmo di tracciamento diblobs
Blob approssimati ad ellissi;ogni ellisse corrisponde ad un’ipotesi di localizzazione di unoggetto;gestione ipotesi:
generazione;
aggiornamento;rimozione.
Tracciamento delle mani
Blobs tracking
Tracciamento delle mani: algoritmo di tracciamento diblobs
Blob approssimati ad ellissi;ogni ellisse corrisponde ad un’ipotesi di localizzazione di unoggetto;gestione ipotesi:
generazione;
aggiornamento;rimozione.
Tracciamento delle mani
Blobs tracking
Tracciamento delle mani: algoritmo di tracciamento diblobs
Blob approssimati ad ellissi;ogni ellisse corrisponde ad un’ipotesi di localizzazione di unoggetto;gestione ipotesi:
generazione;aggiornamento;
rimozione.
Tracciamento delle mani
Blobs tracking
Tracciamento delle mani: algoritmo di tracciamento diblobs
Blob approssimati ad ellissi;ogni ellisse corrisponde ad un’ipotesi di localizzazione di unoggetto;gestione ipotesi:
generazione;aggiornamento;
rimozione.
Tracciamento delle mani
Blobs tracking
Tracciamento delle mani: algoritmo di tracciamento diblobs
Blob approssimati ad ellissi;ogni ellisse corrisponde ad un’ipotesi di localizzazione di unoggetto;gestione ipotesi:
generazione;aggiornamento;rimozione.
Tracciamento delle mani
Blobs tracking
Tracciamento delle mani: algoritmo di tracciamento diblobs
Blob approssimati ad ellissi;ogni ellisse corrisponde ad un’ipotesi di localizzazione di unoggetto;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 Warpingdate 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 TimeWarping (CDTW)
Boundary condition preservata dalla prima riga. La B.C. limita lepossibilita di allineamento a sequenze di cui e nota a priori lasegmentazione nel tempo.
Alcuni percorsi di allinementosono scartati, utilizzando unatecnica di pruning, sulla basedel costo di matching deisingoli elementi del percorsoe del costo di allineanento trasottosequenze
Riconoscimento delle traiettorie
confronto tra sequenze
Riconoscimento delle traiettorie: Continous Dynamic TimeWarping (CDTW)
Boundary condition preservata dalla prima riga. La B.C. limita lepossibilita di allineamento a sequenze di cui e nota a priori lasegmentazione nel tempo.
Alcuni percorsi di allinementosono scartati, utilizzando unatecnica di pruning, sulla basedel costo di matching deisingoli elementi del percorsoe del costo di allineanento trasottosequenze
Riconoscimento delle traiettorie
confronto tra sequenze
Riconoscimento delle traiettorie: Continous Dynamic TimeWarping (CDTW)
Boundary condition preservata dalla prima riga. La B.C. limita lepossibilita di allineamento a sequenze di cui e nota a priori lasegmentazione nel tempo.
Alcuni percorsi di allinementosono scartati, utilizzando unatecnica di pruning, sulla basedel costo di matching deisingoli elementi del percorsoe del costo di allineanento trasottosequenze
Riconoscimento delle traiettorie
confronto tra sequenze
Riconoscimento delle traiettorie: spotting
L’algoritmo CDTW fornisce il miglior allineamento e ilcorrispondente costo tra la serie di dati osservati e tutti imodelli memorizzati;
nulla viene calcolato riguardo l’effettiva osservazione di unodei modelli;
si definiscono una serie di regole per verificare l’occorrenza diuna traiettoria nota sulla base di:
costo di matching;intersezione temporale tra candidati allo spotting;intersezione temporale tra candidati allo spotting e tra nuoveipotesi di allineamento con altri modelli.
Riconoscimento delle traiettorie
confronto tra sequenze
Riconoscimento delle traiettorie: testDatasets di test: 150 video Dataset 1, 120 video Dataset 2
gesture label classification percentage0 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 percentage0 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. Perconfigurazione si intende il numero di dita mostrate e l’angolazionedella 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 ognipixel.
Riconoscimento della configurazione della mano
mappatura delle punte delle dita
Riconoscimento della configurazione della mano:mappatura delle punte delle dita
Pesatura:
Θ = angolo coperto dai vettoriintersecanti p
w′p = exp
(−(Θ− 180)2
2σ2
)
w′′p =
1∑θ ‖p − pθ‖
pθ = primo punto di contornoincontrato a partire da ppercorrendo la direzione θ
Riconoscimento della configurazione della mano
mappatura delle punte delle dita
Riconoscimento della configurazione della mano:mappatura delle punte delle dita
Pesatura:
Θ = angolo coperto dai vettoriintersecanti p
w′p = exp
(−(Θ− 180)2
2σ2
)
w′′p =
1∑θ ‖p − pθ‖
pθ = primo punto di contornoincontrato a partire da ppercorrendo la direzione θ
Riconoscimento della configurazione della mano
mappatura delle punte delle dita
Riconoscimento della configurazione della mano:mappatura delle punte delle dita
Pesatura:
Θ = angolo coperto dai vettoriintersecanti p
w′p = exp
(−(Θ− 180)2
2σ2
)
w′′p =
1∑θ ‖p − pθ‖
pθ = primo punto di contornoincontrato a partire da ppercorrendo la direzione θ
Riconoscimento della configurazione della mano
test
Riconoscimento della configurazione della mano: testQuattro configurazioni di test:
Classificati 1101 su 1560 70.58%
Conclusioni e sviluppi futuri
Conclusioni e sviluppi futuri
Conclusioni:
Si sono implementati algoritmiper:
tracciamento delle mani;riconoscimentodell’esecuzione ditraiettorie note;
Si sono proposti eimplementati metodi per:
riconoscimento dellaconfigurazione delle mani;
Sviluppi futuri:
background substraction persostituire l’immagine residua;
miglioramento della stima delgradiente, per una piu robustarilevazione delle dita;
miglioramentodell’apprendimento dei modelli;
test su piu utenti.