Introduzione
2
Questo lavoro affronta quello che può ritenersi uno dei problemi centrali della Visione
Artificiale ossia il riconoscimento automatico delle azioni umane.
L’interesse suscitato da questo problema, di per se già stimolante dal punto di vista
scientifico, è stato inoltre rafforzato da motivi di natura prettamente applicativa. Molti sono
infatti quei contesti applicativi in cui l’analisi automatica delle immagini potrebbe alleviare il
lavoro dell’uomo, specialmente nei casi in cui è noioso e ripetitivo.
In questo senso un filone applicativo molto importante è rappresentato dai Sistemi di
Sorveglianza Automatica in cui il livello di competenza richiesto all’elaboratore potrebbe
andare dal semplice rilevamento di soggetti nell’ambiente controllato all’analisi approfondita
dei movimenti dei soggetti umani in esso presenti.
L’interpretazione automatica dei gesti di un essere umano può inoltre rivestire un ruolo
importante nella progettazione di interfacce uomo–macchina avanzate.
Così come queste tante altre applicazioni potrebbero richiedere in qualche modo l’analisi
automatica del movimento: indicizzazione di sequenze video in base al contenuto, realtà
virtuale, videogames, riproduzione remota di movimenti per l’addestramento a distanza,
valutazione di prestazioni in campo sportivo, etc.
Il problema dell’analisi automatica del movimento è comunque un problema molto complesso
e molto dipendente dalla specifica applicazione ossia dall’insieme di possibili movimenti che
si vuole analizzare e/o riconoscere.
Tuttavia generalmente il problema viene scomposto in due sotto - problemi: innanzitutto un
singolo fotogramma di una sequenza video viene analizzato per avere una stima di quale è la
postura del soggetto umano, dopodiché si esegue l’analisi della sequenza temporale delle
posture al fine di valutare nel complesso i movimenti del soggetto umano.
Questo lavoro si occuperà essenzialmente del primo dei due sotto - problemi ossia
dell’analisi e del riconoscimento automatico della postura umana.
L’approccio che seguiremo nel trattare tale problema ricalcherà quello tipico dei problemi di
Pattern Recognition dove nello specifico i passi tipici da effettuare sono i seguenti:
1 Definizione di un insieme di posture
2 Identificazione di un insieme di caratteristiche candidate per il riconoscimento delle
posture definite
Introduzione
3
3 Valutazione e selezione delle caratteristiche candidate
4 Sviluppo di un classificatore automatico
5 Valutazione delle prestazioni del classificatore automatico.
Negli ultimi anni il problema è stato affrontato da molti lavori ognuno dei quali ha però
imposto delle condizioni forti sull’ambiente di lavoro o si è limitato a definire un piccolo
insieme di posture da riconoscere.
Rispetto alla letteratura esistente, ed in particolare al lavoro descritto in [HDD98] nel nostro
lavoro cercheremo di ampliare l’insieme di posture da riconoscere e cercheremo di
determinare qual è l’insieme di caratteristiche più adatte per raggiungere i nostri scopi.
Alcune delle caratteristiche che utilizzeremo sono già note in letteratura altre invece sono
parzialmente innovative.
Infine sperimenteremo alcune tecniche di classificazione per identificare quelle che
garantiscono i migliori risultati con l’insieme di caratteristiche selezionate.
L’esposizione del lavoro è organizzata in 6 capitoli e 2 appendici.
Nel primo capitolo ci dedicheremo ad una discussione generale del problema per motivare la
scelta di un insieme di posture di riferimento. Per questa scelta sarà inoltre rilevante anche
l’analisi dei lavori esistenti in letteratura più simili al nostro.
Nel secondo capitolo verranno discusse le caratteristiche ritenute più adatte per il
riconoscimento della postura umana. In questo capitolo oltre a selezionare un insieme di
caratteristiche che soddisfi alcune proprietà fondamentali ci si dedicherà alla descrizione
dettagliata degli algoritmi di estrazione di tali caratteristiche.
Nel terzo capitolo verrà affrontato il problema della classificazione dal punto di vista
statistico. In particolare si discuteranno 2 principali regole di decisione, quella ottima
Bayesiana e quella Nearest Neighbor.
Nel quarto capitolo si procederà alla selezione delle caratteristiche migliori tra quelle
individuate nel secondo capitolo; ciò sarà fatto sulla base delle loro capacità discriminanti
valutate sperimentalmente.
Dopo aver individuato le caratteristiche più discriminanti, nel quinto capitolo verranno
analizzate le prestazioni ottenute combinando queste caratteristiche con le tecniche di
classificazione descritte nel terzo capitolo.
Introduzione
4
Il sesto capitolo è dedicato alle conclusioni ed agli sviluppi futuri.
Nell’appendice A verranno chiariti alcuni concetti fondamentali sulle immagini binarie,
concetti che più volte utilizzeremo durante l’esposizione del nostro lavoro.
Infine nell’appendice B verranno riportate 2 dimostrazioni che riguardano il metodo di
classificazione Nearest Neighbor.
1 – Analisi del Problema
5
1. Analisi del Problema
Molti dei sistemi esistenti che si occupano di Visione Artificiale impongono delle restrizioni
sulle condizioni di lavoro in cui operare.
L’alta complessità del problema che stiamo trattando e tutti gli aspetti che la determinano
impongono nella maggior parte dei casi di limitare la generalità a vantaggio dell’efficienza.
In questo lavoro vorremmo porci nelle condizioni di massima generalità evitando, come è
nella maggioranza dei casi, ipotesi restrittive.
Per valutare la misura di quanto ciò sia possibile in questo capitolo analizzeremo i vari aspetti
pratici e teorici del problema.
1 – Analisi del Problema
6
1.1 Sistemi per l’Elaborazione e l’Analisi delle
Immagini
Sebbene i sistemi che si occupano di Visione Artificiale siano molti e con diversi scopi la
maggior parte di essi hanno in comune una stessa struttura architetturale a livello hardware
(fig. 1.1) ed in parte anche a livello software(fig. 1.4). La costante in molti di questi sistemi
riguarda il concetto di immagine.
Affinché un’immagine possa essere processata da un elaboratore una precedente fase di
acquisizione è necessaria, cosicché almeno un componente hardware preposto a tale scopo è
da considerarsi indispensabile.
Tipicamente una videocamera viene utilizzata per acquisire le immagini da una scena
controllata ed a seconda del tipo di videocamera abbiamo a disposizione diverse tipologie di
immagine.
Se si utilizza una videocamera analogica l’immagine acquisita è di tipo analogico ed un
ulteriore componente hardware è necessario per digitalizzare l’immagine affinché possa
essere processata dall’elaboratore.
Fig. 1.1 : Processo di acquisizione delle immagini.
1 – Analisi del Problema
7
Se la videocamera è invece digitale ciò che occorre è un semplice dispositivo di
interfacciamento tra la videocamera e l’elaboratore.
Una volta acquisita, l’immagine è a disposizione dell’elaboratore come una matrice di
memoria (rappresentazione bitmap): ogni coppia (i,j) definita in un certo intervallo identifica
univocamente un punto dell’immagine e l’elemento (i,j) della matrice assume un valore
dipendente dal formato dell’immagine.
Possiamo rappresentare in maniera più formale un’immagine come una funzione:
CDf →:
dove D = {0,1,…,W-1} x {0,1,…,H-1}, W ed H prendono il nome
rispettivamente di larghezza ed altezza dell’immagine.
Il codominio della funzione identifica l’insieme di valori assumibili dai punti dell’immagine:
- Se C = {0,1,…,255} l’immagine si dice a toni di grigio ed il valore di un punto
rappresenta la luminosità,
- Se C = {0,1} l’immagine si dice binaria, tipicamente 0 vuol dire sfondo ed 1 significa
punto dell’oggetto,
- Se C = {0,1,…,255}x{0,1,…,255}x{0,1,…,255} l’immagine si dice RGB dove il colore
di un punto è rappresentato da una terna di valori, rispettivamente Red, Green e Blue.
Le telecamere utilizzate comunemente forniscono immagini RGB od a toni di grigio.
Indipendentemente dal tipo di videocamera utilizzata l’immagine acquisita è la
rappresentazione bidimensionale della scena tridimensionale ripresa dalla camera (fig. 1.2).
Non è negli scopi di questa tesi discutere nel dettaglio qual è il funzionamento interno di una
videocamera comunque in maniera molto approssimativa possiamo dire che l’immagine finale
risultante fornita dalla videocamera sarà il risultato della proiezione di un insieme di punti
tridimensionali su un piano bidimensionale (trasformazione prospettica).
In un tipico sistema di analisi delle immagini una volta acquisita l’immagine è necessario
come prima cosa individuare le parti dell’immagine che sono rilevanti ai fini
dell’elaborazione.
Per quanto riguarda l’analisi della postura umana le parti rilevanti da individuare sono quelle
porzioni di immagine che contengono i soggetti umani. Nel resto della Tesi indicheremo
indifferentemente con Silhouette o Blob l’immagine binaria risultante dall’estrazione
dell’immagine del soggetto umano dal resto dell’immagine della scena(fig. 1.3).
1 – Analisi del Problema
8
In pratica per raggiungere questo scopo si utilizzano tecniche di “change detection” ([REL95],
[SFO03]): l’immagine corrente viene confrontata con un’immagine di riferimento (o sfondo)
per rilevare quelle porzioni di immagine in cui i cambiamenti rispetto allo sfondo risultano
essere più rilevanti.
Il risultato dell’estrazione è quindi un insieme di immagini binarie ognuna delle quali
identifica la porzione di immagine che corrisponde ad un soggetto individuato nella scena.
Se l’immagine di partenza è a colori, dal processo di estrazione possiamo comunque ricavare
l’immagine a colori del soggetto. Infatti per costruirla basterà prendere il colore dei punti
corrispondenti sull’immagine originale che nell’immagine binaria sono uguali ad uno. Nel
nostro lavoro il punto di partenza sarà proprio l’immagine RGB del soggetto.
In alcuni casi però ulteriori operazioni sono necessarie per migliorare la qualità dell’immagine
estratta, in ambienti esterni, ad esempio, l’effetto provocato dalle ombre può dar luogo ad
eventi indesiderati nel processo di estrazione [Car01]. In questi casi succede spesso che
insieme ai punti del soggetto il processo di estrazione selezioni anche i punti che
corrispondono alla sua ombra.
Si consideri infine che le immagini provengono dalla telecamera con una frequenza di 25
immagini per secondo. E’ chiaro quindi che un sistema per l’analisi delle immagini dovrà
Fig. 1.2 : Trasformazione della scena in un’immagine bidimensionale.
1 – Analisi del Problema
9
essere in grado di elaborare le immagini in tempo reale. Nella pratica comunque anche valori
inferiori a 10 immagini per secondo possono andar bene.
(A) (B)
Fig. 1.3 : Processo di Estrazione, (A) Immagine della Scena , (B) Immagine del Soggetto Umano.
Modello dello
Sfondo
Estrazione
Applicazione Analisi
dell’Immagine
I
t
: Immagine proveniente
dalla telecamera.
Fig. 1.4 : Architettura di un sistema di analisi di immagini.
Eliminazione
delle Ombre
1 – Analisi del Problema
10
1.2 Postura Umana
Poiché l’obiettivo primario di questo lavoro dovrebbe essere quello di stimare da
un’immagine bidimensionale la postura di un soggetto umano ci proponiamo innanzitutto di
definire cosa si intende per postura di un soggetto umano.
Il termine “postura” di per sé non è molto significativo ma rappresenta solo un modo molto
conciso per identificare un insieme di particolari configurazioni del corpo umano.
Essendo il corpo umano un oggetto tutt’altro che rigido ma piuttosto complesso ed articolato
il problema in esame merita una sorta di formalizzazione e tale formalizzazione non può che
transitare attraverso la definizione di un modello del corpo umano (fig. 1.5).
Per i nostri scopi è sufficiente descrivere il corpo umano attraverso un insieme di punti
tridimensionali assumendo l’esistenza di un sistema di riferimento tridimensionale principale.
Quindi il modo più generale per definire una configurazione del corpo umano è un vettore di
16 punti tridimensionali:
),..,,...,,(
1621
PPPPC
i
= dove ),,(
iiii
ZYXP = .
Fig. 1.5 : Modello 3-D del corpo umano.
P1 : Parte superiore della
testa
P2 e P3 : Spalle
P4 : Collo
P5 e P6 : Gomiti
P7 e P8 : Mani
P9 e P10 : Giunzioni delle
gambe
P11 e P12 : Ginocchia
P13 e P14 : Talloni
P15 e P16 : Piedi
1 – Analisi del Problema
11
Poiché questa definizione dipende però dalla posizione del soggetto rispetto all’origine del
sistema di riferimento principale è più conveniente per i nostri scopi definire una
configurazione del corpo umano come un insieme di vettori tridimensionali :
141
PPV −= ,
262
PPV −= ,
353
PPV −= ,
684
PPV −= ,
575
PPV −= ,
10126
PPV −= ,
9117
PPV −= ,
12148
PPV −= ,
11139
PPV −= ,
141610
PPV −= ,
131511
PPV −= .
In generale quindi il problema in esame riguarda dal punto di vista teorico il raggruppamento
di tutte le possibili configurazioni del soggetto umano in classi ovvero in posture, tuttavia
poiché le condizioni di lavoro in cui ci siamo posti prevedono l’utilizzo di una sola telecamera
la schematizzazione proposta deve essere considerata in via del tutto teorica.
In tali condizioni di lavoro infatti, la ricostruzione 3D del soggetto umano e la stima dei
parametri del modello proposto è un compito di ardua soluzione.
La formalizzazione quindi dovrebbe aiutarci a valutare l’alta complessità del problema ed a
mettere in risalto quanto sia elevato il numero di possibili configurazioni del modello.
C’è da notare comunque che non tutte le configurazioni del modello sono ammissibili per un
soggetto umano, è chiaro ad esempio che un essere umano con “normali” capacità motorie
non riuscirà a piegare arbitrariamente la parte inferiore della gamba rispetto alla parte
superiore della stessa (fig. 1.6).
Nella pratica quello che succede è che l’immagine finale del soggetto umano sarà il risultato
della proiezione dei punti del modello 3D del corpo su di un piano bidimensionale (piano
dell’immagine) con conseguente ed evidente perdita di informazioni.
La trasformazione del modello da una rappresentazione 3-D ad una rappresentazione 2-D
comporta inoltre che alcune parti del soggetto umano vengano probabilmente oscurate da altre
parti del soggetto stesso (problemi di auto - occlusione).
Inoltre pur nell’ipotesi che un solo soggetto sia presente nella scena non si può escludere la
presenza di altri oggetti che a loro volta oscurino parte del soggetto stesso (problemi di
occlusione).
1 – Analisi del Problema
12
Ulteriormente c’è da considerare che il processo di estrazione potrebbe introdurre ulteriore
rumore nei dati di partenza che dovranno essere elaborati.
Ciò che ancora non abbiamo detto però è che pur considerando una stessa configurazione del
modello, fissati quindi tutti i parametri suddetti, a seconda di come è stata configurata la
telecamera rispetto alla scena da riprendere l’immagine finale risultante sarà diversa. Per
configurazione della telecamera, senza addentrarci troppo nei dettagli, vogliamo in questo
contesto intendere soprattutto l’altezza da terra e l’inclinazione rispetto al piano di terra (fig.
1.7).
V7
V9
V7
V9
(A) (B)
Fig. 1.6 : Due Configurazioni del modello, la (A) è ammissibile, la (B) non è ammissibile.
Fig. 1.7 : Configurazione della Telecamera.
1 – Analisi del Problema
13
E’ chiaro che mettendoci in condizioni di massima generalità non dovremmo fare nessuna
assunzione su come la telecamera sia configurata ma proprio perché ciò influisce molto sui
risultati della trasformazione prospettica la configurazione della telecamera in condizioni di
lavoro va stabilita a priori.
Dovrebbe essere chiaro quindi che in questa tesi più che risolvere il problema dell’analisi
della postura umana nei termini più generali, ci dedicheremo soprattutto allo studio ed alla
sperimentazione di un metodo che di volta in volta dovrebbe essere adattato in base alla
specifica applicazione in cui viene applicato.
1 – Analisi del Problema
14
1.3 Letteratura
In base all’approccio che si segue nel risolvere il problema i lavori presenti in letteratura
possono essere classificati su vari livelli.
Il primo livello di classificazione ci porta a distinguere tra i lavori che prevedono l’utilizzo o
meno di dispositivi ausiliari (tipicamente sensori) posizionati in punti strategici del corpo
umano. Chiaramente non siamo interessati allo studio di questi metodi che possiamo chiamare
“intrusivi” e ci concentreremo invece sui metodi non “intrusivi”.
Il secondo livello di classificazione riguarda invece il numero di telecamere che vengono
utilizzate: i sistemi a cui siamo interessati sono quelli “monoculari” ossia quelli che
prevedono l’utilizzo di una sola videocamera.
Infine in quest’ultima categoria uno schema interessante di classificazione potrebbe essere
quello proposto in [GAV99] dove si distinguono 3 classi di approcci :
- 2-D con modello esplicito della forma
- 2-D senza modello esplicito della forma
- 3-D
Nella prima categoria rientrano gli approcci in cui si tenta di ricostruire esplicitamente un
modello 2-D del corpo umano a partire dall’immagine bidimensionale del soggetto. Modelli
adottati in pratica ricalcano più o meno quello descritto in fig. 1.5 riportato però in uno spazio
bidimensionale.
Nella seconda categoria si vuole invece descrivere la postura umana nei termini di
caratteristiche di basso livello. Data ossia l’immagine del soggetto si tenta di elaborare
l’immagine per estrarre informazioni utili ed allo stesso tempo sintetiche ai fini del
riconoscimento della postura.
Infine la terza categoria riguarda gli approcci che tentano di ricostruire un modello
tridimensionale del corpo umano o si tenta in qualche modo di cercare di estrarre
caratteristiche o informazioni tridimensionali dall’immagine bidimensionale.
1 – Analisi del Problema
15
Sebbene a volte può risultare difficile distinguere in maniera netta tra i primi due tipi di
approcci possiamo affermare che sostanzialmente il nostro lavoro si inserisce nella seconda
categoria.
A questo punto la fase iniziale del nostro lavoro dovrebbe prevedere la definizione di un
insieme di posture da riconoscere, per motivare le nostre scelte a tale riguardo passiamo ad
analizzare i lavori in letteratura che più si avvicinano al nostro. I lavori che analizzeremo
rientrano quindi nelle prime due categorie della classificazione proposta.
Di sicuro il lavoro che meglio ricalca i propositi del nostro lavoro è descritto in [HHD98].
Il lavoro suddetto si propone come scopo principale quello di individuare le locazioni di
alcune parti significative del soggetto (quali mani, piedi, testa, etc.) fornendo le coordinate di
tali punti rispetto al rettangolo di immagine che contiene il soggetto umano.
Per fare ciò però è prima necessario stimare in quale generica postura il soggetto umano si
trovi (fig. 1.9). A tal fine si procede quindi prima ad una classificazione gerarchica che
prevede 2 livelli di classificazione (fig. 1.8).
Il metodo adottato prende spunto dalle seguenti considerazioni :
- è molto probabile che i punti significativi cercati giacciano sul contorno dell’immagine
del soggetto umano.
- il corpo umano in una data postura ha una struttura topologica che vincola le locazioni
relative delle parti del corpo.
Soggetto
Frontale /
di Spalle
Soggetto
Rivolto a
Sinistra
Soggetto
Rivolto a
Destra
In Piedi Piegato/In
ginocchio
Seduto In terra
PRIMO
LIVELLO
SECONDO
LIVELLO
Fig. 1.8 : Meccanismo di Classificazione Gerarchica adottato in [HHD98].