Sei sulla pagina 1di 26

Progetto Digital Window

Relazione Conclusiva Fase F2


Fase di Ricerca: Algoritmi per la Rilevazione Flusso Clientela



1



Sommario
1. Introduzione ................................................................................................................................... 2
2. Machine Learning Supervisionato..................................................................................................... 4
3. Riconoscimento di Volti ................................................................................................................... 7
3.1 Immagine Integrale .................................................................................................................. 8
3.2 AdaBoost Learning ................................................................................................................... 9
3.3 Struttura a Cascata dei Classificatori ........................................................................................11
4. Tracciamento di Oggetti..................................................................................................................12
4.1 Motion Detection ...................................................................................................................13
4.1.1 Frame Difference.............................................................................................................13
4.1.2 Sottrazione dello Sfondo ..................................................................................................14
4.1.3 Individuazione e Connessione di Blob ...............................................................................15
4.2 Motion Correspondence .........................................................................................................16
4.3 Flusso Ottico...........................................................................................................................18
5. Riconoscimento Genere Sessuale e Fascia dEt ...............................................................................19
6. Riconoscimento Focus Visivo...........................................................................................................21
7. Conclusioni ....................................................................................................................................22
Bibliografia ............................................................................................................................................23




2

1. Introduzione
In questa fase di ricerca del progetto Digital Window viene indagato lo stato dellarte nel settore dei
modelli ed algoritmi per il riconoscimento e la classificazione di immagini e flussi video. Quindi, oltre ad una
rassegna delle principali metodologie di Computer Vision per riconoscimento, classificazione e tracciamento
(attivit A2.1 del Piano di Sviluppo), vengono fornite proposte per ladattamento e lintegrazione delle
tecniche esaminate per il problema in oggetto di questa fase (attivit A2.2 del Piano di Sviluppo), ovvero i l
riconoscimento ed il tracciamento visivo dei potenziali clienti del negozio, nonch osservatori della vetrina,
atto a valutare quantitativamente e numericamente limpatto della vetrina in termini di attrazione e flusso
clientela.
Tale problema scomponibile nei seguenti sotto-problemi:
1. Riconoscimento di potenziali clienti che stanno osservando la vetrina.
2. Tracciamento visivo degli osservatori nella scena ripresa.
3. Classificazione della tipologia dellosservatore (genere sessuale e fascia di et).
4. Individuazione del focus visivo dellosservatore.
Il riconoscimento o individuazione di un eventuale osservatore (punto 1) rappresenta, ovviamente, un
passo fondamentale e necessario alla soluzione dei sotto-problemi successivi. In letteratura sono presenti
varie tecniche di riconoscimento/individuazione di oggetti, tuttavia in Sezione 3 ci soffermeremo sul
riconoscimento volti (o Face Detection). Dato che tale problema stato negli anni ampiamento
approfondito nel campo di ricerca della Computer Vision e poich nel caso in esame loggetto target da
individuare nella scena visiva la presenza o meno di un essere umano, risulta indubbio il vantaggio offerto
dalle tecniche di Face Detection che permettono di rilevare, con estrema accuratezza, precisione ed
efficienza, la presenza o meno di volti umani nella scena ripresa, ovvero la caratteristica distintiva principale
che differenzia visivamente una persona da un qualsiasi altro oggetto visivo.
Una volta rilevato che un potenziale cliente sta osservando gli oggetti allinterno della vetrina poss ibile
procedere alla fase del tracciamento visivo di tale cliente. Questattivit necessaria per: (A) rilevare la
quantit di tempo di osservazione, (B) evitare il problema di conteggiare pi volte la stessa persona
allinterno di una sua singola sessione di osservazione. In Sezione 4 sono riportate in rassegna le principali
tecniche di tracciamento di oggetti visivi (o Object Tracking) presenti in letteratura. Inoltre sono fornite
delle indicazioni preliminari su quali tecniche si andranno ad utilizzare in questo progetto.
La classificazione dellosservatore per genere sessuale e fascia det (punto 3) pu essere avviata
successivamente al riconoscimento del volto (punto 1) e parallelamente al tracciamento dellosservatore
(punto 2). Infatti, le soluzioni presenti in letteratura lavorano proprio sullimmagine del volto umano e sono
descritte ed analizzate in Sezione 5.
Il riconoscimento del focus visivo dellosservatore (punto 4) ci permette di ottenere informazioni
riguardanti il/i particolare/i oggetto/i osservato/i situato/i allinterno della vetrina. Questo processo dovr


3

essere interlacciato alla fase di tracciamento dellosservatore poich questultimo pu cambiare il suo focus
visivo in qualsiasi momento della sua sessione dosservazione (ci, nel contesto di una vetrina di capi
dabbigliamento, risulta anche altamente plausibile). Da notare inoltre che tale attivit rappresenta il punto
di contatto fra la (qui descritta) fase 2 di ricerca e la fase 1 riguardante la modellazione 3D dellallestimento
della vetrina. Le tecniche relative alla soluzione di tale problema sono discusse in Sezione 6.
In Figura 1 riportata in modo schematico larchitettura del sistema Monitoraggio Flusso Clientela
comprendente i quattro moduli relativi ai sotto-problemi precedentemente descritti. Qui, in blu sono
rappresentati i dati in ingresso al sistema, ovvero i fotogrammi catturati dalla/e telecamera/e oltre alla
rappresentazione del locale vetrina (vedi la relazione relativa alla fase di ricerca 1), mentre in rosso sono
riportati i dati di output del sistema, ovvero la sequenza temporale dei dati numerici relativi agli osservatori
della vetrina. Inoltre, i moduli sono collegati fra di loro con frecce che rappresentano il flusso di dati fra un
modulo e laltro.

Figura 1 Architettura del sistema Monitoraggio Flusso Clientela.
La relazione si apre con la Sezione 2 che fornisce una breve introduzione al Machine Learning
supervisionato. Infatti, dato che le varie tecniche di classificazione adottate negli algoritmi di Computer
Vision presentati nelle altre sezioni provengono da questo campo di ricerca, verranno forniti i concetti
introduttivi richiamati poi nelle sezioni successive.
La Sezione 7 conclude la relazione presentando una rassegna delle principali librerie di Computer Vision e
fornendo inoltre delle considerazioni inerenti la privacy. Da notare inoltre che in calce alla relazione
riportata unampia bibliografia dei lavori presenti in letteratura ed inerenti le tecniche di Computer Vision
esaminate.
Infine, si fa notare che le proposte per ladattamento e lintegrazione delle tecniche esaminate non sono
contenute in una sezione dedicata ma sono distribuite nelle sezioni relative ad ogni singolo modulo della
architettura del sottosistema qui trattato.


4

2. Machine Learning Supervisionato
Il Machine Learning [11,12] rappresenta una delle aree fondamentali dellIntelligenza Artificiale e si occupa
della realizzazione di sistemi e algoritmi per lapprendimento automatico di nuova conoscenza. Nel caso del
Machine Learning supervisionato lapprendimento avviene tramite la costruzione/apprendimento di un
modello matematico che generalizza esempi gi osservati e classificati; tale insieme di esempi
generalmente indicato in letteratura con il termine training set. Una volta appreso, il modello
matematico pu successivamente essere utilizzato per fare previsioni e quindi inferenza su nuovi dati mai
osservati in precedenza.
Pi formalmente, nel Machine Learning supervisionato [13], il problema definito a partire da un universo
di elementi descritti da un insieme x di features considerate come input del problema, ad ogni elemento
poi associato un valore y di output (o target). Quel che si vuole , a partire dalla conoscenza di un insieme T
di elementi (il training set), ciascuno descritto da una coppia (x
i
, y
i
), dove x
i
il vettore dei valori delle d
features x
i
(1)
, x
i
(2)
, , x
i
(d)
e y
i
il relativo output, derivare un modello della relazione (sconosciuta) tra
features e valori di output che consenta, dato un nuovo elemento x, di predire il corrispondente valore di
output y. In Figura 2 riportato uno schema generale che descrive il Machine Learning supervisionato.

