Riconoscimento di Posture Umane da Immagini Segmentate ...

118
Universit` a degli studi di Roma La Sapienza FACOLT ` A 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 Relatore Prof. Luca Iocchi

Transcript of Riconoscimento di Posture Umane da Immagini Segmentate ...

Page 1: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 2: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 3: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 4: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 5: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 6: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 7: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 8: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 9: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 10: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 11: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 12: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 13: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 14: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 15: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 16: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 17: Riconoscimento di Posture Umane da Immagini Segmentate ...

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)

Page 18: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 19: Riconoscimento di Posture Umane da Immagini Segmentate ...

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)

Page 20: Riconoscimento di Posture Umane da Immagini Segmentate ...

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,

Page 21: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 22: Riconoscimento di Posture Umane da Immagini Segmentate ...

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-

Page 23: Riconoscimento di Posture Umane da Immagini Segmentate ...

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-

Page 24: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 25: Riconoscimento di Posture Umane da Immagini Segmentate ...

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-

Page 26: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 27: Riconoscimento di Posture Umane da Immagini Segmentate ...

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-

Page 28: Riconoscimento di Posture Umane da Immagini Segmentate ...

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:

Page 29: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 30: Riconoscimento di Posture Umane da Immagini Segmentate ...

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-

Page 31: Riconoscimento di Posture Umane da Immagini Segmentate ...

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)

Page 32: Riconoscimento di Posture Umane da Immagini Segmentate ...

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)

Page 33: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 34: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 35: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 36: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 37: Riconoscimento di Posture Umane da Immagini Segmentate ...

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,

Page 38: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 39: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 40: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 41: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 42: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 43: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 44: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 45: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 46: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 47: Riconoscimento di Posture Umane da Immagini Segmentate ...

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-

Page 48: Riconoscimento di Posture Umane da Immagini Segmentate ...

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)

Page 49: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 50: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 51: Riconoscimento di Posture Umane da Immagini Segmentate ...

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)

Page 52: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 53: Riconoscimento di Posture Umane da Immagini Segmentate ...

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].

Page 54: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 55: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 56: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 57: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 58: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 59: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 60: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 61: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 62: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 63: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 64: Riconoscimento di Posture Umane da Immagini Segmentate ...

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,

Page 65: Riconoscimento di Posture Umane da Immagini Segmentate ...

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),

Page 66: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 67: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 68: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 69: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 70: Riconoscimento di Posture Umane da Immagini Segmentate ...

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-

Page 71: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 72: Riconoscimento di Posture Umane da Immagini Segmentate ...

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-

Page 73: Riconoscimento di Posture Umane da Immagini Segmentate ...

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,

Page 74: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 75: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 76: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 77: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 78: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 79: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 80: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 81: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 82: Riconoscimento di Posture Umane da Immagini Segmentate ...

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-

Page 83: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 84: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 85: Riconoscimento di Posture Umane da Immagini Segmentate ...

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-

Page 86: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 87: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 88: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 89: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 90: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 91: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 92: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 93: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 94: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 95: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 96: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 97: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 98: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 99: Riconoscimento di Posture Umane da Immagini Segmentate ...

Risultati Sperimentali 99

Figura 6.2: I frame sono estratti da una sequenza video in cui

la persona si sta sedendo (continua da )

Page 100: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 101: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 102: Riconoscimento di Posture Umane da Immagini Segmentate ...

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).

Page 103: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 104: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 105: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 106: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 107: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 108: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 109: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 110: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 111: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 112: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 113: Riconoscimento di Posture Umane da Immagini Segmentate ...

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

Page 114: Riconoscimento di Posture Umane da Immagini Segmentate ...

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-

Page 115: Riconoscimento di Posture Umane da Immagini Segmentate ...

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).

Page 116: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 117: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.

Page 118: Riconoscimento di Posture Umane da Immagini Segmentate ...

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.