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;