Figura 2 - Schema generale di Machine Learning supervisionato
Il Machine Learning supervisionato pu essere a sua volta suddiviso in problemi di regressione e problemi
di classificazione. La regressione si ha nel caso in cui il dominio della variabile di output y continuo, ovvero
si ha il problema di predire il valore assunto da una particolare caratteristica delloggetto x quale ad
esempio la quotazione di borsa (y) di un titolo azionario (x). La classificazione invece si ha quando il dominio
della variabile di output y discreto, ovvero nel caso in cui si deve predire la classe di appartenenza


5

delloggetto x; si pensi per esempio al caso di questo progetto nel quale si deve predire se unarea di
unimmagine descritta dal vettore di features numeriche x sia un volto (y = 1) o meno (y = 0).
Per gli scopi del nostro progetto verr preso in esame il problema della classificazione. Le principali classi di
algoritmi di learning presenti in letteratura per questo problema sono la regressione logistica (o logistic
regression) [14], le reti neurali artificiali (o artificial neural networks) [15] e la macchine a vettori di
supporto (o support vector machines) [16]. Inoltre, dati gli scopi introduttivi di questa sezione verr
brevemente presentato un esempio di regressione logistica binaria.
Nella regressione logistica binaria [14] il problema quello di fornire lappartenenza ( y = 1) o meno (y = 0)
ad una data classe di un oggetto descritto dal vettore x, dato il training set T composto da coppie del tipo
(x
i
, y
i
). In questo particolare caso, lobiettivo dellalgoritmo di learning (a volte definito anche algoritmo di
training) quello di fornire un modello lineare che mappi ogni possibile vettore x nel valore y (0 o 1) pi
probabile dato T.
Indicando con h

(x
(i)
) loutput prodotto dal modello matematico sul dato di training x
(i)
si ha che il compito
della regressione logistica quello di individuare il vettore di parametri * che minimizza lerrore medio
commesso da h

nella classificazione di tutti gli n elementi del training set di cui si conosce gi il valore y
(i)

(notare che il training set deve contenere sia esempi positivi ( y
(i)
= 1) che negativi (y
(i)
= 0)), ovvero:

(
()
)
()
)


La funzione di errore err() e quella di previsione h

(x) sono individuate dalle seguenti formule:


(

() ) (

()) ( ) (

())

()


La funzione err() restituisce un valore che tende a 0 qualora la previsione h

(x
(i)
) in accordo con il reale
valore di output y
(i)
, mentre tende a 1 in caso contrario. Si noti che, seppur esistano funzioni di errore
alternative ed allapparenza pi semplici, quella sopra riportata presenta il vantaggio di generare una
funzione convessa (o unimodale) nella quale ricercare il vettore di parametri ottimali *. Infatti, la ricerca di
un ottimo in una funzione convessa pu essere effettuata in modo computazionalmente efficiente, ad
esempio utilizzando lalgoritmo gradient descent [17] o una qualsiasi altra tecnica che sfrutti il gradiente
della funzione (ovvero le sue derivate parziali).
Riguardo alla formula relativa alla funzione di previsione, da notare che il prodotto vettoriale in essa
contenuta pu banalmente essere riscritto nella forma polinomiale

(dove m
la quantit di features considerate) ed per tale motivo che il modello appreso un modello lineare.
Infatti, come si vede in Figura 3, per il caso di features bidimensionali, il vettore * rappresenta una retta
sul piano delle features che tenta di suddividere nel modo pi ottimale possibile gli esempi positivi da quelli
negativi.


6


