riconoscimento di posture umane da immagini segmentate ...iocchi/plt/pdf/pellegrini.pdf ·...
TRANSCRIPT
Universita degli studi di Roma
La Sapienza
FACOLTA DI INGEGNERIA
Tesi di laurea Specialistica in Ingegneria Informatica
indirizzo Sistemi di Intelligenza Artificiale
a.a. 2004-2005
Sessione Estiva, Settembre 2005
Riconoscimento di Posture Umane
da Immagini Segmentate mediante
Stereovisione
Stefano Pellegrini
RelatoreProf. Luca Iocchi
2
Ringraziamenti
Si potrebbe pensare che l’ordine dei ringraziamenti implichi un
qualsivoglia ordine d’importanza. Non e cosı in questo caso.
Desidero ringraziare il professor Luca Iocchi per avermi dato la possi-
bilita di realizzare questa tesi, oltre che per il supporto fondamentale
fornitomi.
Desidero ringraziare tutta la tribu Pellegrini: mamma Giacinta (un
grazie in particolare per tutti gli autobus che non ho perso), papa
Salvatore, per gli incoraggiamenti e tutto il supporto datomi, Eva e
Betta e Claudio Ferri, le mie immancabili guide, nonna Nazzarena,
elemento dionisiaco della compagnia, Leonardo e Verdun Lorenzo, per
la bellezza dell’innocenza.
Ringrazio anche tutta la tribu allargata, fra tutti la famiglia di zio
Giuliano per diversi motivi, non ultimo quello di avermi sopportato per
qualche mese.
Il piu sentito ringraziamento va all’ing. Giorgio Grisetti (presto dottora-
to), senza l’aiuto del quale questo lavoro non sarebbe ancora giunto a
conclusione, oltre che per l’insostituibile compagnia delle calde giornate
di Luglio. Vorrei ringraziare inoltre l’ing. Riccardo Leone e l’ing.
Shahram Bahadori per i preziosi consigli che mi hanno dato. E poi tutti
gli altri del laboratorio, fra cui il professor Daniele Nardi e Alessandro
Farinelli.
Un ringraziamento del tutto particolare va all’ing. Massimo Mastrangeli,
fonte di ispirazione e esempio da imitare.
E poi, ovviamente, ringrazio la mia band : Franceschiello, il diabolico
architetto dei nomignoli, Francesco Ligabue Scialacqua, Isotta Alla
Elton Chimenti, Alessio Senna Pascucci, Paolo Urbano (sfortunata-
mente ancora, e forse per sempre, sprovvisto di secondo nome), quel
Levati di Lorenzo Pizzoferro e sua sorella Milena, Cristina Cucciolotta
3
Comezzi, Valentina Piacentini (subisce gia troppe torture ogni giorno
per sopportare anche il peso di un soprannome) e Diego Bob Tipaldi, col
quale ho avuto l’onore di condividere sofferenze e gioie di quest’ultimo
periodo. Non volendo mai mancare in questo elenco, sono costretto
a mettermici anch’io, Stefano Sting Pellegrini. Del resto un po’ di
ringraziamenti me li merito...
Speciali ringraziamenti al mio amico Daniele Narduzzi, spesso ’Special
Guest’ nella band come Crespone. E poi uno molto speciale alla mia
carissima amica Laura Pacelli.
Vorrei ringraziare anche tutti gli altri miei amici, chi per un motivo chi
per un altro. Fra questi Gino Minella, Mirko Ragnini, Luca Paesani,
Giovanna Masci, Alessia Gemini, Sara Piermartini, il Buon Gianni.
Indice
1 Introduzione 7
1.1 Il problema del riconoscimento di posture umane . . . . . 7
1.2 Obbiettivi della tesi . . . . . . . . . . . . . . . . . . . . . 9
1.3 Sviluppo della tesi e risultati conseguiti . . . . . . . . . . 10
1.4 Organizzazione della tesi . . . . . . . . . . . . . . . . . . 11
2 Analisi delle tecniche utilizzate 13
2.1 Il sistema artificiale di acquisizione delle immagini . . . . 13
2.1.1 La geometria della formazione dell’immagine . . . 14
2.1.2 Il modello della telecamera . . . . . . . . . . . . . 16
2.2 La stereovisione . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.1 Geometria epipolare . . . . . . . . . . . . . . . . 20
2.2.2 Calcolo delle Corrispondenze . . . . . . . . . . . . 22
2.3 Iterative Closest Point . . . . . . . . . . . . . . . . . . . 23
2.3.1 Selezione . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.2 Ricerca delle Corrispondenze . . . . . . . . . . . . 25
2.3.3 Assegnazione del peso e scarto delle corrispondenze 26
2.3.4 Misura e minimizzazione dell’errore . . . . . . . . 27
3 Il riconoscimento delle posture 34
3.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2 Il modello della forma umana . . . . . . . . . . . . . . . 37
INDICE 5
3.3 Riconoscimento di posture senza l’utilizzo esplicito del
modello della forma umana . . . . . . . . . . . . . . . . . 39
3.4 Riconoscimento di posture con l’utilizzo del modello della
forma umana . . . . . . . . . . . . . . . . . . . . . . . . 42
3.4.1 Modello bidimensionale e immagini monoculari . 43
3.4.2 Modello tridimensionale e immagini monoculari . 45
3.4.3 Modello tridimensionali e immagini da piu telecamere 46
4 Il sistema di localizzazione e tracciamento delle persone 53
4.1 L’architettura del sistema . . . . . . . . . . . . . . . . . 54
4.2 La segmentazione delle immagini . . . . . . . . . . . . . 54
4.3 Il modello della persona e il tracciamento . . . . . . . . . 58
4.4 Il dato RGB-XYZ . . . . . . . . . . . . . . . . . . . . . . 59
5 Il sistema di riconoscimento di posture 60
5.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.2 Il modello della persona . . . . . . . . . . . . . . . . . . 62
5.2.1 Il modello tridimensionale del corpo . . . . . . . . 62
5.2.2 Il modello dell’apparenza . . . . . . . . . . . . . . 69
5.3 La procedura di riconoscimento . . . . . . . . . . . . . . 71
5.3.1 L’inizializzazione e la fase di apprendimento del
modello . . . . . . . . . . . . . . . . . . . . . . . 72
5.3.2 La stima dei punti caratteristici . . . . . . . . . . 76
5.3.3 Il tracciamento delle posture . . . . . . . . . . . . 82
5.3.4 La codifica delle posture . . . . . . . . . . . . . . 93
6 Risultati Sperimentali 94
6.1 Configurazione del sistema . . . . . . . . . . . . . . . . . 94
6.2 Caratteristiche tecniche . . . . . . . . . . . . . . . . . . . 96
6.3 Risultati . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
INDICE 6
7 Conclusioni 110
7.1 Risultati raggiunti e limitazioni del sistema . . . . . . . . 110
7.2 Suggerimenti per sviluppi futuri . . . . . . . . . . . . . . 111
A L’interfaccia grafica dell’applicazione 113
Bibliografia 116
Capitolo 1
Introduzione
Negli ultimi anni la percezione degli esseri umani mediante visione
computazionale ha guadagnato rapidamente interesse, mostrando una
nuova serie di possibili applicazioni e raggiungendo nel frattempo
lodevoli risultati parziali. Questo crescente successo e dimostrato dal
rapido aumentare del numero di articoli che affrontano il tema, cosı
come dal sempre maggiore numero di conferenze che vi sono state
completamente dedicate.
Questa tesi affronta il problema della percezione degli esseri umani in
riferimento al riconoscimento delle posture assunte dagli stessi.
1.1 Il problema del riconoscimento di
posture umane
Riconoscere la postura di un essere umano, significa poterne specificare
la posizione e l’orientamento delle varie parti del corpo. Questo problema
in parte rientra nel settore piu vasto dell’acquisizione automatica della
forma di un oggetto. Esistono molti metodi che possono essere utilizzati
per tentare di risolverlo ([Curless, 2000]). Si potrebbero ad esempio
Introduzione 8
utilizzare dei sensori posti in corrispondenza dei giunti della persona
che si vuole analizzare, oppure, come avviene in questa tesi, soltanto
una telecamera stereo. E’ chiaro che il primo approccio non puo essere
utilizzato in quei contesti in cui e impensabile assumere che le persone
possano essere equipaggiate con dei sensori. L’utilizzo di una telecamera
stereo invece non richiede alcuno sforzo da parte dei soggetti analizzati,
fornendo allo stesso tempo i dati relativi a forma e colore.
Essere in grado di riconoscere gli esseri umani, in termini delle
azioni che stanno svolgendo o delle posture che stanno assumendo,
apre le porte a una serie vastissima di interessanti applicazioni. Un
primo esempio di applicazione e quello dei sistemi di sorveglianza.
Si potrebbero infatti realizzare sistemi in grado di rilevare presenze
indesiderate, ad esempio in un parcheggio di automobili. Sarebbe anche
pensabile realizzare un sistema da installare in ambiente domestico, per
rilevare eventuali situazioni pericolose, come ad esempio la caduta di
una persona.
Esistono gia degli esempi di videogiochi in cui il giocatore non interagisce
attraverso il classico joystick, ma utilizza i movimenti delle proprie mani.
Oltre all’aspetto ludico, questo tipo di applicazioni potrebbero essere
utilizzate anche per rendere alla portata di tutti l’interazione con le
macchine. Persone anziane potrebbero cosı ottenere facilmente i servizi
desiderati dai propri robot domestici.
Se e possibile ottenere delle informazioni molto precise relative ai
movimenti della persona e dei suoi arti, queste applicazioni potrebbero
essere utilizzate a scopi medici, per rilevare automaticamente anomalie
nei movimenti. Qualora fosse anche possibile avere un modello det-
tagliato della persona che si sta analizzando, sarebbe possibile ottenere
una codifica ad altissima compressione della sequenza video in esame.
Questo perche sarebbe sufficiente codificare il modello iniziale e i vari
Introduzione 9
parametri del movimento. Sarebbe un po’ come codificare l’immagine di
un quadro usando le istruzioni per ridisegnarlo uguale.
Questi sono solo alcuni dei contesti in cui si trarrebbe un enorme
vantaggio dal possedere la capacita di percepire visivamente la persona
umana. In ogni caso spiegano il perche del crescente interesse per questo
problema.
1.2 Obbiettivi della tesi
Il lavoro descritto in questa tesi sfrutta un risultato del sistema di localiz-
zazione e tracciamento delle persone descritto nel Capitolo 4, vale a dire
la sequenza delle immagini segmentate della persona. Pertanto il lavoro
non tratta nessun aspetto relativo alla suddetta segmentazione delle im-
magini, per la quale si affida completamente al sistema sottostante.
L’obbiettivo principale di questa tesi e quello di essere in grado di ri-
conoscere e codificare appropriatamente le posture principali assunte da
una persona, anche in presenza di occlusione della parte inferiore del cor-
po. Con questo si intende dire che si deve essere in grado di riconoscere
ad esempio se una persona e seduta, se e in ginocchio o se sta cadendo,
oltre che codificare queste posture in modo tale che possano essere inter-
pretate immediatamente da altri moduli.
Un altro obbiettivo che questo lavoro si propone anche di realizzare e il
tracciamento del movimento del corpo, e quindi delle posture che esso as-
sume, senza prendere in considerazione le braccia. L’obbiettivo primario
puo essere raggiunto anche senza affrontare il problema del tracciamento.
Esistono diversi esempi, in letteratura, di applicazioni che si propongono
come scopo quello di riconoscere la posa assunta in ogni frame da una per-
sona, senza per questo sapere indicare la posizione e l’orientamento delle
parti del corpo che contribuiscono a determinare la postura riconosci-
uta. Questo obbiettivo quindi, rappresenta un arricchimento di quello
Introduzione 10
precedente, in quanto consente di ottenere un’informazione piu dettagli-
ata circa la posizione e l’orientamento delle parti del corpo tracciate. In
particolare consente di rilevare l’orientamento completo del corpo (vale
a dire distinguere il lato sinistro oppure quello frontale della persona).
Infine si vuole realizzare un’applicazione che possa essere eseguita, se non
in tempo reale, quantomeno in ordini di tempo della stessa grandezza.
1.3 Sviluppo della tesi e risultati consegui-
ti
Lo sviluppo della tesi ha richiesto un lungo periodo di studio, nel quale
si sono valutate le varie tecniche disponibili e quelle comunemente
utilizzate in letteratura per risolvere il problema del riconoscimento
di posture (si veda il Capitolo 3). L’obbiettivo della realizzazione di
un’applicazione che non richieda eccessive risorse in termini di tempo,
ha portato a scartare molti degli approcci spesso utilizzati. Un altro
fattore che e stato determinante nella scelta delle tecniche da utilizzare,
e stato il livello di dettaglio nella percezione della persona che questo
lavoro si propone di raggiungere. Non si e interessati infatti ad alcuni
aspetti della figura umana, come ad esempio la direzione dello sguardo o
la posizione delle braccia. Infine, nello sviluppo dell’applicazione non ci
si e dovuti curare dell’aspetto relativo alla segmentazione dell’immagine
della persona, essendo questo dato reso disponibile dal sistema di
localizzazione e tracciamento (si veda il Capitolo 4).
L’applicazione sviluppata e costituita da una fase di apprendimen-
to, nella quale vengono stimati i parametri del modello della persona, e
da una fase in cui avviene il riconoscimento vero e proprio. Quest’ultima
fase e divisa in tre passi. Il primo passo permette di stimare la posizione
Introduzione 11
di tre punti caratteristici della figura umana, vale a dire la posizione dei
piedi, quella del bacino e quella della testa. Nel secondo passo si realizza
il tracciamento di questi punti caratteristici nel tempo. Infine, nel ter-
zo passo, si ricava la codifica univoca della postura assunta dalla persona.
I risultati (si veda il Capitolo 6) mostrano che l’applicazione e in
grado di riconoscere le principali posture. In particolare si sono
ottenuti risultati soddisfacenti anche in presenza di occlusione della
parte inferiore del corpo, cosı come in presenza di un elevato grado di
auto-occlusione. Alle volte il tracciamento delle parti del corpo non e
molto preciso, ma nonostante questo la postura riconosciuta e spesso
molto simile (e quindi classificabile allo stesso modo da un eventuale
modulo di classificazione) a quella realmente assunta dalla persona.
Infine, l’obbiettivo di realizzare un’applicazione che possa essere eseguita
senza richiedere troppo tempo, e stato sufficientemente raggiunto.
Un’applicazione di visione computazionale che lavori in tempo reale deve
essere in grado di effettuare un ciclo in circa 100 ms. L’applicazione
realizzata in questa tesi ha un tempo di esecuzione molto variabile che
dipende dalla quantita di movimento fatto dalla persona fra un frame e il
successivo. Il tempo di esecuzione per un ciclo e in media di circa 180 ms.
Questo lavoro e stato presentato in occasione dell’AI*IA Work-
shop on Ambient Intelligence tenutosi a Milano il 20 Settembre del
2005.
1.4 Organizzazione della tesi
La tesi e organizzata in sei parti. Nella prima parte (Capitolo 2) e presen-
tata una descrizione delle tecniche necessarie per la comprensione degli
argomenti trattati e di quelle che sono state utilizzate nello sviluppo
Introduzione 12
del progetto. Nella seconda parte (Capitolo 3) viene analizzato in det-
taglio il problema del riconoscimento delle posture, facendo riferimento
ai risultati presenti in letteratura, al fine di comprendere i vantaggi e gli
svantaggi degli approcci piu interessanti. Nella terza parte (Capitolo 4)
viene brevemente introdotto il sistema di localizzazione e tracciamento
delle persone, che produce le immagini segmentate che sono il punto di
partenza del lavoro di questa tesi. Nella parte quarta (Capitolo 5) viene
descritto il sistema di riconoscimento delle posture realizzato nell’ambito
di questa tesi e nella sesta parte (Capitolo 6) sono presentati i risultati
sperimentali ottenuti. Per ultime (Capitolo 7), sono presentate le conclu-
sioni relative al lavoro svolto e alcuni utili suggerimenti per ampliamenti
futuri.
Capitolo 2
Analisi delle tecniche
utilizzate
In questo capitolo verranno analizzati quegli argomenti necessari per la
comprensione dei capitoli successivi e le tecniche utilizzate nello sviluppo
della tesi. Verra per primo analizzato brevemente il sistema di acqui-
sizione delle immagini. Seguira un’introduzione alla stereovisione. Infine
verra spiegato il funzionamento dell’algoritmo che costituisce la parte piu
importante di questo lavoro, vale a dire l’Iterative Closest Point.
2.1 Il sistema artificiale di acquisizione
delle immagini
Il sistema di acquisizione delle immagini e fondamentalmente costituito
da tre elementi: una telecamera, un frame grabber e un calcolatore. La
telecamera puo essere approssimata da una lente sottile unita a una ma-
trice di celle fotosensibili (CCD, Charged Coupled Device) che convertono
la radiazione luminosa incidente in un potenziale elettrico. Il frame grab-
ber converte questo potenziale elettrico in un segnale digitale, leggendo
Analisi delle tecniche utilizzate 14
Figura 2.1: Modello pinhole
il segnale analogico della matrice CCD per righe. Il segnale digitale e
organizzato in una matrice di valori interi (non necessariamente della
stessa dimensione della matrice CCD) e memorizzato in un buffer (frame
buffer). Gli elementi di questa matrice vengono chiamati pixel (dall’in-
glese picture element). Infine il calcolatore acquisisce i dati dell’immagine
leggendo dal frame grabber.
2.1.1 La geometria della formazione dell’immagine
Per quanto riguarda la formazione dell’immagine, in questa sede dare-
mo una breve descrizione del modello geometrico della telecamera noto
come modello pinhole. Non rientra negli obbiettivi di questo lavoro la
spiegazione dettagliata di un modello completo, che puo invece trovarsi
in [Forsyth and Ponce, 2003]. La figura 2.1 mostra la struttura del mod-
ello pinhole. In pratica questo modello e costituito da una scatola con
un foro, idealmente puntiforme, attraverso il quale filtrano i raggi lumi-
nosi che provengono per riflessione dall’oggetto esterno. Questi raggi,
passando per il foro, proiettano sulla superficie interna alla scatola dal-
l’altro lato del foro. Il punto dove e applicato il foro e chiamato centro di
Analisi delle tecniche utilizzate 15
Figura 2.2: Modello pinhole con il piano immagine spostato
all’esterno della scatola
proiezione, mentre il piano su cui avviene la proiezione e chiamato piano
immagine. La distanza fra il centro di proiezione e il piano immagine
prende il nome di distanza focale. Fissando un sistema di coordinate con
origine coincidente con il centro di proiezione, asse z perpendicolare al pi-
ano immagine e asse y rivolta verso l’alto, possiamo esprimere facilmente
le coordinate dell’oggetto sul piano immagine. Indicando con x,y,z le
coordinate del punto p e con x′,y′,z′ le coordinate della sua proiezione p′
sul piano immagine, si ottiene
x′ = −xf/z
y′ = −yf/z
z′ = −f
(2.1)
Si noti che le coordinate della proiezione sono invertite (sinistra-
destra, sopra-sotto) rispetto a quelle originali. E’ possibile eliminare
questo inconveniente, traslando il piano immagine fuori dalla scatola,
come in figura 2.2.
Da questo semplice modello si evince subito come l’informazione prove-
niente da un’unica telecamera non sia in grado di cogliere il dato relativo
Analisi delle tecniche utilizzate 16
alla profondita dell’oggetto da vedere. Vedremo come la stereovisione
sopperira a questa mancanza.
2.1.2 Il modello della telecamera
In questa sezione introduciamo il modello che viene utilizzato per
mettere in corrispondenza i punti del mondo con le rispettive coordinate
sul piano immagine. Assumeremo di avere come modello geometrico
della telecamera il modello pinhole.
Nella sezione precedente abbiamo visto come sia possibile consid-
erare un sistema di riferimento costituito da una terna di coordinate
con origine coincidente con il centro di proiezione della telecamera. In
realta, nella maggior parte dei casi e utile considerare anche un sistema
di riferimento costituito da una terna solidale con il mondo esterno.
Chiamiamo SC la terna di riferimento solidale con la camera e SW quella
solidale con il mondo esterno (vale a dire la scena). Per mettere in
corrispondenza i punti di SC con quelli di SW , e necessario prendere in
considerazione una trasformazione rigida, ottenuta dalla combinazione
di una rotazione e una traslazione. In pratica, se indichiamo il punto in
coordinate mondo con pW e quello in coordinate camera con pC , allora
abbiamo che
pC = RpW + t (2.2)
dove t e il vettore ottenuto sottraendo all’origine di SC l’origine di SW ,
mentre R e la matrice di rotazione che permette di allineare gli assi di SW
con quelli di SC . Questa matrice ha per colonne le coordinate degli assi
di SW espresse in SC . Tale relazione puo essere scritta in una maniera piu
compatta e di piu facile utilizzo, facendo uso delle coordinate omogenee
(il simbolo tilde e utilizzato per distinguere le coordinate omogenee da
Analisi delle tecniche utilizzate 17
quelle ordinarie). Si puo infatti scrivere
pC = GpW (2.3)
dove
pC =
xC
yC
zC
1
G =
[R t
0 1
]pW =
xW
yW
zW
1
(2.4)
La matrice G prende il nome di matrice dei parametri estrinseci ed e
determinata da sei parametri, tre per la traslazione e tre per la rotazione
(la matrice di rotazione ha nove valori, ma considerando i 6 vincoli
dovuti all’ortonormalita delle matrici di rotazione, ne restano solo tre
indipendenti).
A questo punto conosciamo le coordinate degli oggetti del mondo
relative al sistema di riferimento solidale con la telecamera. Abbiamo
gia visto nella descrizione del modello pinhole (eq. 2.1) come si possa
ottenere la proiezione delle coordinate sul piano immagine. Resta da
considerare un’ultima trasformazione, per tenere conto delle dimensioni
orizzontali e verticali dei pixel e del sistema di riferimento solidale con
il piano immagine. Chiamiamo quest’ultimo sistema SI . Prendendo in
considerazione questi parametri possiamo scrivere le coordinate u e v
del punto pI sul piano immagine come
u = −kuxzf + u0
v = −kvyzf + v0
(2.5)
dove ku e kv sono l’inverso della dimensione del pixel lungo le direzioni
u e v rispettivamente. Utilizzando la rappresentazione in coordinate
omogenee, e possibile riscrivere la 2.5 come
pI = ApC (2.6)
Analisi delle tecniche utilizzate 18
con
pI =
u
v
1
A =
au 0 u0 0
0 av v0 0
0 0 1 0
pC =
xC
yC
zC
1
(2.7)
e dove au = −fku e av = fkv rappresentano la distanza focale espressa
rispettivamente in pixel verticali e orizzontali. Considerando anche che
l’angolo θ fra gli assi u e v potrebbe essere diverso da 90 gradi, dobbiamo
modificare la matrice dell’equazione 2.8 scrivendo
A =
au −au cot(θ) u0 0
0 av/ sin(θ) v0 0
0 0 1 0
(2.8)
La matrice A prende il nome di matrice dei parametri intrinseci ed e
determinata dai cinque parametri au,av,u0,v0,θ
La relazione finale per mettere in corrispondenza i punti di SW
con quelli di SI (figura 2.3) e ottenuta combinando l’equazione 2.9 con
l’equazione 2.3
pI = PpW (2.9)
dove
P = AG (2.10)
La matrice P prende il nome di matrice di proiezione prospettica(MPP)
ed e determinata da undici parametri, di cui cinque sono i parametri
intrinseci e sei quelli estrinseci.
2.2 La stereovisione
La visione stereoscopica permette di sopperire alla mancanza del dato
relativo alla profondita di cui soffre la visione monoculare. Conoscere la
Analisi delle tecniche utilizzate 19
Figura 2.3: Modello della telecamera
profondita degli oggetti del mondo esterno e normalmente fondamentale.
Senza questa informazione e molto difficile stabilire in quale misura le
dimensioni dell’oggetto dipendano dalla sua vicinanza.
E’ facile intuire che la conoscenza completa delle coordinate dei punti
visibili faciliti notevolmente le applicazioni che mirano ad estrarre
informazioni attraverso un sistema di telecamere.
Il perche sia possibile ricostruire il dato relativo alla profondita di
un punto nel mondo, e facilmente spiegabile attraverso un esempio. In
figura 2.4 le due telecamere sono parallele e allineate, ossia hanno i due
piani retina coincidenti. Facendo riferimento alla figura 2.4, possiamo
allora scrivere−fz
= −vx
−fz
= v′
b−x
(2.11)
Analisi delle tecniche utilizzate 20
Figura 2.4: Un semplice esempio di ricostruzione
da cui
z =bf
v − v′(2.12)
2.2.1 Geometria epipolare
L’obbiettivo della stereovisione e quello di ottenere il dato relativo alla
profondita per ogni punto visibile. Per fare questo pero, e necessario indi-
viduare per ogni punto visibile del mondo le due proiezioni corrispondenti
sui piani immagine sinistro e destro, che chiameremo Is Id, rispettiva-
mente. Questo problema e noto col nome di ricerca delle corrispondenze.
Supponiamo di avere la proiezione ms di un punto del mondo p su Is.
Per cercare md, la proiezione di p su Id, senza avere a disposizione altri
vincoli, saremmo costretti ad analizzare tutta l’immagine destra. For-
tunatamente esiste un semplice vincolo geometrico che ci permette di
confinare la ricerca a una sola linea del piano immagine Id, ottenendo
cosı una notevole riduzione del costo computazionale. Si osservi la figura
2.5. La linea che passa per i centri ottici Cs e Cd interseca i piani Is
e Id rispettivamente nei punti es e ed, detti epipoli. Dato il punto ms,
Analisi delle tecniche utilizzate 21
Figura 2.5: Il vincolo epipolare
md e vincolato a giacere sulla proiezione della retta che passa per ms e
p. Questa retta si definisce retta epipolare di ms. Per ogni punto della
scena p e possibile determinare un piano, detto piano epipolare che passa
per es, ed, ms, md, Cs, Cd e per p stesso. Questo piano contiene per
costruzione le due rette epipolari. Inoltre, la linea che passa per Cs e Cd,
ha la caratteristica di essere contenuta in tutti i piani epipolari.
Da un punto di vista analitico, si puo dimostrare che fra i punti ms
e md, espressi in coordinate omogenee, sussiste la relazione
mTd Fms = 0 (2.13)
La matrice F prende il nome di matrice fondamentale. L’equazione 2.13
ci consente, dato il punto ms, di trovare la sua retta epipolare su Id.
Analisi delle tecniche utilizzate 22
2.2.2 Calcolo delle Corrispondenze
Per poter calcolare il dato relativo alla profondita di un punto, abbiamo
visto che e necessario conoscere le proiezioni di questo punto su tutte e
due le immagini. Questo ci consente di calcolare la disparita, ossia la
distanza fra i due punti proiettati sui piani immagine destro e sinistro,
quando questi sono sovrapposti. L’insieme delle misure di disparita per
i punti di una coppia di immagini si chiama mappa di disparita.
Grazie al vincolo epipolare, e possibile ridurre lo spazio di ricerca delle
corrispondenze a uno spazio lineare. Il passo successivo, consiste nel
determinare quale punto di questa linea ha la maggiore probabilita di
corrispondere al punto di partenza. Questa operazione presenta alcune
problematiche. Infatti in un’immagine potrebbe essere impossibile ri-
cavare il coniugato di un punto a causa di occlusioni, oppure lo stesso
punto della scena potrebbe far osservare due intensita luminose diverse
nelle due immagini, a causa del comportamento in parte speculare delle
superfici. In genere, oltre al vincolo epipolare, si fanno altre assunzioni
che semplificano il calcolo delle corrispondenze. Un vincolo potrebbe
essere quello di continuita, per il quale la profondita della scena varia
lentamente per i punti che sono lontano dai bordi.
In generale, i metodi di calcolo delle corrispondenze possono essere
distinti in due categorie:
• Basati sull’area (area-based): queste tecniche prendono in con-
siderazione una piccola finestra centrata sul punto del quale si
vuole trovare la corrispondenza, cercando nell’immagine coniugata
la finestra piu vicina, in termini di correlazione dei livelli di grigio
dei pixel. Queste tecniche permettono di avere una mappa delle
disparita densa.
• Basati sulle caratteristiche (feature-based): queste tecniche cer-
cano di mettere in corrispondenza elementi particolari dell’immag-
Analisi delle tecniche utilizzate 23
ine (quali linee, angoli, segmenti, regioni . . . ), possibilmente stabili
rispetto al cambio di vista. La mappa delle disparita che si ottiene
e sparsa e quindi va successivamente interpolata.
2.3 Iterative Closest Point
L’ICP e un algoritmo ampiamente utilizzato per l’allineamento geomet-
rico di modelli tridimensionali. Supponiamo di avere un set di punti che
rappresenta la scena e di avere un modello, anch’esso costituito da un in-
sieme di punti, dell’oggetto attualmente rappresentato. Se fosse possibile
conoscere le corrispondenze corrette fra i punti della scena e quelli del
modello, sarebbe molto facile stimare la trasformazione che permette di
sovrapporre i due insiemi di punti. Nella maggior parte dei casi tuttavia,
quest’informazione non e disponibile. L’ICP procede iterativamente nel
tentativo di allineare il modello ai dati (o viceversa) stimando le cor-
rispondenze in base alla distanza: dato un punto della scena, il punto del
modello corrispondente sara il punto piu vicino.
Quando l’ICP converge, permette di sovrapporre il modello all’ogget-
to della scena, restituendoci cosı le informazioni relative alla posizione
e, soprattutto, all’orientamento del modello. Anche se e garantito che
l’andamento della funzione d’errore sara monotona non crescente, non e
garantita la convergenza all’ottimo assoluto. Accade infatti alle volte che
l’algoritmo finisca in un minimo locale. La figura 2.6 mostra un esempio
di applicazione dell’algoritmo.
L’ICP nella sua forma originale e stato introdotto da Besl and
McKay [Besl and MacKay, 1992] nel 1992. Da allora sono state in-
trodotte numerose varianti (un’analisi in termini di efficacia, efficien-
za e robustezza di alcune di queste varianti puo essere trovata in
[Rusinkiewicz and Levoy, 2001]), ognuna delle quali aggiunge delle modi-
Analisi delle tecniche utilizzate 24
Figura 2.6: Nella figura e riportato un esempio del funzion-
amento dell’ICP. L’obbiettivo e quello di allineare i punti in
basso a sinistra con quelli in alto a destra. All’inizio(a) tutti i
punti stimano come corrispondente lo stesso punto, visto che
questo e il piu vicino a tutti. La trasformazione stimata gra-
zie a queste corrispondenze permette di avvicinare l’insieme
di punti iniziale a quello finale (b). La nuova ricerca delle
corrispondenze fornisce gli accoppiamenti corretti.
fiche che rendono l’algoritmo piu adatto a risolvere una particolare classe
di problemi. In ogni caso la struttura generale dell’ICP rimane immutata
e puo essere descritta suddividendo l’algoritmo in sei parti:
• Selezione di una parte dei punti (del modello e della scena) che si
hanno a disposizione.
• Ricerca delle corrispondenze fra i punti della scena e quelli del
modello.
• Assegnazione del peso alle corrispondenze trovate.
• Scarto di alcune corrispondenze.
• Misura dell’errore residuo in relazione a una particolare metrica.
• Minimizzazione dell’errore.
Analisi delle tecniche utilizzate 25
L’algoritmo procede quindi iterativamente in questa maniera. Una
volta terminata la sequenza di passi si torna all’inizio e si ripete questo
procedimento fino a convergenza. Di seguito viene data una descrizione
dettagliata dei passi dell’algoritmo.
2.3.1 Selezione
E’ possibile scegliere di utilizzare solo una parte dei punti che si han-
no ha disposizione, sia per quanto riguarda il modello che il dato della
scena. La riduzione del numero dei punti diminuisce la robustezza del-
l’algoritmo, ma permette di aumentarne in alcuni casi le prestazioni. In
letteratura sono state proposte diverse tecniche per il campionamento dei
punti. Un esempio di riduzione e il campionamento casuale. Un altro
metodo di campionamento comunemente utilizzato e quello uniforme. In
alcuni casi, come ad esempio quando l’allineamento riguarda oggetti con
caratteristiche concentrate in alcune zone della superficie, e molto utile
considerare un campionamento uniforme nello spazio delle normali: in
pratica i punti vengono scelti in maniera tale che le loro normali (alla
superficie cui appartengono) siano campionate uniformemente. Questa
tecnica permette di selezionare meno punti nelle zone uniformi, aumen-
tando proporzionalmente il numero di punti selezionati dalle zone ricche
di caratteristiche. [Rusinkiewicz and Levoy, 2001] mostra dei casi in cui
si puo trarre vantaggio da questa tecnica, come ad esempio per oggetti
che rappresentano superfici lisce con delle incisioni .
2.3.2 Ricerca delle Corrispondenze
La ricerca delle corrispondenze e la parte fondamentale dell’algoritmo,
sia per quanto riguarda l’efficacia, sia per quanto riguarda l’efficienza.
Infatti e proprio sulle coppie corrispondenti stimate da questo passo che
si basa la misura e la minimizzazione dell’errore. Inoltre e il passo com-
Analisi delle tecniche utilizzate 26
putazionalmente piu costoso, in quanto il suo costo e associato al numero
di punti presi in esame.
In [Besl and MacKay, 1992] la corrispondenza e stimata in base alla dis-
tanza euclidea: dato un punto, il suo corrispondente e il piu vicino, in
termini di distanza euclidea. Questa tecnica di stima e una delle piu
costose, ma allo stesso tempo offre una maggiore robustezza. Il peso
computazionale della tecnica puo essere alleviato utilizzando un prepro-
cessamento dell’immagine. Una tecnica molto usata a riguardo, e quella
dei k-d trees, che permette di ridurre il costo da O(n2) a O(n log(n)).
Un altra tecnica nota in letteratura e quella che, dato un punto della
scena e nota la sua normale alla superficie, consiste nel trovare il suo
corrispondente intersecando il modello con un raggio che parte dal pun-
to e prosegue nella direzione della sua normale. Questa tecnica offre
prestazioni migliori per superfici regolari, ma peggiori in presenza di ru-
more o di superfici irregolari.
In entrambi i casi appena visti, e possibile raffinare la tecnica di ricerca
delle corrispondenze, limitando la ricerca solo a quelle coppie di punti che
rispettano una particolare condizione. Ad esempio, quando e disponibile
l’informazione relativa al colore, si possono considerare solo le coppie di
punti con un colore molto simile. Oppure e possibile limitare la ricerca
a quelle coppie di punti che hanno normali la cui distanza, in termini di
angolo fra esse compreso, sia minore di una certa soglia.
2.3.3 Assegnazione del peso e scarto delle cor-
rispondenze
Una volta stabilite le corrispondenze, e possibile assegnare un peso di-
verso alle diverse coppie, oppure eliminarne alcune (il che equivale ad
assegnare un peso uguale a zero). Lo scopo di questa parte dell’algoritmo
e quella di eliminare gli outlier (i campioni che deviano eccessivamente
Analisi delle tecniche utilizzate 27
dalla media), che potrebbero influire negativamente nella misura dell’er-
rore. Definiamo cAB la coppia formata dai due punti pA e pB. E’ pos-
sibile, ad esempio, assegnare a cAB un peso inversamente proporzionale
alla distanza fra pA e pB, oppure un peso proporzionale al prodotto
scalare fra le normali delle superfici contenenti pA e pB. Ovviamente
e possibile non considerare un’assegnazione del peso alle varie coppie,
il che equivale a considerare un peso costante per ogni coppia. Sembra
([Rusinkiewicz and Levoy, 2001]) che gli effetti della scelta del peso siano
spesso trascurabili e molte volte dipendenti dal particolare tipo di dato.
Piu efficace sembra ([Rusinkiewicz and Levoy, 2001]) essere invece lo
scarto di alcune fra le coppie trovate. Lo scarto delle coppie puo es-
sere visto come l’assegnazione ad ogni coppia di uno fra due possibili
pesi: 1 o 0. E’ possibile quindi considerare le misure prese in esame per
l’assegnazione dei pesi, ora stabilendo anche una soglia per decidere se
la coppia rispetta o meno una condizione su quella misura. E’ possibile,
ad esempio, scartare le coppie che hanno una distanza maggiore di una
certa soglia, oppure quelle coppie che non sono consistenti (in relazione
a una certa metrica) con le coppie vicine.
2.3.4 Misura e minimizzazione dell’errore
Arrivati a questa fase, abbiamo una stima delle corrispondenze fra i pun-
ti del modello e quelli della scena. Chiamiamo SM e SD l’insieme dei
punti del modello e l’insieme dei punti della scena fra i quali esiste una
corrispondenza. Questo vuol dire che per ogni punto di SM e possibile
trovare un corrispondente in SD e viceversa. Avendo a disposizione questi
due insiemi, possiamo stimare l’errore di allineamento residuo, nonche
applicare una procedura per la minimizzazione dell’errore stesso.
La misura dell’errore puo essere stimata in relazione a una particolare
metrica. Si puo utilizzare la distanza euclidea, eventualmente integra-
ta con l’informazione sul colore, quando disponibile, oppure con l’in-
Analisi delle tecniche utilizzate 28
formazione sulle normali alle superfici contenenti i punti costituenti la
coppia.
Per quanto riguarda la minimizzazione dell’errore, possono essere uti-
lizzate diverse strategie. Di seguito sono presentate due tecniche che
permettono di stimare una trasformazione rigida da applicare sui pun-
ti del modello nel tentativo di portarli quanto piu vicino possibile ai
corrispondenti punti della scena.
Minimizzazione attraverso la matrice delle covarianze
Un modo per stimare la trasformazione rigida fra SM e SD consiste nel
calcolare la rototraslazione fra due basi associate a SM e SD. Teniamo
fissi i punti della scena e applichiamo delle trasformazioni rigide ai
punti della modello. La traslazione puo essere calcolata semplicemente
considerando la distanza fra i baricentri dei due set di punti. Per stimare
la rotazione un metodo e quello di utilizzare l’Analisi dei Componenti
Principali (PCA, Principal Component Analysis) sia per il modello che
per il dato della scena.
Il PCA e un algoritmo che dato un insieme di punti in uno spazio
n-dimensionale, permette di stimare una base ortonormale per quello
spazio, in cui i vari assi sono ordinati in base alla varianza dei punti
relativa agli assi stessi. Inoltre i punti dell’insieme iniziale in questo
sistema di riferimento risultano decorrelati. In pratica il primo asse
sara l’asse nella direzione nella quale la varianza dei punti e massima.
Analogamente l’ultimo sara il meno significativo, ossia quello in cui la
varianza dei punti e minima. E’ facile intuire che il PCA e un’ottima
tecnica di compressione, in quanto permette di ottenere la riduzione dello
spazio degli elementi, con una piccola perdita in termini d’informazione.
Per ottenere la base con le caratteristiche appena descritte, e sufficiente
seguire i seguenti passi:
Analisi delle tecniche utilizzate 29
1. Sottrarre a tutti i punti la media calcolata sull’intero insieme.
2. Calcolare la matrice di covarianza C dell’insieme dei punti come
C = AAT dove C =[
p1 · · · pn
](2.14)
dove pi e l’i-esimo punto dell’insieme.
3. Gli autovettori estratti da C, rappresentano la base ortonormale
con le caratteristiche appena descritte. Gli autovettori devono
poi essere ordinati nel senso decrescente degli autovalori ad essi
associati per ottenere l’ordinamento in termini di varianza.
Un ottima introduzione al PCA puo essere trovata in [Lindsay, 2002].
Abbiamo visto che dato un insieme di punti possiamo trovare una
base con le caratteristiche appena descritte. Possiamo usare questa tec-
nica su SM e SD. Otteniamo cosı due basi BM e BD. Ordiniamo gli assi
(autovettori) delle due basi secondo l’ordinamento crescente degli auto-
valori ad essi associati. Note le basi, risultano anche specificate le matriciORM e ORD che rappresentano, rispettivamente, le rotazioni dalla base
canonica a BM e a BD. Queste matrici di rotazione sono ottenute dispo-
nendo per colonne gli assi della base a cui si riferiscono. Per stimare
la rotazione da applicare ai punti di SM (si noti che come sopra detto,
abbiamo deciso di lasciare fissi i punti di SD) si puo usare la seguente
relazione
MRD = ORTM
ORD (2.15)
dove MRD e proprio la matrice di rotazione che stavamo cercando. A
questo punto non rimane da far altro che applicare la rotazione MRD ai
punti di SM , per far in modo che l’intero insieme ruoti fino ad avere gli
assi della sua base allineati con quelli della base di SD.
Analisi delle tecniche utilizzate 30
Lo svantaggio fondamentale di questo metodo di minimizzazione e
che non considera le singole corrispondenze. La trasformazione allinea
gli insiemi SM e SD, ma solo in relazione alla loro occupazione dello
spazio. Il metodo e pero valido quando la situazione iniziale non e
troppo distante da quella finale e, in parte, anche quando non si hanno a
disposizione dati che permettano di associare coppie di punti con criteri
diversi dalla distanza euclidea.
Minimizzazione con l’utilizzo dei quaternioni unitari
Come sopra descritto il metodo di minimizzazione che fa uso delle matri-
ci di covarianza per l’allineamento non e in grado di tenere in consider-
azione le singole corrispondenze dei punti. Un metodo di minimizzazione
migliore in questo senso, permettendo di considerare questi aspetti, e
quello che si basa sull’utilizzo dei quaternioni unitari.
Sappiamo che una matrice di rotazione puo essere definita da tre
parametri, sebbene contenga nove elementi. Una rappresentazione min-
imale dell’orientamento (ossia della rotazione), puo essere ottenuta con
soli tre valori, come ad esempio nel caso degli angoli di Eulero. Questi an-
goli specificano la quantita di rotazione che deve essere consecutivamente
applicata a tre opportuni assi per ottenere un qualsivoglia orientamento.
Ad esempio, se α, β e γ descrivono l’orientamento secondo gli angoli di
Eulero ZYZ, vuol dire che l’orientamento voluto si potra ottenere con
una rotazione di un angolo α intorno all’asse z, seguita da una rotazione
di un angolo β intorno all’asse che si ottiene applicando su y la rotazione
precedente, seguita a sua volta da una rotazione γ intorno all’asse che si
ottiene applicando a z le due rotazioni precedenti.
Una rappresentazione alternativa e quella che fa uso dei quaternioni uni-
tari. I quaternioni non soffrono delle singolartia di rappresentazione,
che invece riguarda altri tipi di rappresentazioni come gli angoli di Eu-
Analisi delle tecniche utilizzate 31
lero. Questo vuol dire che non sempre si possono ricavare gli angoli di
Eulero in maniera univoca dalla matrice di rotazione. Questo proble-
ma non riguarda i quaternioni, e questo e dovuto al fatto che non sono
una rappresentazione minimale dell’orientamento. Un quaternione Q e
definito dalla coppia (η, ε), dove η prende il nome di parte scalare, mentre
ε = [εxεyεz]T prende il nome di parte vettoriale del quaternione. Per un
quaternione unitario vale il vincolo
η2 + ε2x + ε2
y + ε2z = 1 (2.16)
Una qualsiasi rotazione nello spazio puo essere vista come una rotazione
di un angolo θ intorno ad un asse r. Dati questi due parametri, il
quaternione unitario corrispondente alla stessa rotazione e
η = cos θ2
ε = sin θ2r
(2.17)
Dato un punto p nello spazio e un quaternione Q corrispondente a una
rotazione R, si puo scrivere
Rp = QpQ (2.18)
Invece, dato un quaternione Q, la corrispondente matrice di rotazione R
e ottenuta nella seguente maniera
R =
2(η2 + ε2
x)− 1 2(εxεy − ηεz) 2(εxεz + ηεy)
2(εxεy + ηεz) 2(η2 + ε2y)− 1 2(εyεz − ηεx)
2(εxεz − ηεy) 2(εyεz + ηεx) 2(η2 + ε2z)− 1
(2.19)
L’obbiettivo della tecnica di minimizzazione che fa uso dei quaternioni
unitari e ancora quello di stimare una matrice di rotazione R e un vettore
di traslazione t, tali da minimizzare l’errore
E =n∑
i=1
|x′i −Rxi − t|2 (2.20)
Analisi delle tecniche utilizzate 32
dove x e il punto di SM (il punto cioe che viene ruotato e traslato) e
x′ e invece il punto appartenente a SD (il punto che resta fermo) e n e il
numero di coppie in corrispondenza.
Consideriamo che il valore di t che minimizza l’errore E deve rispettare
la seguente condizione
0 =∂E
∂t= −2
n∑i=1
(x′i −Rxi − t) (2.21)
che, svolgendo parzialmente la sommatoria, porta a
t = x′ −Rx (2.22)
definendo con x e x′ le medie rispettivamente degli insiemi SD e SM ,
ossia
x = 1n
∑ni=1 x e x = 1
n
∑ni=1 x (2.23)
Ora, definendo yi = xi − xi e y′i = x′
i − x′i, e usando la 2.22, possiamo
riscrivere la 2.20 come
E =n∑
i=1
|y′i −Ryi|2 (2.24)
Consideriamo ora il quaternione Q associato alla matrice di rotazione r.
Considerando l’equazione 2.16, e possibile scrivere la 2.24 come
E =n∑
i=1
|y′iQ−Qy〉|∈ (2.25)
E’ possibile dimostrare che la 2.25 puo essere scritta come
E = QTBQ (2.26)
dove
B =n∑
i=1
ATi Ai (2.27)
Analisi delle tecniche utilizzate 33
e
Ai =
0 yi,x − y′i,x yi,y − y′i,y yi,z − y′i,z
yi,x − y′i,x 0 −yi,z − y′i,z yi,y + y′i,y
yi,y − y′i,y −yi,z − y′i,z 0 −yi,x − y′i,x
yi,z − y′i,z −yi,y − y′i,y +yi,x + y′i,x 0
(2.28)
Si puo dimostrare che la soluzione al problema di minimizzazione dell’er-
rore E, e dato dall’autovettore associato al piu piccolo autovalore della
matrice B. Una volta noto Q, e quindi R, t si calcola dall’equazione 2.22.
Capitolo 3
Il riconoscimento delle
posture
3.1 Introduzione
Gli esseri umani, basandosi solo sull’informazione visiva, riescono a ri-
conoscere la figura e la posa umana molto facilmente, anche in condizioni
particolarmente difficili. Gli esperimenti di Johansson [Johansson, 1973]
hanno mostrato come le persone siano in grado di percepire senza
difficolta delle sequenze di movimento umane, a partire dal moto di
semplici punti luminosi che lo sperimentatore aveva ottenuto utilizzando
dei display luminosi attaccati alle parti del corpo.
Per le macchine che tentano di fare altrettanto, utilizzando informazione
visiva proveniente da una o piu telecamere, il discorso e diverso. In
effetti, avendo a disposizione una serie di punti come sopra descritti,
stimare la posa umana non sarebbe impossibile neanche per una
macchina, purche si sappia prima in quali parti del corpo sono stati
attaccati i vari display, e quali sono le dimensioni delle varie parti
del soggetto umano in esame. In letteratura, molti approcci si basano
proprio sulla ricerca di questi punti (in genere collocati in corrispondenza
Il riconoscimento delle posture 35
dei giunti), per poi ricavare una stima della postura. Comunque, la
soluzione del problema sarebbe ancora non banale. Potrebbero rimanere
irrisolte delle ambiguita se il numero di punti a disposizione non fosse
sufficientemente alto e i punti non fossero adeguatamente collocati. In
ogni caso, la difficolta fondamentale e proprio quella di ricavare questi
punti caratteristici. In alcune applicazioni si fa uso di speciali oggetti,
detti marker, che vengono collegati alle parti del corpo della persona
che si vuole analizzare. Questi oggetti semplificano notevolmente il
problema del riconoscimento della figura umana e della sua postura, ma
sono invasivi e in molte applicazione non e pensabile poterli utilizzare (
si pensi ad esempio a un’applicazione di video-sorveglianza ).
In realta il riconoscimento della figura umana e della sua postura sono
due problemi che possono essere affrontati separatamente, anche se sono
fortemente collegati. Piu o meno esplicitamente comunque, il secondo
richiede il primo. D’altro canto, riconoscere la postura significa scendere
a un livello di dettaglio maggiore nel riconoscimento della persona.
Un altro problema collegato a quello del riconoscimento delle posture e
quello del tracciamento del movimento delle persone. E’ chiaro che se
si vuole tracciare la posizione di una persona bisogna inevitabilmente
saper distinguere questa persona. Il problema del tracciamento si fa
molto piu simile a quello del riconoscimento di posture se il tracciamento
riguarda non solo la posizione della persona (ad esempio il baricentro),
ma anche delle singole parti del corpo. In questo caso l’informazione
sul moto delle singole parti del corpo costituisce un ottimo punto
di partenza per la determinazione della postura. Cosı come per il
tracciamento, il discorso relativo ai vari livelli di dettaglio puo essere
ripetuto anche per il riconoscimento delle pose. Dipendentemente dal
tipo di applicazione che si vuole realizzare, si potrebbe essere interessati
al tracciamento e al riconoscimento della posa della parte superiore del
corpo ([Demirdjian et al., 2003, Demirdjian and Darrel, 2002]). Oppure
Il riconoscimento delle posture 36
si potrebbe scegliere di non prendere in considerazione la posizione delle
braccia. In alcuni casi si puo essere interessati al solo braccio delle
persone o addirittura alle dita della mano ([Rehg and Kanade, 1995]).
Anche se in questo caso non e piu opportuno parlare di riconoscimento
di posture, il problema presenta delle caratteristiche simili e le tecniche
utilizzate per la risoluzione sono spesso le stesse.
Uno degli aspetti maggiormente importanti nella risoluzione di questo
tipo di problemi e quello legato all’utilizzo della conoscenza a priori su
cio che si vuole analizzare (sia che si tratti della figura umana intera, sia
che si tratti di un braccio). Negli esseri umani ad esempio, la percezione
visiva ( e la percezione in genere) fa uso sia di una fase di analisi,
sia di una fase di sintesi (si veda la teoria computazionale di Marr
[Marr, 1982] ad esempio). Nella prima fase l’analisi dell’oggetto su cui e
concentrata l’attenzione ne rileva le caratteristiche salienti (come forma,
bordi, colore, . . . ) e le codifica in una maniera opportuna. Questa
fase e indipendente dalle conoscenze pregresse. La seconda fase invece
riguarda la sintesi dell’informazione attuale con cio che gia si conosce.
Ad esempio se si vede un tavolo di cui sono visibili solo tre gambe su
quattro, questo viene comunque riconosciuto come un tavolo normale
con quattro appoggi, e questo grazie all’integrazione dell’informazione
posseduta sul modello del tavolo.
Il vantaggio arrecato nell’utilizzare la conoscenza del modello, nel caso
di applicazioni preposte al riconoscimento, e dovuto in gran parte al
fatto che e possibile vincolare enormemente lo spazio di ricerca. Questo
vantaggio e vitale quando si vogliano prendere in considerazione modelli
complessi (come ad esempio quello umano).
Nella prossima sezione andremo a considerare alcuni dei vari approcci
che negli ultimi hanno cercato di risolvere al problema del riconoscimento
delle posture.
Il riconoscimento delle posture 37
Negli ultimi anni, l’interesse per il riconoscimento delle persone o
di parti umane con l’utilizzo di telecamere e senza l’ausilio di marker, e
rapidamente aumentato. E’ difficile quindi riuscire a categorizzare tutto
il lavoro fatto. Si possono distinguere i vari approcci in base al tipo
particolare di problema affrontato [Moeslund and Granum, 2001], come
ad esempio le applicazioni che riguardano il riconoscimento della posa
da quelle che riguardano il tracciamento. Si possono anche distinguere,
come sopra accennato, i vari livelli di dettaglio utilizzati nell’affrontare
il problema. O ancora si possono separare gli approcci che lavorano in
tempo reale dagli altri. In [Gavrila, 1999] vengono descritti tre tipi di
approcci: quelli che non usano esplicitamente il modello della struttura
umana (o di una sua parte); quelli che usano un modello bidimensionale
della struttura umana (o di una sua parte); quelli che usano un modello
tridimensionale della struttura umana (o di una sua parte).
In questa sede cercheremo di concentrarci soprattutto sulle differ-
enti modalita di utilizzo del modello. Nelle prossime sezioni, dopo una
descrizione del ruolo e delle tipologie di modello utilizzabili, verranno
introdotti alcuni esempi di applicazioni reperibili in letteratura, dis-
tinguendo soprattutto quelle che non usano esplicitamente un modello
per la forma umana, da quelle che lo usano.
3.2 Il modello della forma umana
Un modello matematico e una rappresentazione formale di idee o
conoscenze relative ad un fenomeno finalizzata alla comprensione,
interpretazione, previsione e controllo del fenomeno. Cosı scriveva
E.Malinvaud in Method statistiques de leconometrie. Un modello puo
essere utilizzato per interpretare l’informazione proveniente dall’ambi-
ente esterno, valutandone le similitudini e le relazioni col modello stesso,
Il riconoscimento delle posture 38
oppure puo essere utilizzato per prevedere lo stato futuro dell’oggetto che
si sta analizzando, considerando che le leggi che governano l’evoluzione
dello stato nel tempo dell’oggetto, fanno parte di quell’insieme di idee
e conoscenze che definiscono il modello. Ovviamente puo essere an-
che utilizzato per capire come un oggetto reagisce all’intervento di un
azione ad esso esterna, ossia puo essere finalizzato al controllo dell’ogget-
to. Quest’ultimo caso non e d’interesse in applicazioni di visione com-
putazionale con tecniche passive, come quella a cui e dedicato questo
lavoro.
Cosı come l’informazione che caratterizza un particolare oggetto puo es-
sere di vario tipo, riguardando ad esempio la sua estensione, la sua ap-
parenza o il suo moto caratteristico, allo stesso modo, il modello puo
essere limitato a uno o piu di questi aspetti. Ovviamente, la tipologia
di informazioni contenute in un modello dipendera dallo scopo dell’ap-
plicazione che lo utilizza, cosı come dalla quantita di informazione che
l’applicazione ha a disposizione. Non sempre il modello e completamente
noto a priori pero. In molte applicazioni e impensabile di poter definire
un modello esaustivo che sia adeguato in tutti i casi che si possono pre-
sentare. Si consideri il modello della forma della persona per esempio. In
questo caso infatti non e possibile definire un modello della forma adatto
a descrivere le caratteristiche di ogni tipo di persona. La differenza fon-
damentale qui e costituita dal fatto che le persone hanno altezze molto
diverse le une dalle altre. Inoltre ci sono, seppur minori, anche differenze
nelle proporzioni interne. Tuttavia la maggior parte delle persone hanno
molte caratteristiche in comune. Queste caratteristiche allora, possono
essere codificate a priori nel modello, mentre quelle che differiscono da
persona a persona devono essere determinate caso per caso, e quindi
a tempo di esecuzione. Anche cosı pero, la quantita di informazione
reperibile a priori e variabile e dipende dal contesto in cui e inserita l’ap-
plicazione.
Il riconoscimento delle posture 39
Un modello che volesse rispettare ogni caratteristica della struttura della
persona, oltre a dover essere tridimensionale, dovrebbe essere dotato di
molti corpi collegati da giunti rotoidali, di tipo semplice o sferico. In re-
alta, in molte applicazioni, non e necessario tenere in considerazione un
modello cosı complesso. Inoltre, non sempre l’informazione in ingresso e
in grado di fornire dati necessari al mantenimento di un modello com-
pleto. Se si utilizza in ingresso solo un immagine monoculare, e possibile
che non si sia in grado di risolvere delle ambiguita relative alla posizione
di alcune parti del corpo. In questo caso infatti, anche avendo a dis-
posizione la posizione dei giunti nell’immagine, si potrebbe non riuscire
ad ottenere la postura corretta. Tuttavia, spesso, i vincoli introdotti dal
modello stesso e l’utilizzo di piu immagini in sequenza permettono di
riconoscere correttamente la postura. Il primo di questi due aspetti per-
mette di scartare tutte quelle possibili soluzioni in cui l’uscita non rispet-
ta determinate condizioni, come ad esempio il fatto che il ginocchio non
puo piegarsi in avanti. Il secondo aspetto, unito all’assunzione di piccoli
cambiamenti da un’immagine a quella successiva, permette di ricercare
una stima robusta della vera postura attraverso il filtraggio temporale di
piu osservazioni nel tempo.
3.3 Riconoscimento di posture senza l’uti-
lizzo esplicito del modello della forma
umana
Non sempre e necessario utilizzare esplicitamente la conoscenza a priori
che si ha del modello umano. In alcune applicazioni e sufficiente estrarre
una serie di caratteristiche di basso livello che siano rappresentative
di cio che si sta analizzando, per poi classificare queste caratteristiche
direttamente. Nel caso del riconoscimento di posture, si potrebbe dire
Il riconoscimento delle posture 40
che si vuole riconoscere la posa assunta dal soggetto in esame senza
sapere esattamente dove si trovano le varie parti del corpo.
Spesso come caratteristiche rappresentative vengono utilizza-
ti i coefficienti della trasformata Wavelet. Ad esempio in
[Shimizu and Poggio, 2003] si cerca di determinare la sola direzione
del movimento della figura umana a partire da immagini monoculari.
L’analisi consiste nell’estrazione dei coefficienti della trasformata di
Wavelet, che vengono poi classificati utilizzando un banco di SVM
(dall’inglese Support Vector Machine). Ognuna di queste reti neurali
e addestrata a riconoscere una particolare direzione di moto, sicche la
direzione risultante, per una singola immagine, e determinata valutando
qual e la direzione rilevata dal maggior numero di SVM. La direzione
di moto della sequenza video si determina considerando il risultato
della classificazione per tutte le immagini. I risultati mostrano un
tasso di riconoscimento prossimo al 90%. Sebbene questo esempio
riguardi un particolare specifico del riconoscimento della postura umana,
comunque rappresenta bene la classe degli approcci che non considerano
esplicitamente il modello umano.
Ovviamente i coefficienti Wavelet non sono l’unico tipo di caratteristica
di basso livello che puo essere studiata per l’analisi della figura umana.
In [Goldmann et al., 2004] si segue un approccio leggermente diverso
per risolvere il problema del riconoscimento di posture. In questa
soluzione, utilizzando immagini monoculari, viene preliminarmente
sottratto lo sfondo dell’immagine per ottenere i pixel appartenenti al
foreground. Questi pixel vengono poi filtrati, sia per eliminare il rumore,
sia per discriminare gli esseri umani dagli altri oggetti. A partire dalla
maschera cosı ottenuta della figura umana, vengono utilizzati due tipi
di descrittori: gli istogrammi di proiezione (PH, dall’inglese Projection
Histogram) e i descrittori della forma basati sul contorno (CBSD,
dall’inglese Contour-Based Shape Descriptor). I PH sono una tecnica
Il riconoscimento delle posture 41
ampiamente utilizzata che consiste nel proiettare i punti dell’immagine
(nel nostro caso della maschera della figura umana) sugli assi orizzontali e
verticali dell’immagine. Per rendere paragonabili gli istogrammi ottenuti
con questa tecnica, l’immagine viene scalata, in maniera che occupi un
rettangolo di dimensioni fissate. Gli istogrammi orizzontale e verticale
cosı ottenuti costituiscono un vettore di caratteristiche dell’immagine.
Proprio per l’accorgimento appena descritto, i PH sono invarianti per
variazioni di scala, ma sono comunque sensibili alle rotazioni e alle
specchiature. I CBSD consentono invece una descrizione del contorno
della figura umana precedentemente estratta. In pratica il contorno
viene analizzato in termini di curvature, picchi e relative ampiezze. I
valori cosı ottenuti formano un vettore di caratteristiche che e insensibile
alle variazioni di scala, alle rotazioni e alla specchiatura, oltre che essere
abbastanza robusto al rumore presente nella rilevazione del contorno.
Una volta estratte queste caratteristiche, il problema del riconoscimento
della postura e affrontato come un problema di classificazione.
Un altro esempio di utilizzo dei PH si ha anche in [Cucchiara et al., 2005].
In questo caso tuttavia si fa anche uso degli Hidden Markov Model per
tenere in considerazione della sequenza di osservazioni nel tempo.
L’utilizzo delle caratteristiche estratte dall’immagine pone delle
limitazioni e non sempre si presenta come l’approccio piu appropriato.
La fase di estrazione delle caratteristiche infatti, puo essere vista come
un passaggio da uno spazio di stato molto complesso, a uno ridotto e
quindi semplificato. E’ evidente che la semplificazione implica che molti
stati dello spazio iniziale convergano a uno stesso stato dello spazio sem-
plificato. Possiamo allora dire che questo approccio conviene in quelle
situazioni in cui e possibile far convergere in uno stato semplificato, solo
gli stati che nello spazio iniziale costituivano una classe. Ovviamente
la determinazione della classe dipende dal tipo di applicazione e in
Il riconoscimento delle posture 42
particolare dal tipo di assunzioni che si fanno. Gli incoraggianti risultati
degli esempi sopra riportati, riguardavano immagini prive di occlusioni.
Quando non si puo fare a meno di prendere in considerazione le
occlusioni (come accade spesso) e quando non e possibile assumere limi-
tazioni nei gradi di liberta nei movimenti degli oggetti in esame, questo
approccio non e appropriato. La convergenza nelle classi dello spazio
semplificato di elementi appartenenti a classi significativamente diverse
nello spazio originale, rende inadatto questo approccio. Ad esempio,
utilizzando un’immagine monoculare e procedendo all’estrazione della
maschera della figura umana, risulta praticamente impossibile riuscire
a distinguere una persona in ginocchio da una persona seduta, se la
persona e inquadrata di fronte. Resta comunque vero che in molti casi si
possono fare delle assunzioni che, limitando lo spazio dei possibili stati,
giustificano l’utilizzo di queste tecniche.
3.4 Riconoscimento di posture con l’utiliz-
zo del modello della forma umana
L’utilizzo esplicito del modello della forma umana e diffuso in tutti quei
contesti in cui si hanno numerosi gradi di liberta da analizzare. In questi
casi il modello caratterizza sia la fase di analisi delle immagini, in quanto
vincola la ricerca ai soli stati che il modello stesso puo assumere, sia
in fase di sintesi, in quanto l’informazione ottenuta grazie all’uso del
modello e in genere piu dettagliata e completa di quella che si otterrebbe
utilizzando l’analisi delle caratteristiche di basso livello.
Il riconoscimento delle posture 43
3.4.1 Modello bidimensionale e immagini monocu-
lari
Limitare il numero di parti prese in considerazione non e l’unica maniera
possibile per semplificare il modello. In alcuni casi si puo per esempio
considerare un modello bidimensionale. Questo tipo di applicazioni e in
genere accompagnato da assunzioni relative al movimento delle persone
che analizza, o al particolare punto di vista da cui vengono riprese. Un
esempio di applicazione che fa uso di un modello bidimensionale puo
essere trovata in [Forsyth and Ponce, 2003]. In questo caso il modello
e costituito da undici rettangoli: due per ogni arto, uno per il torso,
uno per il viso e uno per i capelli. Questa applicazione in realta si
riferisce a singole immagini anche se il metodo puo essere generalizzato
a sequenze di immagini. Assumendo come noti i colori dei vestiti
indossati dalla persona, si procede alla rilevazione delle varie parti del
corpo basandosi sulla segmentazione per colore. Ovviamente verranno
rilevati anche dei falsi positivi. Ognuna di queste porzioni di immagine
potrebbe essere una qualsiasi parte del corpo fra quelle ricercate. Per
assegnare le varie etichette ed ottenere la figura risultante, si utilizza un
modello markoviano del primo ordine. In pratica la posizione di ogni
parte d’interesse e considerata dipendente solo dalla parte alla quale
e attaccata. Ad esempio la testa non dipendera dalle gambe, ma solo
dal torso. In questa maniera lo stato di ogni singola parte puo essere
considerato influenzato direttamente solo dalla parte da cui dipende.
In questo modo, la probabilita che una porzione dell’immagine sia una
certa parte del corpo, dipendera dalla presenza e dalla posizione delle
parti da cui essa dipende. La configurazione risultante sara quindi
quella che massimizza tale probabilita. Il punto critico di questo
approccio consiste pero nella segmentazione dell’immagine. Nell’esempio
appena descritto il colore dei vestiti e assunto come noto, e questo
Il riconoscimento delle posture 44
semplifica notevolmente l’estrazione delle parti del corpo interessate.
Senza questa assunzione, ma considerando delle immagini in sequenza,
sarebbe possibile segmentare il primo piano basandosi sul movimento,
ma resterebbe ancora il problema di rilevare le singole parti componenti
il corpo.
In molte applicazioni il modello della persona e sostanzialmente
costruito a priori. Nell’esempio appena citato il modello e rappresentato
da un insieme di quadrati. Quando il modello e tridimensionale, spesso
e realizzato a partire da primitive cilindriche o ellissoidali. Anche il
tipo e il numero di giunti e stabilito off-line. Tutti questi modelli
sono modelli rigidi e possiedono lo svantaggio di non potersi adeguare
perfettamente alle varie parti del corpo. Tuttavia, normalmente, questi
modelli sono dotati di una serie di parametri che sono determinati a
tempo di esecuzione. Questi parametri possono essere il colore, oppure
le lunghezze degli assi delle primitive, e cosı via. La scelta opportuna
di questi parametri permette di rimediare parzialmente alla rigidita di
questi modelli. In via alternativa possono essere utilizzati dei modelli
deformabili. Utilizzare un modello deformabile permette di ottenere
un’informazione piu precisa sull’oggetto che si sta analizzando, oltre a
facilitarne l’analisi stessa una volta che il modello e stato ottenuto. Un
esempio di approccio che usa un modello bidimensionale deformabile e
riportato in [Kakadiaris et al., 1994]. Questo e caratterizzato dal non
possedere inizialmente alcuna informazione sul modello della forma
umana, se non la sua altezza. Il modello iniziale pertanto e costituito da
un unica ellisse che racchiude il contorno della persona. Col succedersi
delle immagini, il contorno subisce dei cambiamenti dovuti ai movimenti
della persona. Il modello allora viene aggiornato considerando il con-
torno, non piu come generato da un unica ellissi, ma dall’unione di piu
primitive ellittiche. L’approccio e molto interessante, soprattutto perche
Il riconoscimento delle posture 45
non richiede l’utilizzo di un modello stabilito a priori. Sfortunatamente,
la corretta costruzione di un modello richiede che il soggetto che viene
analizzato si esibisca in un protocollo di movimenti prestabiliti, i quali
permettono di riconoscere quale parte del corpo si sta muovendo. E’
tuttavia pensabile che questa limitazione possa essere superata. Piu
difficile e invece risolvere il problema della segmentazione dell’immagine.
Gli esempi riportati mostrano delle immagini perfettamente segmentate.
Basandosi il metodo sulle variazioni di curvatura dei bordi, degli errori
nella segmentazione dell’immagine, o in ogni caso nello stabilire i
bordi dell’immagine, rendono problematica l’applicazione dell’approccio
appena descritto. Inoltre, l’estrazione e il mantenimento del modello
della persona realizzato come appena descritto, richiede che le persone
indossino abiti aderenti al proprio corpo. Questa assunzione limita
ovviamente le possibilita di utilizzo di questo metodo.
3.4.2 Modello tridimensionale e immagini monocu-
lari
Entrambi gli approcci presentati nella sezione precedente utilizzano
modelli bidimensionali. Del resto sarebbe possibile estendere questi
approcci al caso tridimensionale. A tal proposito, sarebbe utile avere
anche l’informazione in ingresso relativa alla profondita della scena. Ma
questo non e sempre necessario per l’utilizzo di un modello tridimen-
sionale. Non mancano di certo in letteratura esempi che riguardano il
problema del riconoscimento di posture a partire da immagini monocu-
lari, ma che utilizzano modelli tridimensionali ([Rehg and Kanade, 1995,
Sminchisescu and Triggs, 2001, Sminchisescu and Triggs, 2003]).
Il lavoro esposto in [Sminchisescu and Triggs, 2001,
Sminchisescu and Triggs, 2003] evidenzia bene quali siano i proble-
mi che caratterizzano questo tipo di approccio. Un modello della
Il riconoscimento delle posture 46
forma umana tridimensionale, ha un elevato numero di gradi di liberta.
Le immagini monoculari, a causa dell’assenza del dato relativo alla
profondita, impediscono di osservarne circa un terzo. Il problema e
quindi intrinsecamente difficile. Inoltre, in due dimensioni, le auto-
occlusioni sono molto piu difficili da gestire che in tre dimensioni. La
soluzione ipotizzata da questi autori, alla luce di queste difficolta, si
basa sull’utilizzo dei filtri particellari. A partire dalla posizione stimata
dei giunti nell’immagine, viene costruito l’albero di tutte le posture per
le quali i giunti abbiano la stessa proiezione. Considerando tutti i giunti
come sferici, questo consiste nel trovare le due soluzioni cinematiche
inverse ottenibili per ogni giunto. Il numero di ipotesi cosı ottenute e
molto alto, sebbene sia possibile eliminare molti rami dell’albero perche
non corrispondono a configurazioni raggiungibili (ad esempio a causa dei
limiti di fine corsa di un giunto). La validita di ogni ipotesi e valutata
attraverso una procedura che considera i bordi e le caratteristiche
estratte dall’immagine, mentre il campionamento nello spazio delle
ipotesi e realizzato attraverso la campionatura basata sulla covarianza.
I risultati mostrati dagli autori sono molto incoraggianti. Le immagini
riportate mostrano una buonissima corrispondenza del modello con
il soggetto ripreso nella sequenza video, anche in presenza di auto-
occlusione. Il problema tuttavia risiede nell’efficienza dell’applicazione
che non permette di utilizzare questo approccio in contesti in cui e
richiesta l’elaborazione in tempo reale.
3.4.3 Modello tridimensionali e immagini da piu
telecamere
Negli ultimi anni e andato aumentando il numero di applicazioni che
utilizzano immagini stereo o addirittura provenienti da piu camere. In
questo tipo di applicazioni, la presenza dell’informazione relativa alla
Il riconoscimento delle posture 47
profondita della scena, permette di affrontare in maniera piu affidabile il
problema del riconoscimento di posture. Questo in ogni caso non rende
ancora il problema di facile soluzione. Le occlusioni e le auto-occlusioni,
sebbene meglio controllabili, comportano ancora grandi difficolta che
complicano l’analisi dell’immagine. Inoltre le informazioni ottenute
con la stereovisione non sono sempre molto precise, soprattutto con
l’aumentare della distanza degli oggetti ripresi dalla telecamera.
Alle volte non e necessario prendere in considerazioni occlusioni causate
da altri oggetti nell’ambiente, e non si devono fornire risultati in tempo
reale. Questo e il caso per esempio di quelle applicazioni che sono
deputate a codificare delle immagini basandosi sul modello (model based
coding). Se inoltre il dato sulla profondita e abbastanza affidabile da
rilevare le differenze delle caratteristiche in esame, e possibile utilizzare
una tecnica di ricerca basata proprio sulla mappa delle disparita. E
questo il caso dell’applicazione illustrata in [Grammalidis et al., 2001].
Lo scopo dell’applicazione e quello di rilevare i parametri del modello
umano cosı come specificati nello standard MPEG4. In pratica vengono
cercati i parametri che producono una mappa delle disparita per il
modello sintetico che sia la piu simile possibile a quella prodotta
dalla persona in esame. La tecnica procede iterativamente fino al
soddisfacimento di un certo criterio per l’errore. Sebbene l’obbiettivo
sia quello di codificare la postura della persona intera, gli esperimenti
riportati mostrano l’esecuzione dell’applicazione su un solo braccio
umano. L’inizializzazione e realizzata con l’algoritmo Expectation Maxi-
mization, che consente di segmentare il braccio in tre parti. La posizione
dei giunti, stimata essere il punto medio sulla linea che divide due
segmenti adiacenti, permette di avere una stima iniziale dei parametri.
L’algoritmo e quindi successivamente iterato seguendo la procedura
di minimizzazione sopra descritta. Sfortunatamente, in molti casi
non si ha a disposizione una mappa delle disparita cosı precisa da per-
Il riconoscimento delle posture 48
mettere di rilevare le differenze di profondita delle parti del corpo umano.
Quando si ha a che fare con modelli complessi, cioe dotati di un numero
elevato di gradi di liberta, e utile mantenere una rappresentazione che
permetta di passare agevolmente dalla posizione e dall’orientamento dei
vari corpi costituenti il modello, alla sua rappresentazione nello spazio dei
giunti. Una tecnica tradizionalmente utilizzata a questo scopo e quella
di utilizzare la convenzione di Denavit-Hartenberg. Tuttavia esiste anche
un’altra rappresentazione la quale, oltre che essere d’aiuto nella in fase di
rappresentazione, offre notevoli vantaggi anche in fase di analisi. Questa
tecnica usa i twist e le mappe esponenziali (per un’ottima introduzione
all’argomento si puo fare riferimento a [Murray et al., 1994]). E’ noto
che utilizzando le coordinate omogenee, una trasformazione rigida puo
essere rappresentata da una matrice 4 × 4, definita da una matrice di
rotazione di nove elementi e da un vettore di traslazione di tre elementi.
In totale, considerati i sei vincoli di ortonormalita che limitano il numero
di parametri indipendenti della matrice di rotazione, la suddetta matrice
puo essere descritta specificando sei parametri, tre per la rotazione e
tre per la traslazione. Puo essere dimostrato [Murray et al., 1994] che
per ogni matrice di questo tipo esiste una rappresentazione che fa uso
dei twist. Un twist e specificato da sei parametri, e puo avere due
rappresentazioni:
ξ =
v1
v2
v3
ωx
ωy
ωz
oppure ξ =
0 −ωz ωy v1
ωz 0 −ωx v2
−ωy ωx 0 v3
0 0 0 0
(3.1)
Il riconoscimento delle posture 49
La relazione che mette in corrispondenza i twist con le matrici di
rototraslazione e data dalla seguente mappa esponenziale:
G =
r1,1 r1,2 r1,3 dx
r2,1 r2,2 r2,3 dy
r3,1 r3,2 r3,3 dz
0 0 0 1
= eξ = I + ξ +(ξ2)
2+
(ξ3)
3+ · · · (3.2)
Uno dei vantaggi fondamentali di questa tecnica di rappresentazione
risulta evidente dall’equazione 3.2. Infatti e facile vedere che e possibile
ottenere un’approssimazione della trasformazione troncando la serie al
primo ordine.
Uno dei primi articoli che in letteratura ha mostrato i vantaggi dell’u-
tilizzo di questa tecnica e [Bregler and Malik, 1998]. Questo esempio
mostra un approccio che e sia utilizzabile con immagini monoculari
e modelli della persona bidimensionali, sia con immagini provenienti
da piu telecamere e modelli tridimensionali. Nel primo caso si fanno
pero delle assunzioni relativamente al moto del soggetto che viene
tracciato, che puo muoversi solo lungo una specificata direzione. In
entrambe le situazioni e necessario che la posizione iniziale dei giunti
sia specificata dall’utente, in ognuna delle immagini disponibili. Il passo
generico si basa sul calcolo dello spostamento dei punti dell’immagine
da un frame a quello successivo, basandosi su un modello di moto
affine, e usando come rappresentazione del moto per i punti nello spazio
proprio la rappresentazione che fa uso dei twist. La linearizzazione
sopra descritta permette di risolvere agevolmente il problema con il
metodo dei minimi quadrati sui punti messi in corrispondenza fra le due
immagini successive. E’ proprio questo il vantaggio fondamentale di
questo approccio, ossia l’aver introdotto una tecnica di rappresentazione
che permette di risolvere facilmente l’equazione del moto, basandosi su
punti corrispondenti fra due immagini successive. Anche in questo caso,
e determinante che gli spostamenti fra due frame successivi siano piccoli.
Il riconoscimento delle posture 50
I risultati riportati dagli autori riguardano sia il caso di immagini
provenienti da un’unica telecamera, che quello di immagini provenienti
da piu telecamere.
Un altro esempio di applicazione che utilizza la rappresen-
tazione basata sui twist, con immagini stereo, e fornita da
[Demirdjian and Darrel, 2002]. Una fase di inizializzazione richiede
che il soggetto sia in piedi e con le braccia distese ai lati del corpo,
cosı da poter stimare con l’utilizzo dell’algoritmo EM (Expectation
Maximization), i parametri interni del modello. Il modello utilizzato per
l’inizializzazione e costituito da tre corpi cilindrici, uno per il torso e la
testa, uno per ogni braccio. Le gambe non sono prese in considerazione.
Il modello usato dopo la fase di inizializzazione e leggermente piu
complesso, avendo ulteriori gradi di liberta per il gomito e per il collo. Il
numero di corpi che lo costituiscono sale cosı da tre a sei (come appena
detto le gambe non sono modellate). Per analizzare l’immagine si utilizza
inizialmente una versione modificata dell’algoritmo ICP (Iterative Clos-
est Point) che permette di avere una stima approssimata della posizione
delle varie parti del corpo della persona. Nonostante la persona sia
completamente visibile e abbastanza vicino alla telecamera, cosı da poter
considerare abbastanza affidabili i dati sulla profondita ricavati a partire
dalla mappa delle disparita, l’ICP non produce risultati completamente
soddisfacenti per tracciare il movimento di un modello cosı complesso.
Gli autori fanno notare che il risultato dell’esecuzione dell’algoritmo
ICP, non rispetta quasi mai i vincoli imposti dalla struttura del modello.
Proprio per questo, partendo dalla stima ottenuta attraverso l’ICP,
un raffinamento necessario e quello di trovare la soluzione che rispetta
questi vincoli, e che sia il piu simile possibile a quella stimata dall’ICP.
Questi vincoli altro non sono che quelli imposti dal fatto che i giunti del
modello sono sferici e quindi i vari corpi che essi connettono possono
Il riconoscimento delle posture 51
solo ruotare e non traslare. La soluzione di questo problema si basa
sulla minimizzazione della distanza fra la soluzione ricavata con l’ICP e
la piu vicina fra quelle che rispettano i vincoli imposti dalla struttura.
Per il calcolo di questa soluzione si utilizza la rappresentazione basata
sui twist. Nonostante i vincoli imposti, i risultati in alcuni casi (riportati
in [Demirdjian et al., 2003]) non sono soddisfacenti. Pur essendo l’im-
magine completamente visibile, l’algoritmo produce delle pose sbagliate,
soprattutto per quanto riguarda la posizione delle braccia, mentre il
torso e la testa sono stimati abbastanza bene.
Per rimediare al tracciamento errato delle braccia ottenuto con le
tecniche precedentemente esposte, in [Demirdjian et al., 2003], l’ap-
proccio e arricchito con un modulo di classificazione delle pose che
agisce sul risultato fornito dalla procedura appena esposta. Questo
modulo di classificazione e costituito da una rete neurale (in particolare
di tipo SVM, Support Vector Machine). In pratica, il risultato della
tecnica mostrata in [Demirdjian and Darrel, 2002] rappresenta spesso
una posa inusuale, difficilmente riscontrabile in pratica. Il modulo
di classificazione permette interpretare queste pose inusuali come
appartenenti a un certo numero di classi di pose fattibili, per le quali e
stato precedentemente realizzato l’addestramento. Questo accorgimento
migliora i risultati nel riconoscimento della posizione delle braccia, che
negli esperimenti riportati sono tracciate molto bene. Resta il fatto che
la dipendenza da un modulo di classificazione rende l’applicazione molto
sensibile alla fase di apprendimento e al numero e alla tipologia delle
classi specificate.
Gli approcci basati su immagini provenienti da piu telecamere
permettono di ottenere dei risultati abbastanza soddisfacenti nel ri-
conoscimento di posture. Questo, fra le altre cose, e dovuto anche al
fatto che l’estrazione delle figura umana e piu robusta (vedi Capitolo 4)
Il riconoscimento delle posture 52
che nel caso di immagini monoculari. Come visto negli ultimi approcci
inoltre, e molto piu problematico il riconoscimento delle braccia, rispetto
a quello del torso o della testa ad esempio. Il movimento delle braccia e
piu veloce rispetto a quello del corpo e inoltre, spesso, gli arti superiori
non vengono correttamente inclusi nell’immagine segmentata.
Nei prossimi capitoli verra esposta una soluzione al problema del
riconoscimento di posture che non prende in considerazione le braccia,
ma che comunque fornisce delle informazioni di alto livello relative al
resto della postura.
Capitolo 4
Il sistema di localizzazione e
tracciamento delle persone
In questo capitolo viene descritto il sistema di localizzazione e traccia-
mento delle persone (PLT, people localization and tracking) che fornisce
il dato su cui si basa il lavoro di questa tesi. Il PLT e un sistema in grado
di localizzare e tracciare piu persone contemporaneamente presenti in un
ambiente, basandosi sull’input ricevuto da una telecamera stereo.
Il problema della localizzazione e del tracciamento di persone in un am-
biente dinamico, non e di facile soluzione. Le difficolta fondamentali
risiedono nella presenza di occlusioni di vario genere: la persona infatti
potrebbe essere solo parzialmente visibile a causa di un altro oggetto, o
a causa di un altra persona. Inoltre le persone possono uscire e rientrare
dall’ambiente controllato dal sistema, e potrebbe essere utile riconoscere
questo particolare evento al fine di avere un tracciamento piu accurato.
Nelle prossime sezioni viene spiegato come il PLT risolve questo proble-
ma e quali informazioni e in grado di produrre in uscita. Una descrizione
piu dettagliata del sistema puo essere trovata in [Bahadori et al., 2005,
Iocchi and Bolles, 2005].
Il sistema di localizzazione e tracciamento delle persone 54
Figura 4.1: L’architettura del sistema.
4.1 L’architettura del sistema
La figura 4.1 mostra la struttura generale del sistema. Ad ogni ciclo del
sistema (ossia ogni 100 ms) la telecamera stereo calibrata produce le im-
magini stereo della scena. Successivamente, il modello dello sfondo viene
aggiornato e sottratto dall’immagine attuale. L’immagine segmentata
cosı ottenuta viene ulteriormente filtrata considerando l’informazione rel-
ativa alla profondita della scena. Infine viene aggiornato il modello della
persona e vengono tracciate le traiettorie delle persone presenti nella
scena.
4.2 La segmentazione delle immagini
Per effettuare la segmentazione delle immagini, il PLT adotta una tecnica
molto usata in ambienti chiusi, ossia la sottrazione dello sfondo. Questa
tecnica consiste nel sottrarre il modello dello sfondo alla scena, cosı da
ricavare solo gli oggetti in primo piano. Il problema e che lo sfondo non e
completamente statico, sia a causa della presenza di rumore nei sensori,
sia per il fatto che gli stessi oggetti della scena possono essere spostati (ad
Il sistema di localizzazione e tracciamento delle persone 55
esempio una persona potrebbe spostare una sedia). La difficolta sta nel
creare e mantenere un modello dello sfondo adeguato, che sappia modifi-
carsi per tenere conto di questi cambiamenti, senza inglobare pero nello
sfondo oggetti che appartengono al primo piano.
In questo sistema, per il mantenimento del modello del background, e uti-
lizzata l’informazione relativa alla luminosita, alla disparita e ai bordi.
Quest’informazione e mantenuta come una distribuzione di probabilita
gaussiana ed e calcolata per ogni pixel. Il modello e aggiornato ad ogni
ciclo. In pratica per ogni pixel i viene mantenuta la media µXt,ie la vari-
anza σ2Xt,i
delle informazioni relative all’intensita luminosa, alla disparita
e ai bordi. Per ogni pixel i, il cui valore osservato (di intensita, disparita
e bordi) al tempo t risulta essere Xt,i si ha
µXt,i= (1− αt,i)µXt−1,i
+ αt,iXt,i (4.1)
σ2Xt,i
= (1− αt,i)σ2Xt−1,i
+ αt,i(Xt,i − µ2Xt−1,i)
(4.2)
Il fattore αt,i e diverso per ogni pixel e determina la velocita di aggiorna-
mento del modello per quel pixel. In pratica quando si vuole velocizzare
l’aggiornamento del modello il fattore αt,i deve essere aumentato. Vicev-
ersa deve essere diminuito se si vuole rallentare la modifica del modello
e, al limite, αt,i deve essere reso uguale a zero se si vuole mantenere inal-
terato il modello. In particolare, nei primi secondi in cui l’applicazione e
avviata, non avendo conoscenza precedente della scena, il modello deve
essere acquisito in fretta. Di conseguenza, in questa fase iniziale, il val-
ore di αt,i deve essere aumentato. Un aggiornamento veloce durante
l’esecuzione normale dell’applicazione e anche desiderato in quelle zone
dell’immagine dove non ci sono oggetti in movimento, per fare in modo
che il modello si aggiorni velocemente, senza rischiare di inglobare oggetti
appartenenti al foreground. Invece il valore di αt,i deve essere diminuito
dove ci sono oggetti che appartengono al foreground. Questo puo essere
Il sistema di localizzazione e tracciamento delle persone 56
fatto tenendo conto di un altro valore che chiamiamo attivita del pixel
At(i). In questo sistema il valore di At(i) e calcolato considerando la
variazione dei bordi da un frame a quello successivo. Questo perche le
persone, pur restando ferme, in pratica provocano delle piccole variazioni
sui bordi della loro immagine (a causa del respiro che fa muovere le pieghe
della camicia, ad esempio). Al contrario, gli oggetti come sedie o tavoli,
non producono variazioni nei bordi delle loro immagini. Quindi il valore
di αt,i diminuisce con l’aumentare di At(i).
Il passo successivo consiste nel segmentare la porzione dell’immagine rel-
ativa al foreground, facendo uso sia dell’informazione relativa alla dis-
parita, che di quella relativa all’intensita. In pratica vengono considerati
come non appartenenti allo sfondo quelle zone dell’immagine con un alto
valore di At(i) in cui si registra un cambiamento in intensita e in dispar-
ita. E’ da notare che entrambe queste informazioni sono necessarie. Ad
esempio considerare solo l’intensita comporterebbe l’inclusione nel fore-
ground delle ombre, che possono essere invece scartate considerando che
sono dei cambiamenti in intensita ma non in disparita. Inoltre l’infor-
mazione relativa alla disparita permette di distinguere quegli oggetti che
hanno un colore simile a quello dello sfondo ma una profondita diversa.
Questa fase consente di considerare delle componenti connesse dell’im-
magine che vengono chiamate image blob.
Di seguito viene ricavata l’informazione relativa alla posizione nel mondo
dei punti dell’immagine. Questo puo essere fatto con una trasformazione
che utilizza i parametri intrinseci ed estrinseci della telecamera. Quindi
viene calcolata la height map, che consiste in una discretizzazione in celle
del pavimento, dove ad ogni cella viene assegnata l’altezza del punto piu
alto la cui proiezione ricade nella cella stessa. La height map viene filtrata
con un filtro gaussiano per rimuovere il rumore e quindi viene utilizzata
per cercare le componenti connesse (che vengono chiamate world blob).
E’ da notare che quest’ultima procedura di segmentazione non e molto
Il sistema di localizzazione e tracciamento delle persone 57
Figura 4.2: La figura mostra come l’utilizzo della height
map(immagine al centro) consenta di distinguere due per-
sone(immagine a destra) che appaiono formare un unico blob
dopo lo sottrazione dello sfondo(immagine a sinistra).
sensibile alle occlusioni della persona, visto che non ne tiene in consider-
azione le parti inferiori, e inoltre e in grado di risolvere delle occlusioni
non rilevate con la sottrazione del background (si veda la figura 4.2).
Dai world blob sono eliminati quelli le cui dimensioni sono sicuramente
diverse dalle dimensioni tipiche del modello umano, mentre gli altri sono
considerati essere delle persone. Utilizzando l’associazione fra i punti dei
world blob e degli image blob, e possibile stabilire quali pixel dell’im-
magine corrispondano a ogni persona rilevata (rimuovendo l’ambiguita
in alcune situazioni di occlusione come sopra descritto). Questi pixel
costituiscono, nell’immagine, delle componenti che prendono il nome di
person blob. Queste componenti sono utilizzate per il tracciamento e
per il mantenimento del modello delle persone. La figura 4.3 mostra la
sequenza dei passi principali della procedura. Da sinistra a destra le im-
magini mostrano l’immagine della scena, la sottrazione dello sfondo, la
rimozione delle ombre attraverso la mappa delle disparita, e l’immagine
Il sistema di localizzazione e tracciamento delle persone 58
Figura 4.3: La sequenza dei passi principali della procedura
segmentata della persona.
4.3 Il modello della persona e il traccia-
mento
L’applicazione tiene traccia delle persone presenti nella scena. A tale
scopo utilizza sia l’informazione della posizione nello spazio dei punti
classificati come appartenenti a una certa persona, sia il dato del colore
dei punti stessi. In particolare viene mantenuto un modello (appearance
model) della persona a risoluzione costante, relativo agli ultimi δt frame e
basato sulle componenti H (hue, la tinta) e Y (l’illuminazione) del colore
del singolo pixel.
Il modello dell’apparenza della persona forma una componente dello
spazio di stato nel modulo di tracciamento, mentre l’altra componente
e costituita dall’informazione relativa alla posizione della persona nel-
lo spazio. Lo stato e mantenuto sotto forma di una collezione di dis-
tribuzioni di probabilita gaussiane monomodali, una per ogni singola
traccia. Analogamente, le osservazioni descrivono con una collezione di
gaussiane il dato misurato circa la posizione e l’apparenza delle persone.
Una procedura di ottimizzazione globale associa gli n person blob osser-
vati alle m traccie disponibili. Questa procedura, per tutte le combi-
nazioni possibili fra i person blob e le traccie note, calcola un costo di
associazione che considera sia la distanza nello spazio che la similarita
Il sistema di localizzazione e tracciamento delle persone 59
del modello dell’apparenza, considerando anche che a due diverse traccie
non deve essere associata la stessa osservazione. Viene scelta l’associ-
azione che permette di ottenere un costo globale minore. E’ da notare
che alcune traccie potrebbero non essere associate ad alcuna osservazione
(la persona potrebbe non essere visibile, o perche occlusa, o perche uscita
dalla scena) oppure potrebbero dover essere introdotte delle nuove trac-
cie a causa della comparsa di osservazioni relative a persone prima non
presenti. Questi ultimi casi sono gestiti con l’aiuto di una macchina a
stati finiti, che codifica un’informazione ad alto livello relativa allo stato
della persona. Questa macchina e formata dagli stati nuova, candidata,
tracciata, persa e terminata. Ad esempio quando la traccia non e piu ag-
giornata diventa persa e se rimane in questo stato, dopo un certo numero
di iterazioni diventa terminata.
4.4 Il dato RGB-XYZ
Questa applicazione costituisce la base del lavoro che verra esposto nel
capitolo successivo (si veda l’ultima immagine a destra della figura 4.3).
Questo perche, a partire dall’immagine completa della scena, il sistema
di localizzazione e tracciamento fornisce l’immagine gia segmentata di
ogni persona che si trova nella scena. Questa immagine presenta per
ogni pixel, oltre all’informazione sul colore in formato RGB, anche l’in-
formazione sulla posizione nello spazio dello stesso pixel. Questo e reso
possibile grazie alla calibrazione interna, che permette di passare dal sis-
tema di riferimento immagine a quello della telecamera, e grazie alla
calibrazione esterna, che consente di mettere in corrispondenza le coordi-
nate cosı ottenute con quelle relative a un sistema di riferimento solidale
con la scena. Definiamo questo formato col nome RGB-XYZ, in cui ad
ogni pixel e associato un vettore di sei campi, che contiene il valore delle
tre componenti del colore e delle tre coordinate spaziali.
Capitolo 5
Il sistema di riconoscimento
di posture
5.1 Introduzione
In questo capitolo viene esposto in dettaglio il sistema sviluppato per il
riconoscimento di posture. Il punto di partenza di tale lavoro e costituito
da immagini segmentate della figura umana provenienti dal Sistema
di Localizzazione e Tracciamento delle persone presentato nel Capitolo 4.
L’obbiettivo primario di questa tesi e quello di realizzare un’appli-
cazione in grado di riconoscere la postura umana, a partire da immagini
gia segmentate e nel formato RGB-XYZ. Non vengono considerati tutti
i gradi di liberta in cui un corpo come quello umano puo esprimersi (si
veda la sezione relativa al modello della persona). L’obbiettivo e infatti
quello di produrre una codifica affidabile delle posture principali di una
persona, una codifica che possa essere utilizzata ad esempio da moduli
di classificazione. Si vuole quindi poter distinguere se una persona si sta
sedendo, oppure se sta cadendo, oppure se si sta chinando a raccogliere
un oggetto. Pur non essendo l’obbiettivo primario, il tracciamento delle
Il sistema di riconoscimento di posture 61
posture nel tempo rappresenta un altro risultato cui mira questa tesi.
Per tracciamento di posture, si intende la capacita di poter specificare,
per ogni frame, la configurazione completa della postura effettivamente
assunta dalla persona. Non solo, quindi, si vuole produrre una codifica
che possa essere classificata opportunamente da un eventuale modulo di
classificazione, ma si vuole anche essere in grado di specificare in ogni
frame la posizione e l’orientamento delle parti del corpo che costituiscono
il modello della persona. Inoltre si vuole realizzare un’applicazione che
sia in grado di gestire le occlusioni della parte inferiore del corpo. Si
pensi ad esempio ad un’applicazione di video-sorveglianza per un ufficio.
Non si puo assumere di avere a disposizione sempre tutta la figura
umana. In un ufficio e molto probabile che si debba avere a che fare
con delle scrivanie, le quali occludono completamente o parzialmente le
gambe dei soggetti che si siedono.
Per comprendere le difficolta che sono stata incontrate nella realiz-
zazione del progetto, e necessario notare che le immagini non sono
prive di disturbi. Spesso si ha a che fare con falsi positivi, ossia con
punti dell’immagine che pur non appartenendo alla persona, vengono
inseriti nell’immagine segmentata. Questo accade principalmente lungo
i bordi della figura, oppure quando una persona si avvicina molto a degli
oggetti. Nel primo caso, la maggior parte delle volte, la quantita di pixel
che vengono erroneamente inseriti non e molto alta. Il secondo caso
invece e piu rilevante, in quanto il numero di pixel coinvolto e maggiore.
Non sono solo i falsi positivi tuttavia a rendere difficile il riconoscimento
della postura. Spesso sono presenti anche i cosiddetti falsi negativi, ossia
pixel appartenenti alla persona, che pero non sono inseriti nell’immagine
segmentata. Questo fenomeno accade soprattutto per quanto riguarda
gli arti superiori, fatto che suggerisce che il dato in ingresso, cosı come
ora e disponibile, non e completamente adeguato per individuare, in
Il sistema di riconoscimento di posture 62
maniera affidabile, la configurazione delle braccia.
Inoltre e da ricordare che il dato spaziale ottenuto dalla telecamera stereo
non e sempre molto preciso, soprattutto con l’aumentare della distanza
della persona dalla telecamera. Questo comporta delle distorsioni che
non permettono di rilevare la forma dei dettagli della struttura umana.
Di seguito verra innanzitutto introdotto il modello della persona.
Poi sara presentata la procedura di riconoscimento vera e propria.
5.2 Il modello della persona
L’approccio utilizzato per lo sviluppo dell’applicazione del riconoscimen-
to di posture e quello del riconoscimento basato su modelli. La scelta
del modello e fondamentale per il conseguimento dei risultati. Innanzi
tutto e necessario che il modello non sia piu complesso di quello che serve
per gli scopi dell’applicazione. Se non si e interessati alla posizione delle
gambe, e inutile tenere in considerazione un modello che le includa. Del
resto e anche importante che il modello non sia cosı semplice da non
permettere di riconoscere le situazioni d’interesse.
La scelta di un giusto compromesso e quindi cruciale per la buona rius-
cita dell’applicazione. Questa scelta puo essere fatta considerando gli
obbiettivi dell’applicazione e le possibilita offerte dal dato di partenza.
5.2.1 Il modello tridimensionale del corpo
Abbiamo visto che vogliamo essere in grado di riconoscere le pose
principali di una persona, cioe vogliamo saper distinguere una persona
seduta da una in piedi o da una che si sta chinando. Il riconoscimento
della postura a questo livello di dettaglio non richiede di conoscere
la configurazione degli arti superiori. Inoltre abbiamo visto che ri-
cavare la posizione delle braccia e un’impresa molto ardua, tenendo in
Il sistema di riconoscimento di posture 63
considerazione che spesso queste parti del corpo non sono contenute
nell’immagine segmentata, oltre che essere di per se un compito difficile a
causa del fatto che si muovono molto velocemente e sono spesso soggette
ad auto-occlusione. Queste considerazioni ci permettono di scartare dal
modello la presenza delle braccia. E’ da notare tuttavia che possedere
questo tipo di informazione, oltre ad offrire la possibilita di percepire
con un dettaglio maggiore la figura umana, favorirebbe notevolmente
la stessa procedura di riconoscimento delle pose principali. Infatti,
non considerare le braccia, non implica che queste non siano lo stesso
presenti nell’immagine segmentata, e quindi possano essere d’intralcio al
riconoscimento delle altre parti di interesse.
Anche la posizione della testa potrebbe sembrare superflua nel ri-
conoscere il tipo di posture a cui si e interessati. In effetti, in una
postura d’interesse qualsiasi, ad esempio seduto, la testa e libera di
assumere qualsiasi posizione. L’informazione sulla posizione della testa
potrebbe piu o meno ricavarsi dall’estremo superiore del torso, che
invece e la parte piu importante del modello e che va inclusa d’obbligo.
Tuttavia, la scelta di non considerare la testa, non sarebbe una scelta
opportuna. La testa infatti e la parte del corpo che al variare delle
posture e quasi sempre visibile. Inoltre la sua apparenza e facilmente
modellizzabile, come si vedra di seguito. Il torso del resto e la parte piu
grande del corpo, ma la sua apparenza e difficilmente modellizzabile,
a causa della varieta dei colori che i vestiti delle persone possono
assumere. La sua stessa forma non e facilmente rilevabile nel caso in
cui siano presenti molti falsi positivi, i quali rendono meno evidenti le
parti costituenti il corpo umano. Considerando infine il ridotto spazio di
movimento della testa (non sempre opportunamente rilevabile a causa
delle imprecisioni dell’immagine), risulta chiaro come si possa trarre
vantaggio dal considerare un blocco unico per il torso e per la testa. In
effetti la postura della parte superiore del corpo, almeno per il livello
Il sistema di riconoscimento di posture 64
di dettaglio a cui siamo interessati, e soprattutto determinata dall’asse
che congiunge l’estremo inferiore del torso con l’estremo superiore
della testa. La testa agisce quindi come punto di riferimento per il
riconoscimento della parte superiore del corpo, e permette di eliminare
molte ambiguita relative alla posizione del torso. Una volta che si sa
individuare la testa infatti, il torso deve essere racchiuso in una sfera
centrata nel baricentro della testa e di raggio approssimativamente
uguale alla lunghezza del torso. Il modello per la parte superiore del
corpo per quanto riguarda la struttura tridimensionale e mostrato in
figura 5.1. Si osservi che la testa non ha gradi di liberta rispetto al
torso. E’ da notare inoltre che il modello presentato e relativo ai punti
del torso e della testa visibili da un punto di vista frontale. Le immagini
in ingresso infatti, presentano solo l’informazione spaziale per i punti
visibili della persona. Tuttavia non sempre la persona sara rivolta verso
la telecamera. Il modello di figura 5.1 e pero abbastanza generico da
poter essere utilizzato per cercare la parte superiore del corpo anche
quando l’immagine presenta una persona da altri punti di vista. Questo
pero implica che il modello permette di ricavare solo l’asse torso-testa,
senza pero indicare l’orientamento rispetto a questo asse. Valutare
l’orientamento del corpo non e un compito semplice. Il fatto che le
immagini riguardino solo una parte del corpo (quella che si trova rivolta
verso la telecamera), nonche i disturbi introdotti dalla segmentazione e
le imprecisioni dovute alla ricostruzione tridimensionale, che appiattisce
o esalta le forme, rendono estremamente difficile ricavare l’orientamento
completo della parte superiore del corpo in una singola immagine.
Questo richiede che siano utilizzati, dalla procedura di riconoscimento,
degli accorgimenti per eliminare le ambiguita risultanti.
Le conoscenze incluse nel modello esposto fino a questo punto,
Il sistema di riconoscimento di posture 65
Figura 5.1: Il modello utilizzato per la ricerca dell’asse torso-
testa nell’immagine. In verde sono evidenziati i punti di questo
asse.
non permettono di codificare le pose come saremmo interessati a fare.
Bisogna infatti prendere ancora in considerazione la parte inferiore del
corpo. Le gambe, cosı come le braccia, non sono di facile rilevazione.
Tuttavia le gambe hanno meno liberta di movimento rispetto alle
braccia. Questo e dovuto sia al minore angolo che possono spaziare i
giunti che collegano le gambe al resto del corpo rispetto alle spalle, sia
perche gli arti inferiori spesso devono sorreggere la struttura corporea.
Inoltre in molti casi possono essere considerate insieme, senza com-
portare perdite d’informazione sostanziale nella determinazione delle
pose principali. Ad esempio non e molto importante stabilire se una
persona ha le gambe incrociate o meno qualora si voglia capire se e
seduta. Questo ci consente di modellare le gambe come un unico corpo
senza sostanziali perdite d’informazione. Delle gambe considerate come
un unico corpo, per stabilire le pose a cui siamo interessati, e necessario
conoscere l’ammontare del piegamento delle ginocchia e l’orientamento
degli stinchi. Queste informazioni sono sufficienti a modellare un
corpo articolato come quello delle gambe (unite in un unico corpo),
Il sistema di riconoscimento di posture 66
Figura 5.2: La modellazione delle gambe della persona.
caratterizzato da un giunto sferico alla base e da uno semplice rotoidale
che e quello delle ginocchia (figura 5.2). In tutto quindi abbiamo
bisogno di quattro parametri per modellare le gambe. E’ da notare
che i parametri relativi alla configurazione assunta dal giunto sferico
alla base, sono essenziali nel determinare l’orientamento della persona.
Come vedremo nelle prossime sezioni, questi parametri permettono in
molti casi di risolvere l’ambiguita dovuta alla mancanza di conoscenza
di tutti i parametri che specificano l’orientamento completo della parte
superiore del corpo.
La parte inferiore del corpo e quella superiore sono, negli esseri
umani, collegate attraverso un giunto che puo essere modellato come un
giunto sferico, collocato all’altezza del bacino. Questo giunto tuttavia
fornisce capacita di movimento molto limitate in due dei tre possibili
modi di movimento, come mostrato in figura 5.3. I problemi che
sono stati esposti riguardo le difficolta di comprendere completamente
l’orientamento del torso inoltre, valgono anche in questo caso. Sarebbe
molto difficile comprendere se l’inclinazione e dovuta a una rotazione
lungo rispetto alla direzione z oppure rispetto alla direzione x di figura
Il sistema di riconoscimento di posture 67
Figura 5.3: Le rotazioni del torso possono avvenire rispetto a
tutti e tre gli assi della terna evidenziata in rosso.
5.3. Si consideri anche che rotazioni significative rispetto a queste
direzioni non sono molto frequenti e che in ogni caso il loro risultato alle
volte non altera la descrizione della postura (a un livello di dettaglio
come quello a cui siamo interessati). Da tutto questo si evince che il
modello puo essere opportunamente semplificato, sostituendo il giunto
sferico del bacino con uno rotoidale piano orientato nella direzione y di
figura 5.3. Collegando la parte superiore del corpo con quella inferiore
si ottiene il modello complessivo mostrato in figura 5.4. Si ricordi che
il modello della parte superiore del corpo serve solo a rilevare l’asse
torso-testa.
Fino ad ora la costruzione del modello ha riguardato solo la specifica
dei gradi di liberta delle varie parti costituenti il corpo. Il risultato
cosı ottenuto non e ancora sufficientemente generale. Bisogna infatti
considerare le dimensioni. E’ evidente che persone diverse avranno
gambe di lunghezza differente, cosı come altezze differenti. Una corretta
Il sistema di riconoscimento di posture 68
Figura 5.4: In figura e illustrato il modello completo della
persona. Si noti che l’insieme dei punti che costituiscono il
modello del torso e della testa, determina solo l’asse torso-
testa.
modellazione del corpo deve tener conto di queste diversita. Tuttavia,
non conoscendo a priori le persone che si presenteranno nella scena, non
e possibile determinare a priori i parametri che specificano le dimensioni
precise del modello. Questo deve essere necessariamente compiuto a
tempo di esecuzione dell’applicazione. Fortunatamente, uno studio delle
dimensioni del corpo umano porta a scoprire che sebbene le dimensioni
varino di persona in persona in maniera significativa, quello che resta
piu o meno invariato e il rapporto di queste dimensioni con l’altezza.
In effetti conoscendo l’altezza di una persona e possibile stimare con
una certa affidabilita molti altri parametri interni. Si prendano ad
esempio gli studi sulle dimensioni umane (relativamente ai parametri di
interesse per il nostro modello) condotte da Leonardo da Vinci, riassunte
nel suo celeberrimo uomo Vitruviano, quelli di Francesco di Giorgio
(altro famoso personaggio del rinascimento italiano) e le dimensioni del
Il sistema di riconoscimento di posture 69
sottoscritto, illustrate nella tabella seguente
Leonardo F. di Giorgio io media
altezza testa 0,130 0,162 0,140 0,144
larghezza testa 0.090 0.108 0.108 0.102
lunghezza collo 0,043 0,054 0,054 0,050
altezza torso 0,314 0,324 0,303 0,314
larghezza spalle 0,280 0,324 0,303 0,302
larghezza vita 0,186 0,216 0,216 0,206
gambe lunghezza 0,514 0,459 0,500 0,491
E’ chiaro che e possibile stabilire a priori una proporzionalita nota fra
le parti del corpo abbastanza generica per i vari individui. Ovviamente
queste considerazioni sono adatte quando il livello di dettaglio richiesto
non e troppo elevato. Tutto cio ci consente di parametrizzare tutte
le dimensioni interne del modello con un unico dato, vale a dire
l’altezza della persona. Il vantaggio sta nel fatto che stimare l’altezza
e decisamente piu semplice che stimare le singole dimensioni interne
(che potrebbe anche essere impraticabile). D’altro canto, lo svantaggio
sta nella perdita di precisione del modello. Questo svantaggio, come si
vedra, non influisce troppo nei risultati.
5.2.2 Il modello dell’apparenza
Il dato in ingresso fornisce sia informazioni relative alla posizione nella
scena dei pixel appartenenti all’immagine della persona, sia informazioni
sul colore degli stessi pixel. Questo fa pensare che anche il colore potrebbe
essere utilizzato all’interno del modello. Ma la varieta dei colori che una
persona puo esibire rende le cose molto complicate.
Il sistema di riconoscimento di posture 70
Si potrebbe pensare di modellare il colore della pelle, che e quasi sem-
pre visibile nelle immagini che riguardano le persone. Se si decidesse
di seguire questo approccio, sarebbe pensabile utilizzare un rilevatore di
pelle (meglio conosciuto col nome inglese di skin detector). Esistono in
letteratura molti esempi di applicazioni che tentano di rilevare il colore
della pelle, spesso proprio con lo scopo di individuare la posizione delle
persone. Sfortunatamente, spesso queste applicazioni non forniscono i
risultati desiderati. La difficolta sta nel fatto che la pelle assume colori
molto diversi, sia al variare delle persone, che al variare degli ambienti e
delle relative condizioni di illuminazione.
Altri colori caratteristici nell’apparenza della figura umana del resto, sem-
brano non esserci.
Invece di considerare una modellazione a priori del colore, una soluzione
alternativa potrebbe essere quella di considerare il fatto che la testa
delle persone, normalmente, presenta al massimo due differenti colori.
In genere questi due colori sono il colore della pelle e quello dei capelli.
In alcuni casi potrebbe essere presente un solo colore, come accade nel
caso di persone calve e senza barba, oppure come accade per pelli scure e
capelli dello stesso colore. Indipendentemente da quali siano i colori che
caratterizzano una specifica testa umana, e possibile dire che esiste una
distribuzione bimodale del colore (che in alcuni casi si riduce ad un uni-
co modo). I parametri di questa distribuzione devono essere ovviamente
determinati a tempo di esecuzione.
Seguendo la stessa strategia, si potrebbe essere tentati di ipotizzare delle
distribuzioni di colore simili anche per le altre parti del corpo. Ma in
questo caso non si saprebbe quanti diversi colori prevedere. Inoltre, quan-
do i colori aumentano, diventa anche piu complesso e meno affidabile il
processo di stima dei parametri della distribuzione. Per di piu potrebbe
accadere che alcuni colori di una parte del corpo potrebbero non essere
visibili per una prima parte della sequenza video, per poi essere domi-
Il sistema di riconoscimento di posture 71
nanti nella seconda parte. Questo e quello che accade se una persona
indossa indumenti che hanno un colore da un lato e uno diverso dall’al-
tro. I colori invece che caratterizzano la testa sono quasi sempre gli stessi
indipendentemente dal punto di vista.
5.3 La procedura di riconoscimento
La procedura di riconoscimento e essenzialmente divisa in tre passi, che
sono eseguiti per ogni immagine della sequenza. Questi passi sono:
• Calcolo dei punti caratteristici
• Tracciamento delle posture
• Codifica delle posture
Per punti caratteristici, intendiamo tre punti particolari collocati uno
all’estremita superiore della testa, uno al centro del bacino e uno
approssimativamente nel centro della zona del pavimento compresa fra i
due piedi. Definiamo questi punti, rispettivamente, come pT , pB e pP .
Il primo passo della procedura ha quindi lo scopo di stimare la posizione
di questi tre punti. La conoscenza della posizione di questi tre punti da
sola pero, non e sufficiente a codificare la postura in maniera univoca.
Vedremo di seguito che gli stessi tre punti possono essere propri di piu
di una postura. Il secondo passo ha il compito di stimare l’orientamento
di una terna di riferimento destrorsa solidale con la persona, che abbia
l’asse x rivolto nella direzione frontale e l’asse y orientato verso la parte
sinistra della persona (l’asse z e definito di conseguenza). Chiameremo
questa terna la terna persona. Una volta determinata la terna suddetta,
e possibile ottenere una codifica univoca della postura. Quest’ultimo
compito e affidato al terzo passo della procedura.
Il sistema di riconoscimento di posture 72
I frame della sequenza video non sono sempre caratterizzati da
pose rilevanti che vanno analizzate. Molto spesso infatti le persone
nella scena continuano a camminare, o comunque a rimanere in piedi.
Si potrebbe di certo procedere al riconoscimento delle posture in ogni
frame, rilevando continuamente la postura in piedi. Un’altra soluzione e
quella di controllare l’altezza della persona e applicare la procedura di
riconoscimento vera e propria solo quando l’altezza va diminuendo. In
questa maniera si ha un miglioramento in termini di efficienza.
La procedura di riconoscimento necessita di una fase di apprendi-
mento che e eseguita per i primi frame (normalmente una decina) della
sequenza video. Questa procedura e necessaria per stimare i parametri
del modello della persona. Di seguito verra prima descritta questa fase
di apprendimento e poi i tre passi fondamentali della procedura sopra
elencati.
5.3.1 L’inizializzazione e la fase di apprendimento
del modello
Per i primi frame (normalmente una decina), la persona e assunta essere
in piedi, con la testa libera da auto-occlusioni (ad esempio la persona
non deve coprire il volto con le braccia) e con le braccia che non superino
il livello delle spalle. Inoltre la figura umana deve essere completamente
visibile, ossia non deve essere occlusa da altri oggetti della scena. Le
motivazioni di queste assunzioni saranno chiare appena verra mostrato
come vengono appresi i vari parametri del modello. Del resto il sistema
di localizzazione e tracciamento delle persone e in grado di rilevare
quando la persona tracciata e visibile per intero. Anche grazie a questo,
le assunzioni fatte non sono molto vincolanti.
Il modello all’inizio non possiede nessuna informazione relativa all’ap-
Il sistema di riconoscimento di posture 73
parenza, mentre per quanto riguarda la postura, e inizializzato nella
posa in piedi, posa che manterra per tutta la fase di stima dei parametri
interni.
Come e stato precedentemente spiegato, le dimensioni interne del
modello (quali ad esempio la lunghezza delle gambe) sono definite a
partire dalla sola altezza della persona che si vuole modellare. Questo
dato non e ovviamente dato a tempo di compilazione, dovendo essere
percio ricavato nella fase di apprendimento del modello. Per ogni frame,
l’altezza viene calcolata facendo la differenza fra il punto supposto essere
quello d’appoggio e quello che e stimato essere l’estremo superiore della
testa. Per ottenere il punto d’appoggio si fa una media pesata dei punti
che appartengono alle parti piu basse della persona. In pratica, ogni
punto la cui altezza e inferiore a una certa soglia, viene utilizzato per la
media e avra un peso che cresce esponenzialmente con il diminuire della
sua altezza. Per la stima dell’estremo superiore si procede in maniera
analoga. L’altezza cosı ottenuta per ogni frame, e mediata su tutti i
frame che appartengono alla fase di apprendimento del modello. Una
volta ottenuta l’altezza, gli altri parametri sono determinabili seguendo
le proporzioni stabilite a priori.
L’altro aspetto che deve essere preso in considerazione nella fase
di apprendimento, e quello relativo alla distribuzione di colore del
volto. Abbiamo visto che la testa deve essere scoperto nella fase di
apprendimento. Questo ci permette di estrarre due colori caratteristici.
Per fare questo abbiamo bisogno di trovare prima di tutto quali punti
dell’immagine appartengono alla testa. Si ricordi che il dato e in formato
RGB-XYZ, e quindi di ogni punto si conosce sia la posizione che il
colore.
Man mano che il calcolo dell’altezza procede verso un valore affidabile,
Il sistema di riconoscimento di posture 74
e disponibile una stima dell’altezza anche nella fase di apprendimento, e
di conseguenza anche del valore dell’altezza della testa. Grazie a questa
stima, e possibile stimare come appartenenti alla testa della persona,
quei punti la cui altezza e al di sopra di un valore di soglia, dato dalla
differenza fra l’altezza del modello e la dimensione verticale della testa.
Considerando pero che il valore non e sempre completamente affidabile,
e bene limitarsi ad analizzare solo quei punti la cui altezza si trova
un po’ al di sopra del valore di soglia appena descritto. Si noti anche
che, qualora questa stima fosse ancora parzialmente sbagliata, spesso la
conseguenza sarebbe che verrebbero considerati i punti del collo della
persona come appartenenti alla testa. Questo normalmente non disturba
il calcolo della distribuzione di colore, avendo il collo lo stesso colore
della pelle del viso.
Una volta determinati i punti che appartengono alla testa, resta da
estrarre la distribuzione di colore caratteristica per la persona in esame.
Questo puo essere conseguito utilizzando il k-mean. Il k-mean e un
algoritmo di clusterizzazione. Cio vuol dire che dato un insieme di
punti (in uno spazio n-dimensionale) e una metrica per determinarne la
distanza, il k-mean stima iterativamente una suddivisione in k gruppi (o
cluster) dell’insieme di punti iniziale, minimizzando l’errore
E =k∑
j=1
ncj∑i=1
d(cj,pi) (5.1)
dove k e il numero di gruppi in cui si vuole dividere l’insieme di punti
iniziale, cj e il centro del j-esimo gruppo, ncje il numero di punti p
appartenenti al j-esimo gruppo e d(cj,pi) e la distanza fra il centro del
j-esimo gruppo e l’i-esimo punto p dello stesso gruppo.
Consideriamo l’insieme da clusterizzare come quello costituito dai punti
le cui coordinare sono definite dai valori RGB assunti dai pixel facenti
parte della testa. Utilizziamo inoltre la distanza euclidea per la minimiz-
zazione dell’errore. Infine ricordiamo che siamo interessati a stimare una
Il sistema di riconoscimento di posture 75
distribuzione bimodale di colore, e quindi siamo interessati a una bipar-
tizione dell’insieme iniziale dei punti. Con questi presupposti, possiamo
applicare l’algoritmo k-mean e ottenere per ogni immagine appartenente
alla fase di apprendimento, i valori medi (i centri) e le varianze (calcolabili
una volta conosciuti i centri di ogni cluster e i punti che appartengono
a quel cluster) dei due colori che stiamo cercando. A questo punto e
necessario fare una prima considerazione. Abbiamo visto che stimiamo
essere in genere due il numero di colori caratterizzanti la testa di una
persona. Puo tuttavia succedere che in realta il colore sia uno solo, ad
esempio se la persona che si sta analizzando ha la pelle scura e i capelli
piu o meno dello stesso colore. Questo non rappresenta un problema per
il k-mean e in genere per la procedura che si sta esponendo. Infatti la
distribuzione che viene stimata quando in realta i punti possono essere
piu opportunamente raggruppati introno ad un unico centro, e caratter-
izzata dall’avere i due centri molto vicini e con varianze piccole. Questa
distribuzione insomma e molto simile a una distribuzione unimodale.
I valori ottenuti per ogni singola immagine devono poi essere analizzati in-
sieme per fornire una stima finale della distribuzione di colore. A tal fine
bisogna considerare che alcune immagini potrebbero fornire informazioni
su un solo colore, o addirittura su nessuno, qualora non si sia in grado
di stimare correttamente quali punti appartengono alla testa. Per orga-
nizzare l’insieme delle osservazioni ricavate, si procede a una bipartizione
dei centri di queste osservazioni, ancora utilizzando il k-mean. Una volta
effettuata questa prima divisione, si procede a calcolare in maniera piu
precisa le medie e le varianze dei due modi della distribuzione finale di
colore. Per fare questo si considera anche la dimensione di ogni cluster,
al fine di dare piu peso a quelle stime ottenute su un maggior numero di
punti. In pratica, data una coppia di stime per lo stesso colore, con medie
µ1 e µ2, varianze σ1 e σ2 e numero di punti (su cui si e basata la stima)
n1 e n2, la nuova stima, definita da µ3, σ3 e n3, puo essere ottenuta come
Il sistema di riconoscimento di posture 76
segue
n3 = n1 + n2 (5.2)
µ3 = µ1n1
n3
+ µ2n2
n3
(5.3)
σ3 = σ1n1
n3
+ σ2n2
n3
+ (n1n2
n32
)(µ1 − µ2)2 (5.4)
5.3.2 La stima dei punti caratteristici
La stima dei punti caratteristici costituisce il primo passo della procedura
di riconoscimento vera e propria. I punti pT , pB sono ricavati utilizzando
l’algoritmo ICP (descritto nel Capitolo 2), mentre il punto pP e stimato
con una tecnica diversa. Di seguito e illustrato il modo in cui vengono
ricavati questi punti.
I punti del bacino e della testa
In questa fase viene stimata la posizione dei punti collocati all’estremita
superiore della testa e, approssimativamente, al centro del bacino.
Questa fase della procedura e la parte di centrale importanza, sia in
termini di efficienza, in quanto la maggior parte del tempo disponibile
e utilizzata proprio qui, sia in termini di efficacia, in quanto la riuscita
dell’applicazione dipende in maniera critica dalla determinazione dei
punti appena introdotti.
L’ICP e senza dubbio l’algoritmo che caratterizza principalmente questa
parte del progetto, e quindi anche gran parte del lavoro svolto. In prati-
ca, si cerca di trovare una corrispondenza fra un modello, che comprende
il torso e la testa, e l’immagine in ingresso, nel tentativo di individuare
in quest’ultima quelle parti rappresentate dal modello. Come modello
e utilizzato quello in figura 5.1. Su questo modello sono inizialmente
individuati i punti d’interesse (i due punti evidenziati in figura 5.1), in
modo tale che quando l’ICP avra terminato le sue iterazioni, questi punti
Il sistema di riconoscimento di posture 77
forniranno proprio le informazioni che necessitavamo circa la posizione
del bacino e della testa.
Per questo tipo di applicazione, l’ICP e stato modificato al fine di
adattarlo maggiormente ai dati del problema. Di seguito verranno
esposte le sei fasi dell’algoritmo (si veda il Capitolo 2 per i dettagli) cosı
come sono state realizzate per l’applicazione.
La prima fase e quella di selezione. In questa fase non avviene al-
cun apporto particolare. Vengono utilizzati tutti i punti disponibili nel
modello, cosı come tutti i punti disponibili nell’immagine in ingresso.
La fase successiva riguarda la ricerca delle corrispondenze. L’obbiettivo
di questa parte dell’algoritmo e quello di stimare le corrispondenze fra
i punti del modello e quelli del dato in ingresso. Per velocizzare questa
fase, l’immagine in ingresso viene preprocessata. Il preprocessamento
consiste nella costruzione di una griglia tridimensionale che occupa lo
spazio della scena. Ogni cella della griglia, di dimensione identica alle
altre celle, contiene tutti i punti dell’immagine le cui coordinate ricadono
al suo interno. Questo in pratica consente di indirizzare direttamente
una cella dell’immagine per ottenere tutti i punti contenuti in quella
regione. In questa maniera, quando, dato un punto del modello, si vuole
ricercare la corrispondenza basata sulla distanza euclidea con un punto
della scena, sara sufficiente esplorare la griglia allontanandosi progressi-
vamente dalla cella in cui e contenuto il punto del modello. Visto che i
movimenti del torso e della testa da un frame a quello successivo sono
relativamente piccoli, ad ogni iterazione il modello del torso e della testa
dovra compiere uno spostamento relativamente piccolo per trovarsi di
nuovo nella corretta corrispondenza con la nuova immagine. Questo
vuol dire che dato un punto del modello e la cella dell’immagine che
Il sistema di riconoscimento di posture 78
questo punto attualmente occupa, il punto ad esso piu vicino si trovera
con altissima probabilita all’interno della stessa cella. Questa tecnica
puo introdurre un errore e limitato superiormente dalla lunghezza della
diagonale maggiore della cella. Questo vuol dire che, dato un punto del
modello pM , il punto stimato essere il suo corrispondente pD e il punto
che in realta e quello piu vicino pR, sussiste la relazione
d(pM ,pD) < d(pM ,pR) + e (5.5)
dove d(, ) indica la distanza euclidea fra due punti. Se la dimensione
della diagonale maggiore della cella non e troppo grande, questo errore
non influisce sensibilmente sul risultato. Infatti l’ICP non e molto
sensibile a questo tipo di errore, dato che la corrispondenza, rimanendo
in un intorno del punto corretto, vota per una trasformazione simile. Si
noti inoltre che questo tipo di errore non e molto frequente. Il prepro-
cessamento appena descritto non richiede molte risorse computazionali
per essere realizzato e fornisce un risparmio di tempo notevole in fase
di ricerca delle corrispondenze, dovendosi cercare la corrispondenza,
la maggior parte delle volte, solo all’interno di una cella. Inoltre e
importante osservare che questa tecnica rende la velocita dell’algoritmo
quasi indipendente dalle dimensioni dell’immagine in ingresso, in termini
di numero di punti di cui questa e costituita.
La fase di ricerca delle corrispondenze presenta una differenza fra i punti
del modello che appartengono al torso e quelli che appartengono alla
testa. Per quelli del torso infatti, il punto corrispondente e ricercato
basandosi solo sulla distanza euclidea. Per i punti della testa invece, oltre
alla distanza euclidea, si prende in considerazione anche l’informazione
sull’apparenza che e stata ottenuta nella fase di apprendimento. In
pratica, le corrispondenze di un punto del modello appartenente alla
testa, vengono ricercate solo fra quei punti dell’immagine che hanno un
colore compatibile con quello stimato caratterizzare la testa. Questa
Il sistema di riconoscimento di posture 79
compatibilita consiste nel verificare se la distanza euclidea fra il colore
del punto e del suo candidato corrispondente cade al di sotto di una
soglia, definita considerando la varianza del colore stimato per la testa.
La terza fase dell’ICP consiste nell’assegnare un peso ad ogni cor-
rispondenza trovata. Nel nostro caso, abbiamo gia avuto modo di
valutare l’importanza della rilevazione della testa al fine di riconoscere
l’asse torso-corpo. Inoltre la testa e la parte del modello che contiene piu
informazione, avendo a disposizione anche il dato relativo all’apparenza.
Sembra ragionevole allora assegnare un peso maggiore (doppio) alle
corrispondenze che riguardano i punti della testa, in modo tale che la
trasformazione stimata nella fase di minimizzazione sia maggiormente
influenzata da questi punti.
La quarta fase consiste nello scartare coppie che possono influire
negativamente sulla stima finale della trasformazione. Non avendo un
criterio affidabile per la decisione di quali coppie possano essere scartate,
e stato deciso di tenerle tutte.
La quinta fase riguarda la misura dell’errore. Le distanze utiliz-
zate nella fase di ricerca delle corrispondenze possono fornire una stima
dell’errore residuo. Essendo pero il modello statico, determinato in
parte a priori e di forma regolare, mentre le immagini possono assumere
forme molto diverse, l’errore residuo resta sempre abbastanza alto e
non si ottiene un risultato affidabile cercando di stabilire una soglia
che definisca quando l’algoritmo si deve fermare. E’ possibile anche
utilizzare un numero di iterazioni fissato, oppure fermarsi quando non si
hanno piu spostamenti sensibili del modello. Queste due ultime scelte
sono state utilizzate per questa applicazione.
Il sistema di riconoscimento di posture 80
L’ultima fase riguarda la tecnica di minimizzazione dell’errore. In
questa e stato utilizzato il metodo di minimizzazione basato sui
quaternioni unitari (si veda la descrizione dettagliata nel Capitolo 2).
Il punto dei piedi
La fase in questione si occupa di stimare la posizione dei piedi. Va detto
che in questo lavoro si assume che i piedi siano sempre in contatto con il
pavimento.
Durante la fase di apprendimento la stima di questo punto risulta pi-
uttosto semplice, assumendo la persona la postura eretta. La fase di
apprendimento in ogni caso ci fornisce la posizione approssimativa dei
piedi in un immagine, permettendoci ora di ragionare assumendo di aver
rilevato il punto al passo precedente. Visto che abbiamo assunto che
non vi sono movimenti bruschi nella sequenza video, la posizione attuale
dei piedi non potra trovarsi molto distante da quella, nota, nell’immagine
precedente. Questo ci permette di adottare una semplice ricerca locale, in
un intorno del punto che rappresenta la posizione dei piedi all’iterazione
precedente della procedura. Si noti che questa fase giova del preproces-
samento dell’immagine introdotto per velocizzare l’ICP. Utilizzando la
discretizzazione della scena infatti, tutto cio che si deve fare e ricercare
nella zona indicizzata dal punto che rappresentava la posizione dei piedi
all’iterazione precedente e nel suo intorno. Dei punti cosı ricavati viene
fatta una media pesata, in cui il peso e in relazione inversa con l’altezza
dal suolo del punto da pesare, in modo da determinare le coordinate sul
piano terra della posizione dei piedi. L’altezza di questo punto invece e
considerata nota e viene presa dalla fase di apprendimento.
Questa procedura non sempre pero produce un risultato. Quando infatti
si verifica un’occlusione della parte inferiore del corpo, come ad esem-
pio quando la persona si siede dietro a una scrivania, la procedura non
e in grado di dare un risultato. In questi casi si puo sfruttare ancora
Il sistema di riconoscimento di posture 81
Figura 5.5: Esempio di rilevazione della posizione delle gambe
in caso di occlusione.
dell’informazione in nostro possesso. Abbiamo visto nella sezione prece-
dente che conosciamo la posizione del bacino, e quindi conosciamo la sua
altezza h dal piano del pavimento. Sappiamo inoltre dalla fase di ap-
prendimento la lunghezza l che le gambe assumono nella loro massima
estensione, ossia quando le ginocchia non sono piegate. Considerando
infine che i piedi sono sempre in contatto con il pavimento, possiamo
dire che la posizione dei piedi si trovera all’interno di un cerchio proiet-
tato sul pavimento, avente per centro la proiezione verticale del punto di
bacino e raggio r =√
l2 − h2. Visto allora che i punti rilevati in questa
fase vengono successivamente filtrati (si veda di seguito la sezione sul
filtraggio dei punti), possiamo dire che una buona stima della posizione
dei piedi ha centro nella proiezione sul pavimento del punto di bacino e
varianza proporzionale al raggio r. In questa maniera si puo sfruttare
opportunamente il filtro temporale e ottenere una stima significativa an-
che con i pochi dati che abbiamo a disposizione (si veda la figura 5.5).
Se l’occlusione permane per un certo numero di frame, la posizione dei
piedi finira con il coincidere con la proiezione del punto di bacino sul
pavimento. Non avendo alcun altro tipo di informazione questa resta
una stima ragionevole.
Il sistema di riconoscimento di posture 82
5.3.3 Il tracciamento delle posture
Arrivati a questo punto della procedura si hanno a disposizione i punti
con i quali dobbiamo ricavare la postura. Questo vuol dire che dobbiamo
trovare una configurazione coerente con l’osservazione di questi tre
punti. Come accennato precedentemente, tre punti da soli non bastano
sempre per ricavare senza ambiguita una postura. Si osservi la figura
5.6. Come si vede piu di una configurazione puo essere associata ai
tre punti. In alcuni casi il numero delle configurazioni potrebbe essere
infinito, come in figura 5.7. In quest’ultimo caso pero l’ambiguita
dipende solo dall’orientazione della persona, ossia dalla determinazione
della direzione della sua parte frontale. Sebbene la determinazione della
direzione della persona sia importante, comunque non rappresenta l’ob-
biettivo primario della tesi, che e quello di codificare la postura in modo
che sia interpretabile da moduli di livello piu alto. Questo vuol dire che
l’informazione sull’orientamento in questo caso non sarebbe essenziale,
perche comunque la persona fosse orientata, la postura rimarrebbe la
stessa. In realta la vera ambiguita e quella riportata in figura 5.6. In
questo caso sono possibili pero solo due interpretazioni, a causa del fatto
che il giunto di bacino e considerato piano. In ogni caso queste due
interpretazioni spesso sono molto diverse fra loro e quindi si deve riuscire
a eliminare l’ambiguita. Sarebbe possibile rimuovere una delle due
soluzioni qualora si avesse a disposizione l’informazione sulla posizione
delle ginocchia. Un primo problema e pero che questa informazione
non e sempre molto affidabile, a causa delle deformazioni introdotte dal
sensore e del rumore presente. Inoltre e di difficile estrazione quando
gli arti inferiori sono parzialmente occlusi e impossibile quando lo sono
completamente. Queste situazioni devono essere incluse fra gli scenari
possibili e questo non ci permette di fare troppo affidamento sulla
procedura di rilevazione delle ginocchia.
Per gli obbiettivi proposti della tesi, non e in ogni caso importante ri-
Il sistema di riconoscimento di posture 83
Figura 5.6: Nella parte centrale (b) e riportata l’osservazione
di tre punti nello spazio. Lateralmente (a)(c) sono diseg-
nate le due possibili pose che possono aver causato queste
osservazioni.
conoscere esattamente la postura per ogni singolo frame. In questo senso
non e necessario eliminare l’ambiguita in ogni immagine, cosa che pur
fattibile sacrificherebbe molte risorse computazionali, compromettendo
di seguito la possibilita di realizzare un’applicazione che lavori in tempi
paragonabili al tempo reale. Grazie a questa considerazione, possiamo
adottare un’approccio che per la rimozione dell’ambiguita sfrutta i dati
provenienti da piu frame. La soluzione proposta consiste nello stimare
un sistema di riferimento solidale con la persona, attraverso un filtro
temporale che si basi sulle osservazioni provenienti da piu frame in
sequenza.
Questo passo dell’algoritmo si occupa di tracciare nel tempo le posture
Il sistema di riconoscimento di posture 84
Figura 5.7: La figura mostra come talvolta l’osservazione(a)
dei tre punti caratteristici possa essere causata da un nu-
mero infinito di posture. In questo caso le posture sono quelle
ottenuto ruotando la persona rispetto all’asse verticale(b).
assunte dalla persona. In particolare rientra in questo ambito il filtraggio
della posizione dei punti caratteristici, ottenuto attraverso il filtro di
Kalman, e la stima dell’orientamento del sistema di riferimento persona.
Il filtraggio dei punti caratteristici con Kalman
Per rendere le traiettorie, descritte da questi punti caratteristici nel tem-
po, leggermente piu regolari, viene utilizzato il filtro di Kalman (per
un’introduzione al filtro di Kalman si veda [Maybeck, 1979]). Come
modello di moto viene utilizzato quello a velocita costante. Questo,
come dicevamo, per rendere le traiettorie leggermente piu regolari. In
realta, il moto dei punti precedentemente calcolati e difficilmente model-
lizzabile. Del resto si vuole solo un piccolo contributo da parte del filtro
di Kalman, che pertanto e impostato in maniera tale che non influisca
troppo sul risultato.
Visto che vogliamo modellare anche la velocita dei punti nello spazio,
lo stato x del nostro sistema comprende, oltre alla posizione p, anche il
Il sistema di riconoscimento di posture 85
dato v della velocita del punto. Il nostro sistema puo essere pertanto
modellato comex(t + 1) = Ax(t)
y(t + 1) = Hx(t + 1)(5.6)
dove y(t + 1) e l’osservazione, lo stato e x(t) =[
p(t) v(t)]T
, mentre
le matrici A e H sono
A =
1 0 0 1 0 0
0 1 0 0 1 0
0 0 1 0 0 1
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
H =
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
(5.7)
Per quanto riguarda le altre matrici che definiscono il comportamento
del filtro di Kalman, vale a dire la matrice della covarianza dell’errore
nella misura R, la matrice della covarianza dell’errore nel processo Q e
la matrice della covarianza della stima iniziale dello stato P, si scelgono
dei valori che impediscano al filtro di Kalman di filtrare troppo il valore
in ingresso. Questo si traduce nello scegliere un valore abbastanza alto
per la matrice Q e un valore piu basso per la matrice R, che equivale a
dire che il processo devia abbastanza dal suo modello a velocita costante
e che le osservazioni sono affidabili (per i valori precisi assegnati a queste
matrici, si consulti il Capitolo 6). Le matrici R e Q rimangono costanti
per i due punti dell’asse torso-testa, mentre per quanto riguarda il punto
collocato in prossimita dei piedi, si puo avere una variazione della ma-
trice R. Questo e dovuto al fatto che la posizione di questo punto puo
essere stimata con diversi gradi di affidabilita al variare delle immagini.
Questo perche la parte inferiore del corpo puo risultare occlusa da altri
oggetti. Nel caso in cui si verifichi un occlusione di questo tipo, si sceglie
di dare maggiore responsabilita al filtro di Kalman aumentando oppor-
Il sistema di riconoscimento di posture 86
Figura 5.8: Il piano passante per i tre punti caratteristici.
tunamente (si veda la sezione di questo capitolo che tratta la rilevazione
della posizione dei piedi) i valori della matrice R.
L’orientamento della terna persona
Chiamiamo S il piano che passa per i tre punti caratteristici (si veda
la figura 5.8). Nel caso in cui i punti siano collineari, ne scegliamo uno
qualsiasi che li contenga tutti e tre. Centriamo in pP una sistema di
riferimento solidale con la persona, i cui assi x e y sono allineati rispetti-
vamente con la direzione frontale, la parte sinistra del corpo e z, ottenuto
in maniera tale da ottenere una terna destrorsa, punta normalmente nella
direzione che va dai piedi verso la parte superiore del corpo (si veda figura
5.9). Si noti che il piano S idealmente coincide con il piano definito dagli
assi x e y (il piano di simmetria). Una volta stabilita la trasformazione
che lega il sistema di riferimento persona con quello solidale con la scena,
e possibile ricavare la stima della posa senza ulteriori ambiguita.
Come sopra accennato, il piano che passa per i tre punti pP ,pB e pT ,
idealmente coincide con il piano descritto dagli assi x e z della terna di
riferimento persona. In realta spesso non e cosı (si osservi a tal proposito
Il sistema di riconoscimento di posture 87
la figura 5.10). Questo problema e dovuto sia al fatto che i punti non
sono collocati esattamente sull’asse mediano della persona, sia al fatto
che il giunto di bacino e in realta sferico, anche se e stato assunto pi-
ano nel modello. E’ importante quindi ricavare e mantenere una stima
affidabile dell’orientamento del piano S. Quando la persona assume pos-
ture che richiedono piegamenti relativamente evidenti, i punti pT e pB
sono per lo piu vincolati a muoversi lungo il piano di simmetria della
persona, che e quello dove gli angoli di bacino e ginocchia trovano le
maggiori liberta di movimento. In questi casi quindi il piano che passa
per i tre punti pP ,pB e pT e una buona approssimazione del piano xz.
Per ottenere una buona stima di questo piano si filtrano opportunamente
le osservazioni derivanti da immagini successive.La normale al piano nS
puo essere semplicemente calcolata come
nS = pPpB × pBpT (5.8)
dove pPpB e il vettore che va da pP a pB e pBpT quello che va da pB a pT ,
mentre × indica l’operatore di prodotto vettoriale. La normale descrive
completamente l’orientamento del piano. A questo punto e necessario
fare una considerazione. L’orientamento del piano puo essere descritto
da due angoli α e β, come illustrato in figura 5.11. L’angolo α permette
di individuare la direzione (ma non il verso) della parte frontale della
Figura 5.9: La terna di riferimento solidale con la persona.
Il sistema di riconoscimento di posture 88
Figura 5.10: Il piano non e allineato all’asse di simmetria
perche la stima dei punti caratteristici non e molto precisa.
persona, mentre β rappresenta l’inclinazione laterale del piano S. Per i
due angoli sono utilizzate due tecniche di filtraggio diverse. Analizziamo
prima come viene filtrato nel tempo α. Assumendo una distribuzione di
probabilita gaussiana per il valore di α, con la media µ e la varianza σ
che possono essere ottenute come
µt+1 = µt
σ2osst+1
σ2t +σ2
osst+1
+ osst+1σ2
t
σ2t +σ2
osst+1
1σ2
t+1= 1
σ2t+1
+ 1σ2
osst+1
(5.9)
dove osst+1 indica il valore dell’angolo osservato al tempo t+1 e σ2osst+1
in-
dica la varianza di questa osservazione, stimata essere in relazione inversa
al modulo del prodotto vettoriale dell’equazione 5.8. Infatti, quanto piu
e piccolo questo valore, quanto minore e l’affidabilita dell’osservazione.
Il valore di σ al tempo t = 0 e inizializzato all’infinito, in maniera che la
vera inizializzazione di µ avvenga con la prima osservazione.
Per l’angolo β bisogna fare un’analisi diversa. Infatti la stima di questo
angolo e molto meno affidabile, essendo i tre punti caratteristici quasi mai
perfettamente contenuti nel piano di simmetria della persona (si veda la
figura 5.10). Considerando anche che il piegamento laterale puo essere in
Il sistema di riconoscimento di posture 89
Figura 5.11: I due angoli che descrivono l’orientamento del
piano.
parte assorbito dai piegamenti frontali del modello, si e deciso di filtrare
β in maniera diversa. In pratica quando l’osservazione relativa a questo
angolo riporta un valore minore di venti gradi, viene considerato nullo.
Fra i venti e i quaranta, il suo valore e dimezzato. Al di sopra e lasciata
inalterata. Inoltre il valore e filtrato nel tempo utilizzando la seguente
relazione
βt+1 = 0.625βt + 0.375osst (5.10)
dove con oss si e indicata l’osservazione al tempo corrente. Le due
costanti che moltiplicano βt e osst sono ottenute per via sperimentale.
Il metodo adottato permette di ottenere una stima progressivamente
migliore dell’orientamento del piano xy, ammesso che i valori di α e β,
se variano nel tempo, varino lentamente.
La tecnica appena descritta ci permette di stimare il piano che,
idealmente, passa per l’asse mediano della persona e ne divide la parte
destra da quella sinistra. Una volta conosciuto questo piano, possiamo
ottenere una stima migliore della posizione dei punti caratteristici,
proiettando questi ultimi sul piano appena calcolato. Questo passaggio
non consente ancora pero di risolvere le ambiguita come quelle del tipo
Il sistema di riconoscimento di posture 90
Figura 5.12: Alle volte i punti caratteristici (a) ammettono
un’unica interpretazione (b)
di 5.6.
Per raggiungere questo risultato e necessario specificare completa-
mente l’orientamento della terna di riferimento solidale con la persona
(si noti che la posizione della terna e nota, avendone definito l’origine
coincidente con pP ). In pratica, conosciuto il piano, resta da stimare
quale sia la parte sinistra e quale la parte destra della persona, o
equivalentemente quale sia la parte anteriore e quale la parte posteriore.
Per fare questo non basta conoscere il piano che passa per i tre punti,
ma e necessario analizzare piu da vicino la posizione relativa degli stessi.
Si osservi la figura 5.12. E’ chiaro che per i tre punti illustrati in figura,
non e possibile che vi sia piu di una configurazione ammissibile. Questo
significa che, spesso, in una sequenza video, si incontrano delle posture
che possono essere completamente descritte solo dai tre punti pP ,pB e
pT . Non solo. Si osservi anche la figura 5.13. Dati i punti illustrati in
Il sistema di riconoscimento di posture 91
figura, e possibile ottenere due interpretazioni. Sebbene entrambe le
posture siano ammissibili, in realta e piu frequente osservare la postura
di destra (a) rispetto a quella di sinistra (c). Queste considerazioni
ci permettono di affrontare il problema della determinazione del lato
sinistro (sarebbe equivalente il destro; e stato scelto il sinistro perche
coincide con l’asse y della terna di riferimento della persona) del
corpo della persona in termini di verosimiglianza di una postura. In
pratica, per ogni frame, una volta stimato il piano xz, risultano possibili
due posture, ammissibili o meno, a seconda che si consideri essere la
parte sinistra orientata come la normale al piano o nel senso opposto.
Chiamiamo posN e posO queste due posture. Il valore di verosimiglianza
di queste due posture puo essere calcolato in base a quanto considerato
precedentemente. E’ necessario a tale scopo definire una funzione f
che per ogni postura, restituisca un valore di verosimiglianza. Questa
funzione deve essere tale da restituire zero quando le configurazioni sono
inammissibili, e un valore opportuno nei restanti casi, facendo sempre
in modo che f(posN) + f(posO) = 0. In questo lavoro non si e voluto
condizionare troppo a priori la determinazione della postura. Pertanto
si e deciso di distinguere solo le coppie di pose del tipo 5.13, assegnando
un valore di verosimiglianza di 0.6 alla prima e 0.4 alla seconda. Questi
due valori sono ottenuti per via sperimentale. In realta comunque,
sarebbe possibile assegnare una qualsiasi funzione, magari adattandola
al particolare contesto in esame.
I valori cosı ottenuti da ogni singola immagine sono utilizzati per
scegliere uno dei due possibili versi dell’asse y. In particolare due
valori, yN e yO, vengono aggiornati di frame in frame, sommandovi
rispettivamente i valori di f(posN) e f(posO), pesati in base al modulo
del prodotto vettoriale dell’equazione 5.8. Questo valore e uguale
per ogni coppia di posture ricavate dalla stessa immagine, ma varia
di immagine in immagine. In ogni immagine, la terna di riferimento
Il sistema di riconoscimento di posture 92
Figura 5.13: L’osservazione (b) causa due diverse interpre-
tazioni. Nella realta e piu frequente osservare la postura (a)
rispetto a (c).
solidale con il corpo della persona e scelta in maniera tale che l’asse y sia
orientato con la normale al piano xy, se yN e maggiore di yO, altrimenti
nell’altra unica configurazione possibile, vale a dire con l’asse y orientato
nel verso opposto alla normale al piano xy.
Come sopra accennato, si e preferito utilizzare una funzione di
verosimiglianza per le posture molto generica, che attribuisse solo una
piccola preferenza in casi come quello in figura 5.13. Questo per non
rendere l’applicazione troppo legata a un singolo contesto. Per ottenere
una stima robusta della direzione della parte sinistra del corpo quindi, ci
si affida per lo piu al passaggio per configurazioni non ambigue. Questo
non e un problema, visto che il passaggio per le posture di questo tipo
accade quasi sempre quando le persone passano da una postura all’altra.
Il sistema di riconoscimento di posture 93
5.3.4 La codifica delle posture
Una volta determinata l’orientamento della terna persona, e possibile
codificare la postura assunta in maniera univoca. Si potrebbe decidere
di codificare la postura con delle etichette rappresentative delle princi-
pali posture, come ad esempio seduto oppure in ginocchio. Tuttavia si
e preferito trasferire in uscita dalla procedura una codifica che mante-
nesse tutta l’informazione ricavata, lasciando a un eventuale modulo di
classificazione il compito di scegliere come aggregare in classi queste infor-
mazioni. Questo perche diverse applicazioni potrebbero avere necessita
di diverse classificazioni, discriminando maggiormente alcune posture, e
in maniera minore altre.
Capitolo 6
Risultati Sperimentali
In questo capitolo vengono illustrati i risultati sperimentali ottenuti gra-
zie al sistema di riconoscimento delle posture descritto nel Capitolo 5.
Di seguito viene mostrata la configurazione di alcune componenti del
sistema, quindi vengono elencate le caratteristiche tecniche della macchi-
na su cui e stata installata l’applicazione e infine sono riportati alcuni
risultati dell’esecuzione dell’applicazione.
6.1 Configurazione del sistema
La configurazione del sistema riguarda le scelte che possono essere fatte
nell’assegnare dei valori ad alcuni parametri delle sotto-componenti del
sistema. Fra tutti si vuole innanzitutto specificare le matrici utilizzate
nel filtro di Kalman. Si ricorda che il filtro di Kalman e utilizzato per
filtrare la posizione nello spazio della scena dei punti caratteristici. Per i
Risultati Sperimentali 95
punti del bacino e della testa, le matrici sono
P =
10000 0 0 0 0 0
0 10000 0 0 0 0
0 0 100 0 0 0
0 0 0 10000 0 0
0 0 0 0 10000 0
0 0 0 0 0 100
Q =
10000 0 0 0 0 0
0 10000 0 0 0 0
0 0 10000 0 0 0
0 0 0 100 0 0
0 0 0 0 100 0
0 0 0 0 0 100
R =
2500 0 0
0 2500 0
0 0 2500
(6.1)
I valori piu alti per la matrice Q della covarianza dell’errore del pro-
cesso, rispetto a quelli della matrice R della covarianza dell’errore della
misura, sono da attribuirsi al fatto che ci si vuole affidare maggiormente
al dato osservato, piuttosto che alla previsione del modello. I valori
utilizzati per il punto collocato in corrispondenza dei piedi variano solo
nella componente della varianza di ogni matrice relativa alla coordinata
z (verticale) della posizione e della velocita. Abbiamo infatti assunto che
i piedi rimangano sempre a contatto con il piano del pavimento. Questo
vuol dire che non c’e spostamento nella direzione verticale per il punto
Risultati Sperimentali 96
che rappresenta i piedi. Ragion per cui, le matrici P, Q e R hanno
un valore prossimo allo zero nel terzo e nel sesto elemento della diagonale.
Si e visto nel Caitolo 4 come l’ICP giovi di una tecnica di prepro-
cessamento dell’immagine per migliorare le prestazioni in termini di
efficienza. Per gli esperimenti, la dimensione delle celle che definiscono
la discretizzazione dello spazio della scena e di 100 mm. Una dimensione
molto piccola permette di indirizzare direttamente una porzione dettagli-
ata della scena. Si ricordi che l’obbiettivo del preprocessamento e quello
di individuare velocemente, dato un punto del modello, l’insieme dei
punti ad esso piu vicini. Quando la dimensione diventa troppo piccola,
la probabilita di trovare un insieme di punti nella cella indicizzata
dal punto del modello diminuisce. Ancora peggio, l’aumentare della
risoluzione della discretizzazione richiede un aumento proporzionalmente
cubico della quantita di celle utilizzate, e di conseguenza di risorse di
memoria.
6.2 Caratteristiche tecniche
Il sistema e stato implementato nel linguaggio di programmazione C++
su sistema operativo Linux (Fedora Core 3). Il calcolatore utilizzato per
gli esperimenti e un Dell Inspiron 8200, con processore Intel Pentium 4
Mobile da 1,8 GHz, 512 MB di RAM e scheda video da 32 MB di RAM
dedicata.
6.3 Risultati
Gli esperimenti sono stati realizzati su dieci sequenze video ricavate
in un ambiente chiuso dalle caratteristiche di un ufficio. Per ottenere
Risultati Sperimentali 97
dei risultati maggiormente significativi, si sarebbe dovuto procedere
alla sperimentazione su diversi ambienti e con diverse condizioni di
illuminazione. Naturalmente, per ogni configurazione ottenuta variando
i parametri suddetti, si sarebbero dovute registrare diverse sequenze
relative a piu posture. Inoltre (per quanto a noi e noto al momento)
non sono disponibili benchmark per la realizzazione di una serie di test
standardizzati di applicazioni di questo tipo. Si e ritenuto opportuno
in questa tesi di procedere all’analisi di un insieme di sequenze video
campione, che potessero rappresentare le classi di posture comunemente
assunte dalle persone.
Di seguito verranno commentati i risultati ottenuti da alcune sequenze,
evidenziando di volta in volta le caratteristiche salienti dell’applicazione
e i problemi incontrati. Le prime due sequenze che verranno illustrate
mostrano una persona che si siede, una volta dietro una scrivania e
una volta senza oggetti che ne occludono il corpo. Successivamente
vengono presentate due sequenze in cui la persona in esame si sta
chinando, esibendo due parti del corpo diverse in ciascuna sequenza.
Infine vengono mostrate due sequenze che mostrano due diversi tipi di
caduta.
Le figure 6.2 e 6.2 mostrano alcuni frame di una sequenza video
in cui la persona in esame si sta sedendo. Sono riportate alcuni
frame delle sequenze, dall’alto verso il basso, dell’immagine RGB, della
rappresentazione tridimensionale dei punti di questa immagine e della
postura, rappresentata con l’utilizzo di un modello semplificato del corpo
umano. Nella sequenza centrale e anche riportata la terna di riferimento
della persona, con l’asse rosso che indica la direzione frontale, quello
verde che indica la parte sinistra del corpo e quello blu che e diretto
verso la parte superiore del corpo. Nonostante questa sequenza presenti
sia falsi positivi che falsi negativi, il tracciamento della postura che ne
Risultati Sperimentali 98
Figura 6.1: I frame sono estratti da una sequenza video in cui
la persona si sta sedendo (continua in ). I numeri fra parentesi
indicano la posizione del frame nella sequenza.
Risultati Sperimentali 99
Figura 6.2: I frame sono estratti da una sequenza video in cui
la persona si sta sedendo (continua da )
Risultati Sperimentali 100
viene fatto non mostra particolari disturbi. La particolarita di questo
esempio pero, piu che nella capacita di ottenere la postura correttamente
nonostante l’errore, sta nel fatto che i punti caratteristici della maggior
parte dei frame della sequenza assumono una configurazione ambigua.
Si noti il primo frame della figura 6.2. Gli stessi tre punti caratteristici
individuati da testa, bacino e piedi si avrebbero anche se la persona
fosse inginocchiata e con il torso esteso verso l’alto. Lo stesso discorso
vale per tutti gli altri frame riportati fatta eccezione per il secondo della
figura 6.2. Sebbene il vero orientamento del corpo in una sequenza video
venga individuato principalmente grazie al passaggio per le configu-
razioni non ambigue di punti caratteristici, l’utilizzo di una opportuna
funzione di verosimiglianza permette in questo caso di tracciare la
posa correttamente gia dai primi frame, quando non si sono ancora
incontrate le suddette configurazioni univoche. La postura nel secondo
frame della figura 6.2 ad esempio, e ottenuta solo grazie alla funzione
di verosimiglianza, che permette di preferire questa posa alla sua coniu-
gata (si veda il Capitolo 5 per i dettagli sulla funzione di verosimiglianza).
L’esempio precedente ci ha permesso di analizzare una persona
nell’atto di sedersi. Negli uffici e nelle abitazioni tuttavia, spesso capita
di avere a che fare con persone che si siedono dietro a una scrivania,
per esempio. Questo vuol dire che non sono piu completamente visibili,
come invece accadeva nell’esempio precedente. La figura 6.3 mostra
alcuni frame relativi a una sequenza video nella quale la persona si
siede dietro una scrivania, mentre la figura 6.4 mostra rappresentazione
tridimensionale del quarto, del sesto e del settimo frame della sequenza
in 6.3. Come si vede dalla figura 6.3, le gambe diventano presto occluse
e la posizione esatta non puo essere piu tracciata con certezza. Come
spiegato nel Capitolo 5, la posizione punto piedi viene stimata essere
inclusa in un intorno della proiezione del punto bacino sul pavimento.
Risultati Sperimentali 101
Figura 6.3: I frame sono estratti da una sequenza video in cui
la persona si sta sedendo dietro a una scrivania.
Figura 6.4: La rappresentazione tridimensionale di alcuni
frame della sequenza in 6.3.
Risultati Sperimentali 102
Come si vede la postura stimata nel quarto frame della sequenza ripor-
tata e parzialmente scorretta, dato che non prende in considerazione
il piegamento del torso della persona. Il perche di questa situazione e
visibile nel primo frame di figura 6.4, che mostra come il modello abbia
trovato una buona corrispondenza con la grossa parte del tavolo che e
stata inclusa nella segmentazione.
Si noti dalla seconda immagine in 6.4 che l’orientamento della persona
non e molto preciso. La mancanza di informazione sulla posizione delle
gambe, nonche il notevole rumore presente in questa sequenza, non
hanno permesso di rilevare correttamente l’orientamento del sistema di
riferimento solidale con la persona. Questo tuttavia non rende il risul-
tato completamente inadatto, dato che la postura principale e ancora
abbastanza valida. Infine si osservi che negli ultimi frame della sequenza
l’orientamento viene ristabilito correttamente (si veda il terzo frame
della sequenza 6.4), a causa di un movimento correttamente tracciato
che permette di ottenere un’informazione affidabile sull’orientamento
della persona.
Talvolta l’occlusione non e dovuta soltanto ad oggetti esterni.
Spesso i corpi articolati infatti si occludono, parzialmente, da soli. Un
esempio di questo tipo di occlusione e quello mostrato nei frame riportati
in figura 6.5. Come si vede il sistema e in grado di riconoscere la posa
con una precisione soddisfacente. Il problema principale incontrato in
questa sequenza video, riguarda il fatto che il sistema (in particolare
l’ICP) deve riuscire a trovare la corrispondenza del modello sintetico
del torso e della testa, dapprima con la parte anteriore del corpo,
quindi con la parte posteriore (vale a dire la schiena). Questo passaggio
riesce perche la testa vincola fortemente la liberta del modello sintetico,
consentendogli soltanto di ruotare rispetto alla sua asse principale (si
veda la figura 6.6).
Risultati Sperimentali 103
Figura 6.5: I frame sono estratti da una sequenza video in cui
la persona si sta chinando a raccogliere un pacco.
Figura 6.6: La rappresentazione tridimensionale di alcuni
frame della sequenza in 6.5
Risultati Sperimentali 104
Figura 6.7: I frame sono estratti da una sequenza video in cui
la persona si sta chinando. La segmentazione delle immagini
esclude gran parte del corpo della persona
Abbiamo visto nell’esempio precedente quanto la testa della per-
sona sia importante per il tracciamento della postura. Quando la
testa non e piu visibile, il risultato corretto non e piu garantito. Un
esempio di quello che puo succedere in questi casi e riportato in figura
6.7. Finche l’immagine e correttamente segmentata, la posa e ricavata
correttamente (del resto questo particolare caso sarebbe piuttosto
semplice da trattare se non ci fosse l’errore di segmentazione, visto che
la quantita di auto-occlusione e piuttosto limitata). Dopo pochi frame
tuttavia l’immagine e ripetutamente segmentata male, tagliando fuori
la maggior parte del torso e tutta la testa. Nei primi frame la postura
non degenera subito, ma poi l’ICP spinge il modello sintetico (si veda
la figura 6.8) a cercare corrispondenze nelle uniche parti ancora visibili
della persona. Questo accade perche abbiamo assunto di non avere
occlusioni della parte superiore del corpo, bensı solo di quella inferiore.
Risultati Sperimentali 105
Figura 6.8: La rappresentazione tridimensionale di alcuni
frame della sequenza in 6.7
In molte applicazioni, e utile saper riconoscere quando una per-
sona sta cadendo. In figura 6.9 e riportata una situazione di questo tipo.
In realta questa caduta e simulata, e a differenza delle normali cadute
avviene piu lentamente. In questo esempio e interessante notare l’errore
nel tracciamento della posa che avviene verso la fine della sequenza
video. Negli ultimi frame il dato relativo ai punti 3D della persona e
abbastanza distorto. Questo, come si vede in figura 6.10, fa sia assumere
alla persona una posa alquanto innaturale, visto che la schiena forma
un angolo quasi di novanta gradi con le gambe, oltre che accorciare
la lunghezza del torso. Questa distorsione si mantiene tale per alcuni
frame. L’applicazione all’inizio interpreta il dato come un inarcamento
insolito della schiena, ma allo stesso tempo prende in considerazione
l’idea di considerare la postura alternativa descritta dagli stessi tre punti
caratteristici. Col ripetersi delle osservazioni consecutive di questo tipo,
la procedura stima essere sempre piu opportuno rivalutare l’orientamen-
to della terna del corpo. Questo alla fine avviene e quello che si ottiene e
Risultati Sperimentali 106
Figura 6.9: I frame sono estratti da una sequenza video in cui
la persona sta cadendo.
Figura 6.10: La rappresentazione tridimensionale di alcuni
frame della sequenza in 6.9
Risultati Sperimentali 107
Figura 6.11: I frame sono estratti da una sequenza video in
cui la persona sta cadendo.
una postura sbagliata. Infine si noti anche che l’applicazione negli ultimi
frame non raggiunge il suo scopo a causa della presenza di immagini mal
segmentate (si osservi l’ultimo frame di figura 6.10). Queste immagini
spingono l’ICP a spostare la ricerca della parte superiore del corpo
lontano del torso (in questo caso sulle gambe). Una volta che il modello
si e allontanato troppo dalla sua corretta posizione, non e garantito che
riesca a ritornarvi nei frame successivi.
Un altro esempio di persona che si sdraia sul pavimento e ripor-
tato in figura 6.11. Il movimento che la persona compie per sdraiarsi a
terra tuttavia e molto diverso da quello illustrato nel caso precedente.
Il modello della persona assunto in questa applicazione, ha la maggior
parte dei gradi di liberta che gli consentono principalmente di muoversi
(con i piedi fermi) lungo il piano di simmetria. L’unico grado di liberta
Risultati Sperimentali 108
Figura 6.12: La rappresentazione tridimensionale di alcuni
frame della sequenza in 6.11
che consente di spostarsi nella direzione ortogonale a questo piano,
risiede nel giunto sferico posizionato proprio in corrispondenza dei piedi.
Nel video di figura 6.11, la persona usa sostanzialmente i gradi di liberta
che gli consentono di piegarsi lateralmente. Questi movimenti devono
essere rappresentati quanto meglio possibile anche senza utilizzare tutti
i gradi di liberta effettivi di un corpo umano. La procedura riesce a
fare questo in maniera soddisfacente. Si noti dalla figura 6.12, come
l’applicazione sia in grado di rilevare il piegamento verso la parte sinistra
del corpo.
Il tempo utilizzato dall’applicazione per ogni immagine e molto
variabile. In media e di circa 180 ms, ma puo variare dai 60 ms ai 400
ms. Il tempo di esecuzione dipende soprattutto dal numero di iterazioni
effettuate dall’ICP per la rilevazione del blocco torso-testa. A sua volta,
il numero di iterazioni cresce con l’aumentare dello spostamento del
modello del torso e della testa. Anche se questo risultato non e molto
Risultati Sperimentali 109
soddisfacente, va detto che si puo ottenere un miglioramento utilizzando
una macchina piu veloce rispetto a quella utilizzata per le prove (le
caratteristiche della macchina sono riportate nella sezione precedente).
Inoltre, a patto di ridurre l’accuratezza dei risultati, si puo sempre
limitare il numero massimo di iterazioni dell’ICP e ottenere ancora un
risultato in buona parte soddisfacente. Tuttavia, in questa sede, si e
preferito sacrificare il tempo di esecuzione per mostrare le altre capacita
del sistema.
Capitolo 7
Conclusioni
7.1 Risultati raggiunti e limitazioni del
sistema
I risultati mostrati nel Capitolo 6 evidenziano come l’applicazione re-
alizzata sia in grado di riconoscere e tracciare posture in molti casi di
interesse. In particolare, si e visto come l’obbiettivo principale della tesi,
ossia quello di riconoscere e codificare opportunamente le principali pos-
ture, possa ritenersi raggiunto. Quando infatti la segmentazione non
introduce un disturbo eccessivo, la procedura modella correttamente le
posture che la persona assume. La codifica della postura e ottenuta at-
traverso l’esplicitazione dei valori degli angoli di rotazione dei giunti del
modello.
Per quanto riguarda il tracciamento delle posture, vale a dire la capac-
ita di riconoscere in ogni frame la posizione e l’orientamento delle varie
parti del corpo d’interesse, si puo ancora dire che l’obbiettivo e stato
sufficientemente raggiunto. Spesso inoltre, anche quando il tracciamento
non e accurato, la codifica della postura rimane ancora corretta. Questo
accade se la postura rilevata e abbastanza simile a quella reale, da poter
Conclusioni 111
essere classificata allo stesso modo.
Un limite del sistema e che attualmente non garantisce la capacita di
recuperare da un errore nel tracciamento della parte superiore del corpo,
a meno che la persona non assuma la configurazione eretta dopo il falli-
mento del tracciamento.
L’implementazione corrente richiede in media circa 180 ms per eseguire
un ciclo, senza includere il tempo impiegato dal sistema di localizzazione
e tracciamento delle persone.
7.2 Suggerimenti per sviluppi futuri
Come visto nella sezione precedente, l’applicazione realizzata ha dei
margini di ampliamento. Sicuramente utile sarebbe, a tal proposito, una
procedura di recupero in grado di rilevare un fallimento nel tracciamento
delle posture. Questa procedura potrebbe essere integrata nell’appli-
cazione che realizza il riconoscimento di posture, permettendogli di
attuare una reinizializzazione del tracciamento.
Abbiamo visto che il dato in ingresso, contiene l’informazione sulla
persona. Non si ha nessuna informazione pero relativa all’ambiente in
cui si trova la persona. Si potrebbe infatti prendere in considerazione
la possibilita di integrare il risultato della rilevazione delle posture con
la conoscenza a priori dell’ambiente. Ad esempio, se si sapesse che la
persona si trova in prossimita di una sedia, si potrebbe adattare la
funzione di verosimiglianza descritta nel Capitolo 5. Questa funzione
potrebbe quindi restituire un valore di verosimiglianza maggiore per
le posture che vicine a quella della persona seduta rispetto alle altre
possibili.
Inoltre e auspicabile che eventuali moduli di ragionamento realizzati per
processare le informazioni prodotte dalla procedura di riconoscimento
delle posture, siano integrabili con questa procedura in entrambe le
Conclusioni 112
direzioni. Questo vuol dire che questi moduli, oltre a ricevere dati
dall’applicazione, potrebbero fornire informazioni utili per il rilevamento
di posture, ad esempio ancora variando la funzione di verosimiglianza.
L’applicazione realizzata agisce su un dato che riguarda un’unica
persona. Nella maggior parte dei casi, in una scena sono presenti piu
persone contemporaneamente. Questo vuol dire che se si vogliono
tracciare le posture di tutte le persone presenti nella scena, e necessario
eseguire un’istanza dell’applicazione per ogni persona. Di sicuro questo
rappresenterebbe un notevole carico computazionale. Il riconoscimento
di posture tuttavia, non deve essere sempre attivo. Si potrebbe attivare
ad esempio solo quando la postura cambia. Sarebbe interessante
quindi integrare l’applicazione sviluppata in questa tesi con un modulo
attentivo, che sia in grado di stabilire quando eseguire la procedura per
il riconoscimento di posture su ogni persona presente nella scena.
Abbiamo visto come il sistema sviluppato in questa tesi riceva in ingresso
il dato prodotto dal sistema di localizzazione (PLT) e tracciamento.
Sarebbe interessante integrare ulteriormente questi due sistemi per fare
in modo che il riconoscimento di posture, non solo riceva dati, ma li
fornisca anche al PLT. Questo potrebbe favorire l’accuratezza della
procedura di segmentazione ad esempio.
Appendice A
L’interfaccia grafica
dell’applicazione
In applicazioni concernenti la visione computazionale, non e sempre
facile analizzare il comportamento dell’applicazione in un qualsivoglia
momento. Questo soprattutto perche i dati che l’applicazione elabora
non sono facilmente rappresentabili in via testuale. Le tradizionali
procedure di debug quindi potrebbero non essere sufficienti da sole. Si
e percio di sviluppata un’interfaccia grafica che possa servire allo stesso
tempo per il debug dell’applicazione, oltre che per la visualizzatore dei
risultati. L’interfaccia grafica e stata realizzata utilizzando le librerie
grafiche Qt insieme a OpenGL.
Una schermata dell’interfaccia in esecuzione e riportata in figura A.1.
Le tre finestre principali rappresentano, in ordine da sinstra verso destra,
l’immagine segmentata della persona, la rappresentazione tridimension-
ale dei punti di questa immagine e il modello della persona. Questo
modello non e il modello che viene utilizzato in fase di analisi delle im-
magini, sebbene condivida con quello le proporzioni interne e quasi tutti
i gradi di liberta. In effetti il modello dell’ interfaccia grafica ha un grado
L’interfaccia grafica dell’applicazione 114
Figura A.1: Una schermata dell’ interfaccia grafica
dell’applicazione
di liberta in meno dovuto al fatto che non ruota rispetto all’asse verticale
(sebbene questa informazione sarebbe anche disponibile). Si e preferito
evitare di includere la rappresentazione di questo grado di liberta per
semplificare la visualizzazione, dato che una rotazione rispetto all’asse
verticale non determina un cambiamento della postura. La parte in bas-
so a sinistra comprende i comandi per manipolare la sequenza video,
come ad esempio fermare l’esecuzione o aprire un nuovo file. Nella parte
in basso al centro sono collocati due insiemi di manipolatori (o slider).
Quelli di sinistra permettono di cambiare il punto di vista nella finestra
centrale o in quella del modello. Gli slider di destra invece permettono
di visualizzare le rotazioni dei punti 3D della persona nell’immagine cen-
trale o la rotazione del modello nella finestra di destra. Per scegliere
su quale delle due finestre debba avere effetto l’azione degli slider, deve
essere utilizzato il bottone Switch nel pannello in basso a destra dell’in-
L’interfaccia grafica dell’applicazione 115
Figura A.2: Il bottone Side permette di visualizzare il piano
di simmetria della persona (a), mentre il bottone Model con-
sente di visualizzare il modello utilizzato dall’ICP per rilevare
il blocco torso-testa
terfaccia. Di default le modifiche vengono applicate alla finestra centrale.
Nello stesso pannello del bottone Switch e presente anche il bottone Save
che permette di registrare il contenuto delle tre finestre. Il risultato di
questa operazione e che i vari frame delle tre finestre vengono salvati in
formato PNG in tre cartelle separate, che vengono appositamente create
con il nome del file. Inoltre e presente il bottone Ground, per visualizzare
la griglia che rappresenta il piano dei punti ad altezza zero nella finestra
di centro, e il bottone BRS (da Body Reference System) che consente
di visualizzare sulla stessa finestra la terna persona descritta nel Capi-
tolo 5. Infine dello stesso pannello fanno parte anche i bottoni Side e
Model. Il primo serve per visualizzare il piano che passa per l’asse prin-
cipale della persona dividendone la parte destra da quella sinistra (figura
A.2.a), mentre il secondo consente di visualizzare il modello del blocco
torso-testa utilizzato in fase di analisi (figura A.2.b).
Bibliografia
[Bahadori et al., 2005] Bahadori, S., Grisetti, G., Iocchi, L., Leone,
G. R., and Nardi, D. (2005). Real-time tracking of multiple people
through stereo vision. In Proc. of IEE International Workshop on
Intelligent Environments.
[Besl and MacKay, 1992] Besl, P. J. and MacKay, N. (1992). A method
for registration of 3-d shapes. IEEE Transactions on Pattern Analysis
and Machine Intelligence.
[Bregler and Malik, 1998] Bregler, C. and Malik, J. (1998). Tracking
people with twists and exponential maps. CVPR98.
[Cucchiara et al., 2005] Cucchiara, R., Prati, A., and Vezzani, R. (2005).
Posture classification in a multi-camera indoor environment. IEEE.
[Curless, 2000] Curless, B. (2000). Overview of active vision techniques.
SIGGRAPH 2000 Course on 3D Photography.
[Demirdjian and Darrel, 2002] Demirdjian, D. and Darrel, T. (2002). 3-d
articulated pose tracking for untethered diectic reference. Proceedings
of the Ninth IEEE International Conference on Computer Vision.
[Demirdjian et al., 2003] Demirdjian, D., Ko, T., and T.Darrel. (2003).
Constraining human body tracking. Proceedings of the Ninth IEEE
International Conference on Computer Vision.
BIBLIOGRAFIA 117
[Forsyth and Ponce, 2003] Forsyth, D. A. and Ponce, J. (2003).
Computer vision, a modern approach. Prentice Hall.
[Gavrila, 1999] Gavrila, D. M. (1999). The visual analysis of human
movement: a survey. Computer Vision And Image Understanding.
[Goldmann et al., 2004] Goldmann, L., Karaman, M., and Sikora, T.
(2004). Human body posture recognition using mpeg-7 descriptors.
Visual Communications and Image Processing.
[Grammalidis et al., 2001] Grammalidis, N., Goussis, G., Troufakos, G.,
and Strintzis, M. G. (2001). 3-d human body tracking from depth
images using analysis by synthesis. IEEE.
[Iocchi and Bolles, 2005] Iocchi, L. and Bolles, R. C. (2005). Integrating
plan-view tracking and color-based person models for multiple peo-
ple tracking. In Proc. of IEEE International Conference on Image
Processing.
[Johansson, 1973] Johansson, G. (1973). Visual perception of biological
motion and a model for its analysis. Perception Psychophys.
[Kakadiaris et al., 1994] Kakadiaris, I. A., Metaxas, D., and Bajcsy, R.
(1994). Active motion-based segmentation of human body outlines.
IEEE.
[Lindsay, 2002] Lindsay, S. (2002). A tutorial on Principal Component
Analysis.
[Marr, 1982] Marr, D. (1982). Vision. Freeman.
[Maybeck, 1979] Maybeck, P. S. (1979). Stocastic models, estimation,
and control, Volume 1. Academic Press.
BIBLIOGRAFIA 118
[Moeslund and Granum, 2001] Moeslund, T. B. and Granum, E. (2001).
A survey of computer vision-based human motion capture. Computer
Vision And Image Understanding.
[Murray et al., 1994] Murray, R. M., Li, Z., and Sastry, S. S. (1994). A
Mathematical introduction to robotic manipulation. CRC Press.
[Rehg and Kanade, 1995] Rehg, J. and Kanade, T. (1995). Model-based
tracking of self-occluding articulated objects. in Proc. of International
Conference on Computer Vision.
[Rusinkiewicz and Levoy, 2001] Rusinkiewicz, S. and Levoy, M. (2001).
Efficient variants of the icp algorithm. In Proc. 3DIM.
[Shimizu and Poggio, 2003] Shimizu, H. and Poggio, T. (2003).
Direction estimation of pedestrian from images.
[Sminchisescu and Triggs, 2001] Sminchisescu, C. and Triggs, B. (2001).
Covariance scaled sampling for monocular 3d body tracking. In
Proceedings of the Conference on Computer Vision and Pattern
Recognition.
[Sminchisescu and Triggs, 2003] Sminchisescu, C. and Triggs, B. (2003).
Kinematic jump processes for monocular 3d human tracking. In
Proceedings of the Conference on Computer Vision and Pattern
Recognition.