Figura 3 - Esempio di classificazione binaria su spazio features bidimensionale
Una volta individuato il vettore dei coefficienti * con un opportuno algoritmo di minimizzazione numerica,
e dato che la funzione h
*
(x) sigmoidale (e quindi il suo codominio confinato nellintervallo (0,1) come
evidenziato dalla Figura 4), la classificazione di un particolare oggetto x pu essere eseguita interpretando
loutput di h
*
(x) come la probabilit che x appartenga o meno alla classe di oggetti per cui si effettuato il
learning. Quindi il classificatore finale rappresentato dalla seguente funzione soglia:
() {

()

()


Figura 4 - Funzione sigmoidale standard al variare di x unidimensionale e = 1
La regressione logistica, seppur meno potente di altri strumenti quali le reti neurali, ha lindubbio vantaggio
di essere piuttosto efficiente una volta ultimata la fase di training. Come si vedr in sezione 3 essa anche


7

alla base del processo di boosting con il quale vengono classificate le immagini contenenti volti di esseri
umani.
Le formulazioni date sopra possono differire in alcuni contesti oltre che in alcuni testi, tuttavia lidea di base
resta la stessa qui descritta. Infine, per ulteriori approf ondimenti al vasto campo del Machine Learning si
rimanda a [11,12].
3. Riconoscimento di Volti
Il riconoscimento automatico di volti oggetto di studio da pi di 20 anni [1,2]. Motivo di tale interesse il
gran numero di applicazioni in cui trova impiego come, ad esempio, la video-sorveglianza, i sistemi
antintrusione o i sistemi di sicurezza nei quali rappresenta unalternativa al riconoscimento di impronte
digitali in quanto non richiede alcuna collaborazione del soggetto da identificare.

Figura 5 - Esempio di output grafico di un software di Face Detection
Il problema del riconoscimento dei volti (o Face Detection) quello di determinare, data unimmagine, se in
essa vi sono volti presenti o meno, e, nel caso vi siano, di restituire la posizione e lestensione di ciascuno di
essi (vedi in Figura 5 un esempio di output grafico del software dimostrativo di face detection presente
nella libreria di Computer Vision OpenCV). Seppur il face detection un compito semplice per esseri umani,
ci non per una macchina/computer. Le difficolt possono essere attribuite alle molte variazioni in scala,
locazione, orientamento, posa, espressione facciale, condizioni di illuminazione, occlusioni, etc.


8

Tuttavia, in letteratura sono presenti centinaia di approcci a tale problema [1,2]. Questi possono essere
suddivisi in quattro grandi categorie: i metodi basati su conoscenza, gli approcci che usano features
invarianti per talune trasformazioni dellimmagine, metodi basati su template matching, ed infine quelli
basati sulle apparenze. I metodi basati su conoscenza usano delle regole predefinite; gli approcci features
invariant tentano di dedurre automaticamente le features strutturali di un volto umano che siano invarianti
per posa e condizioni di i lluminazione; i metodi basati su template matching impiegano templates di volti
preimpostati nel sistema per effettuare dei confronti; mentre i metodi basati sullapparenza apprendono,
tramite algoritmi di Machine Learning (vedi Sezione 2), un modello matematico del volto umano da un
insieme di volti di training. In generale, questi ultimi metodi sono quelli che mostrano performances
superiori e per questo sono diventati lo standard de-facto nel campo della Face Detection in tempo reale.
Il lavoro che ha dato il la ai metodi basati sulle apparenze quello di Viola e Jones [3] del 2001. Successivi
perfezionamenti sono stati apportati [1], ma la logica di fondo rimasta la stessa. L'algoritmo di Viola e
Jones introduce tre elementi di novit rispetto agli altri metodi precedentemente sviluppati :
Il primo consiste nell'utilizzo di Haar-like features [5] sulle regioni che compongono un'immagine in
combinazione con una nuova rappresentazione in forma matriciale dell'immagine stessa, detta
immagine integrale.
In secondo luogo viene presentato un metodo per la costruzione di classificatori basato sulla
selezione di un basso numero di features di Haar attraverso l'algoritmo AdaBoost di Freud e Shapire
del 1995 [4].
Il terzo contributo consiste invece nell'introdurre una nuova strategia di analisi dell'immagine
basata sulla composizione di differenti classificatori in una struttura a cascata. La complessit dei
classificatori cresce man mano che si procede verso la fine della cascata di modo che le regioni di
facile analisi vengono scartate velocemente ai primi stadi, mentre quelle di pi difficile
interpretazione sono sottoposte a pi livelli di verifica.
Nei prossimi tre paragrafi verranno brevemente riassunte queste tre innovazioni introdotte in [3].
3.1 Immagine Integrale
Il riconoscitore di Viola e Jones lavora su immagini in scala di grigi (quindi un solo valore per ogni pixel
sufficiente a fornire informazioni sulla sua luminosit) ed utilizza features di tipo Haar-like [5] per analizzare
le caratteristiche delle immagini. Tali features sono calcolate in modo estremamente efficiente tramite
luso di immagini integrali.
Limmagine integrale ii una trasformazione dellimmagine originale i costruita come segue:
( ) (


In questa equazione ii(x,y) e i(x,y) rappresentano rispettivamente lintensit del pixel di coordinate x,y
dellimmagine integrale e dellimmagine originale. In sostanza, ogni pixel dellimmagine integrale


9

rappresenta la somma cumulativa delle intensit di tutti i pixel contenuti nella porzione di immagine
originale in alto a sinistra rispetto al pixel esaminato.

Figura 6 - Immagine integrale e Haar-like features (a-f)
Come mostrato in Figura 6, luso dellimmagine integrale per il calcolo dellintensit di una qualsiasi regione
rettangolare dellimmagine estremamente efficiente. Infatti, per la regione ABCD di Figura 5, sono
sufficienti quattro accessi allimmagine integrale ii:
( ) () () () ()
()

Ci risulta di particolare utilit per il calcolo delle features rettangolari Haar-like mostrate in Figura 5 (a-f).
Infatti ognuna di queste features un valore numerico calcolato come la differenza di intensit media fra le
aree scure e quelle chiare secondo gli schemi rettangolari mostrati in figura. Luso del concetto di immagine
integrale permette quindi di calcolare le features (a,b) con sei accessi ad ii, (c,d) con otto accessi ed (e,f) con
nove accessi. Sostanzialmente, una volta calcolata limmagine integrale, le features Haar-like possono
essere computate in tempo costante.
Considerando che i volti hanno una struttura regolare (ad esempio si noti che l'asse degli occhi e la
posizione centrale del naso sono caratteristiche comuni a tutte le facce), intuibile come tali features
possano contribuire a discriminare gli esempi positivi da quelli negativi in maniera netta. Nel lavoro di Viola
e Jones, tali features sono calcolate utilizzando rettangoli di dimensioni 24x24 pixel traslati e scalati in tutt i i
modi possibili. Quindi, in unimmagine delle dimensioni di 384x288 pixel si hanno allincirca 180000
features. Seppure questo genere di features possa sembrare abbastanza primitivo, la loro quantit ed il
modo in cui sono composte (vedere i paragrafi successivi) permette di raggiungere ottimi livelli di
affidabilit.
Da notare infine, che in lavori pi recenti [6,7] sono state introdotte nuove features del tipo sopra descritto
che sono in grado di rilevare anche volti posti in pose differenti da quella frontale.
3.2 AdaBoost Learning
Dato linsieme di features precedentemente descritto ed un training set di esempi positivi e negativi,
qualsiasi algoritmo di Machine Learning pu essere impiegato per lapprendimento di un modello


10

matematico del volto umano. Nel lavoro di Viola e Jones [3] lalgoritmo AdaBoost [4] impiegato sia per
selezionare un ristretto insieme di features ottimali che per addestrare un classificatore di immagini
contenenti volti.
AdaBoost usato per rafforzare le performances di classi ficazione di classificatori pi semplici (chiamati in
genere weak classifiers) componendoli in un unico strong classifier. Se lerrore commesso da ogni singolo
classificatore debole nel classificare gli esempi del training set inferiore al 50% (ovvero si comportano
meglio di una classificazione puramente casuale) allora vi sono risultati formali che garantiscono di
ottenere uno strong classifier il cui tasso di errore sul training set pu approcciare arbitrariamente lo 0 [8].
Nel caso in esame, un classificatore debole h
j
(x) consiste di una feature f
j
(ovvero una delle Haar-like
features descritte nel precedente paragrafo), una soglia
j
, ed un valore di parit p
j
che indica la direzione
della disuguaglianza contenuta nella seguente formula che descrive il classificatore:

() {

()



Il classificatore forte h(x) quindi ottenuto eseguendo l algoritmo riportato in Figura 7a. Lidea di base
consiste nellassegnare dei pesi di probabilit agli esempi di training. Tali pesi sono impostati in modo
equiprobabile allinizio. Vengono poi eseguiti T rounds di boost, dove T il numero di classificatori deboli
h
j
(x) che andranno a comporre, in maniera additiva, il classificatore forte h(x). In ogni round di boost, per
ogni feature f
j
(x) viene fatto il learning dei corrispettivi parametri
j
e p
j
(ad esempio usando la regressione
logistica descritta in Sezione 2) usando il training set opportunamente pesato ed ottenendo cos tutti i
classificatori deboli h
j
(x). Ora il classificatore debole col pi basso tasso di errore sul training set pesato
viene selezionato insieme ad un opportuno peso (calcolato come funzione del suo tasso di errore) come
componente additivo del classificatore forte finale. Dopodich, prima di reiterare il procedimento, i pesi
degli esempi del training set vengono aggiornati di modo da incrementare il peso agli esempi classificati in
modo scorretto. Cos facendo, le componenti additive del classificatore finale sono composte di modo da
predire sempre pi accuratamente gli esempi del training set come illustrato in Figura 7b.


11


Figura 7 (a) Pseudo-codice dellalgoritmo AdaBoost, (b) Schema dei rounds di AdaBoost
3.3 Struttura a Cascata dei Classificatori
Seguendo le linee guida descritte nel paragrafo precedente, un classificatore forte pu essere costruito
combinando un numero arbitrario T di classificatori deboli. Seppure incrementando il valore T si riesce a
diminuire arbitrariamente il tasso di errore, si presenta il probl ema dei tempi desecuzione del
classificatore, infatti, seppur le singole Haar-like features sono calcolate in modo efficiente, la
computazione di una elevata quantit di queste pu portare a dei tempi di esecuzione non pi adatti ad
applicazioni con requisiti real-time come quella oggetto di questo progetto.
Per risolvere tale problematica stata introdotta una particolare struttura di composizione di classificatori
forti. Nel lavoro di Viola e Jones [3] vengono costruiti cinque diversi classificatori forti composti dalle
seguenti quantit di weak classifiers (o nodi): 1, 10, 25, 25, 50. I classificatori forti sono quindi organizzati in
una struttura sequenziale a cascata (o lista o albero degenere come mostrato in Figura 8). Seppur in [3] le
fasi di costruzione di tali classificatori avvengono in modo del tutto indipendente, alcuni approcci pi
recenti [2] hanno fornito risultati migliori impiegando per lo i-esimo classificatore una procedura di learning
che faccia uso di differenti pesi per il training set calcolati a partire dai risultati del classificatore i 1, cio
quello immediatamente precedente nella struttura a cascata.


12


Figura 8 - Struttura di classificatori a cascata
Ogni volta che una regione dellimmagine viene fornita in input alla cascata di classificatori si pu verificare
una delle seguenti ipotesi: o la regione viene scartata da uno qualsiasi dei nodi classificandola quindi come
un non volto, oppure passa da un nodo allaltro fino ad essere classificata come un volto.
Lintuizione dietro a questa struttura quella che i primi nodi pi performanti saranno in grado di scartare
la maggior parte delle regioni che non includono volti, mentre le regioni che presentano caratteristiche pi
simili a quelle di un volto passeranno di nodo in nodo ed ogni volta saranno sottoposte a controlli sempre
pi accurati e solamente se tutti i nodi della catena rispondono affermativamente tale regione sar
classificata come volto. Dato che in una generica immagine solamente poche regioni fra tutte le possibili
conterranno volti umani, questa procedura permette di ottenere lindividuazione dei volti in modo
estremamente efficiente e quindi adatto per applicazioni real -time.
4. Tracciamento di Oggetti
Il problema del tracciamento (o tracking) degli oggetti [18,22] verte nellabilit da parte di un computer di
riconoscere la posizione degli oggetti da tracciare allinterno dei vari fotogrammi (o frames) di una
sequenza video. Tale abilit pu essere implementata utilizzando una serie di sensori come telecamere,
laser, radar, satelliti GPS, etc. Il tracking qui trattato, si inserisce nel conteso della Computer Vision, quindi,
ci si riferir al tracking effettuato attraverso l'analisi di una sequenza di immagini.
Nell'ultimo decennio l'analisi visuale del movimento emersa come una delle principali aree di ricerca della
Computer Vision. Il crescente interesse nei riguardi del tracking dovuto al crescente potere
computazionale dei calcolatori ed al costo in continua discesa sia del potere computazionale che della
memoria necessaria ad analizzare un'estesa sequenza video. Un'altra parte del merito della popolarit del
tracking dovuta all'immensa quantit di situazioni cui pu essere applicato che, giusto per fare degli


13

esempi, spaziano dalla video-sorveglianza alle competizioni sportive. La complessit del tracking dovuta
in particolar modo allo spazio su cui viene effettuata la ricerca dell'oggetto da tracciare, quindi gli algoritmi
utilizzati per implementarlo sono spesso computazional mente costosi. Un metodo per risolvere tale
problema quello di fornire alcuni vincoli al movimento dell'oggetto da tracciare, i pi comuni consistono
nel considerare movimenti dell'oggetto regolari, non prevedendo movimenti improvvisi, e nel supporre che
i cambiamenti di posizione saranno piccoli o comunque prevedibili.
In generale, il tracciamento di un oggetto si suddivide in due compiti principali: (1) il riconoscimento
delloggetto da tracciare, (2) il tracciamento vero e proprio delloggetto riconosciuto al punto 1. Nel caso
del presente progetto, il riconoscimento effettuato secondo le tecniche descritte in Sezione 3, mentre il
volto cos riconosciuto pu essere tracciato considerandolo come un blob arbitrario di pixel (con il termine
blob intendiamo qui una qualsiasi regione di pixel connessa secondo lusuale nozione di vicinanza fra pixel).
In questa sezione presenteremo quindi delle tecniche computazionalmente efficienti che permettono di
individuare gli oggetti in movimento presenti allinterno di una sequenza video. Data la loro velocit
computazionale tali tecniche risultano particolarmente interessanti per il progetto in esame. Tuttavia, per
una pi approfondita analisi di approcci pi complessi si rimanda a [18,19,20].
Una volta rilevati gli oggetti di interesse (tramite il riconoscitore di volti) al tempo t, vengono conservate in
memoria le informazioni relative alla bounding box ed al centroide delloggetto rilevato. Quindi lidea di
base del tracciamento consiste nellindividuare le zone i n movimento dellimmagine al tempo t + 1 rispetto
al frame precedente, rilevare di nuovo gli oggetti di interesse (ovvero i loro bounding box e centroidi), e, nel
caso questi siano situati in zone in movimento, collegarli tramite una procedura di corrispondenza agli
oggetti al tempo t.
Dato che il riconoscimento degli oggetti di interesse, cio i volti umani, gi stato discusso in Sezione 2, nei
prossimi paragrafi verranno presentate alcuni semplici tecniche di Motion Detection (tecniche di rilevazione
delle zone in movimento), di Motion Correspondence (tecniche di corrispondenza fra oggetti rilevati in
frame successivi), oltre che un breve accenno al concetto di Flusso Ottico (o Optical Flow) che permette di
svolgere le fasi di motion detection e motion correspondence in modo interlacciato.
4.1 Motion Detection
Gli approcci al Motion Detection [21] proposti nei seguenti paragrafi sono alcuni di quelli presi in
considerazione ed implementati in progetti passati dal gruppo di ricerca dellUniversit degli Studi di
Perugia [9,10]. Essi sono: la frame difference, la sottrazione dello sfondo ed una tecnica per lindividuazione
e la connessione di blob. Si fa inoltre notare che nelle descrizioni che seguono vengono presi in esame
modelli dellimmagine standard, seppur queste tecniche possono essere facilmente adattate a modelli
probabilistici come ad esempio la rappresentazione dello sfondo tramite misture Gaussiane delle intensit
dei pixel [23].
4.1.1 Frame Difference
La tecnica della frame difference consente di individuare gli oggetti in movimento prendendo in
considerazione le differenze presenti tra immagini successive di una sequenza video. Oltre ad essere


14

computazionalmente poco pesante, tale tecnica presenta il pregio di essere sostanzialmente i nsensibile a
variazioni di illuminazione dellambiente (a patto che queste non siano istantanee).
La frame difference si suddivide in due metodi principali: la Single Difference e la Double Difference. Essi si
differenziano per il numero di immagini prese in considerazione; infatti, mentre la prima usa le immagini
relative agli ultimi due fotogrammi della sequenza video, la seconda utilizza gli ultimi tre. Obiettivo di
entrambi i metodi quello di individuare le zone di foreground della sequenza considerata, ovvero le zone
dellimmagine che si sono mosse nel corso della sequenza. Ci ottenuto restituendo come risultato
unimmagine/matrice binaria bi le cui entrate impostate a 0 o 1 corrispondo, rispettivamente, ai pixel di
background o foreground della sequenza di immagini presa in esame.
Nella Single Difference [10] la matrice binaria bi viene costruita effettuando prima una differenza assoluta
fra le immagini della sequenza catturate al tempo t ed al tempo t 1 (cio i
t
e i
t-1
) e procedendo poi con
unoperazione di thresholding come evidenziato dalla seguente formula:

( ) {

( )

( )

( )

( )

Tuttavia, questa tecnica presenta due problemi: il ghosting e la foreground aperture. Il ghosting consiste
nei pixel contenenti loggetto in movimento al tempo t 1 erroneamente identificati come pixel di
foreground in bi. La foreground aperture invece consiste nella mancata marcatura dei pixel di foreground
contenuti nella zona comune alle due immagini del loggetto in movimento.
La Double Difference [10] stata introdotta proprio per ovviare a questi due problemi. Essa consiste
nellapplicare la Single Difference alle coppie di immagini i
t-2
, i
t-1
e i
t-1
, i
t
, per poi comporre con un and logico
pixel by pixel le due matrici ottenute (sbi
t-1
e sbi
t
):

( ) {

( )

( )


Il difetto principale di tale tecnica quello di identificare al tempo t i pixel in movimento al tempo t 1,
ovvero introduce un lieve ritardo di elaborazione che diventa tuttavia trascurabile nel caso di un frame-rate
adeguato.
4.1.2 Sottrazione dello Sfondo
Negli algoritmi di sottrazione dello sfondo [10], lindividuazione degli oggetti in movimento si basa sul
confronto tra limmagine corrente di un sequenza ed unimmagine di background di riferimento,
contenente le informazioni sulla scena in assenza di oggetti in movimento. Il confronto viene effettuato
eseguendo la stessa procedura adoperata per la Single Difference sullimmagine corrente i
t
e limmagine di
sfondo b:

( ) {

( ) ( )

( ) ( )

Tale tecnica, pur risolvendo i difetti della frame difference porta ad altri problemi quali il camouflage
(ovvero la mimetizzazione delloggetto in movimento con lo sfondo) e la sensibilit a variazioni globali della


15

scena ripresa (come ad esempio il cambiamento di luminosit che si verifica col passare dal giorno alla
notte). Tuttavia, tali problemi possono essere (almeno in parte) risolti effettuando un aggiornamento
dellimmagine di background quando opportuno. Un esempio di procedura di background update la
seguente:

( ) {

( ) ( )

( )

( )

( )

Ovvero, nel caso in cui un generico pixel di coordinate ( x,y) venga rilevato come pixel di background
nellimmagine corrente (cio bi
t
(x,y) = 0), allora verr variato il corrispettivo pixel nellimmagine di
background di modo da sfumarlo verso il valore dellimmagine corrente. Ci fa in modo che il modello di
sfondo non risulta pi vincolato ad una configurazione iniziale fissa, bens, pu variare tenendo conto degli
sporadici cambiamenti di sfondo che avvengono durante una ripresa video (come ad esempio il passaggio
da giorno a notte).
4.1.3 Individuazione e Connessione di Blob
Una volta individuati i pixel di foreground con una delle tecniche descritte precedentemente (o con una
tecnica ibrida) in genere eseguita una connessione di tali pixel in dei blob, ovvero in zone totalmente
connesse di pixel di foreground (cio di pixel etichettati come in movimento) [10].
Ci fatto utilizzando lalgoritmo floodfill [9] ampiamente utilizzato nei software di editing di immagini.
Unimplementazione in pseudo-codice di tale algoritmo riportata in Figura 9.

Figura 9 - Pseudo-codice dell'algoritmo di FloodFill
Una volta connessi i pixel in un blob di una forma qualsiasi poi possibile ottenere il suo bounding box
rettangolare semplicemente prendendo in considerazione le coordinate del pixel pi in alto a sinistra e di
quello pi in basso in destra.
Ottenuti tali bounding box si ha poi il problema di eliminare il rumore introdotto dalla catena di algoritmi
eseguiti; infatti, possono presentarsi pi bounding box che si riferiscono allo stesso oggetto in movimento e
si ha quindi la necessit di fondere fra di loro i bounding box vicini. Questo problema risolto introducendo
il concetto di aura (vedi Figura 10) [10], ovvero viene allargato ogni bounding box di una piccola quantit
di pixel e poi vengono fusi fra di loro i bounding box contenenti una intersezione non nulla.


16


Figura 10 - Aura di due bounding box
4.2 Motion Correspondence
Come gi anticipato, lo scopo della Motion Correspondence [22] quello di abbinare le zone di interesse
dellimmagine al tempo t con quelle dellimmagine al tempo t 1. Per far ci, lalgoritmo di riconoscimento
dei volti (cio delle zone di interesse) eseguito in ciascuna scena ( t e t 1). Inoltre si tiene conto di un
modello di stima delle variazioni delle zone di interesse, formalizzato nei valori V e S, ovvero la velocit e
la variazione di dimensione predetta. Da notare che tali valori sono ripetutamente aggiornati nel corso del
tracciamento tramite le osservazioni effettuate.
Nel frame t ci saranno N regioni di interesse con centroidi X
i
t
le cui corrispondenze con le zone di interesse
del frame t 1 sono sconosciute. Inoltre, nel frame precedente sono gi state individuate ed
etichettate/corrisposte M regioni di interesse con centroidi X
L
t1
(dove L letichetta assegnata). Ora il
problema quello di associare ogni centroide X
i
t
con lopportuno X
L
t1
, ovvero, assegnare la giusta etichetta
L alle nuove regioni di interesse. Questa corrispondenza pu essere effettuata utilizzando il criterio del
minimo costo e minimizzando quindi la seguente funzione:

( )


dove L sono le etichette utilizzate nel frame t 1, i sono le regioni non etichettate nel frame t corrente e di
cui si vuole trovare la corrispondente L, X sono i centroidi, S sono le dimensioni delle bounding box, V la
velocit con cui si sposta il centroide, S la variazione delle dimensioni della bounding box (dovuta
alleffetto zoom, ovvero al movimento ortogonale delloggetto nei confronti della telecamera) mentre
un parametro del sistema.
Quindi, lalgoritmo prevede di calcolare i costi C
Li
per tutte le coppie (L,i). Viene quindi rimossa la coppia
(L,i) con costo minimo, assegnata la corrispondenza i L e ricalcolati i valori V
L
e S
L
. Dopodich il
processo reiterato finch non ci sono pi coppie da corrispondere o tutti i costi C
Li
rimangono al di sopra
di un valore soglia prefissato. Quindi, le seguenti situazioni possono verificarsi:
1. Una corrispondenza stata individuata fra tutte le regioni dei frame t e t 1.
2. Alcune regioni del frame t 1 non hanno trovato corrispondenza nel frame t a causa di occlusioni.


17

3. Alcune regioni del frame t 1 non hanno trovato corrispondenza nel frame t a causa di uscita dalla
scena visiva.
4. Alcune regioni del frame t non hanno trovato corrispondenza nel frame t 1 poich sono appena
entrate nella scena visiva.
Ovviamente, nel caso in cui ci si trovi nella situazione 1 non c nessun lavoro di raffinamento da eseguire.
Per le altre situazioni invece si agisce come di seguito. Nel caso 3 un semplice controllo di uscita della scena
quello di sommare lultima velocit rilevata al centroide delloggetto e verificare se questo nuovo valore
viola o meno i bounds della scena visiva. In caso contrario si rientra nel caso 2 e la zona di interesse viene
comunque avanzata al frame successivo e il suo centroide aggiornato utilizzando la velocit rilevata
precedentemente. Infine, nel caso 4 le velocit di variazione di centroide e dimensioni sono impostate a 0.
E da notare come questo algoritmo permetta, in modo semplice ed efficiente, di effettuare una
corrispondenza fra oggetti anche in presenza di occlusioni (caso 2) dovute ad un oscuramento/copertura
temporanea delloggetto di interesse (nel progetto in esame ci pu essere dovuto, ad esempio, al
passaggio temporaneo di una persona fra losservatore rilevato precedentemente e la telecamera posta
nella vetrina). Laccortezza affinch le occlusioni vengano prese in considerazione dal sistema consiste
quindi nel differire il processo di motion correspondence ogni n 2 fotogrammi anzich ogni singolo
fotogramma [18].
Oltre alla tecnica deterministica di motion correspondence qui descritta, sono presenti in letteratura altre
tecniche che usano approcci di tipo probabilistico/statistico che permettono di superare i problemi dovuti
al rumore presente nei fotogrammi video elaborati. Tali algoritmi statistici di corrispondenza usano un
approccio basato sullo spazio degli stati, dove ogni stato indica la possibile posizione di un generico
oggetto X in un generico fotogramma t. Lobiettivo dellalgoritmo di tracking diventa, in questo caso, quello
di stimare lo stato di X al tempo t date tutte le misurazioni (individuazioni) dello stesso oggetto nei
fotogrammi precedenti. Lidea quindi quella di utilizzare un filtro Bayesiano ricorsivo e di suddividere il
compito di tracciamento in due fasi:
1. Fase di predizione: si tratta di stimare la posizione (o stato) di X nel fotogramma t utilizzando
linformazione relativa alle misurazioni (individuazioni) delle posizioni precedenti di X, cio nei
fotogrammi 1, , t 1. Matematicamente, si tratta della costruzione della funzione di densit di
probabilit a priori dello stato di X date le misurazioni precedenti.
2. Fase di correzione: consiste nello stimare la misurazione (tra le varie misurazioni/individuazioni di
oggetti ottenute tramite lalgoritmo di object detection preso in considerazione) pi probabile di X
data la sua predizione (vedi punto (1)).
I metodi statistici di corrispondenza si differenziano fra di loro per le assunzioni fatte sulle distribuzioni di
probabilit degli stati degli oggetti da corrispondere. Ad esempio, il filtro di Kalman [19] assume una
distribuzione Gaussiana, mentre il Paricle Filter [38] ed il Joint Probability Data Association Filter [x]
utilizzano un sistema di pesi di probabilit, iterativamente aggiornati, che permette allalgoritmo di
adattare la distribuzione degli stati al problema in esame.


18

Infine, per una descrizione pi dettagliata delle varie tecniche di motion correspondence si rimanda a
[18,22].
4.3 Flusso Ottico
Il concetto di flusso ottico (o Optical Flow) stato introdotto nel 1950 da Gibson [30] ed impiegato nel
campo della Computer Vision da Horn e Schunck [31] nel 1980. Esso pu essere definito come il campo
vettoriale bidimensionale delle velocit, associate ai singoli pixel della scena, che trasformano un
fotogramma nel successivo (vedi Figura 11).

Figura 11 - Esempio di Flusso Ottico
I vettori del flusso ottico hanno quindi unintensit proporzionale allo spostamento dei punti, rapportato
allintervallo di tempo che intercorre tra lacquisizione di due fotogrammi successivi, andando quindi a
rappresentare le velocit apparenti di movimento dei singoli punti. Dallosservazione del flusso ottico nella
scena possibile ricostruire il movimento degli oggetti nonch fare consi derazioni sulla forma di oggetti
rigidi basandosi sulla distribuzione spaziale e temporale degli stessi. Infatti la tecnica spesso usata con
telecamere fisse per il riconoscimento di auto, pedoni e passanti [32,33]. Oltre a considerazioni sulla forma,
sono inoltre possibili osservazioni sullorientamento degli oggetti: infatti angoli, contorni e zone di
occlusione presentano gradienti di velocit apparentemente considerevoli rispetto ai punti interni alla
superficie.
Esistono due metodi principali per affrontare il problema: la stima basata sulla luminosit, ovvero gradient-
based, e quella basata su corrispondenze discrete, ovvero matching. Nella prima soluzione il flusso ottico
rilevato dallinterpretazione della variazione di luminosit dellimmagine al passare del tempo. In questo
caso, si ottengono vettori di flusso densi, ovvero ad ogni pixel dellimmagine corrisponde un vettore
velocit. Esempio di tale approccio sono [31,34,35]. La seconda soluzione invece basata sulle
corrispondenze discrete tra elementi costanti di due immagini successive. Tipicamente queste
caratteristiche, che vengono considerate permanenti nel tempo, sono: corner, profili o particolari pattern.


19

Questi algoritmi si prestano ad essere implementati su architetture di tipo pirami dale dove ad ogni livello
della piramide si analizzano i movimenti a diverse risoluzioni, cosicch le traiettorie trovate ad un certo
livello guidano la risoluzione del livello inferiore [36]. Esistono casi di hardware sviluppato ad hoc per la
determinazione del flusso ottico mediante un algoritmo di tale classe [37].
Qui di seguito, a puro scopo illustrativo, viene brevemente accennata una possibile tecnica di calcolo del
flusso ottico basata sulle intensit luminose dei pixel.
Indicando con I(x,y,t) lintensit luminosa del pixel di coordinate (x,y) dellimmagine I al tempo t, si pu
scrivere la seguente equazione di movimento:
( ) ( )
Inoltre, utilizzando lo sviluppo in serie di Taylor abbiamo che:
( ) ( )


Assumendo un movimento piccolo, possono essere tralasciati i termini di ordine superiore della serie di
Taylor (indicati come h.o.t. nellequazione sopra) e dalle due equazioni soprariportate abbiamo che:


Quindi indicando le componenti velocit di x e y con V
x
= x/t e V
y
= y/t e le derivate dellimmagine con
I
x
= dI/dx, I
y
= dI/dy, e I
t
= dI/dt, si ha le seguente equazione che esprime il campo del flusso ottico V in
funzione del gradiente spaziale e della derivata temporale dellimmagine:


Una risoluzione numerica del sistema soprariportato quindi in grado di fornire le velocit apparenti dei
punti in movimento. Infine, una ulteriore elaborazione del flusso ottico pu fornire i dati relativi ai
movimenti degli agglomerati di pixel (blob) che compongono gli oggetti di interesse.
5. Riconoscimento Genere Sessuale e Fascia dEt
La stima del genere sessuale e della fascia det di un individuo presente allinterno di una scena visiva in
genere effettuato tramite lanalisi dei pixel che compongono la zona del volto allinterno dellimmagine. Ci
rappresenta unulteriore giustificazione al fatto che si sia scelto un riconoscitore di volti per individuare la
presenza o meno di osservatori fuori dalla vetrina (vedi Sezione 3).
In letteratura sono presenti numerosi lavori che presentano una soluzione a questo problema
[24,25,26,27], tuttavia, tutte le soluzioni vertono sul medesimo schema di fondo, ovvero, vengono prima


20

scelte delle features visive e viene poi effettuata una classificazione, in base a tali features, utilizzando una
qualche tecnica di Machine Learning e quindi un training set di esempi (vedi Sezione 2). E inoltre da notare
che la classificazione dellet di un individuo, a differenza del genere sessuale, in genere effettuata in
modo fuzzy, ovvero vengono restituite etichette det del tipo: baby, young, middle aged, old.
Le principali features utilizzate sono: le distanze inter-oculare, labbra-naso, naso-occhi, labbra-occhi, il
rapporto tra le dimensioni del bounding box che circonda il volto, la larghezza delle labbra, le regioni di
baffi, delle palpebre, della fronte, contorno occhi, etc. Per un elencazione completa si faccia riferimento a
[24]. Tali features sono ottenute tramite tecniche di segmentazione dellimmagine come: il Sobel operator
[9,28] o il Canny Edge Detector [9,28] per lestrazione dei contorni presenti nella scena visiva, o ancora la
convoluzione tramite kernel Gaussiani [9,28] per la rimozione di eventuali impurit/imperfezioni, etc.
Invece, le tecniche di Machine Learning spaziano dal semplice uso del teorema di Bayes [24], allimpiego di
reti neurali artificiali [24], di support vector machines [25], dellalgoritmo k-nearest neighbors [25], etc.
Il lavoro pi recente su questo argomento senzaltro quello di Ramesha et al. [24] che effettua la
classificazione seguendo lo schema riportato in Figura 12.

Figura 12 - Diagramma a blocchi di un sistema di gender/age recognition
Le fasi preliminari alla classificazione sono: la conversione dellimmagine a colori in immagine a scala di grigi
(prestazioni migliori), la riduzione del rumore tramite convoluzione di un filtro Gaussiano [28] e
lindividuazione e riconoscimento dei contorni tramite il calcolo del gradiente dellimmagine e luso del
Canny Edge Detector [9] (vedi Figura 13). Dopodich vengono calcolate le distanze fra le varie zone del


21

volto (labbra-naso, naso-occhi, etc.) di modo da utilizzarle come features numeriche per la classificazione. A
questo punto viene: (1) effettuata la classificazione del genere sessuale con un opportuno classificatore
basato sul teorema di Bayes e su un modello Gaussiano del training set, (2) in base al genere viene avviata
la classificazione della fascia det utilizzando la rete neurale artificiale addestrata per il genere maschile o
quella addestrata per il genere femminile. I risultati forniti dalla rete neurale artificiale sono: young,
middle, old.

Figura 13 - Contorni individuati dal Canny Edge Detector
6. Riconoscimento Focus Visivo
Il modulo di riconoscimento del focus visivo dellosservatore della vetrina ha il compito di individuare
loggetto (capo dabbigliamento) osservato da un generico osservatore rilevato dai moduli discussi in
precedenza. Dato che il problema dellindividuazione di un modello 3D del contenuto della vetrina stato
trattato nella fase 1 del progetto, ci concentreremo qui sul problema relativo allindividuazione della
direzione del focus visivo dellosservatore. Varie tecniche possono essere utilizzate. Verranno qui descritte
due tecniche che risultano particolarmente adatte per i nostri scopi: la tecnica che prevede lanalisi della
simmetria, e quella basata su una eyes detection.
Nella prima tecnica, a partire dal bounding box della regione del volto in scala di grigi possibile effett uare
unanalisi sulla distribuzione statistica dei pixel. Ci pu essere effettuato adoperando alcune delle features
Haar-like discusse in Sezione 2. Infatti queste features sono in grado di fornire unindicazione piuttosto
affidabile sulla posa del volto che sta osservando la vetrina. Linformazione sulla posa, nel qual caso non sia
frontale, pu poi essere elaborata per individuare la direzione del focus visivo.
La seconda tecnica, invece, risulta molto pi adatta per volti ripresi in posa frontale nei quali deve esser
considerata la direzione dello sguardo degli occhi per capire la zona della vetrina osservata. Quindi si deve
eseguire un qualche algoritmo di eyes detection e poi, una volta individuate le zone corrispondenti ai due
occhi, si possono recuperare le informazioni sulle intensit interne alla zona occhi di modo da poter stimare
la direzione del focus visivo.


22

Le tecniche di eyes detection sono oggi ampiamente collaudate ed utilizzate, ad esempio, per la gestione
del puntatore del mouse per utenti disabili. Uno dei possibili approcci presentato in [29]. Dopo
lindividuazione delle zone occhi, viene eseguito il Sobel Operator [28] di modo da estrapolare i pixel che
rappresentano il contorno degli occhi e, successivamente, tramite unopportuna trasformata di Hough
[9,28] possibile rilevare le ellissi che approssimano il contorno degli occhi. Una volta individuato il
contorno occhi, le tecniche di estrazione dei momenti geometrici della distribuzione dei pixel [28]
allinterno delle ellissi dovrebbero poter essere in grado di individuare la direzione del focus visivo
dellosservatore (vedi Figura 14).

Figura 14 - Contorno occhi e iridi (unelaborazione della distribuzione geometrica delle iridi in grado di rilevare il
baricentro di queste allinterno del contorno occhi e quindi la direzione del focus visivo)
Si fa infine notare che lalgoritmo di eyes detection presentato in [29] permette di raggiungere delle buone
performances anche con immagini di qualit non elevata, ovvero con primi piani della risoluzione di 92x112
pixel.
7. Conclusioni
La parte del progetto esaminata in questa relazione utilizzer in linea di massima le tecniche sopra
descritte. Al fine di agevolare la realizzazione del sistema, alcune librerie di Computer Vision sono state
esaminate e riportate in rassegna in Tabella 1.
Tabella 1 - Rassegna librerie di Computer Vision
Libreria
Linguaggio
Supportato
Piattaforma
Supportata
Caratteristiche
Principali
Sito Web
Open
Source
OpenCV C / C++ Windows / Linux
Pi di 500 algoritmi,
ampia documentazione,
ottime prestazioni real-
time. Standard de-facto.
http://opencv.willowgarage.com SI
VXL C / C++ Windows / Linux
Funzioni di calcolo
numerico, elaborazioni
di immagini e
geometriche. Scarsa
documentazione.
http://vxl.sourceforge.net SI
OpenVIDIA C / C++ / CUDA-C Windows / Linux
Implementazione su
GPU. Scarsa
http://openvidia.sourceforge.net/i
ndex.php/OpenVIDIA
SI


23

documentazione.
RAVL C++ Windows / Linux
Implementata dalla
University of Surrey.
Scarsa documentazione.
http://www.ee.surrey.ac.uk/CVSS
P/Ravl/
SI
Camellia C Windows / Linux
Funzioni ottimizzate per
image-processing.
Scarsa documentazione.
http://camellia.sourceforge.net/ SI
VIGRA C++ Windows / Linux
Interoperabilit con
OpenCV. Relativamente
recente. Scarsa
documentazione.
http://hci.iwr.uni-
heidelberg.de/vigra/
SI
BLEPO C++ Windows / Linux
Ancora in versione
alpha. Scarsa
documentazione.
http://www.ces.clemson.edu/~stb
/blepo/
SI
TLIB C / C++ Windows / Linux
Indicata per scopi
educativi.
http://www.tuyphon.com/tlib/ SI
BlobDetection C / C++ Windows / Linux
Solo per blob detection.
Ancora in fase beta.
http://www.v3ga.net/processing/
BlobDetection/
SI
Flob Java Windows / Linux
Solo per flood-fill blob
detection.
http://s373.net/code/flob/flob.ht
ml
SI
LTI-Lib C / C++ Windows / Linux
Orientata agli oggetti.
Scarsa documentazione.
http://ltilib.sourceforge.net/doc/h
omepage/index.shtml
SI
GPUCV C Windows / Linux
Implementata su GPU.
Sintassi OpenCV-like.
http://gpgpu.org/2007/04/02/gpu
cv-a-free-gpu-accelerated-library-
for-image-processing-and-
computer-vision
SI

E da notare come la libreria open-source OpenCV sia quella pi ricca di funzionalit e che quindi meglio si
adatta allimplementazione del sistema qui proposto. In tale libreria sono inoltre presenti anche dei training
set ampiamente collaudati per il riconoscimento volti e il riconoscimento occhi.
Infine, si fa presente che le sequenze video e le immagini catturate per il progetto in esame verranno
scartate subito dopo lelaborazione conservando in memoria solamente i dati numerici relativi al numero di
osservatori, alla durata della sessione di osservazione, alla tipologia dellosservatore (genere sessuale e
fascia di et) e alla direzione del focus visivo. Quindi, nessun dato che violi la privacy degli osservatori
mantenuto in memoria.
Bibliografia
[1] C. Zhang, Z. Zhang. A survey of recent advances in face detection. Technical report, Microsoft
Research, 2010.
[2] C. Zhang, Z. Zhang. Boosting-Based Face Detection and Adaptation. Morgan & Claypool
Publishers, 2010.
[3] P. Viola, M. Jones. Rapid object detection using a boosted cascade of simple features. In Proc. of
CVPR, 2001.
[4] Y. Freund, R. E. Schapire. A decision-theoretic generalization of on-line learning and an application
to boosting. In European Conf. on Computational Learning Theory, 1994.
[5] C. Papageorgiou, M. Oren, T. Poggio. A general framework for object detection. In International
Conference on Computer Vision, 1998.


24

[6] M. Jones, P. Viola, D. Snow. Detecting pedestrians using patterns of motion and appearance.
Technical report, Mitsubishi Electric Research Laboratories, TR2003-90, 2003.
[7] R. Lienhart, J. Maydt. An extended set of Haar-like features for rapid object detection. In Proc. of
ICIP, 2002.
[8] R. Schapire. The boosting approach to machine learning: An overview. In MSRI Workshop on
Nonlinear Estimation and Classication, 2001.
[9] V. Santucci. Un sistema per il riconoscimento di componenti strutturate allinterno di immagini .
Tesi di Laurea, Universit degli Studi di Perugia, 2007.
[10] S. Parlagreco. Un sistema per la movement detection da flussi video. Tesi di Laurea, Universit
degli Studi di Perugia, 2007.
[11] D. Michie, D. J. Spiegelhalter, C. C. Taylor. Machine Learning, Neural and Statistical Classification.
Available: ftp.ncc.up.pt/pub/statlog/, 2004.
[12] I. H. Witten, E. Frank. Data Mining: Practical Machine Learning Tools and Techniques, 2ed. .
Morgan Kaufmann, 2005.
[13] S. Kotsiantis, I. Zaharakis, P. Pintelas. Supervised Machine Learning. TR-02-02, 2002, Department
of Mathematics, University of Patras, Hellas.
[14] D. W. Hosmer, S. Lemeshow. Applied logistic regression. New York: Wiley, 1989.
[15] J. E. Dayhoff, J. M. DeLeo. Artificial neural networks: opening the black box. Cancer. 2001;91 (8
suppl): 16151635.
[16] M. A. Hearst. Support Vector Machines. IEEE Intelligent Systems, pp. 18-28, 1998.
[17] P. Baldi. Gradient descent learning algorithms overview: a general dynamical systems
perspective. IEEE Trans. Neural Netw., 6, 182-195, 1995.
[18] A. Yilmaz, O. Javed, M. Shah, Object tracking: A survey. ACM Computing Surveys, vol. 38, no. 4,
2006.
[19] T. Broida, R. Chellappa. Estimation of object motion parameters from noisy images. IEEE Trans.
Patt. Analy. Mach. Intell. 8, 1, 9099, 1986.
[20] M. Isard, A. Blake. Condensation - conditional density propagation for visual tracking. Int. J.
Comput. Vision 29, 1, 528, 1998.
[21] A. Borst, M. Egelhaaf. Principles of visual motion detection. Trends in Neuroscience, 12, 297-306,
1989.
[22] O. Javed, M. Shah. Tracking and object classification for automated surveillance. In Proc.
European Conf. Computer Vision, vol. 4, 2002, pp. 343357.
[23] N. Paragios, R. Deriche. Geodesic active regions and level set methods for supervised texture
segmentation. Int. J. Comput. Vision 46, 3, 223247, 2002.
[24] K. Ramesha et al. Feature Extraction based Face Recognition, Gender and Age Classification.
International Journal on Computer Science and Engineering, Vol. 02, No.01S, 2010, 14-23.
[25] L. Hui-Cheng, L. Bao-Liang. Multi-View Gender Classification using Local Binary Patterns and
Support Vector Machines. International Conference on Neural Networks, pp. 202-209, 2006.
[26] R. Iga, K. Izumi, H. Hayashi, G. Fukano, T. Ohtani. Gender and Age Estimation from Face Images.
International Conference on The Society of Instrument and Control Engineering, pp. 756-761,
August, 2003.
[27] B. Moghaddam, Ming-Hsuan. Learning Gender with Support Faces. IEEE Transactions on Pattern
Analysis and Machine Intelligence, vol. 24, no. 5, pp. 707-711, May 2002.
[28] D. A. Forsyth, J. Ponce. Computer Vision - A Modern Approach. Prentice-Hall, 2002.
[29] K. Peng, L. Chen, S. Ruan, G. Kukharev. A Robust Algorithm for Eye Detection on Gray Intensity
Face Without Spectacles. In: Journals of Computer Science and Technology, 5(3), pp. 127--132,
2005.
[30] J. J. Gibson. The Perception of the Visual World. Houghton Mifflin, 1950.


25

[31] B. K. P. Horn, B. G. Schunck. Determining optical flow. AI Memo 572. Massachusetts Institue of
Technology, 1980.
[32] S. Cagnoni, M. Mordonini, G. Adorni, F. Bergenti. License-plate recognition for restricted-access
area control systems. Multimedia VideoBased Surveillance Systems: Requirements, Issues and
Solutions. Kluwer, 2000.
[33] G. Chivil, F. Mezzaro, A. Sgorbissa, R. Zaccaria. Follow the leader behaviour through optical flow
minimization. In Proceedings of the IEEE International Conference on Intelligent Robots and
Systems (IROS), 2004.
[34] P. Nesi. Variational approach to optical ow estimation managing discontinuities. Pages 419439,
1993.
[35] M. Herman, R. Chellappa, H. Liu, T. Hong. A general motion model and spatiotemporal lters for
computing optical ow. International Journal of Computer Vision, pages 141172, 1997.
[36] G. Neva. Analisi del movimento tramite sensori ottici omnidirezionali. PhD thesis, Universit degli
Studi di Parma - Facolt di Ingegneria, 2001.
[37] P. Horn, B. Klaus. Robot vision. The MIT Press, Cambridge, Massachusetts, 1986.
[38] H. Tanizaki. Non-gaussian state-space modeling of nonstationary time series. J. Amer. Statist.
Assoc., 82, 10321063, 1987.
[39] Y. L. Chang, J. K. Aggarwal. 3d structure reconstruction from an ego motion sequence using
statistical estimation and detection theory. In Workshop on Visual Motion, 268273, 1991.
[40] C. Rasmussen, G. Hager. Probabilistic data association methods for tracking complex visual
objects". IEEE Trans. Patt. Analy. Mach. Intell. 23, 6, 560576.