SlideShare a Scribd company logo
UNIVERSITÀ DEGLI STUDI DI
TRIESTE
Dipartimento di Ingegneria e Architettura
Laurea Triennale in Ingegneria dell'Informazione
Rilevamento di facce in ussi video per
l'ausilio ai non vedenti
4 marzo 2016
Laureando Relatore
Michele Vittori Prof. Felice Andrea Pellegrino
Correlatore
Prof. Giovanni Ramponi
Anno Accademico 2014/2015
Sommario
Questa tesi rientra in un progetto più ampio sul modo in cui la tecnologia
attuale possa aiutare persone non vedenti e ipovedenti grazie alla realizzazio-
ne di un dispositivo portatile che aiuti questi soggetti nelle loro interazioni
sociali, usando l'elaborazione digitale dell'immagine per sopperire alle loro
carenze visive.
In particolare si intende usare il machine learning, più specicamente
nelle forme di rilevamento e riconoscimento facciale, e riconoscimento delle
espressioni per aiutare il soggetto ad iniziare conversazioni che altrimenti
non avverrebbero.
Per questo lavoro è risultata necessaria la creazione di un dataset specico
per testare gli algoritmi, intanto di face detection, in condizioni particolari
strettamente legate alle situazioni che il dispositivo nale si troverebbe ad
arontare: ussi video ottenuti da una videocamera con ottica grandangolare
indossata da un non vedente. Il contributo maggiore di questa tesi al progetto
è stato la creazione di tale dataset.
A partire da queste condizioni iniziali e dagli scopi sociali del proget-
to sono state individuate quindi nel dettaglio le criticità che i classicatori
avrebbero arontato diversamente dall'essere applicati ad immagini tratte
dai dataset classici. Si sono quindi scritte, riprese ed estratte dai lmati
delle scene che rispecchiassero tali criticità. In seguito queste sequenze sono
state annotate in maniera da renderle pronte al confronto con i risultati della
face detection ottenuti dagli algoritmi presi in considerazione, ed allo stesso
tempo seguendo criteri che ne evidenziassero il ne sociale.
Sono quindi stati testati gli algoritmi di rilevamento facciale sul dataset
così creato. Dai risultati si evince che il dataset ore dierenze tali da ren-
dere utile usarlo al posto di altri dataset già esistenti ma più generici. La
fase di test ha fatto inoltre emergere altre considerazioni utili sulle necessità
relative al dispositivo di acquisizione da impiegare e su quale degli algoritmi
confrontati sia attualmente il migliore per i nostri scopi.
Sviluppi successivi includono lo svolgimento di ulteriori test usando la
componente temporale per ltrare le detection indesiderate ottenute dal me-
todo con migliore recall a scapito di una minore precision e di provare ad
addestrare gli algoritmi scelti con immagini estratte dal nostro dataset.
i
Indice
Sommario i
Introduzione iv
1 Machine Learning e Rilevamento Facciale 1
1.1 Accenni sul machine learning . . . . . . . . . . . . . . . . . . 1
1.1.1 Ground truth . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Algoritmi di rilevamento facciale . . . . . . . . . . . . . . . . 2
1.2.1 Viola-Jones . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.2 Zhu-Ramanan . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.3 Normalized Pixel Dierence (NPD) . . . . . . . . . . . 9
1.2.4 Pixel Intensity Comparisons Organized in Decisions
Trees (PICO) . . . . . . . . . . . . . . . . . . . . . . . 10
2 Creazione del dataset 13
2.1 Criticità cercate nelle riprese e conseguente direzione . . . . . 15
2.2 Acquisizione dei lmati . . . . . . . . . . . . . . . . . . . . . . 17
2.2.1 Scrittura e direzione delle scene . . . . . . . . . . . . . 17
2.2.2 Considerazioni sulle videocamere . . . . . . . . . . . . 19
2.3 Elaborazione dei lmati . . . . . . . . . . . . . . . . . . . . . 21
2.4 Etichettatura degli spezzoni . . . . . . . . . . . . . . . . . . . 24
2.4.1 Scelta degli spezzoni . . . . . . . . . . . . . . . . . . . 24
2.4.2 Criteri di etichettatura . . . . . . . . . . . . . . . . . . 26
2.4.3 Processo di etichettatura . . . . . . . . . . . . . . . . . 27
3 Test del dataset 29
3.1 Implementazione in Matlab . . . . . . . . . . . . . . . . . . . 29
3.1.1 Modiche al metodo di confronto . . . . . . . . . . . . 33
3.1.2 Modiche al Parser dei metadata . . . . . . . . . . . . 35
3.2 Risultati sperimentali . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.1 Accenni su precision and recall . . . . . . . . . . . . . 36
3.2.2 Discussione dei risultati . . . . . . . . . . . . . . . . . 38
ii
INDICE
Conclusioni 47
3.3 Conclusioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.4 Sviluppi futuri . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.4.1 Miglioramenti dell'algoritmo di face detection . . . . . 50
3.4.2 Funzioni aggiuntive . . . . . . . . . . . . . . . . . . . . 50
3.4.3 Implementazione del dispositivo . . . . . . . . . . . . . 51
A Informativa appesa nei luoghi delle riprese 52
B Procedura seguita in Shotcut 53
B.1 Procedura principale . . . . . . . . . . . . . . . . . . . . . . . 53
B.2 Altre procedure . . . . . . . . . . . . . . . . . . . . . . . . . . 54
B.2.1 Creazione dei presets . . . . . . . . . . . . . . . . . . . 54
B.2.2 Unire spezzoni . . . . . . . . . . . . . . . . . . . . . . 56
C Procedura seguita in ViPER-GT 58
C.1 Creazione dello Schema base . . . . . . . . . . . . . . . . . . 58
C.2 Etichettatura dei volti . . . . . . . . . . . . . . . . . . . . . . 59
D Parametri passati ai detector nei test 64
D.1 Normalized Pixel Dierence . . . . . . . . . . . . . . . . . . . 64
D.2 Viola-Jones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
D.3 Pixel Intensity Comparisions Organized in Decisions Trees . . 65
D.4 Pixel Intensity Comparisions Organized in Decisions Trees,
alternative value . . . . . . . . . . . . . . . . . . . . . . . . . 65
E Risultati sperimentali 66
iii
Introduzione
Questa tesi è un tassello all'interno di un progetto più ampio che coinvol-
ge vari professori e studenti del Dipartimento di Ingegneria e Architettura
dell'Università degli Studi di Trieste, atto ad aiutare persone non vedenti
ed ipovedenti. Il progetto di aiutare questi soggetti nelle loro interazioni so-
ciali, fornendo loro un dispositivo che veda al posto loro e fornisca quindi
informazioni utili ai rapporti umani è quantomeno ambizioso. Innanzitutto
è fondamentale domandarsi come questa vista possa eettivamente essere
d'aiuto, come il dispositivo possa comunicare con il soggetto e soprattutto
che informazioni cercare in una ripresa in tempo reale per poi trasmetterle
al non vedente. In questa logica si è ritenuto di maggiore impatto psicolo-
gico dare al non vedente la possibilità di iniziare un'interazione, rendendola
quindi più simmetrica e trasformando il non vedente da soggetto passivo a
soggetto attivo nel rapporto.
Né l'uso della computer vision per fornire supporto e nuove possibilità ai
non vedenti né l'argomento face detection sono temi particolarmente nuovi.
Negli anni infatti sono stati sviluppati numerosi progetti atti ad aiutare i
non vedenti nelle più disparate attività di tipo non sociale, e l'argomento
face detection è stato già ampiamente studiato in passato e continua ad
essere studiato attualmente per ni dei più svariati tipi, dalla sicurezza al
miglioramento della messa a fuoco in macchine fotograche. Risulta meno
scontato invece il suo utilizzo nell'ambito dell'ausilio ai rapporti umani per
non vedenti.
Ci si è quindi concentrati sull'implementazione di metodi che permet-
tessero al non vedente di iniziare una conversazione considerando il grande
impatto psicologico di questa possibilità. Come accennato ci si è basati in-
nanzitutto sulla face detection imprescindibile per poi fare face recognition
e riconoscimento delle espressioni per determinare chi in un ambiente possa
essere interessato all'interazione col non vedente, in quanto suo conoscente
o semplicemente perché caratterizzato da un'espressione amichevole.
Fortunatamente lo strumento face detection, in quanto strumento, è lo
stesso indipendentemente dallo scopo per il quale lo si usi e si sono potuti
sfruttare ampiamente gli studi fatti nora in questo ambito come punto di
partenza per adattare gli algoritmi esistenti alle nostre esigenze.
Questo lavoro ha però richiesto una nuova piattaforma di test in quanto
iv
INTRODUZIONE
non si era più interessati ad un confronto equo ed imparziale tra i metodi
di rilevamento facciale per determinare quale fosse il migliore in assoluto,
bensì si è voluto decretare quale fosse il migliore relativamente alle criticità
emerse dalle nostre particolari condizioni di lavoro. Con questo si intendono
le dicoltà derivanti dalle situazioni che gli stessi algoritmi dovranno aron-
tare quando implementati nel dispositivo nito: immagini estratte da lmati
girati con videocamere grandangolari indossate da non vedenti.
Il test degli algoritmi su questo dataset da noi appositamente creato ha
avuto più di uno scopo. Oltre allo scopo principale di decretare quale tra
gli algoritmi presi in considerazione fosse quello con le performance migliori
secondo i nostri criteri di giudizio, ci si è dovuti innanzitutto assicurare che
il dataset stesso fosse una piattaforma di test adabile, anche nell'ottica di
renderlo in futuro disponibile a chiunque lavori su temi simili ai nostri.
Inoltre dai risultati dei test è stato possibile ricavare ulteriori informa-
zioni utili allo sviluppo futuro del dispositivo. linea invisibile
Nel primo capitolo della tesi verranno introdotti i concetti di machine
learning e face detection e verranno approfondite le logiche sulle quali si
basano gli algoritmi confrontati nell'ambito di questo progetto.
Nel secondo capitolo verrà descritto il lavoro svolto per la creazione del
dataset in tutte le sue fasi sia concettuali che pratiche.
Nel terzo capitolo verrà descritto il lavoro di test svolto e saranno esposti
i risultati ottenuti.
v
Capitolo 1
Machine Learning e
Rilevamento Facciale
Non è nello scopo di questa tesi approfondire l'aspetto di machine learning ed
il ruolo da esso svolto nell'implementazione di un sistema di face detection,
nello specico per non vedenti. Risulta però necessario dare al lettore un
accenno generale sull'argomento in modo da meglio comprendere il lavoro
svolto e l'importanza che abbia all'interno del progetto.
1.1 Accenni sul machine learning
Con machine learning si indica il campo che si occupa di creare sistemi
informatici la cui ecienza o ecacia, o altri parametri a seconda dei casi,
migliorino automaticamente no a giungere alla risoluzione di un problema
assegnato sfruttando l'esperienza. L'esperienza è più precisamente denita
addestramento, controllato o meno, a seconda di che esempi ed indicazioni
vengano forniti riguardo ai risultati che si vogliono ottenere.
Le applicazioni sono innumerevoli, limitate solo dalla fantasia e dalle
esigenze dei ricercatori, ed hanno le complessità più svariate: si spazia da un
semplice programma addestrato per non perdere mai a tria, o similmente
per vincere a scacchi
1[1] ad un sistema di guida automatica che permetta
ad un'automobile di muoversi autonomamente su strade pubbliche senza
intervento umano come la Google Self-Driving Car[2] ed il progetto italiano
VisLab[3].
Uno degli scopi più arontati nell'ambito machine learning è senza dub-
bio la classicazione, ovvero la capacità di distinguere e separare dati in
categorie diverse partendo da un insieme contenente informazione non clas-
sicata. Questa spiegazione quasi tautologica è più chiara se si fornisce una
denizione più rigorosa:
1
Complessità maggiore, ma stesso approccio di base
1
CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE
Dato un insieme di dati contenente n tipi di oggetti, si denisce
classicazione l'atto di distinguere uno o più tipi di oggetti dagli
altri.
La face detection, o rilevamento facciale, rientra proprio in questa cate-
goria: infatti vogliamo distinguere un oggetto, la faccia, da tutto il resto
presente in un'immagine.
1.1.1 Ground truth
Il machine learning è caratterizzato da diversi metodi di apprendimento.
Una delle discriminanti è l'intervento umano o meno nella fase di addestra-
mento della macchina, e quanto pesi sul risultato nale. La categoria con il
maggior intervento umano prende il nome di apprendimento supervisionato,
o supervised learning, ed indica i casi in cui la macchina impara da un set
di dati di input e di output che deve raggiungere, con i quali confrontarsi.
Questi dati generalmente prendono la forma di un vettore di input I e di un
insieme di output O in cui ogni elemento è il risultato atteso per l'elemento
di input corrispondente. L'apprendimento da parte della macchina consiste
nell'usare questi dati per trovare una funzione in grado di associare l'insieme
O all'insieme I come indicato.
Nell'ambito della computer vision questo set d'addestramento prende il
nome di ground truth, verità di base, ad indicare un insieme di dati che si
sa essere veri, o il più veri possibile, poiché ottenuti per osservazione diretta
e non tramite simulazioni, modelli o altri metodi indiretti.
L'addestramento per tutti gli algoritmi di rilevamento facciale che ve-
dremo in seguito rientra sempre in questa categoria ed il ground truth è
composto da un insieme di immagini (l'insieme di input I) alle quali sono
associate informazioni sulla presenza o meno, quantità e posizione dei volti
(l'insieme di output O).
1.2 Algoritmi di rilevamento facciale
Innanzitutto è d'obbligo presentare un elenco dei metodi usati, dare una
breve descrizione del loro funzionamento e dei principi su cui si basano.
1.2.1 Viola-Jones
Nel settembre 2001 Paul Viola e Michael J. Jones proposero un metodo di
rilevamento facciale[4] che è quello al momento più diuso in ambito acca-
demico, nella sua forma originale o nelle molteplici varianti che ha generato
negli anni. I due motivi principali della sua ampia adozione sono il buon
funzionamento dimostrato e la facilità di implementazione grazie alla sua
inclusione nelle librerie OpenCV[5]. Con buon funzionamento ci si riferisce
2
CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE
al fatto che è robusto e lavora in tempo reale, capacità molto importante
e di dicile implementazione all'epoca, considerando la minore potenza di
calcolo dei processori.
Il metodo, che prende il nome dai suoi padri, si basa fondamentalmente
sull'unione di tre idee:
• L'uso di una immagine integrale, ovvero una rappresentazione alter-
nativa dell'immagine che velocizza l'estrazione delle Haar-features, più
semplici ed a minore costo computazionale rispetto a features basate
sui singoli pixel
• La selezione di un numero limitato di features importanti dal ben più
ampio insieme di tutte quelle disponibili tramite un meta-algoritmo
di apprendimento, per la creazione di un classicatore semplice ed
eciente
• L'implementazione di un metodo per combinare più classicatori via
via più complessi in cascata, che incrementa drasticamente la velocità
di rilevamento
Il risultato nale è una cascata di 38 classicatori che valutano oltre 6.000
features e che nonostante ciò è molto veloce.
Approfondiremo questi tre argomenti nei successivi capitoli: Immagine
integrale e Haar-features, dedicato al set di features usato, Adaptive
Boosting e cascata di classicatori, dedicato all'algoritmo usato per
l'estrazione delle features che compongono un classicatore e la scelta dei
classicatori e del loro ordine di utilizzo.
Immagine integrale e Haar-features
La scelta di usare l'immagine integrale e delle features invece di pixel ha
vari motivi, primo di questi la maggior versatilità delle features e la loro
possibilità di racchiudere conoscenza specica che è dicile da imparare
usando una quantità nita di dati d'addestramento. Secondo motivo, ma
non meno importante, è la già menzionata maggiore velocità ottenuta grazie
a questo accorgimento al posto di lavorare su singoli pixel.
Nello specico si usano delle features che traggono ispirazione dalle fun-
zioni base di Haar, già usate in precedenza da [6], dal quale la denizione
Haar-features. Si fa uso di tre tipi di features, come si può anche vedere in
Figura 1.1[4]:
• Two-rectangle feature: il valore dato dalla dierenza fra la somma
dei pixel che compongono due regioni rettangolari adiacenti, orizzon-
talmente o verticalmente.
• Three-rectangle feature: il valore dato dalla somma dei pixel che
compongono due regioni rettangolari esterne sottratto al valore della
3
CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE
somma dei pixel che compongono la regione centrale, orizzontalmente
o verticalmente.
• Four-rectangle feature: il valore dato dalla somma dei pixel che
compongono i rettangoli superiore destro ed inferiore sinistro sottratti a
quelli che compongono i rettangoli superiore sinistro ed inferiore destro.
Considerando il possibile orientamento sia verticale che orizzontale delle fea-
tures bi-rettangolari e delle features tri-rettangolari alla ne otteniamo in
realtà cinque tipi diversi di features.
Figura 1.1: Feature rettangolari: two-rectangle feature (A,B), three-
rectangle feature (C), four-rectangle feature (D)
L'immagine integrale non è nient'altro che una rappresentazione nella
quale a ciascun pixel invece che il dato sulla sua singola luminosità viene
associato la somma dei valori di tutti i pixel contenuti nel rettangolo che è
denito dal pixel stesso e dal primo pixel in alto a sinistra. Ovvero il valore
del pixel (x, y) nell'immagine integrale ii(x,y) è:
ii(x,y) =
x ≤x,y ≤y
i(x , y )
dove i(x ,y ) è il valore del singolo pixel (x , y ) nell'immagine di partenza.
È evidente quindi che che il valore di un rettangolo in una feature rettangolare
non è nient'altro che il valore del pixel che lo delimita in basso a sinistra, e
che il valore di una feature, sia essa composta da due, tre o quattro rettangoli
non è nient'altro che la somma algebrica del valore di al massimo quattro
elementi nel più complesso dei casi.
Quindi in seguito alla semplice operazione di trasformazione dell'immagine
in un'immagine integrale, fatta una volta per ciascun frame, il lavoro di
creazione di tutte le features in un'immagine è estremamente velocizzato.
La semplicità di questo metodo impone però dei limiti rispetto ad altri
metodi più complessi, soprattutto riguardo la capacità di rilevare caratteri-
stiche più complesse come barre, spigoli ed altre strutture geometriche anche
4
CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE
semplici. Inoltre vi sono limitazioni anche sull'orientamento che si può far
assumere a queste features, nel nostro caso solamente orizzontale, verticale
o diagonale.
Adaptive Boosting e cascata di classicatori
Usando nestre rettangolari non inferiori ai 24 pixel sul lato corto, e sce-
gliendo di ingrandire i rettangoli del 25%
2 ad ogni ulteriore passaggio, si
otterrebbe un numero ragguardevole di features estratte da ogni immagine,
molto maggiore rispetto al numero di pixel presenti nell'immagine stessa.
Quindi, nonostante il basso costo computazionale di ciascuna feature il co-
sto complessivo di valutarle tutte negherebbe il vantaggio di usarle rispetto
a metodi basati sui singoli pixel. L'ipotesi di Viola e Jones, rivelatasi poi
corretta, è che basta combinare un set molto ridotto di features per creare
un classicatore ecace.
Sono ricorsi quindi al metodo di meta-machine learning AdaBoost[7],
contrazione di Adaptive Boosting, per estrarre poche features più signicative
e combinarle in un classicatore molto grezzo. Senza scendere troppo nel
dettaglio per fare ciò si addestra l'algoritmo tramite iterazioni successive
assegnando alla ne di ogni ciclo diversi pesi, ovvero una diversa importanza,
alle varie features in base al risultato che avevano fornito, no a trovare le
migliori. Poi queste features vengono divise in vari classicatori, via via più
complessi, quindi di costo computazionale maggiore.
Il successivo passo per limitare la complessità dell'algoritmo di rileva-
mento facciale proposto da Viola-Jones è stato quello di usare i classicatori
dal più semplice al più complesso per ltrare di iterazione in iterazione tutti
i falsi positivi, ovvero le classicazioni ritenute corrette dal classicatore ma
che non corrispondono all'oggetto cercato. In pratica l'algoritmo sottopone
inizialmente l'immagine a classicatori più semplici e quindi più ecienti,
che eliminano un buon numero di sotto-nestre dell'immagine, riducendo
quindi il numero di sotto-nestre, e di conseguenza l'area, alla quale appli-
care classicatori più complessi e meno ecienti, ma che ottengono via via
percentuali più basse di falsi positivi. Anche la cascata di classicatori, che
altro non è che un albero decisionale sbilanciato, è allenata tramite AdaBoost,
seppur con intervento umano sui primi sette livelli della cascata per velociz-
zare il tempo d'addestramento del rilevatore. Come già anticipato il lavoro
di Viola-Jones porta ad un rilevatore completo composto da 38 classicatori
per un totale di 6.060 features utilizzate.
È importante osservare che il classicatore più semplice, basato su sole
due features, è in grado di rilevare il 100% dei volti con una percentuale di
falsi positivi del 50%, ovvero esclude solo il 50% dei riquadri privi di volti.
Esso è basato sulla dierenza di luminosità che vi è orizzontalmente tra i due
2
impostazioni standard per la creazione delle features
5
CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE
occhi ed il setto nasale e sulla dierenza che vi è verticalmente tra la zona
degli occhi e quella di naso e guance come si può vedere dalla Figura 1.2[4].
Il secondo classicatore usa 10 features e rileva correttamente quasi il
100% dei volti, ma esclude già l'80% delle nestre prive di volti. Questo fa
sì che la maggioranza delle sotto-nestre venga scartata già nei primi due
passaggi, facendo sì che alla ne dell'operazione di rilevamento facciale in
media vengano usate solo 8 features per sotto-nestra.
Figura 1.2: Rappresentazione graca delle features che compongono il primo
classicatore della cascata
È inoltre necessario parlare del dataset utilizzato da Viola e Jones per
addestrare il loro algoritmo di rilevamento facciale, soprattutto tenendo con-
to che nel corso di questa tesi non si è addestrato nuovamente l'algoritmo
ma lo si è usato così come sviluppato originariamente. L'algoritmo è stato
addestrato su un dataset di 4916 facce, etichettate a mano e scalate per avere
tutte la stessa risoluzione di 24*24 pixel. La cosa più importante da notare
è però che i volti sono tutti frontali, perfettamente visibili e ben illuminati
salvo qualche raro caso di illuminazione non uniforme, situazione ben diversa
da quella che si troverà nel dataset creato in questa tesi.
1.2.2 Zhu-Ramanan
Nel giugno 2012 è stato proposto un metodo[8] basato su una commistione di
modelli basati su strutture ad alberi ed un gruppo di parti condivise. Viene
ridotto a modello ogni particolare del volto e salvato come singola parte da
riconoscere e si tiene conto dei rami che uniscono le varie parti. Viene poi
data ai rami la possibilità di cambiare dimensione, pur entro certi limiti
determinati in base alla struttura sica del volto, tali da garantire suciente
essibilità all'algoritmo per essere tollerante alle variazioni dovute a cambi
di espressione facciale e dell'orientamento del volto ma allo stesso tempo
limitare il numero di falsi positivi.
Stando a quanto dichiarato nell'articolo questo metodo è risultato molto
ecace, al pari con i più famosi metodi commerciali. Un ulteriore vantag-
gio rispetto agli altri metodi analizzati è che grazie alle sue caratteristiche è
capace di individuare contemporaneamente sia volti frontali sia girati late-
6
CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE
Figura 1.3: Sopra: Rappresentazione graca degli alberi topologici, con in
rosso i rami che collegano le parti. Sotto: esempio di uno dei dataset usati
per addestrare l'algoritmo, con evidenziate in blu le parti annotate[8]
ralmente no a quasi 90
◦ rendendolo più adatto ad usi in the wild, ovvero in
situazioni naturali nelle quali il volto non è necessariamente frontale rispetto
allo strumento di acquisizione, ben visibile e ben illuminato.
Purtroppo però questo metodo, quando provato su singoli frame estratti
dai lmati acquisiti nel corso del nostro progetto, per vericarne il funziona-
mento prima di implementare un sistema automatizzato di analisi di interi
lmati, ha presentato due grossi problemi. Il primo sono stati risultati non
all'altezza di quanto presentato dall'articolo, con volti frontali e ben illu-
minati non riconosciuti, indipendentemente dal sotto-metodo usato come si
può vedere dalla Figura 1.4. Il secondo, più rilevante soprattutto dato lo
scopo nale all'interno del nostro progetto, è stato l'incredibile lentezza
3,
inaccettabile per un detector che deve funzionare in tempo reale. Infatti,
come si può vedere dalla Tabella 1.1, sono stati impiegati almeno 30 secondi
nel migliore dei casi.
Metodo Veloce (s) Metodo Lento (s)
1 99.3 597.6
2 96.6 588.1
3 98.8 601.7
4 43.9 312.7
5 107.3 626.9
6 94.8 570.5
7 90.2 559.6
8 93.1 587.2
9 34.9 271.0
10 32.1 250.1
Tabella 1.1: Tempi impiegati per analizzare i rispettivi frame (secondi)
Oltre ai pessimi risultati iniziali, va osservato che il confronto con gli altri
metodi non sarebbe stato facile né equo, essendo i risultati degli altri metodi
3
Test svolto su computer con CPU Intel Core i5 3317U, Quad Core a 1,70 GHz,
caratteristiche nettamente superiori a quelle possibili con i dispositivi portatili odierni.
7
CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE
linea invisibile
Figura 1.4: Confronto dei risultati del rilevamento facciale: sopra i risultati
ottenuti da Zhu e Ramanan e presentati nel loro articolo, sotto alcuni esempi
di quelli ottenuti su frame estratti da nostri lmati.
8
CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE
e la nostra etichettatura basati su bounding box, rettangoli tracciati attorno
al volto. Sarebbe stata richiesta quindi l'implementazione di codice al ne
di trasformare i risultati sotto forma di punti lungo i contorni del volto e
caratteristiche quali occhi, naso e bocca in bounding box. Per tutti questi
motivi, principale dei quali la lentezza, si è deciso quindi di non includere
questo metodo nel lavoro di confronto più completo.
1.2.3 Normalized Pixel Dierence (NPD)
Nel 2014 è stato proposto un metodo[9] sempre basato sulla creazione di fea-
tures, sull'uso di una rappresentazione alternativa dell'immagine e sull'estra-
zione automatica delle features migliori tramite apprendimento automatico.
Tuttavia, nonostante questi elementi in comune con Viola-Jones, presenta
anche delle dierenze signicative. Infatti lo scopo principale dei ricercatori
è stato quello di cercare un nuovo set di features e classicatori tali da ren-
dere il metodo più ecace per il rilevamento facciale senza restrizioni, nello
specico anche nel caso più complesso di copertura parziale di volti laterali
irrisolto prima del loro articolo.
La feature proposta è la dierenza normalizzata dei pixel (Normalized
Pixel Dierence) ovvero la dierenza del valore di intensità di due pixel
qualsiasi divisa per la somma dei loro valori. Per due generici pixel x e y:
f(Ix, Iy) =
Ix − Iy
Ix + Iy
con Ix, Iy  0 e f(0, 0) = 0 quando Ix = Iy = 0. Si noti che con x e y si
indicano due pixel presi in considerazione, non le coordinate di un singolo
pixel, e che si è deciso, al contrario della notazione ambigua dell'articolo
originale, di denire Ix e Iy le relative intensità. Questa feature ha quindi
caratteristiche quali l'invarianza di scala, la possibilità di ricostruire l'imma-
gine originale e la ridotta complessità di calcolo, essendo calcolata solo con
due somme e una divisione per feature. È molto importante notare che la
funzione f gode della seguente proprietà
f(aIx, aIy) = f(Ix, Iy), ∀Ix, Iy, ∀a = 0
il che garantisce l'invarianza per trasformazioni moltiplicative dell'intensità,
proprietà che rende la feature robusta a variazioni di luminosità.
In seguito si sceglie di confrontare il valore delle features con delle soglie
in degli alberi decisionali, in particolare dei boosted regression trees. Il classi-
catore debole nasce dall'imparare, tramite addestramento su immagini con
facce ed immagini senza facce, le soglie ideali da introdurre in ciascun nodo,
mediante l'applicazione dell'algoritmo CART [10] alle NPD features. Viene
poi usato l'algoritmo GentleBoost[7], una variante del più noto AdaBoost,
per ridurre il numero di informazioni ridondanti ancora presenti in seguito
all'uso di soli alberi decisionali e costruire un classicatore più robusto.
9
CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE
Il metodo NPD aronta quindi vari problemi del rilevamento facciale in
condizioni non ristrette nei seguenti modi:
• Posa: l'algoritmo è robusto a dierenti pose grazie al fatto di me-
morizzare in diverse foglie diversi punti di vista, senza la necessità di
addestramenti specici per pose diverse.
• Copertura parziale: essendo le NPD features basate su coppie di
pixel e non intere aree come le Haar features, molte meno features
sono aette dalla copertura parziale, e quindi il metodo è più robusto
alla copertura parziale dei volti.
• Illuminazione: come già visto la caratteristica di invarianza di scala
rende le NPD features robuste a varizioni di luminosità.
• Sfocatura e basse risoluzioni: basandosi sulla dierenza dei valori
di due pixel, le NPD features non richiedono immagini molto detta-
gliate, rendendo il metodo ecace anche in casi di immagini sfocate o
a bassa risoluzione.
Tuttavia si può anticipare che i risultati sul nostro set di valutazione non
sono stati all'altezza delle caratteristiche vantate, specialmente per quel che
riguarda immagini molto rumorose, problema eettivamente non considerato
dagli autori.
1.2.4 Pixel Intensity Comparisons Organized in Decisions
Trees (PICO)
Nel 2014 è stato sviluppato un metodo[11] non molto diverso da quello ap-
pena visto[9]. Gli autori di PICO garantiscono tuttavia l'indipendenza del
loro lavoro da NPD.
Gli autori deniscono il loro metodo come una semplice modica del
metodo standard Viola-Jones ma vi sono alcune dierenze signicative sia
nella logica alla base del metodo che nei conseguenti risultati. Come dice
il nome l'algoritmo si basa su confronti di intensità (luminosa) di coppie di
pixel al posto delle Haar-Features, poi organizzati in alberi decisionali. Resta
quindi in uso l'idea di usare una cascata di classicatori via via più complessi
man mano che si escludono regioni dell'immagine che vengono determinate
essere prive di volti dai classicatori più semplici e veloci.
Principi di funzionamento
Nel dettaglio, invece che fare uso di un'immagine integrale e di features ret-
tangolari si usano degli alberi decisionali con memorizzato nei loro nodi il
confronto delle intensità dei pixel come test binario. La costruzione de-
gli alberi è assistita poiché anche in questo caso si tratta di un metodo di
10
CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE
apprendimento supervisionato e quindi sia viene associato manualmente ad
ogni immagine di addestramento Is il valore di ground truth vs (-1 per i cam-
pioni negativi, +1 per i campioni positivi), sia si denisce per ogni campione
anche l'esistenza di un peso ws, in seguito calcolato automaticamente in fase
d'addestramento, per indicare l'importanza del relativo campione all'interno
del set di addestramento. L'addestramento consiste nel minimizzare l'errore
quadratico medio pesato
WMSE =
(I,w,v)∈C0
w · (v − ¯v0)2
+
(I,w,v)∈C1
w · (v − ¯v1)2
dove C0 e C1 sono campioni d'addestramento per i quali il risultato del test
binario succitato, per l'immagine associata, erano rispettivamente 0 o 1 e
dove ¯v0 e ¯v1 sono le medie pesate del ground truth in C0 e C1. Questo fa
si che l'algoritmo cerchi i test binari che minimizzano questa funzione, che
corrisponde a creare alberi decisionali composti dai migliori test, e queste
sono le features estratte.
In seguito, considerata la ridotta accuratezza di un singolo albero deci-
sionale, gli autori usano l'algoritmo GentleBoost[7] per generare un insieme
di alberi decisionali. In questa fase si assegna una soglia alla somma de-
gli output degli alberi decisionali modicando la quale è possibile variare il
rapporto tra falsi positivi e veri positivi ottenuti.
In seguito si usa la stessa logica di Viola-Jones di partire da classicatori
più deboli e meno ecaci per escludere successivamente sempre più aree pri-
ve di volti in modo da applicare classicatori più ecaci ma meno ecienti
solo ad aree ridotte dell'immagine. Ogni passaggio consiste nel passare l'im-
magine ad un classicatore composto da un insieme di alberi decisionali, il
cui valore di soglia assegnato ne determina la complessità. Va notato che tut-
tavia anche in questo passo dell'algoritmo è stato scelto di usare un risultato
meno assoluto. Ogni passaggio infatti dà in uscita un valore di condenza
invece di un valore assoluto sull'assenza di volti, e questo valore viene usato
come dato nei passaggi successivi.
Alla ne di questi passaggi si ottiene un insieme di rilevamenti, anche
multipli per ciascun volto, che vengono ltrati in base alla percentuale di
sovrapposizione per ottenere un rilevamento unico per volto.
Risultati e confronti con altri metodi
Nei test condotti dai suoi sviluppatori il metodo PICO si è dimostrato leg-
germente meno ecace del metodo NPD e del metodo commerciale Illux
Object Detection[12] in termini di accuratezza. Tuttavia è stato stimato che
sia circa quattro volte più veloce del metodo NPD.
Inoltre è segnalato dagli autori che si può supporre che il metodo PICO si
comporti signicativamente peggio in caso di immagini molto rumorose per
via della sua dipendenza da test binari su zone di pochi pixel e suggeriscono
11
CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE
l'uso di Viola-Jones in questi casi considerando che di fatto fa una media
dell'intera area esaminata, rendendolo più robusto a variazioni locali come il
rumore. Gli autori segnalano inoltre che è possibile che altri sistemi basati
su features simili, come per esempio NPD, possano incorrere in problemi
analoghi.
Il metodo quindi si dimostra valido quasi quanto lo stato dell'arte ma
allo stesso tempo molto più eciente, quindi più adatto a dispositivi con mi-
nore capacità di calcolo quali sistemi portatili o embedded. Inoltre presenta
vantaggi quali il non richiedere la costruzione di un'immagine integrale con-
trariamente a metodi basati sulle Haar-features, l'usare un solo tipo di feature
ed il non richiedere che l'immagine venga prima processata per facilitare il
lavoro dell'algoritmo.
12
Capitolo 2
Creazione del dataset
Come già accennato nell'introduzione è di fondamentale importanza prima
di iniziare i lavori domandarsi in che modo face detection e face recognition
possano aiutare i non vedenti. All'interno di questo progetto si è deciso di
concentrarsi principalmente sugli aspetti sociali della vita del non vedente, e
quindi è necessario pensare a che scopi possano avere le tecnologie succitate
in questo ambito.
All'inizio si è ragionato domandandosi che tipo di nuove possibilità de-
siderasse un non vedente, approccio rivelatosi purtroppo infruttuoso sia per
l'incapacità di immedesimarsi nel non vedente da parte dei membri del pro-
getto, sia per la giusticabile impossibilità da parte dei non vedenti a cui è
stato chiesto di immaginare le possibilità che la vista potesse orirgli, spe-
cialmente nel caso di cecità dalla nascita. Si è rivelata vincente l'idea di
arontare il ragionamento dalla prospettiva di una persona normo-vedente
chiedendosi in che modo questa tragga vantaggio in ambito sociale dal pos-
sesso della vista e solo in seguito domandandosi come sia possibile trasferire
tali vantaggi ad un non vedente.
Similmente si è rivelata una buona idea trascurare temporaneamente il
mezzo (face detection, face recognition) per concentrarsi solo su che risultati
si vogliano ottenere. Fortunatamente molti studi sono già stati fatti sull'u-
tilità che la vista ha nelle interazioni sociali ed oggi sappiamo che in una
conversazione più del 90% dell'informazione trasmessa è non verbale, ovvero
non è estratta solamente dalle parole pronunciate ma anche dai toni, e in una
quantità superiore al 60% dai gesti, dalle espressioni che le accompagnano e
da altri elementi visivi[13, 14].
Purtroppo insegnare ad un algoritmo a riconoscere tutte le sottigliezze
della comunicazione non verbale è un compito improbo, soprattutto tenendo
conto della dicoltà di classicazione di questa informazione non verbale al
di là dell'informatica e della computer vision, ma già semplicemente nella
denizione esplicita di queste informazioni che vengono processate dal no-
stro cervello in maniera implicita. Si è stati costretti quindi a concentrarsi
13
CAPITOLO 2. CREAZIONE DEL DATASET
solamente su alcuni punti chiave.
In seguito a questo cambio di prospettiva un semplice ragionamento rende
evidente che i principali ausili visivi alle interazioni sociali sono:
• Riconoscere la presenza e posizione di una persona conosciuta in uno
spazio
• Riconoscere la presenza e posizione di ulteriori persone nello spazio
circostante
• Riconoscere le espressioni facciali, per lo meno le più semplici, per
estrapolare una eventuale disponibilità all'interazione sia di un cono-
scente che di uno sconosciuto
• Riconoscere espressioni facciali durante una discussione per meglio
interpretare le parole in una conversazione
• Riconoscere la distanza dell'individuo con cui si conversa
• Individuare elementi di interesse in una persona, che ci invoglino ad
iniziare una conversazione (e.g. una maglietta sul nostro lm preferito)
linea invisibile
Si può inoltre notare come gli esempi appena visti di ausilio possano venire
divisi in due categorie principali:
• Ausilio nel migliorare un'interazione che già sarebbe avvenuta (fornen-
do maggiori informazioni sull'informazione trasmessa dall'interlocuto-
re)
• Ausilio nell'iniziare un'interazione che in assenza del dispositivo non
sarebbe avvenuta (fornendo indicazioni sulla presenza di soggetti con
i quali interagire)
linea invisibile
Una volta steso questo breve elenco si è potuto decidere su quali di questi
aspetti concentrarsi, compatibilmente con le tecnologie a nostra disposizione
e con l'intenzione di apportare un contributo incisivo alla vita del soggetto
con decit visivi. Nel nostro caso si è deciso di concentrarsi sull'ausilio ad
iniziare nuove interazioni, basandosi principalmente sulla tecnologia di face
detection ed in una seconda fase, ranando il progetto, di face tracking, face
recognition e riconoscimento delle macro-espressioni.
Questa decisione ha reso evidente la necessità di avere innanzitutto algo-
ritmi di face detection e face recognition robusti ed al contempo performanti.
Infatti l'algoritmo deve essere veloce, possibilmente lavorare in real time, e
leggero, richiedere poca potenza di calcolo, in modo che sia possibile l'imple-
mentazione in maniera eciente su dispositivi portatili, e deve essere robusto
14
CAPITOLO 2. CREAZIONE DEL DATASET
per garantire un'alta adabilità, con errori di rilevamento prossimi allo ze-
ro. È inoltre emersa la necessità di avere delle immagini più signicative
relativamente ai nostri scopi, sia per la fase di addestramento che di test
degli algoritmi esistenti e delle eventuali modiche da noi apportate, al ne
di trovare l'algoritmo che meglio soddisfa le caratteristiche succitate. Gli
algoritmi già esistenti infatti sono stati testati ed addestrati su immagini
signicativamente più facili da riconoscere, anche nei peggiori casi, essendo
tratte da foto e non da lmati, cosa che comporta una serie di dierenze che
vedremo in seguito.
La risposta a queste necessità è stata la creazione di un dataset signi-
cativo di lmati che simulino al meglio le attività sociali di un non vedente,
dataset che si è deciso di rilasciare pubblicamente in futuro in modo che
anche altri gruppi di ricerca incentrati sull'aiuto a persone aette da disa-
bilità visive possano giovarne, sia come piattaforma di test sia, lo volessero,
per addestrare loro algoritmi specicamente per queste situazioni. Inoltre è
risultata evidente la necessità di usare tale dataset per testare gli algoritmi
descritti nel capitolo precedente al ne di determinare il migliore algoritmo
di rilevamento facciale ed allo stesso tempo per fare ulteriori considerazioni
utili all'implementazione del dispositivo nito.
La creazione del dataset è stata pianicata, diretta e svolta in collabora-
zione con dei soggetti non vedenti. Li si è dotati di dispositivi di acquisizione
video portatili e li si è fatti essere protagonisti in prima persona di norma-
li scene quotidiane riprese in varie zone dell'università. In seguito si sono
estratti gli spezzoni più signicativi dalla grande quantità di riprese, sono
state apportate delle piccole modiche necessarie e sono stati etichettati
con un software apposito per usarli successivamente come ground truth per
vericare l'ecacia degli algoritmi da testare.
2.1 Criticità cercate nelle riprese e conseguente di-
rezione
La direzione delle riprese ha richiesto uno studio a priori sul tipo di partico-
larità da ricercarsi nelle riprese in modo da renderle signicative sia tenendo
conto dello scopo nale, ovvero un dispositivo indossabile per ciechi, sia per
meglio mettere alla prova gli algoritmi di face detection e face recognition,
sia sotto l'aspetto sociale.
Innanzitutto per quel che riguarda l'aspetto sociale mi rifaccio a quanto
già scritto all'inizio di questo capitolo. Si è pensato quindi a:
• Scene che mettano alla prova la capacità di riconoscere un soggetto
già familiare al non vedente (e quindi etichettato come tale nel ground
truth) in mezzo ad un gruppo di persone sconosciute
15
CAPITOLO 2. CREAZIONE DEL DATASET
• Scene che mettano alla prova la capacità di riconoscere soggetti inten-
zionati all'inizio di un'interazione (frontali, espressione amichevole
1) in
mezzo ad un gruppo di persone
Sempre sotto l'aspetto sociale, il dataset è stato creato con in mente già
sviluppi futuri rispetto a quelli attuali. Infatti, pur continuando a parlare
di face detection e face recognition, il lavoro attuale si concentra solo sulla
face detection e principalmente sul secondo punto elencato sopra, ovvero
la capacità di riconoscere e contare il numero di facce rivolte verso il non
vedente.
Inoltre, seppur si sia pensato a sviluppi futuri nell'ambito del riconosci-
mento delle espressioni, si è deciso di non tenerne conto nella direzione delle
scene, soprattutto in considerazione dell'assenza di attori capaci di ripro-
durre in maniera naturale diverse espressioni facciali all'interno del nostro
gruppo di lavoro.
Dal punto di vista del dispositivo wearable per ciechi le criticità che ci si
aspetta di avere sono legate sia al fatto che si faccia face detection su frame
estratti da un video e non su immagini statiche, cosa che rende critico il tipo
di videocamera impiegato, sia al non vedente stesso ed al fatto che egli stesso
eettui le riprese.
Nello specico le caratteristiche volute e previste, legate al dispositivo
indossato dal non vedente, sono:
• Zone deformate a bordo inquadratura, dovute all'uso di ottiche gran-
dangolari, usate per avere una veduta più ampia
• Inquadrature storte
• Inquadrature solo parziali dei volti
• Movimenti bruschi che introducono motion blur
Al ne di orire una maggior varietà in questo ambito, e tenendo conto che in
questa fase del progetto non è ancora decisa nessuna specica hardware del
dispositivo, abbiamo utilizzato diversi tipi di videocamere. Si può anticipare
che hanno avuto tutte principalmente gli stessi tipi di criticità dovute al
fatto che tutte hanno caratteristiche simili e necessarie ai nostri scopi e che
sono tra quelle previste, ma ci sono state anche problematiche diverse di cui
discuteremo più approfonditamente in una sezione successiva.
Inne parliamo delle caratteristiche ricercate nei lmati per meglio met-
tere alla prova gli algoritmi di rilevamento facciale. Pur tenendo conto che
abbiamo usato metodi diversi e non solo basati sul metodo Viola-Jones e su
Haar-features, si riscontra che le problematiche maggiori sono sempre legate
alle stesse cause:
1
Eventuale sviluppo futuro
16
CAPITOLO 2. CREAZIONE DEL DATASET
• Condizioni di luce dicile, dovute a carenza di luce, o forti controluce
che rendono scuro il soggetto
• Copertura parziale dei volti, sia a causa di altri oggetti, sia di peli
facciali/capelli
• Volti non frontali
• Volti non verticali
2.2 Acquisizione dei lmati
L'acquisizione dei lmati è stata fatta con l'aiuto di due collaboratrici non ve-
denti che chiameremo MLA e ISA per motivi di privacy e coerentemente con
la nomenclatura usata per rinominare i le acquisiti. Si è scelto di avvalersi
del loro ausilio per rendere il più verosimile possibile il materiale acquisito,
in modo da meglio rappresentare le situazioni che il futuro dispositivo di ri-
levamento facciale dovrà arontare ed essere in grado di riconoscere. Quindi
si è deciso di applicare la stessa logica alle scene da riprendere, immaginando
situazioni in cui un non vedente potrebbe realisticamente trovarsi.
Nello specico il supporto datoci dalle due collaboratrici non vedenti è
stato quello di indossare dei dispositivi di acquisizione e muoversi per si-
mulare interazioni sociali in scene scritte con lo scopo di essere realistiche.
Abbiamo usato contemporaneamente due dispositivi, unendo al compito di
valutare qual è il miglior algoritmo da usare anche quello di riconoscere le mi-
gliori condizioni a priori da usare, ovvero il miglior dispositivo, pro e contro
di diversi tipi di soluzioni per la ripresa ed il miglior preprocessing. Inoltre,
collateralmente, l'uso contemporaneo di due videocamere ha aiutato ad evi-
denziare alcune dierenze tra gli algoritmi usati che altrimenti non sarebbero
state notate.
2.2.1 Scrittura e direzione delle scene
Le scene sono quindi state scritte seguendo la logica già discussa nella sezio-
ne precedente. Innanzitutto si è deciso di fare delle ricognizioni dei luoghi
concordati per le riprese in seguito alla ricezione del benestare dei proprie-
tari dei luoghi interessati. I luoghi utilizzati per le riprese sono stati nello
specico:
• Biblioteca di Giurisprudenza
2
• Bar H2-H3
3
2
cortesia dell'Università degli Studi di Trieste
3
cortesia del Circolo Ricreativo Universitario di Trieste
17
CAPITOLO 2. CREAZIONE DEL DATASET
• Bar Ingegneria e relativa mensa
4
• Fermata dell'autobus
• Atrio e corridoi dell'edicio A
5
In seguito si è deciso dove mettere le nostre comparse, il percorso da far com-
piere al non vedente in modo da incontrarle e che atteggiamenti le comparse
dovessero avere nei suoi confronti. In particolare si è deciso di lmare per
ogni percorso sia una scena in cui la comparsa si accorge ed inizia un'inte-
razione con il non vedente sia una scena in cui non lo riconosce o lo ignora
intenzionalmente. Nel secondo caso inoltre si è fatta un'ulteriore distinzio-
ne, ovvero si è simulato anche il caso in cui il non vedente si accorge del
conoscente al ne di simulare la situazione nella quale il non vedente è già
dotato del dispositivo, oltre al semplice caso in cui nessuna interazione ha
inizio. Questa scelta è stata fatta nell'ottica in cui si renda il dispositivo
capace di continuare l'apprendimento anche in fase di utilizzo per migliorare
ulteriormente i risultati.
La presenza di nostre comparse in mezzo a sconosciuti nelle riprese ha
una duplice funzione: la prima è aggiungere un livello di controllo sulle
riprese ed assicurarsi che certe situazioni sociali avvengano; la seconda, in
vista di sviluppi futuri nell'ambito della face recognition, è di avere dei volti
conosciuti e ripetuti nelle varie scene in modo che sia possibile etichettarli
es usarli per questo ulteriore tipo di prove.
È stato quindi redatto un canovaccio con scritte le scene da girare e le
variazioni da fare per coprire i vari tipi di situazioni signicative, lo si è
inviato al gruppo di lavoro ed eventualmente aggiornato con i consigli e le
critiche ricevute dal gruppo.
Il giorno delle riprese si è dovuto appendere nei luoghi concordati un
avviso sul fatto che sarebbero state eettuate delle riprese, coerentemente
con quanto imposto dalla legge sulla privacy
6, riportato in Appendice A, e si
è atteso l'arrivo delle comparse e del non vedente. Si è quindi proceduto ad
eettuare tutte le riprese concordate una dopo l'altra, per non approttare
eccessivamente della disponibilità dei collaboratori.
Va aggiunta una piccola nota riguardo alcune riprese: nel dataset da noi
creato sono anche presenti scene più improvvisate e decise sul momento
7,
lmate in una sessione precedente alla decisione di assumere un approccio
più sistematico, ma comunque sucientemente valide e signicative da essere
incluse nel risultato nale.
4
cortesia del Circolo Ricreativo Universitario di Trieste
5
cortesia dell'Università degli Studi di Trieste
6
Decreto Legislativo del 30 giugno 2003, n. 196.
7
I lmati eettuati in data 24 settembre 2015
18
CAPITOLO 2. CREAZIONE DEL DATASET
Figura 2.1: La videocamera Gx-9 e la videocamera Polaroid CUBE[15, 16]
2.2.2 Considerazioni sulle videocamere
I due dispositivi, o meglio, le due videocamere usate per l'acquisizione dei
lmati, sono:
• Polaroid CUBE[15], una action cam cubica, come dice il nome, pen-
sata per essere montata su strutture come caschi o moto da sportivi
estremi, che ore una risoluzione Full HD (1920*1080 pixel) ed un
angolo visivo di 124
◦
• SportXtreme OverLook Gx-9[16], degli occhiali da sole con video-
camera integrata, videocamera con risoluzione HD (1280*720 pixel) ed
un angolo visivo di 135
◦
La CUBE, dotata di una placca magnetica, è stata così attaccata ad un
supporto metallico ed appesa al collo in modo che stesse circa 15 centimetri
sotto al collo del non vedente. Si è fatto uso di un ulteriore supporto plasti-
co per impedire alla videocamera di muoversi e girarsi, data la sua natura
cubica. Purtroppo questo tipo di supporto ha fatto sì che risultasse appesa
sottosopra. I Gx-9, essendo un paio di occhiali, sono semplicemente stati
indossati normalmente.
Innanzitutto va evidenziata la dierenza di qualità dei due sensori, come
si può vedere da Figura 2.2: è di qualità nettamente superiore il sensore della
videocamera CUBE, non solo per la maggior risoluzione e per il maggiore
range dinamico
8 ma soprattutto per la nitidezza dell'immagine, che invece
risulta pastosa e dai contorni mal deniti nelle riprese eettuate con la Gx-
9. Tuttavia questo confronto sottolinea solamente la necessità di utilizzare
un buon sensore in fase nale.
È invece notevole la maggiore quantità di motion blur introdotta dal mo-
vimento della testa, molto più rapido di quello del busto in ogni situazione,
8
La capacità di mantenere dettaglio contemporaneamente in zone luminose e buie.
Appurata empiricamente essendo entrambe le videocamere sprovviste di datasheet che ne
specicasse i valori.
19
CAPITOLO 2. CREAZIONE DEL DATASET
Figura 2.2: Stesso istante catturato dalle due videocamere: sopra l'immagine
ripresa dalla videocamera Gx-9, sotto l'immagine ripresa dalla videocamera
CUBE.
20
CAPITOLO 2. CREAZIONE DEL DATASET
nei lmati eettuati con la Gx-9. Questa sfocatura è talmente forte che
non solo nessun algoritmo è in grado di rilevare correttamente alcun volto
nella fase del movimento, ma anche per l'operatore umano incaricato all'e-
tichettatura è impossibile riconoscere il volto in quella macchia sfocata, se
mi è concesso il termine poco tecnico. Inoltre, soprattutto nelle riprese ef-
fettuate da Isa, le riprese eettuate con la videocamera Gx-9 sono risultate
parzialmente ostruite dai capelli che ripetutamente nivano col posizionarsi
davanti all'obiettivo della videocamera. Inoltre entrambe le collaboratrici
non vedenti spesso tendevano ad abbassare lo sguardo, facendo sì che i volti
delle persone molto vicine nissero con l'essere parzialmente o interamente
esterni all'area inquadrata.
Con la videocamera CUBE invece raramente un individuo impegnato in
una conversazione col non vedente è risultato esterno all'inquadratura, ma
è dovuto far notare che questo è strettamente correlato all'inclinazione della
videocamera, e non solo alla sua posizione. Va evidenziata quindi la necessità
di replicare e garantire l'orientamento corretto del dispositivo di acquisizione
indipendentemente da vestiario e struttura sica del soggetto che lo indossa,
in quanto importante per il miglioramento delle riprese.
Tra gli aspetti negativi della CUBE vanno annoverati i rari casi in cui
capi di vestiario ne hanno parzialmente ostruito il campo visivo, e i meno rari
casi in cui la videocamera si è ruotata, come in Figura 2.2. Infatti, essendo la
videocamera appesa al collo e priva di un supporto stabile, è risultata prona
a ruotare sull'asse laterale portando ad inquadrature storte, ovvero nelle
quali l'orizzonte, e tutto il resto di conseguenza, non sono perfettamente
orizzontali.
Per concludere in questa sede il discorso sulle videocamere, anticipando
parzialmente i risultati dei test, si consiglia l'uso della videocamera CUBE
che ha dato in media risultati migliori. In generale si consiglia l'uso di una
videocamera attaccata al busto perché si ritiene di più facile soluzione il pro-
blema di orientare correttamente la videocamera ed assicurarla in maniera
salda tramite appositi sostegni che compensare i rapidi movimenti della te-
sta. Oltretutto considerando che si tratta di pensare ad un dispositivo che
inuenza relazioni sociali si ritiene che un dispositivo indossato sul busto,
essendo meno vistoso, risulti più adatto allo scopo.
2.3 Elaborazione dei lmati
Il passo successivo nella creazione del dataset è stato quello di importare i l-
mati, riesaminarli, convertirli in un formato compatibile con i software usati
in seguito
9, tagliarli, all'occorrenza unirli e sottoporli ad altre elaborazioni,
ed inne rinominarli con un criterio coerente.
9
ViPER-GT[17] ed il toolbox VideoReader[18] per Matlab
21
CAPITOLO 2. CREAZIONE DEL DATASET
Innanzitutto si sono importati i lmati e li si è salvati senza apportare
modiche alla nomenclatura in una cartella
[yyyy_mm_dd]Originals
Si può notare che si è deciso di usare una nomenclatura in inglese, sempre
nell'ottica di rendere in futuro il nostro dataset disponibile come benchmark
per altri progetti per i non vedenti.
Si è poi passati ad una revisione del materiale acquisito alla ricerca degli
spezzoni da estrarre dalla ben più lunga quantità di lmati. Per il primo
insieme di lmati, ripresi senza una vera direzione delle scene, l'estrazione di
singole sequenze più brevi si è basata sulla scelta di momenti che fossero più
signicativi in base alla presenza di almeno alcune delle criticità descritte
all'inizio di questo capitolo. Per gli altri lmati invece si è deciso di tagliare
le sequenze in base a come erano state dirette, ovvero dal ciak iniziale al ciak
nale di ogni scena scritta. La fase di revisione del materiale è stata fatta
in maniera molto semplice, guardando i video disponibili e segnando i tempi
iniziali e nali d'interesse in un semplice le di testo. Inoltre in questa fase
si è già stati attenti a selezionare i tempi in modo che si possano confrontare
facilmente spezzoni girati nello stesso istante con entrambe le videocamere,
come si può vedere da Figura 2.3.
Figura 2.3: Esempio di ricerca del sincronismo per la stessa sequenza girata
con due videocamere
Per lavorare sui lmati si è usato il programma Shotcut[19]
10. Lo si è
scelto per numerose caratteristiche: è gratuito, è open source[20], è disponi-
bile per i principali sistemi operativi
11 e non ultimo per la facilità d'uso. Di
10
Edizione 15.09.10
11
Windows, Mac OS, Linux
22
CAPITOLO 2. CREAZIONE DEL DATASET
seguito esponiamo le principali operazioni svolte:
• Silenziare: si è deciso di rimuovere l'audio al lmato, considerata
l'assenza di informazioni utili presenti in esso, sia per motivi di privacy
che per ridurre le dimensioni dei le.
• Convertire: si è dovuto convertire i lmati nel formato .mpeg, o
più precisamente nel formato costituito da container .mpeg e codec
mpeg1video anché i lmati fossero compatibili in seguito sia con
il programma usato per l'etichettatura[17], sia con la libreria Matlab
usata per l'elaborazione video in fase di test[18]
• Ruotare: [solo CUBE] i lmati registrati con la videocamera Polaroid
Cube, in seguito all'espediente usato per appendere quest'ultima al
collo del non vedente, che ne ha provocato l'essere sottosopra, hanno
richiesto il venire ruotati di 180◦ per tornare al corretto orientamento
• Tagliare: la parte principale del lavoro è stata quella di individuare nel
lmato più lungo i punti iniziali e nali di ogni sequenza e di esportare
• Unire: [solo CUBE] i lmati registrati con la videocamera Polaroid
CUBE, per motivi intrinsechi alla videocamera, risultano spezzati in
segmenti di 5 minuti l'uno. Per questo motivo è stato necessario riunire
alcuni spezzoni a cavallo dei cinque minuti, per ottenere uno spezzone
unico equivalente a quello ripreso con la videocamera GX-9
La procedura utilizzata per svolgere queste operazioni si può trovare in
dettaglio in Appendice B.
È importante inoltre soermarsi sulla nomenclatura usata per rendere più
facile riconoscere sequenze uguali lmate con i due dispositivi, oltre all'uso
di cartelle con nomi deniti in modo da essere ben chiari. Gli spezzoni sono
stati salvati in una sottocartella CUBE_Cuts o Gx9_Cuts a seconda dei casi,
con un nome che rispetta la seguente formattazione:
[Data riprese]_[Videocamera]_[Sigla del non vedente]_
[Numero identificativo del filmato d'origine]_
[lettera assegnata allo spezzone].mpeg
Per esempio avremo i le:
..2015_11_12Gx9_Cuts2015_11_12_GX9_MLA_3_i.mpeg
..2015_11_12CUBE_Cuts2015_11_12_CUBE_MLA_5_i.mpeg
È evidente che in questo modo viene aggiunta ridondanza all'informazione
sullo spezzone. Infatti i dati su le di origine e data di ripresa si possono
ottenere sia dal percorso che dal nome del le. Si è deciso intenzionalmente
di introdurre questa ridondanza per rendere più facile l'identicazione di
tutte le informazioni anche quando il le viene estratto dalla sua cartella
per svolgere delle prove ed allo stesso tempo per trovare rapidamente il le
quando cercato.
23
CAPITOLO 2. CREAZIONE DEL DATASET
2.4 Etichettatura degli spezzoni
Nel capitolo precedente abbiamo denito il dataset, l'esperienza che viene
fornita alla macchina per apprendere, come un insieme composto da due
sottoinsiemi: il sottoinsieme I degli input ed il sottoinsieme O degli output.
Il set di lmati preparati come descritto sopra risponde alla creazione del-
l'insieme degli input. L'etichettatura, cioè la creazione di una verità di base
o ground truthing, corrisponde alla denizione dell'insieme O degli output.
Questa fase è composta concettualmente di due fasi: la fase decisionale,
sul come arontare tutti i vari problemi dell'etichettatura, e la fase pratica di
creazione del ground truth. Nella fase decisionale si è dovuto decidere come
etichettare i lmati e nel dettaglio come segnalare la posizione dei volti, e,
data la mole di lmati acquisiti e la quantità di tempo richiesta per ogni
etichettatura, quali di questi lmati etichettare.
Nella fase pratica si è utilizzato un programma di ground truthing chia-
mato ViPER-GT[17] per denire tramite interfaccia graca le informazioni
relative alle posizioni dei volti, trascritte dal programma come testo in un
le xml. Questo le xml a sua volta verrà letto da un parser che permet-
te a Matlab, il software utilizzato per eseguire i confronti tra algoritmi, di
interpretare le informazioni e confrontarle con quelle date in output dagli
algoritmi testati.
Inoltre è necessario segnalare che all'interno di questa tesi il dataset è
stato utilizzato solo al ne di testare algoritmi già addestrati su dei set
diversi
12 e non per addestrare i vari algoritmi per queste condizioni speciche.
Si lascia questa possibilità a progetti futuri non essendo questo lo scopo
principale della tesi.
2.4.1 Scelta degli spezzoni
Si è deciso, data la quantità di lmati e data la quantità di situazioni signi-
cative presenti in ogni lmato, di selezionarne una porzione ridotta ma co-
munque suciente da essere statisticamente signicativa. Dopo aver notato
la tendenza a scegliere solamente scene molto complesse, che non rispecchia-
vano le situazioni medie riscontrate in tutte le riprese, si è scelto di optare
per un'estrazione casuale anché i risultati non venissero inuenzati dalla
scelta umana di particolari scene.
Il risultato è stato l'estrazione casuale di 6 spezzoni tra i circa 120 pre-
senti alla ne del lavoro di taglio. Potrebbe sembrare un numero ridotto di
input, ma tenendo conto della lunghezza dei lmati variabile tra i 300 ed i
1400 frame, ciascuno con in media almeno un volto, ci ha portati comples-
sivamente ad avere più di 5000 immagini con più di 9000 volti etichettati,
una quantità ritenuta più che suciente anché i test abbiano dei risultati
12
Si vedano le sezioni relative all'addestramento di Viola-Jones, NPD e PICO nei
rispettivi articoli[4, 9, 11]
24
CAPITOLO 2. CREAZIONE DEL DATASET
adabili. La quantità di situazioni coperta da ogni spezzone è tale che anche
con solo sei lmati tutte le situazioni descritte nella sezione Criticità cercate
nelle riprese e conseguente direzione sono risultate incluse nel test, insieme
con altre situazioni prive di criticità, in modo da rappresentare in modo più
fedele possibile le scene che il dispositivo nale del progetto, una volta in
uso, si troverebbe ad arontare.
Tuttavia, per necessità del progetto, si è deciso di aancare a queste scene
estratte casualmente alcuni spezzoni più specici. Si tratta di sottospezzoni
di una decina di secondi estratti da scene a loro volta selezionate casualmente
da dei sottoinsiemi specici delle riprese, per ovviare all'assenza di alcune
situazioni, o meglio di alcuni luoghi di ripresa, dalla prima selezione casuale.
Si può quindi denire la selezione come semi-casuale e garantirne la validità
nel coprire oggettivamente un intervallo di situazioni realisticamente ampio.
Alla ne del processo di etichettatura ci si è quindi trovati con 9 lmati,
dalle varie caratteristiche.
• 2015_09_24_CUBE_MLA_13_6
• 2015_09_24_CUBE_MLA_14_4
• 2015_10_15_CUBE_ISA_1_a
• 2015_10_15_CUBE_ISA_7_p
• 2015_10_15_GX9_ISA_2_k
• 2015_11_12_CUBE_MLA_6_extra5
• 2015_11_12_GX9_MLA_1_b
• 2015_11_12_GX9_MLA_3_extra3
• 2015_11_12_GX9_MLA_5_extra8
Tra questi lmati ve ne sono infatti:
• Videocamera: 4 Gx-9, 5 CUBE
• Collaboratrice: 5 ISA, 4 MLA
• Luoghi: 4 all'aperto, 5 al chiuso
Vedremo nel prossimo capitolo se e quali eetti hanno queste dierenze
sul rilevamento facciale.
25
CAPITOLO 2. CREAZIONE DEL DATASET
2.4.2 Criteri di etichettatura
La decisione sui criteri di etichettatura è stata altamente inuenzata dallo
scopo del dataset come piattaforma di test specica per face detection al
ne di interazioni sociali per non vedenti, e non come piattaforma di test
generica per metodi di face detection. Si è deciso quindi di etichettare tutte
le facce reputate pronte ad un interazione sociale. Questa denizione molto
ambigua è stata quindi ridotta a dei parametri molto più precisi:
• Orientamento orizzontale: da laterale a quasi 90
◦ a frontale
• Orientamento verticale: indierente
• Distanza massima: circa 3 metri
13, e comunque riquadri mai inferiori
ai 24 pixel sul lato più corto
• Occlusione: anche volti parzialmente occlusi, nché almeno il 50% del
volto è visibile
Inoltre è altrettanto importante, oltre al criterio su quali volti etichattare,
quello relativo alla denizione del volto. Si è optato per denire così i contorni
del rettangolo contenente il volto:
• Estremità superiore: corrisponde con l'estremità superiore della fronte
• Estremità inferiore: corrisponde con l'estermità inferiore del mento
• Estremità laterali (caso frontale): i contorni del volto
• Estremità laterali (caso laterale): il contorno del volto da un lato
14 e
l'attaccatura dell'orecchio dall'altro lato
In seguito si è svolta una riunione apposita del gruppo di lavoro per
denire criteri di etichettatura più stringenti, anche nell'ottica di sviluppi
futuri e che permettano di eettuare confronti più precisi. In realtà il criterio
di denizione di cosa sia un volto è rimasto pressoché invariato, però vi si
sono aggiunte alcune informazioni che permettano, qualora lo si volesse, di
discriminare solo alcune etichettature. Per motivi di tempo non si è fatto
però uso di questa informazione aggiuntiva nell'ambito della tesi, in quanto
questi ulteriori criteri sono stati deniti quando la tesi era già quasi alla sua
conclusione. Tali criteri aggiuntivi sono:
• Aggiunta di un ag per discriminare la lateralità del volto: se non si
vedono interamente due occhi il volto viene considerato laterale
• Distanza massima: circa 5 metri, e comunque riquadri mai inferiori ai
20 pixel sul lato più lungo
13
calcolati ad occhio
14
quindi la parte più sporgente tra naso e guancia
26
CAPITOLO 2. CREAZIONE DEL DATASET
• Aggiunta di tre punti: occhio destro, occhio sinistro, bocca. Punto
messo nella parte centrale dell'elemento.
• Aggiunta di un ag per discriminare l'occlusione di un volto
2.4.3 Processo di etichettatura
Il processo pratico di etichettatura a sua volta si è diviso in più parti: la
creazione dello schema base, ovvero la struttura delle etichette, ed il pro-
cedimento ripetitivo di etichettare ogni singolo volto che risponde ai criteri
deniti nella sezione precedente in ogni singolo frame delle scene scelte. En-
trambi i processi sono stati svolti quasi interamente tramite interfaccia gra-
ca in ViPER-GT[17] ed entrambi i processi sono corrisposti alla creazione
di specici le .xml contraddistinti dall'estensione .xgtf (xml ground truth
le). Per praticità alcune parti minori dell'etichettatura sono state fatte
modicando in un editor di testo i le così creati invece che intervenendo
via interfaccia graca, ma tutto il lavoro svolto avrebbe potuto essere svolto
interamente in ViPER-GT.
Tutti i dettagli sulla procedura utilizzata per svolgere questo lavoro si
possono trovare in Appendice C. linea invisibile
linea invisibile
Figura 2.4: Interfaccia principale di ViperGT. Si può notare che in questo
screenshot viene usato il vecchio criterio di etichettatura
27
CAPITOLO 2. CREAZIONE DEL DATASET
Figura 2.5: Schema Editor di ViPER-GT e risultato equivalente in forma di
le xml. Si può notare la denizione dei criteri avanzati di etichettatura
linea invisibile
linea invisibile
linea invisibile
linea invisibile
28
Capitolo 3
Test del dataset
La procedura di test del dataset, o meglio, l'uso del dataset per testare i tre
algoritmi discussi nel Capitolo 1
1 è stata svolta tramite Matlab
2[21]. Più nel-
lo specico si è usato un tool[18] per estrarre i frame dal lmato e considerarli
ciascuno come una singola immagine, in seguito si sono usati i vari metodi
di face detection su ciascun frame per ottenere una matrice contenente le
posizioni dei volti in ogni frame. Si è poi usato un parser per estrarre dai
le .xgtf, che chiameremo metadata per semplicità, le informazioni riguar-
do alle posizioni dei volti annotati manualmente e si è confrontata l'area di
sovrapposizione per determinare i true positive, ovvero le detection corrette.
Per ogni test si è avuto sia un riscontro graco in tempo reale dei risultati
(Figura 3.1), sia si è modicato il codice usato per ottenere dei risultati nu-
merici signicativi (Tabella 3.1). In seguito si sono analizzati i risultati per
valutare contemporaneamente quale algoritmo fosse più ecace e per fare ul-
teriori considerazioni di tipo qualitativo. In questo capitolo si approfondirà
questo lavoro.
3.1 Implementazione in Matlab
Si è deciso di usare Matlab in quanto standard accademico. L'idea è stata
quella di implementare un metodo che permettesse di confrontare allo stesso
modo tutti gli algoritmi da testare. Si è usato del codice scritto in prece-
denza da un altro membro del progetto
3, al quale sono state apportate delle
modiche più e meno importanti per adattarlo agli scopi di questa tesi ed
all'evoluzione del progetto stesso.
1
Viola-Jones, Normalized Pixel Dierence, Pixel Intensity Comparisions Organized in
Decisions Trees[4, 9, 11]
2
Versione R2015a
3
dott. Jacopo Fragasso
29
CAPITOLO 3. TEST DEL DATASET
Figura 3.1: Esempio di confronto graco. Si può vedere:
-Sopra il risultato su un singolo frame
-Sotto il graco relativo all'intero lmato (si noti che l'immagine si riferisce
al test di un singolo algoritmo)
True Positive False Positive False Negative
Somma NPD 421 3558 1344
VJ 285 1385 1480
PICO 568 4048 1197
PICO alt 897 12348 868
Media NPD 0.30507 2.5783 0.97391
VJ 0.20652 1.0036 1.0725
PICO 0.41159 2.9333 0.86739
PICO alt 0.650 8.948 0.629
linea invisibile
NPD Viola-Jones PICO PICO alt
Recall (%) 23.8527 16.1473 32.1813 50.8215
Precision (%) 10.5805 17.0659 12.305 6.7724
Tabella 3.1: Risultati sul video 2015_11_12_GX9_MLA_1_b, lungo 1380
frames, contentente 1765 volti in totale.
30
CAPITOLO 3. TEST DEL DATASET
Tale metodo si può dividere in tre blocchi principali in base allo scopo
da essi svolto: una prima parte relativa all'uniformazione dei risultati degli
algoritmi, una parte relativa al parsing dei dati contenuti nei le .xgtf, in
modo che anch'essi siano consistenti con la formattazione dei risultati dati
dagli algoritmi ed inne la parte relativa al confronto vero e proprio di questi
dati.
Per uniformare il formato in cui vengono forniti i risultati delle detection
dagli algoritmi, inizialmente solo NPD e Viola-Jones, è stata semplicemente
creata una funzione nella quale passare i giusti parametri all'algoritmo. Parte
importante del lavoro svolto in precedenza da Fragasso è stata però quella
di implementare in Matlab la versione OpenCV di Viola-Jones invece di
utilizzare la versione già esistente per Matlab.
Con parsing in informatica si intende l'atto di estrarre da una sequenza di
dati, in questo caso da una serie di stringhe, informazioni sulla struttura del
testo analizzato grazie al riconoscimento della grammatica formale in cui tale
testo è stato scritto. In questo caso quindi dopo aver studiato la struttura
del le .xgtf, ovvero un semplice le .xml la cui struttura è ripetitiva e
determinata dalla creazione dello schema-base come visto nel Capitolo 2, si
sono determinati dei token da riconoscere e quindi usare per determinare
quali informazioni estrarre dal ben più complesso blocco di codice.
In seguito le informazioni estratte sono state usate per costruire una
struttura analoga a quella passata dai classicatori per comunicare numero
e posizione dei volti rilevati. Tale struttura è una matrice bidimensionale,
larga uno ed alta quanto il numero di frames componenti il relativo spezzone
analizzato. Ogni elemento della matrice contiene tanti array quanti i volti
rilevati nel relativo frame. Ogni array si compone di quattro numeri che
indicano rispettivamente:
• Posizione orizzontale dell'angolo superiore sinistro. Distanza dal bordo
sinistro espressa in pixel.
• Posizione verticale dell'angolo superiore sinistro. Distanza dal bordo
superiore espressa in pixel.
• Larghezza del rettangolo, espressa in pixel.
• Altezza del rettangolo, espressa in pixel.
31
CAPITOLO 3. TEST DEL DATASET
Frame Esempio di matrice
...
13 [93 189 36 49] [1240 350 40 58] [1260 410 20 51 ]
14 [105 187 36 49 ] [1245 352 35 58]
15 [115 187 36 49] [ 1250 356 30 58]
16 [123 192 36 49]
17 [127 195 36 49]
18 []
...
Tabella 3.2: Esempio di parte di una matrice rappresentante le detection o
il risultato del parsing di un le .xgtf
Inne un blocco di codice raggruppa tutto insieme per eettuare il con-
fronto vero e proprio.
La prima parte del codice usa il tool VideoReader[18] per convertire il
lmato in una serie di frames, o meglio in un array quadridimensionale le
cui dimensioni sono:
• Posizione verticale (in pixel)
• Posizione orizzontale (in pixel)
• Valore del pixel (colore espresso come canale [R,G,B])
• Posizione temporale (in frames)
È evidente che estraendo le prime tre dimensioni, relativamente ad una posi-
zione temporale, si ottiene un'immagine che ragura il frame che compone
il video in quell'istante.
Viene poi invocato il parser per ottenere le informazioni relative al ground
truth e salvarle in una matrice strutturata anch'essa come descritto sopra.
Inne, iterativamente, frame per frame, si esegue la face detection sul-
la relativa immagine e se ne confrontano i risultati con i valori salvati nel
relativo elemento della matrice del ground truth.
Come accennato in precedenza e visto in Figura 3.1 il confronto dei risul-
tati è stato espresso gracamente sia disegnando su ogni frame i rettangoli
deniti dalla detection sia quelli estratti dal ground truth, sia realizzando un
istogramma che frame per frame mostrasse il numero di true positive, false
positive e false negative
4. Con questi termini si indicano rispettivamente le
detection corrette, le detection incorrette e i volti deniti nel ground truth
ma non rilevati dal classicatore.
La seconda parte rende evidente quindi la necessità di stabilire un criterio
per denire quando una detection sia corretta. Gracamente è facile dire che
4
Sarà data in seguito una denizione formale di questi termini
32
CAPITOLO 3. TEST DEL DATASET
una detection è corretta in caso di sovrapposizione dei rettangoli, in special
modo se sono centrati attorno al volto allo stesso modo, al netto di una certa
tolleranza. Le basi di tale regola sono di facile denizione numerica, posto
che non si facciano considerazioni sulla centratura dei rettangoli. Infatti
per individuare una sovrapposizione è stato suciente basarsi sul rapporto
tra l'intersezione e l'unione delle aree di rettangoli parzialmente sovrapposti,
più facilmente denibile, computazionalmente più leggera e che permette la
denizione di soglie di tolleranza.
Formalmente: sia RGT il rettangolo denito nel ground truth e sia RD il
rettangolo denito dal classicatore come detection di un volto, consideriamo
la detection un true positive se
RGT ∩ RD
RGT ∪ RD
≥ T
dove T è il valore di soglia. Si noti come intervenendo su questo valore
sia possibile modicare la tolleranza del confronto: valori minori rendono
il metodo più tollerante, considerando come true positive anche casi in cui
i rettangoli sono sovrapposti solo in piccola misura, mentre valori di soglia
più alti rendono il metodo molto più intollerante, portandolo a scartare tutti
i valori tali che i rettangoli non siano altamente sovrapposti, no al caso
estremo T = 1 che accetta come validi solo i casi in cui i due rettangoli siano
perfettamente sovrapposti.
3.1.1 Modiche al metodo di confronto
Tuttavia il metodo descritto sopra presentava svariate mancanze sia per la
discutibilità di alcune scelte fatte in fase di implementazione sia per la neces-
sità di aggiornarlo, per tenere conto di considerazioni e nuovi metodi emersi
in fasi del progetto successive alla ne della collaborazione con l'autore del
codice originale. È stato quindi necessario intervenire per porre rimedio a
queste carenze e per rendere il metodo più ane alle necessità di questa tesi.
Le modiche principali al metodo di confronto sono state l'aggiunta del
metodo PICO e di una sua versione alternativa agli algoritmi da confrontare
e l'implementazione di metodi che lavorassero numericamente sui risultati
delle detection e che salvassero i risultati in un formato adatto a successive
analisi numeriche.
Grandi modiche
Per aggiungere il metodo PICO agli altri in fase di confronto è stato innan-
zitutto necessario assicurarsi che il formato di salvataggio dei risultati della
detection fosse analogo ai risultati degli altri classicatori e del ground truth.
Appurato che questo avvenisse, lo si è inserito tra le opzioni di rilevamento
disponibili, apportando le modiche necessarie ad assicurarsi che l'informa-
zione passata al comparatore fosse analoga anche strutturalmente a quella
33
CAPITOLO 3. TEST DEL DATASET
passata dagli altri metodi. linea invisibile
Si è deciso di intervenire sul metodo anché fornisse risultati numeri-
ci, sui quali quindi fosse possibile intervenire in modo matematico, invece
che basarsi unicamente sull'esposizione graca dei risultati. Per fare ciò si
è innanzitutto studiato il codice per estrarre i risultati numerici relativi al-
la quantità di true positive, false positive e false negative trovati ad ogni
comparazione. Si sono poi deniti degli indici che riassumessero i risultati
del confronto in una maniera standardizzata e signicativa, e si è scritto un
metodo che visualizzasse in forma di tabella dalla facile interpretazione tali
risultati, come si può vedere in Figura 3.2.
La teoria sugli indici numerici usati verrà approfondita nella sezione suc-
cessiva relativa alla discussione sui risultati dei test. linea invisibile
Figura 3.2: Esempio di tabella riassuntiva con i risultati numerici di un
confronto esposta nella console di Matlab
Piccole modiche
Oltre alle modiche sopra descritte, dall'impatto critico sul lavoro svolto,
sono state eettuate svariate modiche minori per rendere più agevole e
talvolta veloce l'utilizzo del codice.
Nonostante la decisione di implementare ed usare indici numerici, si è
deciso di continuare ad usare anche i risultati graci, per avere informazioni
di tipo qualitativo sui risultati delle detection, scelta che vedremo si è rivelata
fondamentale. Tuttavia la decisione di usare spezzoni lunghi oltre 300 frames
invece che solamente qualche decina ha reso necessario modicare la graca
per eliminare contorni che rendevano illeggibili i risultati esposti in forma di
istogramma. Il risultato nale è quello che già si può vedere in Figura 3.1.
34
CAPITOLO 3. TEST DEL DATASET
Inoltre si è intervenuti sul tempo di attesa tra la visualizzazione di un
frame e del successivo, per velocizzare la procedura di test.
Si è poi modicato il metodo di confronto in modo che in seguito al-
la scelta di un lmato questo svolgesse consecutivamente la prova di tutti
gli algoritmi invece che dover intervenire manualmente di volta in volta per
specicare il detector che si intendeva usare, mediante modica manuale del
codice. Questa scelta ha portato molteplici vantaggi. Innanzitutto ha ridot-
to il lavoro manuale per testare i lmati, rendendolo quindi più veloce grazie
alla possibilità di lasciare il calcolatore ad elaborare i lmati in background
mentre si arontavano altri aspetti della tesi. In secondo luogo il codice così
modicato richiedeva che il lavoro di parsing dei metadata e di trasformazio-
ne del lmato nella matrice quadridimensionale sopra descritta venisse svolto
solo una volta per ogni spezzone invece che ogni volta che veniva cambiato
detector, riducendo ulteriormente i tempi di test.
Inoltre si è posto rimedio ad una pecca riguardante la volatilità dei risul-
tati del confronto. Infatti il codice originale non salvava le soluzioni in alcun
luogo, limitandosi a visualizzarle unicamente in forma graca e rendendo di
fatto l'unico modo per rivedere i risultati di un confronto, svolgerlo nuova-
mente. Si è quindi implementato un metodo che al termine di ogni confronto
ne salvasse i valori più importanti in un relativo le dal nome signicativo,
in quanto contenente indicazioni chiare sul lmato analizzato e sul detector
impiegato.
3.1.2 Modiche al Parser dei metadata
Come già scritto alla ne del secondo capitolo a lavoro di tesi inoltrato so-
no stati deniti dei nuovi criteri di etichettatura più avanzati. Tra questi
l'aggiunta di ag per l'occlusione e per la lateralità che hanno quindi reso
necessarie delle modiche sostanziali al parser in modo da poter sfruttare
l'informazione aggiuntiva.
Queste modiche che in principio si erano ritenute di facile esecuzione
hanno invece richiesto una sostanziale riscrittura del codice. Il codice origi-
nale nell'eettuare il parsing non teneva conto dell'indicazione sulla persona
a cui appartenesse un volto. Questo ha comportato l'impossibilità di appli-
care quindi una maschera che ltrasse i risultati in base ad un ag, in quanto
questo non sarebbe potuto venir applicato ad una singola detection ma ad
un intero frame, e quindi a tutte le detection in esso contenute. Era di fatto
impossibile quindi discriminare uno specico volto in base alla sua lateralità
o occlusione.
Si è quindi scritto un metodo che creasse una matrice
Nframes ∗ Npersone
contenente in ciascuna colonna le informazioni sulla presenza e posizione
del volto di una sola persona, divise ovviamente in modo che ad ogni riga
35
CAPITOLO 3. TEST DEL DATASET
corrisponda un frame, invece che una matrice
Nframes ∗ 1
in cui ciascun elemento contiene mescolate le informazioni su tutti i volti
presenti in un frame come visto in precedenza.
Per non riscrivere tutto il codice è risultata valida la scelta di costruire
ciascuna colonna della matrice del nuovo metodo invocando il vecchio me-
todo su di una sottostringa contenente le informazioni su una sola persona
alle quali veniva aggiunto un header uguale per tutte le sottostringhe, per
rispettare il formato originale del le .xgtf. In maniera simile si sono create
delle matrici, sempre bidimensionali, di dimensione
Nframes ∗ Npersone
in cui ciascun elemento contiene un valore booleano sulla lateralità di un
volto o sulla sua occlusione. In seguito è bastato sfruttare queste matrici per
creare una matrice denitiva in cui a scelta venissero eliminati, o meglio non
venissero copiati, i valori in posizioni corrispondenti ad un valore true nella
matrice ltro creata a partire dai ag.
Inne, per garantire la coerenza del risultato del parsing, si è appiattita
la matrice denitiva in una matrice di dimensioni
Nframes ∗ 1
in cui ciascun elemento contiene le informazioni su tutti i volti presenti in
un frame che hanno superato il ltraggio.
3.2 Risultati sperimentali
In seguito alle modiche apportate al codice Matlab si sono potuti svolgere
i test sui lmati.
Si è deciso di usare i parametri già usati in precedenza da altri membri
del progetto in quanto lo scopo di questa tesi non è la ricerca dei migliori
parametri ma la valutazione dell'adabilità del dataset da noi creato come
riferimento per poi valutare l'ecacia di successivi lavori, siano essi interven-
ti sul codice dei classicatori o sui parametri scelti, siano essi diversi tipi di
preprocessing applicati all'immagine prima di eettuare la detection. In Ap-
pendice D si possono trovare tali parametri passati ai classicatori durante
i nostri test.
3.2.1 Accenni su precision and recall
Si è deciso di usare precision e recall come metro di giudizio, in quanto
standard per la valutazione di classicatori.
36
CAPITOLO 3. TEST DEL DATASET
È necessario denire i tre possibili casi che si ottengono in seguito ad
un confronto tra una detection ed il relativo ground truth, ovvero i già cita-
ti true positive, false positive e false negative, nora menzionati senza una
denizione formale:
• Deniamo come true positive (TP) un'identicazione corretta, ovvero
il caso in cui vi sia un riscontro tra un volto individuato dal classica-
tore ed un volto denito nel ground truth come descritto nella sezione
precedente
• Deniamo come false positive (FP) un'identicazione non corretta,
ovvero il caso in cui il classicatore individui un volto che secondo il
ground truth non esiste
• Deniamo come false negative (FN) un'identicazione non avvenuta,
ovvero il caso in cui il classicatore non individui un volto denito nel
ground truth e quindi esistente
Una volta formalizzate queste denizioni è possibile dare una denizione di
precision e recall.
Con precision si denisce la quantità di identicazioni corrette rispetto
alla quantità totale di identicazioni. Quest'informazione è importante per
capire quanto sia possibile darsi di una detection o quanto invece supporre
che essa non sia realmente, nel nostro caso, un volto. Avendo usato il suo
valore percentuale, esso è quindi dato da:
TP
TP + FP
· 100
Un valore basso indica che la maggior parte delle detection non sono volti,
un valore del 100% indica che ogni detection è corretta e corrisponde ad un
volto.
Con recall si denisce la quantità di identicazioni corrette rispetto alla
quantità totale di elementi, nel nostro caso volti, da identicare. Quest'in-
formazione è importante per capire qual'è la probabilità che un volto sia
identicato o quanto invece ci si possa aspettare che non venga riconosciuto.
Avendo usato il suo valore percentuale, esso è quindi dato da:
TP
TP + FN
· 100
Un valore basso indica che la maggior parte dei volti non sono stati ri-
levati mentre un valore del 100% indica che ogni volto presente è stato
correttamente rilevato.
37
CAPITOLO 3. TEST DEL DATASET
True Positive False Positive False Negative
Somma NPD 2168 1756 1178
VJ 1749 2602 1597
PICO 2393 2286 953
PICO alt 2587 6871 759
Media NPD 1.905 1.543 1.035
VJ 1.537 2.286 1.403
PICO 2.103 2.009 0.837
PICO alt 2.273 6.038 0.667
linea invisibile
NPD Viola-Jones PICO PICO alt
Recall (%) 64.7938 52.2714 71.5182 77.3162
Precision (%) 55.2497 40.1977 51.1434 7.3525
Tabella 3.3: Risultati sul video 2015_10_15_CUBE_ISA_7_p, lungo 1138
frames, contenente 3346 volti in totale.
3.2.2 Discussione dei risultati
In Appendice E si possono trovare i risultati estesi ottenuti per ciascun l-
mato analizzato, come visti in Tabella 3.1 e come si può rivedere in Tabella
3.3. linea invisibile
Per ogni lmato viene indicato:
• Il numero di frame totali
• Il numero di volti annotati
• Per ciascun classicatore, il numero totale di:
 True Positive
 False Positive
 False Negative
• Per ciascun classicatore, la media sui frame di:
 True Positive
 False Positive
 False Negative
• Il valore di Recall, espresso in percentuale
• Il valore di Precision, espresso in percentuale
38
CAPITOLO 3. TEST DEL DATASET
Filmato Lunghezza (in frames)
A 2015_09_24_CUBE_MLA_13_6 379
B 2015_10_15_CUBE_ISA_7_p 1138
C 2015_11_12_GX9_MLA_1_b 1380
D 2015_09_24_CUBE_MLA_14_4 697
E 2015_10_15_CUBE_ISA_1_a 1200
F 2015_11_12_CUBE_MLA_6_extra5 838
G 2015_10_15_GX9_ISA_2_k 360
H 2015_11_12_GX9_MLA_3_extra3 300
I 2015_11_12_GX9_MLA_5_extra8 360
Tabella 3.4: Elenco degli spezzoni analizzati ed associazione ad una relativa
lettera per sintesi.
Videocamera Luogo Caratteristiche
A CUBE Esterno bar di farmacia
Forte contrasto e controluce.
Volti occlusi e laterali.
Videocamera storta.
B CUBE Fermata dell'autobus
Molti volti.
Buona illuminazione, ma luce sousa.
C Gx-9 Biblioteca di giurisprudenza
Motion blur dovuto alla GX9.
Illuminazione abbastanza buona.
D CUBE Esterno edicio centrale
Occlusioni parziali.
Videocamera storta.
E CUBE Interno del bar H3
Ambiente scuro.
Movimenti bruschi.
Molti volti occlusi o laterali
F CUBE Interno della mensa C4
Contrasto e controluce.
Illuminazione abbastanza buona.
Movimenti lenti.
G Gx-9 Interno del bar C4
Contrasto e controluce.
Illuminazione abbastanza buona.
H Gx-9 Interno del bar H3
Ambiente scuro.
Movimenti bruschi.
Abbondanza di volti laterali.
I Gx-9 Fermata dell'autobus Buona illuminazione, ma luce dura.
Tabella 3.5: Elenco degli spezzoni analizzati e delle relative caratteristiche
39
CAPITOLO 3. TEST DEL DATASET
Innanzitutto però è necessario associare ai lmati esaminati una lettera
identicativa per sintesi, ed ai ni dell'analisi dei risultati è utile evidenziare
le caratteristiche salienti di ciascuno spezzone.
In seguito verranno riportati invece i risultati di recall e precision per
tutti gli spezzoni. Questo perché in quanto indipendenti dal numero di frame
e dal numero di volti presenti in media in ciascun frame, sono gli unici
risultati confrontabili tra lmati. Esporremo anche i risultati di precision
e recall calcolati usando la somma di true positive, false positive e false
negative su tutti i lmati, anché spezzoni più brevi avessero un'incidenza
sul risultato proporzionale alla propria lunghezza, o meglio al numero di volti
presenti in tale spezzone, e non pari all'incidenza di lmati con più del triplo
di volti.
Analisi visiva dei risultati
Prima di discutere i risultati numerici del confronto è necessario fare una
considerazione su una particolarità resa evidente dall'analisi visiva dei risul-
tati, ovvero dal guardare frame per frame non solo la presenza o assenza, ed
in quale quantità, di true positive, false positive e false negative, ma anche
della posizione delle detection incorrette.
Si è notato infatti che le detection corrette, per forza di cose, restano nella
stessa zona tra un frame ed il suo successivo, a fronte di una certa tolleranza
necessaria per tener conto dei movimenti di chi lma e di chi si muove nella
scena. Le detection incorrette invece hanno dimostrato la tendenza a non
essere continuative nella stessa area ma apparire invece in maniera casuale
in zone completamente diverse tra un frame ed il successivo.
Questa considerazione è importante perché ci fornisce uno spunto su co-
me sfruttare la componente temporale, peculiarità data dal lavorare su dei
lmati invece che su immagini statiche, per migliorare la detection nale. Si
può decidere infatti di ignorare la precision come elemento di valutazione e
di scegliere il classicatore solo in base ad i suoi valori di recall, usando poi
la componente temporale per ltrare i risultati indesiderati, riconoscibili in
quanto di frame in frame essi non si ripresentano nelle stesse aree.
Un metodo per il ltraggio basato sulla presenza in frame adiacenti di
rettangoli nella stessa area potrebbe essere il seguente: sia Dt il rettangolo
che rappresenta una detection all'istante t. Sia
DVtx =
1, se
Dt∩Dtx
Dt∪Dtx
≥ T
0, altrimenti
(3.2.1)
il valore che determina la presenza di una detection simile nell'immagine
distante x frames dall'istante t, con x ∈ Z e dove T è una soglia scelta in
modo da garantire una corretta tolleranza al metodo. Consideriamo allora
40
CAPITOLO 3. TEST DEL DATASET
Dt una detection corretta, un true positive, se
n
x=−n
DVtx ≥ S (3.2.2)
dove n è il numero di frames circostanti da prendere in considerazione ed
S ∈ R+ è il numero minimo di avvenute conferme nei frame circostanti
desiderato. Questo metodo per quanto semplice è molto essibile. Si può
infatti intervenire su T, S ed n per determinare la migliore tolleranza, sia
rispetto al fattore temporale che posizionale. Si suggeriscono i seguenti valori
per un primo test:
• T = 0.1
• n = 2
• S = 3
Qusti valori sono stati scelti in base ad osservazioni fatte sugli spostamenti
di volti tra un frame ed il successivo in fase di etichettatura ed analisi dei
lmati, secondo la seguente logica: il basso valore di T serve a tener conto di
eventuali grandi spostamenti in caso di movimenti bruschi del non vedente
o del soggetto lmato, mentre i valori di n ed S signicano che cerchiamo
una detection nell'area adiacente in almeno 3 dei 4 frame circostanti, con-
siderando 2 detection su 2 frame circostanti una misura troppo severa, 1
detection su 2 frame un valore troppo permissivo e tenendo conto che au-
mentare il numero di frame da prendere in considerazione aumenta il costo
computazionale.
Si lascia la possibilità di vericare questo metodo e dierenti valori a
sviluppi futuri.
Algoritmo dal miglior recall
Considerata la poca, se non nulla, importanza della precision risulta allora
evidente dalla Tabella 3.6 la netta superiorità dell'algoritmo PICO. Infat-
ti, se gli algoritmi Viola-Jones e NPD hanno dato risultati altalenanti sugli
spezzoni analizzati con risultati migliori talvolta dell'uno talvolta dell'altro,
PICO ha superato entrambi in ogni test. Considerato questo suo mi-
glior comportamento, si è deciso di provarlo modicandone un parametro,
lo stridefactor, in maniera che aumentasse signicativamente il numero
di true positive a fronte di un aumento altrettanto signicativo di false po-
sitive. Guardando le Tabelle 3.6 e 3.7 si può infatti vedere come questo
secondo test chiamato PICO alt abbia sempre superato i valori di recall di
PICO standard a fronte di un notevole abbassamento della precision, come
da aspettative. Queste considerazioni sono ulteriormente confermate guar-
dando la Tabella 3.8 dalla quale risulta evidente l'aumento medio del recall
del 10% a fronte del dimezzamento della precision.
41
CAPITOLO 3. TEST DEL DATASET
NPD VJ PICO PICO alt
A 11.8881 14.6853 24.4755 31.8182
B 64.7938 52.2714 71.5182 77.3162
C 23.8527 16.1473 32.1813 50.8215
D 6.3624 11.4799 21.0235 35.1314
E 10.4646 17.3627 25.5748 36.6025
F 44.8276 40.9037 61.7122 67.1819
G 30.7787 28.9246 41.78 50.6799
H 5.96 8.99333 9.5302 19.0604
I 31.2572 18.6851 43.2526 53.5179
Tabella 3.6: Percentuale di recall per i diversi metodi sui lmati testati. In
grigio evidenziato il risultato migliore per ciascun lmato.
NPD VJ PICO PICO alt
A 4.6512 2.0076 4.9088 2.2671
B 55.2497 40.1977 51.1434 27.3525
C 10.5805 17.0659 12.305 6.7724
D 8.4715 3.5838 14.4762 7.8226
E 12.3136 8.4302 13.0352 7.7604
F 35.3991 13.3852 29.1082 18.4279
G 22.6983 27.9236 22.4287 11.4685
H 13.213 8.7811 23.355 17.1913
I 47.2125 46.2857 54.8246 29.8777
Tabella 3.7: Percentuale di precision per i diversi metodi sui lmati testati.
In grigio evidenziato il risultato migliore per ciascun lmato.
Recall medio(%) Precision media (%)
NPD 33.2928 27.2676
VJ 28.9759 17.2501
PICO 43.6984 24.869
PICO alt 53.7653 12.6236
Tabella 3.8: Valori medi di precision e recall per gli algoritmi testati
42
CAPITOLO 3. TEST DEL DATASET
Tuttavia queste considerazioni sono state fatte ignorando il fattore tem-
porale, di cui già abbiamo accennato l'importanza, non misurato in questa
serie di veriche.
Analisi dei risultati in base alle caratteristiche dei lmati
Più interessante è l'analisi dei risultati tenendo conto delle caratteristiche
del lmato stesso. Si è deciso di escludere dalla maggior parte di queste
analisi i test eettuati con il metodo PICO alternativo, in quanto essi hanno
seguito una logica diversa, orientata alla massimizzazione del valore di recall
a scapito della precision.
Media NPD VJ PICO PICO alt
A 20.71678322 -0.42616 -0.2911 0.181433 0.535866
B 66.4748954 -0.02529 -0.2137 0.075868 0.163089
C 30.75070822 -0.22432 -0.4749 0.046522 0.652694
D 18.49930844 -0.65607 -0.3794 0.136448 0.899066
E 22.50117316 -0.53493 -0.2284 0.136599 0.626693
F 53.65636147 -0.16454 -0.2377 0.150138 0.252077
G 38.0407911 -0.1909 -0.2396 0.098295 0.332251
H 10.87248322 -0.45183 -0.1728 -0.12346 0.753086
I 36.67820069 -0.1478 -0.4906 0.179245 0.45912
Tabella 3.9: Recall medio per ciascun lmato e deviazione normalizzata dal
valore medio dei vari lmati. In grigio chiaro sono evidenziati per ciascun
detector il risultato che ha deviato di meno in negativo dalla media, o di
più in positivo, quindi migliori. In grigio scuro sono evidenziati per ciascun
detector il risultato che ha deviato di più in negativo dalla media, o di meno
in positivo, quindi peggiori.
Le riessioni più interessanti derivano dall'osservazione di quali lmati
abbiano dato i risultati peggiori in quanto ci aiutano a comprendere quali
tipi di criticità abbiano maggiormente inuenzato quali detector. I quattro
risultati in media peggiori, come si può anche vedere dalla Tabella 3.9, sono
stati avuti sugli spezzoni A, D, E ed H. Questi lmati, come si può vedere
in Figura 3.3, sono accomunati dal presentare forte contrasto dovuto a casi
di controluce (A, E, H) oppure ad essere riprese particolarmente storte (A,
D), problema già descritto nel capitolo precedente. È interessante notare
che questi quattro casi coincidono con le volte in cui l'algoritmo Viola-Jones
ha ottenuto valori di recall maggiori di quelli ottenuti dall'algoritmo NPD,
naturalmente entrambi minori di quelli di PICO.
Osservando la Tabella 3.7 si nota che sempre in questi quattro casi, che
possiamo denire come più dicili, PICO si è invece dimostrato l'algoritmo
con i migliori valori di precision. I valori di precision di NPD sono stati
migliori nelle situazioni più facili, ovvero quelle molto luminose, con poco
43
CAPITOLO 3. TEST DEL DATASET
Figura 3.3: Immagini tratte dai quattro spezzoni in cui i classicatori in
media si sono comportati peggio
44
CAPITOLO 3. TEST DEL DATASET
contrasto e girate con la videocamera CUBE. Questo è valso soprattutto nel
lmato B che costituisce quasi un quarto del dataset, relativamente al numero
di volti. Questi migliori risultati in situazioni facili sono stati tanto incisivi
da far risultare mediamente l'algoritmo NPD come quello con i migliori valori
di precision, come si può vedere dalla tabella 3.8.
Concludiamo le considerazioni sulla precision notando che Viola-Jones
in questo ambito ha dato risultati migliori dei concorrenti sui lmati che
presentavano buone condizioni di luce, ma ripresi con la videocamera Gx-
9, della quale abbiamo già evidenziato le carenze, soprattutto in termini di
nitidezza. Questo fatto è coerente con quanto previsto, considerando che il
metodo NPD essendo basato su singoli pixel e su contrasti sore di più la
mancanza di nitidezza.
Le considerazioni più interessanti sono tuttavia quelle che si ottengono
dalla Tabella 3.9 nella quale sono esposti i valori medi di recall per ciascun
lmato e quanto i vari algoritmi siano distanti dalla media, normalizzato
rispetto al valore medio. Si è poi osservato in quali spezzoni ciascun algoritmo
deviasse di più o di meno dalla media, in meglio o in peggio. Da questa analisi
sono risultate evidenti le seguenti considerazioni.
NPD ha il risultato migliore, ovvero che devia in negativo, ma di poco,
dalla media, nel lmato B. Come già visto, è il lmato più facile di tutti.
Il risultato che si è discostato di più dalla media, in negativo, per NPD è
stato quello relativo allo spezzone D, la cui criticità principale è la forte
inclinazione. Questo ci fornisce un'ulteriore conferma della validità di NPD
nché non vi sono criticità nell'immagine.
Viola-Jones ha avuto il risultato migliore sul lmato H, il lmato con
mediamente i risultati peggiori. Invece ha avuto valori di recall mediamente
peggiori nel lmato I, caratterizzato da luce dura causata dalla giornata
soleggiata, che a sua volta ha fatto sì che vi fossero ombre nette sui vol-
ti. Nuovamente questo risultato è conforme alle nostre aspettative, tenendo
conto che Viola-Jones si basa su Haar-Features dipendenti dalla variazione
di luminosità fra speciche aree del volto, ed è quindi fortemente inuenzato
da volti parzialmente in ombra.
I risultati di PICO, variazione migliore sul lmato A, in controluce e stor-
to, ma variazione peggiore sul lmato H, altro lmato che presenta dicoltà
dovute al controluce, sono di dicile interpretazione.
Sono invece di facile interpretazione i risultati di PICO alternativo. Il
risultato migliore si ha sul lmato H, quello mediamente peggiore di tutti,
mentre il risultato meno positivo si ha sul lmato B, quello mediamente mi-
gliore di tutti, a dimostrazione che la variazione del parametro stridefactor
è particolarmente incisiva tanto peggiori siano le condizioni dell'immagine da
analizzare.
Si è voluto inne calcolare precision e recall medi per ciascuna videoca-
mera, facendo la media su tutti i true positive, false positive e false negative
rilevati nei rispettivi lmati. I risultati, coerentemente con le aspettative e
45
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi

More Related Content

Viewers also liked

Analisi e simulazione dei flussi merci e passeggeri del porto di Cagliari
Analisi e simulazione dei flussi merci e passeggeri del porto di CagliariAnalisi e simulazione dei flussi merci e passeggeri del porto di Cagliari
Analisi e simulazione dei flussi merci e passeggeri del porto di Cagliari
Raol Buqi
 
Realizzazione di un Add-on per Google Docs per estrazione interattiva di patt...
Realizzazione di un Add-on per Google Docs per estrazione interattiva di patt...Realizzazione di un Add-on per Google Docs per estrazione interattiva di patt...
Realizzazione di un Add-on per Google Docs per estrazione interattiva di patt...
Lorenzo Gasparini
 
Progettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computer
Alessandro Mascherin
 
Ensayo enseñar español
Ensayo enseñar españolEnsayo enseñar español
Ensayo enseñar español
Yasuira15
 
Turkije dichter bij EU-integratie dan gedacht
Turkije dichter bij EU-integratie dan gedachtTurkije dichter bij EU-integratie dan gedacht
Turkije dichter bij EU-integratie dan gedacht
Thierry Debels
 
America
AmericaAmerica
America
kevin carpio
 
Certificate_Thorng Vichheka
Certificate_Thorng VichhekaCertificate_Thorng Vichheka
Certificate_Thorng Vichheka
Thorng Vichheka
 
Mastering the Upsell
Mastering the UpsellMastering the Upsell
Mastering the Upsell
Gainsight
 
Tracking di prodotto di colata basato su immagini
Tracking di prodotto di colata basato su immaginiTracking di prodotto di colata basato su immagini
Tracking di prodotto di colata basato su immagini
Denis Ronchese
 
Implementazione di un sistema di misura di tipo quantitativo per sensori a na...
Implementazione di un sistema di misura di tipo quantitativo per sensori a na...Implementazione di un sistema di misura di tipo quantitativo per sensori a na...
Implementazione di un sistema di misura di tipo quantitativo per sensori a na...
Pasquale Naclerio
 
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Presentaz...
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Presentaz...Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Presentaz...
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Presentaz...
temp temp
 
Progettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computer
Alessandro Mascherin
 
Implementazione di un sistema di misura di tipo quantitativo per sensori a na...
Implementazione di un sistema di misura di tipo quantitativo per sensori a na...Implementazione di un sistema di misura di tipo quantitativo per sensori a na...
Implementazione di un sistema di misura di tipo quantitativo per sensori a na...
Pasquale Naclerio
 
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Mattia De Bernardi
 
Tracking di prodotto di colata basato su immagini [Presentazione]
Tracking di prodotto di colata basato su immagini [Presentazione]Tracking di prodotto di colata basato su immagini [Presentazione]
Tracking di prodotto di colata basato su immagini [Presentazione]
Denis Ronchese
 
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Mattia De Bernardi
 

Viewers also liked (16)

Analisi e simulazione dei flussi merci e passeggeri del porto di Cagliari
Analisi e simulazione dei flussi merci e passeggeri del porto di CagliariAnalisi e simulazione dei flussi merci e passeggeri del porto di Cagliari
Analisi e simulazione dei flussi merci e passeggeri del porto di Cagliari
 
Realizzazione di un Add-on per Google Docs per estrazione interattiva di patt...
Realizzazione di un Add-on per Google Docs per estrazione interattiva di patt...Realizzazione di un Add-on per Google Docs per estrazione interattiva di patt...
Realizzazione di un Add-on per Google Docs per estrazione interattiva di patt...
 
Progettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computer
 
Ensayo enseñar español
Ensayo enseñar españolEnsayo enseñar español
Ensayo enseñar español
 
Turkije dichter bij EU-integratie dan gedacht
Turkije dichter bij EU-integratie dan gedachtTurkije dichter bij EU-integratie dan gedacht
Turkije dichter bij EU-integratie dan gedacht
 
America
AmericaAmerica
America
 
Certificate_Thorng Vichheka
Certificate_Thorng VichhekaCertificate_Thorng Vichheka
Certificate_Thorng Vichheka
 
Mastering the Upsell
Mastering the UpsellMastering the Upsell
Mastering the Upsell
 
Tracking di prodotto di colata basato su immagini
Tracking di prodotto di colata basato su immaginiTracking di prodotto di colata basato su immagini
Tracking di prodotto di colata basato su immagini
 
Implementazione di un sistema di misura di tipo quantitativo per sensori a na...
Implementazione di un sistema di misura di tipo quantitativo per sensori a na...Implementazione di un sistema di misura di tipo quantitativo per sensori a na...
Implementazione di un sistema di misura di tipo quantitativo per sensori a na...
 
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Presentaz...
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Presentaz...Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Presentaz...
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Presentaz...
 
Progettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computer
 
Implementazione di un sistema di misura di tipo quantitativo per sensori a na...
Implementazione di un sistema di misura di tipo quantitativo per sensori a na...Implementazione di un sistema di misura di tipo quantitativo per sensori a na...
Implementazione di un sistema di misura di tipo quantitativo per sensori a na...
 
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
 
Tracking di prodotto di colata basato su immagini [Presentazione]
Tracking di prodotto di colata basato su immagini [Presentazione]Tracking di prodotto di colata basato su immagini [Presentazione]
Tracking di prodotto di colata basato su immagini [Presentazione]
 
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
 

Similar to Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi

Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...Ce.Se.N.A. Security
 
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...maik_o
 
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...Raffaele Bernardi
 
Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...
Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...
Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...
DamianoRavalico
 
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Davide Ciambelli
 
Art Everywhere: progetto per workshop Google. Sviluppo di sistemi di pattern ...
Art Everywhere: progetto per workshop Google. Sviluppo di sistemi di pattern ...Art Everywhere: progetto per workshop Google. Sviluppo di sistemi di pattern ...
Art Everywhere: progetto per workshop Google. Sviluppo di sistemi di pattern ...
Francesco Cucari
 
Fusione di impronta digitale e impronta vocale per il controllo accessi
Fusione di impronta digitale e impronta vocale per il controllo accessiFusione di impronta digitale e impronta vocale per il controllo accessi
Fusione di impronta digitale e impronta vocale per il controllo accessisanpi89
 
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...Estrazione automatica di informazioni da documenti cartacei: progetto e reali...
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...Luca Bressan
 
Realizzazione di un workflow integrato per la rilevazione di domini phishing
Realizzazione di un workflow integrato per la rilevazione di domini phishingRealizzazione di un workflow integrato per la rilevazione di domini phishing
Realizzazione di un workflow integrato per la rilevazione di domini phishing
GiuliaMilan4
 
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Donato Clun
 
Analisi e sviluppo di uno strumento per l'automazione della verifica di confo...
Analisi e sviluppo di uno strumento per l'automazione della verifica di confo...Analisi e sviluppo di uno strumento per l'automazione della verifica di confo...
Analisi e sviluppo di uno strumento per l'automazione della verifica di confo...Grogdunn
 
Software testing with mocking framework (Android App)
Software testing with mocking framework (Android App)Software testing with mocking framework (Android App)
Software testing with mocking framework (Android App)
gioacchinolonardo
 
Documentazione progetto software - IoSegnalo
Documentazione progetto software - IoSegnaloDocumentazione progetto software - IoSegnalo
Documentazione progetto software - IoSegnalo
Marco Vaiano
 
Profilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiProfilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzati
Pietro Corona
 
Strategie ingestigative in ambito di criminalità informatica
Strategie ingestigative in ambito di criminalità informaticaStrategie ingestigative in ambito di criminalità informatica
Strategie ingestigative in ambito di criminalità informatica
peppespe
 
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Francesco Komauli
 
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
Filippo Muscolino
 
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Davide Bravin
 
Bachelor thesis Calmanovici
Bachelor thesis CalmanoviciBachelor thesis Calmanovici
Bachelor thesis Calmanovici
Alessandro Calmanovici
 

Similar to Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi (20)

Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
 
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
 
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...
 
Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...
Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...
Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...
 
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
 
Art Everywhere: progetto per workshop Google. Sviluppo di sistemi di pattern ...
Art Everywhere: progetto per workshop Google. Sviluppo di sistemi di pattern ...Art Everywhere: progetto per workshop Google. Sviluppo di sistemi di pattern ...
Art Everywhere: progetto per workshop Google. Sviluppo di sistemi di pattern ...
 
Fusione di impronta digitale e impronta vocale per il controllo accessi
Fusione di impronta digitale e impronta vocale per il controllo accessiFusione di impronta digitale e impronta vocale per il controllo accessi
Fusione di impronta digitale e impronta vocale per il controllo accessi
 
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...Estrazione automatica di informazioni da documenti cartacei: progetto e reali...
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...
 
Realizzazione di un workflow integrato per la rilevazione di domini phishing
Realizzazione di un workflow integrato per la rilevazione di domini phishingRealizzazione di un workflow integrato per la rilevazione di domini phishing
Realizzazione di un workflow integrato per la rilevazione di domini phishing
 
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
 
Analisi e sviluppo di uno strumento per l'automazione della verifica di confo...
Analisi e sviluppo di uno strumento per l'automazione della verifica di confo...Analisi e sviluppo di uno strumento per l'automazione della verifica di confo...
Analisi e sviluppo di uno strumento per l'automazione della verifica di confo...
 
Software testing with mocking framework (Android App)
Software testing with mocking framework (Android App)Software testing with mocking framework (Android App)
Software testing with mocking framework (Android App)
 
Documentazione progetto software - IoSegnalo
Documentazione progetto software - IoSegnaloDocumentazione progetto software - IoSegnalo
Documentazione progetto software - IoSegnalo
 
Profilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiProfilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzati
 
Tesi Tamiazzo09
Tesi Tamiazzo09Tesi Tamiazzo09
Tesi Tamiazzo09
 
Strategie ingestigative in ambito di criminalità informatica
Strategie ingestigative in ambito di criminalità informaticaStrategie ingestigative in ambito di criminalità informatica
Strategie ingestigative in ambito di criminalità informatica
 
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
 
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
 
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
 
Bachelor thesis Calmanovici
Bachelor thesis CalmanoviciBachelor thesis Calmanovici
Bachelor thesis Calmanovici
 

Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi

  • 1. UNIVERSITÀ DEGLI STUDI DI TRIESTE Dipartimento di Ingegneria e Architettura Laurea Triennale in Ingegneria dell'Informazione Rilevamento di facce in ussi video per l'ausilio ai non vedenti 4 marzo 2016 Laureando Relatore Michele Vittori Prof. Felice Andrea Pellegrino Correlatore Prof. Giovanni Ramponi Anno Accademico 2014/2015
  • 2. Sommario Questa tesi rientra in un progetto più ampio sul modo in cui la tecnologia attuale possa aiutare persone non vedenti e ipovedenti grazie alla realizzazio- ne di un dispositivo portatile che aiuti questi soggetti nelle loro interazioni sociali, usando l'elaborazione digitale dell'immagine per sopperire alle loro carenze visive. In particolare si intende usare il machine learning, più specicamente nelle forme di rilevamento e riconoscimento facciale, e riconoscimento delle espressioni per aiutare il soggetto ad iniziare conversazioni che altrimenti non avverrebbero. Per questo lavoro è risultata necessaria la creazione di un dataset specico per testare gli algoritmi, intanto di face detection, in condizioni particolari strettamente legate alle situazioni che il dispositivo nale si troverebbe ad arontare: ussi video ottenuti da una videocamera con ottica grandangolare indossata da un non vedente. Il contributo maggiore di questa tesi al progetto è stato la creazione di tale dataset. A partire da queste condizioni iniziali e dagli scopi sociali del proget- to sono state individuate quindi nel dettaglio le criticità che i classicatori avrebbero arontato diversamente dall'essere applicati ad immagini tratte dai dataset classici. Si sono quindi scritte, riprese ed estratte dai lmati delle scene che rispecchiassero tali criticità. In seguito queste sequenze sono state annotate in maniera da renderle pronte al confronto con i risultati della face detection ottenuti dagli algoritmi presi in considerazione, ed allo stesso tempo seguendo criteri che ne evidenziassero il ne sociale. Sono quindi stati testati gli algoritmi di rilevamento facciale sul dataset così creato. Dai risultati si evince che il dataset ore dierenze tali da ren- dere utile usarlo al posto di altri dataset già esistenti ma più generici. La fase di test ha fatto inoltre emergere altre considerazioni utili sulle necessità relative al dispositivo di acquisizione da impiegare e su quale degli algoritmi confrontati sia attualmente il migliore per i nostri scopi. Sviluppi successivi includono lo svolgimento di ulteriori test usando la componente temporale per ltrare le detection indesiderate ottenute dal me- todo con migliore recall a scapito di una minore precision e di provare ad addestrare gli algoritmi scelti con immagini estratte dal nostro dataset. i
  • 3. Indice Sommario i Introduzione iv 1 Machine Learning e Rilevamento Facciale 1 1.1 Accenni sul machine learning . . . . . . . . . . . . . . . . . . 1 1.1.1 Ground truth . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Algoritmi di rilevamento facciale . . . . . . . . . . . . . . . . 2 1.2.1 Viola-Jones . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2.2 Zhu-Ramanan . . . . . . . . . . . . . . . . . . . . . . . 6 1.2.3 Normalized Pixel Dierence (NPD) . . . . . . . . . . . 9 1.2.4 Pixel Intensity Comparisons Organized in Decisions Trees (PICO) . . . . . . . . . . . . . . . . . . . . . . . 10 2 Creazione del dataset 13 2.1 Criticità cercate nelle riprese e conseguente direzione . . . . . 15 2.2 Acquisizione dei lmati . . . . . . . . . . . . . . . . . . . . . . 17 2.2.1 Scrittura e direzione delle scene . . . . . . . . . . . . . 17 2.2.2 Considerazioni sulle videocamere . . . . . . . . . . . . 19 2.3 Elaborazione dei lmati . . . . . . . . . . . . . . . . . . . . . 21 2.4 Etichettatura degli spezzoni . . . . . . . . . . . . . . . . . . . 24 2.4.1 Scelta degli spezzoni . . . . . . . . . . . . . . . . . . . 24 2.4.2 Criteri di etichettatura . . . . . . . . . . . . . . . . . . 26 2.4.3 Processo di etichettatura . . . . . . . . . . . . . . . . . 27 3 Test del dataset 29 3.1 Implementazione in Matlab . . . . . . . . . . . . . . . . . . . 29 3.1.1 Modiche al metodo di confronto . . . . . . . . . . . . 33 3.1.2 Modiche al Parser dei metadata . . . . . . . . . . . . 35 3.2 Risultati sperimentali . . . . . . . . . . . . . . . . . . . . . . . 36 3.2.1 Accenni su precision and recall . . . . . . . . . . . . . 36 3.2.2 Discussione dei risultati . . . . . . . . . . . . . . . . . 38 ii
  • 4. INDICE Conclusioni 47 3.3 Conclusioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.4 Sviluppi futuri . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.4.1 Miglioramenti dell'algoritmo di face detection . . . . . 50 3.4.2 Funzioni aggiuntive . . . . . . . . . . . . . . . . . . . . 50 3.4.3 Implementazione del dispositivo . . . . . . . . . . . . . 51 A Informativa appesa nei luoghi delle riprese 52 B Procedura seguita in Shotcut 53 B.1 Procedura principale . . . . . . . . . . . . . . . . . . . . . . . 53 B.2 Altre procedure . . . . . . . . . . . . . . . . . . . . . . . . . . 54 B.2.1 Creazione dei presets . . . . . . . . . . . . . . . . . . . 54 B.2.2 Unire spezzoni . . . . . . . . . . . . . . . . . . . . . . 56 C Procedura seguita in ViPER-GT 58 C.1 Creazione dello Schema base . . . . . . . . . . . . . . . . . . 58 C.2 Etichettatura dei volti . . . . . . . . . . . . . . . . . . . . . . 59 D Parametri passati ai detector nei test 64 D.1 Normalized Pixel Dierence . . . . . . . . . . . . . . . . . . . 64 D.2 Viola-Jones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 D.3 Pixel Intensity Comparisions Organized in Decisions Trees . . 65 D.4 Pixel Intensity Comparisions Organized in Decisions Trees, alternative value . . . . . . . . . . . . . . . . . . . . . . . . . 65 E Risultati sperimentali 66 iii
  • 5. Introduzione Questa tesi è un tassello all'interno di un progetto più ampio che coinvol- ge vari professori e studenti del Dipartimento di Ingegneria e Architettura dell'Università degli Studi di Trieste, atto ad aiutare persone non vedenti ed ipovedenti. Il progetto di aiutare questi soggetti nelle loro interazioni so- ciali, fornendo loro un dispositivo che veda al posto loro e fornisca quindi informazioni utili ai rapporti umani è quantomeno ambizioso. Innanzitutto è fondamentale domandarsi come questa vista possa eettivamente essere d'aiuto, come il dispositivo possa comunicare con il soggetto e soprattutto che informazioni cercare in una ripresa in tempo reale per poi trasmetterle al non vedente. In questa logica si è ritenuto di maggiore impatto psicolo- gico dare al non vedente la possibilità di iniziare un'interazione, rendendola quindi più simmetrica e trasformando il non vedente da soggetto passivo a soggetto attivo nel rapporto. Né l'uso della computer vision per fornire supporto e nuove possibilità ai non vedenti né l'argomento face detection sono temi particolarmente nuovi. Negli anni infatti sono stati sviluppati numerosi progetti atti ad aiutare i non vedenti nelle più disparate attività di tipo non sociale, e l'argomento face detection è stato già ampiamente studiato in passato e continua ad essere studiato attualmente per ni dei più svariati tipi, dalla sicurezza al miglioramento della messa a fuoco in macchine fotograche. Risulta meno scontato invece il suo utilizzo nell'ambito dell'ausilio ai rapporti umani per non vedenti. Ci si è quindi concentrati sull'implementazione di metodi che permet- tessero al non vedente di iniziare una conversazione considerando il grande impatto psicologico di questa possibilità. Come accennato ci si è basati in- nanzitutto sulla face detection imprescindibile per poi fare face recognition e riconoscimento delle espressioni per determinare chi in un ambiente possa essere interessato all'interazione col non vedente, in quanto suo conoscente o semplicemente perché caratterizzato da un'espressione amichevole. Fortunatamente lo strumento face detection, in quanto strumento, è lo stesso indipendentemente dallo scopo per il quale lo si usi e si sono potuti sfruttare ampiamente gli studi fatti nora in questo ambito come punto di partenza per adattare gli algoritmi esistenti alle nostre esigenze. Questo lavoro ha però richiesto una nuova piattaforma di test in quanto iv
  • 6. INTRODUZIONE non si era più interessati ad un confronto equo ed imparziale tra i metodi di rilevamento facciale per determinare quale fosse il migliore in assoluto, bensì si è voluto decretare quale fosse il migliore relativamente alle criticità emerse dalle nostre particolari condizioni di lavoro. Con questo si intendono le dicoltà derivanti dalle situazioni che gli stessi algoritmi dovranno aron- tare quando implementati nel dispositivo nito: immagini estratte da lmati girati con videocamere grandangolari indossate da non vedenti. Il test degli algoritmi su questo dataset da noi appositamente creato ha avuto più di uno scopo. Oltre allo scopo principale di decretare quale tra gli algoritmi presi in considerazione fosse quello con le performance migliori secondo i nostri criteri di giudizio, ci si è dovuti innanzitutto assicurare che il dataset stesso fosse una piattaforma di test adabile, anche nell'ottica di renderlo in futuro disponibile a chiunque lavori su temi simili ai nostri. Inoltre dai risultati dei test è stato possibile ricavare ulteriori informa- zioni utili allo sviluppo futuro del dispositivo. linea invisibile Nel primo capitolo della tesi verranno introdotti i concetti di machine learning e face detection e verranno approfondite le logiche sulle quali si basano gli algoritmi confrontati nell'ambito di questo progetto. Nel secondo capitolo verrà descritto il lavoro svolto per la creazione del dataset in tutte le sue fasi sia concettuali che pratiche. Nel terzo capitolo verrà descritto il lavoro di test svolto e saranno esposti i risultati ottenuti. v
  • 7. Capitolo 1 Machine Learning e Rilevamento Facciale Non è nello scopo di questa tesi approfondire l'aspetto di machine learning ed il ruolo da esso svolto nell'implementazione di un sistema di face detection, nello specico per non vedenti. Risulta però necessario dare al lettore un accenno generale sull'argomento in modo da meglio comprendere il lavoro svolto e l'importanza che abbia all'interno del progetto. 1.1 Accenni sul machine learning Con machine learning si indica il campo che si occupa di creare sistemi informatici la cui ecienza o ecacia, o altri parametri a seconda dei casi, migliorino automaticamente no a giungere alla risoluzione di un problema assegnato sfruttando l'esperienza. L'esperienza è più precisamente denita addestramento, controllato o meno, a seconda di che esempi ed indicazioni vengano forniti riguardo ai risultati che si vogliono ottenere. Le applicazioni sono innumerevoli, limitate solo dalla fantasia e dalle esigenze dei ricercatori, ed hanno le complessità più svariate: si spazia da un semplice programma addestrato per non perdere mai a tria, o similmente per vincere a scacchi 1[1] ad un sistema di guida automatica che permetta ad un'automobile di muoversi autonomamente su strade pubbliche senza intervento umano come la Google Self-Driving Car[2] ed il progetto italiano VisLab[3]. Uno degli scopi più arontati nell'ambito machine learning è senza dub- bio la classicazione, ovvero la capacità di distinguere e separare dati in categorie diverse partendo da un insieme contenente informazione non clas- sicata. Questa spiegazione quasi tautologica è più chiara se si fornisce una denizione più rigorosa: 1 Complessità maggiore, ma stesso approccio di base 1
  • 8. CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE Dato un insieme di dati contenente n tipi di oggetti, si denisce classicazione l'atto di distinguere uno o più tipi di oggetti dagli altri. La face detection, o rilevamento facciale, rientra proprio in questa cate- goria: infatti vogliamo distinguere un oggetto, la faccia, da tutto il resto presente in un'immagine. 1.1.1 Ground truth Il machine learning è caratterizzato da diversi metodi di apprendimento. Una delle discriminanti è l'intervento umano o meno nella fase di addestra- mento della macchina, e quanto pesi sul risultato nale. La categoria con il maggior intervento umano prende il nome di apprendimento supervisionato, o supervised learning, ed indica i casi in cui la macchina impara da un set di dati di input e di output che deve raggiungere, con i quali confrontarsi. Questi dati generalmente prendono la forma di un vettore di input I e di un insieme di output O in cui ogni elemento è il risultato atteso per l'elemento di input corrispondente. L'apprendimento da parte della macchina consiste nell'usare questi dati per trovare una funzione in grado di associare l'insieme O all'insieme I come indicato. Nell'ambito della computer vision questo set d'addestramento prende il nome di ground truth, verità di base, ad indicare un insieme di dati che si sa essere veri, o il più veri possibile, poiché ottenuti per osservazione diretta e non tramite simulazioni, modelli o altri metodi indiretti. L'addestramento per tutti gli algoritmi di rilevamento facciale che ve- dremo in seguito rientra sempre in questa categoria ed il ground truth è composto da un insieme di immagini (l'insieme di input I) alle quali sono associate informazioni sulla presenza o meno, quantità e posizione dei volti (l'insieme di output O). 1.2 Algoritmi di rilevamento facciale Innanzitutto è d'obbligo presentare un elenco dei metodi usati, dare una breve descrizione del loro funzionamento e dei principi su cui si basano. 1.2.1 Viola-Jones Nel settembre 2001 Paul Viola e Michael J. Jones proposero un metodo di rilevamento facciale[4] che è quello al momento più diuso in ambito acca- demico, nella sua forma originale o nelle molteplici varianti che ha generato negli anni. I due motivi principali della sua ampia adozione sono il buon funzionamento dimostrato e la facilità di implementazione grazie alla sua inclusione nelle librerie OpenCV[5]. Con buon funzionamento ci si riferisce 2
  • 9. CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE al fatto che è robusto e lavora in tempo reale, capacità molto importante e di dicile implementazione all'epoca, considerando la minore potenza di calcolo dei processori. Il metodo, che prende il nome dai suoi padri, si basa fondamentalmente sull'unione di tre idee: • L'uso di una immagine integrale, ovvero una rappresentazione alter- nativa dell'immagine che velocizza l'estrazione delle Haar-features, più semplici ed a minore costo computazionale rispetto a features basate sui singoli pixel • La selezione di un numero limitato di features importanti dal ben più ampio insieme di tutte quelle disponibili tramite un meta-algoritmo di apprendimento, per la creazione di un classicatore semplice ed eciente • L'implementazione di un metodo per combinare più classicatori via via più complessi in cascata, che incrementa drasticamente la velocità di rilevamento Il risultato nale è una cascata di 38 classicatori che valutano oltre 6.000 features e che nonostante ciò è molto veloce. Approfondiremo questi tre argomenti nei successivi capitoli: Immagine integrale e Haar-features, dedicato al set di features usato, Adaptive Boosting e cascata di classicatori, dedicato all'algoritmo usato per l'estrazione delle features che compongono un classicatore e la scelta dei classicatori e del loro ordine di utilizzo. Immagine integrale e Haar-features La scelta di usare l'immagine integrale e delle features invece di pixel ha vari motivi, primo di questi la maggior versatilità delle features e la loro possibilità di racchiudere conoscenza specica che è dicile da imparare usando una quantità nita di dati d'addestramento. Secondo motivo, ma non meno importante, è la già menzionata maggiore velocità ottenuta grazie a questo accorgimento al posto di lavorare su singoli pixel. Nello specico si usano delle features che traggono ispirazione dalle fun- zioni base di Haar, già usate in precedenza da [6], dal quale la denizione Haar-features. Si fa uso di tre tipi di features, come si può anche vedere in Figura 1.1[4]: • Two-rectangle feature: il valore dato dalla dierenza fra la somma dei pixel che compongono due regioni rettangolari adiacenti, orizzon- talmente o verticalmente. • Three-rectangle feature: il valore dato dalla somma dei pixel che compongono due regioni rettangolari esterne sottratto al valore della 3
  • 10. CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE somma dei pixel che compongono la regione centrale, orizzontalmente o verticalmente. • Four-rectangle feature: il valore dato dalla somma dei pixel che compongono i rettangoli superiore destro ed inferiore sinistro sottratti a quelli che compongono i rettangoli superiore sinistro ed inferiore destro. Considerando il possibile orientamento sia verticale che orizzontale delle fea- tures bi-rettangolari e delle features tri-rettangolari alla ne otteniamo in realtà cinque tipi diversi di features. Figura 1.1: Feature rettangolari: two-rectangle feature (A,B), three- rectangle feature (C), four-rectangle feature (D) L'immagine integrale non è nient'altro che una rappresentazione nella quale a ciascun pixel invece che il dato sulla sua singola luminosità viene associato la somma dei valori di tutti i pixel contenuti nel rettangolo che è denito dal pixel stesso e dal primo pixel in alto a sinistra. Ovvero il valore del pixel (x, y) nell'immagine integrale ii(x,y) è: ii(x,y) = x ≤x,y ≤y i(x , y ) dove i(x ,y ) è il valore del singolo pixel (x , y ) nell'immagine di partenza. È evidente quindi che che il valore di un rettangolo in una feature rettangolare non è nient'altro che il valore del pixel che lo delimita in basso a sinistra, e che il valore di una feature, sia essa composta da due, tre o quattro rettangoli non è nient'altro che la somma algebrica del valore di al massimo quattro elementi nel più complesso dei casi. Quindi in seguito alla semplice operazione di trasformazione dell'immagine in un'immagine integrale, fatta una volta per ciascun frame, il lavoro di creazione di tutte le features in un'immagine è estremamente velocizzato. La semplicità di questo metodo impone però dei limiti rispetto ad altri metodi più complessi, soprattutto riguardo la capacità di rilevare caratteri- stiche più complesse come barre, spigoli ed altre strutture geometriche anche 4
  • 11. CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE semplici. Inoltre vi sono limitazioni anche sull'orientamento che si può far assumere a queste features, nel nostro caso solamente orizzontale, verticale o diagonale. Adaptive Boosting e cascata di classicatori Usando nestre rettangolari non inferiori ai 24 pixel sul lato corto, e sce- gliendo di ingrandire i rettangoli del 25% 2 ad ogni ulteriore passaggio, si otterrebbe un numero ragguardevole di features estratte da ogni immagine, molto maggiore rispetto al numero di pixel presenti nell'immagine stessa. Quindi, nonostante il basso costo computazionale di ciascuna feature il co- sto complessivo di valutarle tutte negherebbe il vantaggio di usarle rispetto a metodi basati sui singoli pixel. L'ipotesi di Viola e Jones, rivelatasi poi corretta, è che basta combinare un set molto ridotto di features per creare un classicatore ecace. Sono ricorsi quindi al metodo di meta-machine learning AdaBoost[7], contrazione di Adaptive Boosting, per estrarre poche features più signicative e combinarle in un classicatore molto grezzo. Senza scendere troppo nel dettaglio per fare ciò si addestra l'algoritmo tramite iterazioni successive assegnando alla ne di ogni ciclo diversi pesi, ovvero una diversa importanza, alle varie features in base al risultato che avevano fornito, no a trovare le migliori. Poi queste features vengono divise in vari classicatori, via via più complessi, quindi di costo computazionale maggiore. Il successivo passo per limitare la complessità dell'algoritmo di rileva- mento facciale proposto da Viola-Jones è stato quello di usare i classicatori dal più semplice al più complesso per ltrare di iterazione in iterazione tutti i falsi positivi, ovvero le classicazioni ritenute corrette dal classicatore ma che non corrispondono all'oggetto cercato. In pratica l'algoritmo sottopone inizialmente l'immagine a classicatori più semplici e quindi più ecienti, che eliminano un buon numero di sotto-nestre dell'immagine, riducendo quindi il numero di sotto-nestre, e di conseguenza l'area, alla quale appli- care classicatori più complessi e meno ecienti, ma che ottengono via via percentuali più basse di falsi positivi. Anche la cascata di classicatori, che altro non è che un albero decisionale sbilanciato, è allenata tramite AdaBoost, seppur con intervento umano sui primi sette livelli della cascata per velociz- zare il tempo d'addestramento del rilevatore. Come già anticipato il lavoro di Viola-Jones porta ad un rilevatore completo composto da 38 classicatori per un totale di 6.060 features utilizzate. È importante osservare che il classicatore più semplice, basato su sole due features, è in grado di rilevare il 100% dei volti con una percentuale di falsi positivi del 50%, ovvero esclude solo il 50% dei riquadri privi di volti. Esso è basato sulla dierenza di luminosità che vi è orizzontalmente tra i due 2 impostazioni standard per la creazione delle features 5
  • 12. CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE occhi ed il setto nasale e sulla dierenza che vi è verticalmente tra la zona degli occhi e quella di naso e guance come si può vedere dalla Figura 1.2[4]. Il secondo classicatore usa 10 features e rileva correttamente quasi il 100% dei volti, ma esclude già l'80% delle nestre prive di volti. Questo fa sì che la maggioranza delle sotto-nestre venga scartata già nei primi due passaggi, facendo sì che alla ne dell'operazione di rilevamento facciale in media vengano usate solo 8 features per sotto-nestra. Figura 1.2: Rappresentazione graca delle features che compongono il primo classicatore della cascata È inoltre necessario parlare del dataset utilizzato da Viola e Jones per addestrare il loro algoritmo di rilevamento facciale, soprattutto tenendo con- to che nel corso di questa tesi non si è addestrato nuovamente l'algoritmo ma lo si è usato così come sviluppato originariamente. L'algoritmo è stato addestrato su un dataset di 4916 facce, etichettate a mano e scalate per avere tutte la stessa risoluzione di 24*24 pixel. La cosa più importante da notare è però che i volti sono tutti frontali, perfettamente visibili e ben illuminati salvo qualche raro caso di illuminazione non uniforme, situazione ben diversa da quella che si troverà nel dataset creato in questa tesi. 1.2.2 Zhu-Ramanan Nel giugno 2012 è stato proposto un metodo[8] basato su una commistione di modelli basati su strutture ad alberi ed un gruppo di parti condivise. Viene ridotto a modello ogni particolare del volto e salvato come singola parte da riconoscere e si tiene conto dei rami che uniscono le varie parti. Viene poi data ai rami la possibilità di cambiare dimensione, pur entro certi limiti determinati in base alla struttura sica del volto, tali da garantire suciente essibilità all'algoritmo per essere tollerante alle variazioni dovute a cambi di espressione facciale e dell'orientamento del volto ma allo stesso tempo limitare il numero di falsi positivi. Stando a quanto dichiarato nell'articolo questo metodo è risultato molto ecace, al pari con i più famosi metodi commerciali. Un ulteriore vantag- gio rispetto agli altri metodi analizzati è che grazie alle sue caratteristiche è capace di individuare contemporaneamente sia volti frontali sia girati late- 6
  • 13. CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE Figura 1.3: Sopra: Rappresentazione graca degli alberi topologici, con in rosso i rami che collegano le parti. Sotto: esempio di uno dei dataset usati per addestrare l'algoritmo, con evidenziate in blu le parti annotate[8] ralmente no a quasi 90 ◦ rendendolo più adatto ad usi in the wild, ovvero in situazioni naturali nelle quali il volto non è necessariamente frontale rispetto allo strumento di acquisizione, ben visibile e ben illuminato. Purtroppo però questo metodo, quando provato su singoli frame estratti dai lmati acquisiti nel corso del nostro progetto, per vericarne il funziona- mento prima di implementare un sistema automatizzato di analisi di interi lmati, ha presentato due grossi problemi. Il primo sono stati risultati non all'altezza di quanto presentato dall'articolo, con volti frontali e ben illu- minati non riconosciuti, indipendentemente dal sotto-metodo usato come si può vedere dalla Figura 1.4. Il secondo, più rilevante soprattutto dato lo scopo nale all'interno del nostro progetto, è stato l'incredibile lentezza 3, inaccettabile per un detector che deve funzionare in tempo reale. Infatti, come si può vedere dalla Tabella 1.1, sono stati impiegati almeno 30 secondi nel migliore dei casi. Metodo Veloce (s) Metodo Lento (s) 1 99.3 597.6 2 96.6 588.1 3 98.8 601.7 4 43.9 312.7 5 107.3 626.9 6 94.8 570.5 7 90.2 559.6 8 93.1 587.2 9 34.9 271.0 10 32.1 250.1 Tabella 1.1: Tempi impiegati per analizzare i rispettivi frame (secondi) Oltre ai pessimi risultati iniziali, va osservato che il confronto con gli altri metodi non sarebbe stato facile né equo, essendo i risultati degli altri metodi 3 Test svolto su computer con CPU Intel Core i5 3317U, Quad Core a 1,70 GHz, caratteristiche nettamente superiori a quelle possibili con i dispositivi portatili odierni. 7
  • 14. CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE linea invisibile Figura 1.4: Confronto dei risultati del rilevamento facciale: sopra i risultati ottenuti da Zhu e Ramanan e presentati nel loro articolo, sotto alcuni esempi di quelli ottenuti su frame estratti da nostri lmati. 8
  • 15. CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE e la nostra etichettatura basati su bounding box, rettangoli tracciati attorno al volto. Sarebbe stata richiesta quindi l'implementazione di codice al ne di trasformare i risultati sotto forma di punti lungo i contorni del volto e caratteristiche quali occhi, naso e bocca in bounding box. Per tutti questi motivi, principale dei quali la lentezza, si è deciso quindi di non includere questo metodo nel lavoro di confronto più completo. 1.2.3 Normalized Pixel Dierence (NPD) Nel 2014 è stato proposto un metodo[9] sempre basato sulla creazione di fea- tures, sull'uso di una rappresentazione alternativa dell'immagine e sull'estra- zione automatica delle features migliori tramite apprendimento automatico. Tuttavia, nonostante questi elementi in comune con Viola-Jones, presenta anche delle dierenze signicative. Infatti lo scopo principale dei ricercatori è stato quello di cercare un nuovo set di features e classicatori tali da ren- dere il metodo più ecace per il rilevamento facciale senza restrizioni, nello specico anche nel caso più complesso di copertura parziale di volti laterali irrisolto prima del loro articolo. La feature proposta è la dierenza normalizzata dei pixel (Normalized Pixel Dierence) ovvero la dierenza del valore di intensità di due pixel qualsiasi divisa per la somma dei loro valori. Per due generici pixel x e y: f(Ix, Iy) = Ix − Iy Ix + Iy con Ix, Iy 0 e f(0, 0) = 0 quando Ix = Iy = 0. Si noti che con x e y si indicano due pixel presi in considerazione, non le coordinate di un singolo pixel, e che si è deciso, al contrario della notazione ambigua dell'articolo originale, di denire Ix e Iy le relative intensità. Questa feature ha quindi caratteristiche quali l'invarianza di scala, la possibilità di ricostruire l'imma- gine originale e la ridotta complessità di calcolo, essendo calcolata solo con due somme e una divisione per feature. È molto importante notare che la funzione f gode della seguente proprietà f(aIx, aIy) = f(Ix, Iy), ∀Ix, Iy, ∀a = 0 il che garantisce l'invarianza per trasformazioni moltiplicative dell'intensità, proprietà che rende la feature robusta a variazioni di luminosità. In seguito si sceglie di confrontare il valore delle features con delle soglie in degli alberi decisionali, in particolare dei boosted regression trees. Il classi- catore debole nasce dall'imparare, tramite addestramento su immagini con facce ed immagini senza facce, le soglie ideali da introdurre in ciascun nodo, mediante l'applicazione dell'algoritmo CART [10] alle NPD features. Viene poi usato l'algoritmo GentleBoost[7], una variante del più noto AdaBoost, per ridurre il numero di informazioni ridondanti ancora presenti in seguito all'uso di soli alberi decisionali e costruire un classicatore più robusto. 9
  • 16. CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE Il metodo NPD aronta quindi vari problemi del rilevamento facciale in condizioni non ristrette nei seguenti modi: • Posa: l'algoritmo è robusto a dierenti pose grazie al fatto di me- morizzare in diverse foglie diversi punti di vista, senza la necessità di addestramenti specici per pose diverse. • Copertura parziale: essendo le NPD features basate su coppie di pixel e non intere aree come le Haar features, molte meno features sono aette dalla copertura parziale, e quindi il metodo è più robusto alla copertura parziale dei volti. • Illuminazione: come già visto la caratteristica di invarianza di scala rende le NPD features robuste a varizioni di luminosità. • Sfocatura e basse risoluzioni: basandosi sulla dierenza dei valori di due pixel, le NPD features non richiedono immagini molto detta- gliate, rendendo il metodo ecace anche in casi di immagini sfocate o a bassa risoluzione. Tuttavia si può anticipare che i risultati sul nostro set di valutazione non sono stati all'altezza delle caratteristiche vantate, specialmente per quel che riguarda immagini molto rumorose, problema eettivamente non considerato dagli autori. 1.2.4 Pixel Intensity Comparisons Organized in Decisions Trees (PICO) Nel 2014 è stato sviluppato un metodo[11] non molto diverso da quello ap- pena visto[9]. Gli autori di PICO garantiscono tuttavia l'indipendenza del loro lavoro da NPD. Gli autori deniscono il loro metodo come una semplice modica del metodo standard Viola-Jones ma vi sono alcune dierenze signicative sia nella logica alla base del metodo che nei conseguenti risultati. Come dice il nome l'algoritmo si basa su confronti di intensità (luminosa) di coppie di pixel al posto delle Haar-Features, poi organizzati in alberi decisionali. Resta quindi in uso l'idea di usare una cascata di classicatori via via più complessi man mano che si escludono regioni dell'immagine che vengono determinate essere prive di volti dai classicatori più semplici e veloci. Principi di funzionamento Nel dettaglio, invece che fare uso di un'immagine integrale e di features ret- tangolari si usano degli alberi decisionali con memorizzato nei loro nodi il confronto delle intensità dei pixel come test binario. La costruzione de- gli alberi è assistita poiché anche in questo caso si tratta di un metodo di 10
  • 17. CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE apprendimento supervisionato e quindi sia viene associato manualmente ad ogni immagine di addestramento Is il valore di ground truth vs (-1 per i cam- pioni negativi, +1 per i campioni positivi), sia si denisce per ogni campione anche l'esistenza di un peso ws, in seguito calcolato automaticamente in fase d'addestramento, per indicare l'importanza del relativo campione all'interno del set di addestramento. L'addestramento consiste nel minimizzare l'errore quadratico medio pesato WMSE = (I,w,v)∈C0 w · (v − ¯v0)2 + (I,w,v)∈C1 w · (v − ¯v1)2 dove C0 e C1 sono campioni d'addestramento per i quali il risultato del test binario succitato, per l'immagine associata, erano rispettivamente 0 o 1 e dove ¯v0 e ¯v1 sono le medie pesate del ground truth in C0 e C1. Questo fa si che l'algoritmo cerchi i test binari che minimizzano questa funzione, che corrisponde a creare alberi decisionali composti dai migliori test, e queste sono le features estratte. In seguito, considerata la ridotta accuratezza di un singolo albero deci- sionale, gli autori usano l'algoritmo GentleBoost[7] per generare un insieme di alberi decisionali. In questa fase si assegna una soglia alla somma de- gli output degli alberi decisionali modicando la quale è possibile variare il rapporto tra falsi positivi e veri positivi ottenuti. In seguito si usa la stessa logica di Viola-Jones di partire da classicatori più deboli e meno ecaci per escludere successivamente sempre più aree pri- ve di volti in modo da applicare classicatori più ecaci ma meno ecienti solo ad aree ridotte dell'immagine. Ogni passaggio consiste nel passare l'im- magine ad un classicatore composto da un insieme di alberi decisionali, il cui valore di soglia assegnato ne determina la complessità. Va notato che tut- tavia anche in questo passo dell'algoritmo è stato scelto di usare un risultato meno assoluto. Ogni passaggio infatti dà in uscita un valore di condenza invece di un valore assoluto sull'assenza di volti, e questo valore viene usato come dato nei passaggi successivi. Alla ne di questi passaggi si ottiene un insieme di rilevamenti, anche multipli per ciascun volto, che vengono ltrati in base alla percentuale di sovrapposizione per ottenere un rilevamento unico per volto. Risultati e confronti con altri metodi Nei test condotti dai suoi sviluppatori il metodo PICO si è dimostrato leg- germente meno ecace del metodo NPD e del metodo commerciale Illux Object Detection[12] in termini di accuratezza. Tuttavia è stato stimato che sia circa quattro volte più veloce del metodo NPD. Inoltre è segnalato dagli autori che si può supporre che il metodo PICO si comporti signicativamente peggio in caso di immagini molto rumorose per via della sua dipendenza da test binari su zone di pochi pixel e suggeriscono 11
  • 18. CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE l'uso di Viola-Jones in questi casi considerando che di fatto fa una media dell'intera area esaminata, rendendolo più robusto a variazioni locali come il rumore. Gli autori segnalano inoltre che è possibile che altri sistemi basati su features simili, come per esempio NPD, possano incorrere in problemi analoghi. Il metodo quindi si dimostra valido quasi quanto lo stato dell'arte ma allo stesso tempo molto più eciente, quindi più adatto a dispositivi con mi- nore capacità di calcolo quali sistemi portatili o embedded. Inoltre presenta vantaggi quali il non richiedere la costruzione di un'immagine integrale con- trariamente a metodi basati sulle Haar-features, l'usare un solo tipo di feature ed il non richiedere che l'immagine venga prima processata per facilitare il lavoro dell'algoritmo. 12
  • 19. Capitolo 2 Creazione del dataset Come già accennato nell'introduzione è di fondamentale importanza prima di iniziare i lavori domandarsi in che modo face detection e face recognition possano aiutare i non vedenti. All'interno di questo progetto si è deciso di concentrarsi principalmente sugli aspetti sociali della vita del non vedente, e quindi è necessario pensare a che scopi possano avere le tecnologie succitate in questo ambito. All'inizio si è ragionato domandandosi che tipo di nuove possibilità de- siderasse un non vedente, approccio rivelatosi purtroppo infruttuoso sia per l'incapacità di immedesimarsi nel non vedente da parte dei membri del pro- getto, sia per la giusticabile impossibilità da parte dei non vedenti a cui è stato chiesto di immaginare le possibilità che la vista potesse orirgli, spe- cialmente nel caso di cecità dalla nascita. Si è rivelata vincente l'idea di arontare il ragionamento dalla prospettiva di una persona normo-vedente chiedendosi in che modo questa tragga vantaggio in ambito sociale dal pos- sesso della vista e solo in seguito domandandosi come sia possibile trasferire tali vantaggi ad un non vedente. Similmente si è rivelata una buona idea trascurare temporaneamente il mezzo (face detection, face recognition) per concentrarsi solo su che risultati si vogliano ottenere. Fortunatamente molti studi sono già stati fatti sull'u- tilità che la vista ha nelle interazioni sociali ed oggi sappiamo che in una conversazione più del 90% dell'informazione trasmessa è non verbale, ovvero non è estratta solamente dalle parole pronunciate ma anche dai toni, e in una quantità superiore al 60% dai gesti, dalle espressioni che le accompagnano e da altri elementi visivi[13, 14]. Purtroppo insegnare ad un algoritmo a riconoscere tutte le sottigliezze della comunicazione non verbale è un compito improbo, soprattutto tenendo conto della dicoltà di classicazione di questa informazione non verbale al di là dell'informatica e della computer vision, ma già semplicemente nella denizione esplicita di queste informazioni che vengono processate dal no- stro cervello in maniera implicita. Si è stati costretti quindi a concentrarsi 13
  • 20. CAPITOLO 2. CREAZIONE DEL DATASET solamente su alcuni punti chiave. In seguito a questo cambio di prospettiva un semplice ragionamento rende evidente che i principali ausili visivi alle interazioni sociali sono: • Riconoscere la presenza e posizione di una persona conosciuta in uno spazio • Riconoscere la presenza e posizione di ulteriori persone nello spazio circostante • Riconoscere le espressioni facciali, per lo meno le più semplici, per estrapolare una eventuale disponibilità all'interazione sia di un cono- scente che di uno sconosciuto • Riconoscere espressioni facciali durante una discussione per meglio interpretare le parole in una conversazione • Riconoscere la distanza dell'individuo con cui si conversa • Individuare elementi di interesse in una persona, che ci invoglino ad iniziare una conversazione (e.g. una maglietta sul nostro lm preferito) linea invisibile Si può inoltre notare come gli esempi appena visti di ausilio possano venire divisi in due categorie principali: • Ausilio nel migliorare un'interazione che già sarebbe avvenuta (fornen- do maggiori informazioni sull'informazione trasmessa dall'interlocuto- re) • Ausilio nell'iniziare un'interazione che in assenza del dispositivo non sarebbe avvenuta (fornendo indicazioni sulla presenza di soggetti con i quali interagire) linea invisibile Una volta steso questo breve elenco si è potuto decidere su quali di questi aspetti concentrarsi, compatibilmente con le tecnologie a nostra disposizione e con l'intenzione di apportare un contributo incisivo alla vita del soggetto con decit visivi. Nel nostro caso si è deciso di concentrarsi sull'ausilio ad iniziare nuove interazioni, basandosi principalmente sulla tecnologia di face detection ed in una seconda fase, ranando il progetto, di face tracking, face recognition e riconoscimento delle macro-espressioni. Questa decisione ha reso evidente la necessità di avere innanzitutto algo- ritmi di face detection e face recognition robusti ed al contempo performanti. Infatti l'algoritmo deve essere veloce, possibilmente lavorare in real time, e leggero, richiedere poca potenza di calcolo, in modo che sia possibile l'imple- mentazione in maniera eciente su dispositivi portatili, e deve essere robusto 14
  • 21. CAPITOLO 2. CREAZIONE DEL DATASET per garantire un'alta adabilità, con errori di rilevamento prossimi allo ze- ro. È inoltre emersa la necessità di avere delle immagini più signicative relativamente ai nostri scopi, sia per la fase di addestramento che di test degli algoritmi esistenti e delle eventuali modiche da noi apportate, al ne di trovare l'algoritmo che meglio soddisfa le caratteristiche succitate. Gli algoritmi già esistenti infatti sono stati testati ed addestrati su immagini signicativamente più facili da riconoscere, anche nei peggiori casi, essendo tratte da foto e non da lmati, cosa che comporta una serie di dierenze che vedremo in seguito. La risposta a queste necessità è stata la creazione di un dataset signi- cativo di lmati che simulino al meglio le attività sociali di un non vedente, dataset che si è deciso di rilasciare pubblicamente in futuro in modo che anche altri gruppi di ricerca incentrati sull'aiuto a persone aette da disa- bilità visive possano giovarne, sia come piattaforma di test sia, lo volessero, per addestrare loro algoritmi specicamente per queste situazioni. Inoltre è risultata evidente la necessità di usare tale dataset per testare gli algoritmi descritti nel capitolo precedente al ne di determinare il migliore algoritmo di rilevamento facciale ed allo stesso tempo per fare ulteriori considerazioni utili all'implementazione del dispositivo nito. La creazione del dataset è stata pianicata, diretta e svolta in collabora- zione con dei soggetti non vedenti. Li si è dotati di dispositivi di acquisizione video portatili e li si è fatti essere protagonisti in prima persona di norma- li scene quotidiane riprese in varie zone dell'università. In seguito si sono estratti gli spezzoni più signicativi dalla grande quantità di riprese, sono state apportate delle piccole modiche necessarie e sono stati etichettati con un software apposito per usarli successivamente come ground truth per vericare l'ecacia degli algoritmi da testare. 2.1 Criticità cercate nelle riprese e conseguente di- rezione La direzione delle riprese ha richiesto uno studio a priori sul tipo di partico- larità da ricercarsi nelle riprese in modo da renderle signicative sia tenendo conto dello scopo nale, ovvero un dispositivo indossabile per ciechi, sia per meglio mettere alla prova gli algoritmi di face detection e face recognition, sia sotto l'aspetto sociale. Innanzitutto per quel che riguarda l'aspetto sociale mi rifaccio a quanto già scritto all'inizio di questo capitolo. Si è pensato quindi a: • Scene che mettano alla prova la capacità di riconoscere un soggetto già familiare al non vedente (e quindi etichettato come tale nel ground truth) in mezzo ad un gruppo di persone sconosciute 15
  • 22. CAPITOLO 2. CREAZIONE DEL DATASET • Scene che mettano alla prova la capacità di riconoscere soggetti inten- zionati all'inizio di un'interazione (frontali, espressione amichevole 1) in mezzo ad un gruppo di persone Sempre sotto l'aspetto sociale, il dataset è stato creato con in mente già sviluppi futuri rispetto a quelli attuali. Infatti, pur continuando a parlare di face detection e face recognition, il lavoro attuale si concentra solo sulla face detection e principalmente sul secondo punto elencato sopra, ovvero la capacità di riconoscere e contare il numero di facce rivolte verso il non vedente. Inoltre, seppur si sia pensato a sviluppi futuri nell'ambito del riconosci- mento delle espressioni, si è deciso di non tenerne conto nella direzione delle scene, soprattutto in considerazione dell'assenza di attori capaci di ripro- durre in maniera naturale diverse espressioni facciali all'interno del nostro gruppo di lavoro. Dal punto di vista del dispositivo wearable per ciechi le criticità che ci si aspetta di avere sono legate sia al fatto che si faccia face detection su frame estratti da un video e non su immagini statiche, cosa che rende critico il tipo di videocamera impiegato, sia al non vedente stesso ed al fatto che egli stesso eettui le riprese. Nello specico le caratteristiche volute e previste, legate al dispositivo indossato dal non vedente, sono: • Zone deformate a bordo inquadratura, dovute all'uso di ottiche gran- dangolari, usate per avere una veduta più ampia • Inquadrature storte • Inquadrature solo parziali dei volti • Movimenti bruschi che introducono motion blur Al ne di orire una maggior varietà in questo ambito, e tenendo conto che in questa fase del progetto non è ancora decisa nessuna specica hardware del dispositivo, abbiamo utilizzato diversi tipi di videocamere. Si può anticipare che hanno avuto tutte principalmente gli stessi tipi di criticità dovute al fatto che tutte hanno caratteristiche simili e necessarie ai nostri scopi e che sono tra quelle previste, ma ci sono state anche problematiche diverse di cui discuteremo più approfonditamente in una sezione successiva. Inne parliamo delle caratteristiche ricercate nei lmati per meglio met- tere alla prova gli algoritmi di rilevamento facciale. Pur tenendo conto che abbiamo usato metodi diversi e non solo basati sul metodo Viola-Jones e su Haar-features, si riscontra che le problematiche maggiori sono sempre legate alle stesse cause: 1 Eventuale sviluppo futuro 16
  • 23. CAPITOLO 2. CREAZIONE DEL DATASET • Condizioni di luce dicile, dovute a carenza di luce, o forti controluce che rendono scuro il soggetto • Copertura parziale dei volti, sia a causa di altri oggetti, sia di peli facciali/capelli • Volti non frontali • Volti non verticali 2.2 Acquisizione dei lmati L'acquisizione dei lmati è stata fatta con l'aiuto di due collaboratrici non ve- denti che chiameremo MLA e ISA per motivi di privacy e coerentemente con la nomenclatura usata per rinominare i le acquisiti. Si è scelto di avvalersi del loro ausilio per rendere il più verosimile possibile il materiale acquisito, in modo da meglio rappresentare le situazioni che il futuro dispositivo di ri- levamento facciale dovrà arontare ed essere in grado di riconoscere. Quindi si è deciso di applicare la stessa logica alle scene da riprendere, immaginando situazioni in cui un non vedente potrebbe realisticamente trovarsi. Nello specico il supporto datoci dalle due collaboratrici non vedenti è stato quello di indossare dei dispositivi di acquisizione e muoversi per si- mulare interazioni sociali in scene scritte con lo scopo di essere realistiche. Abbiamo usato contemporaneamente due dispositivi, unendo al compito di valutare qual è il miglior algoritmo da usare anche quello di riconoscere le mi- gliori condizioni a priori da usare, ovvero il miglior dispositivo, pro e contro di diversi tipi di soluzioni per la ripresa ed il miglior preprocessing. Inoltre, collateralmente, l'uso contemporaneo di due videocamere ha aiutato ad evi- denziare alcune dierenze tra gli algoritmi usati che altrimenti non sarebbero state notate. 2.2.1 Scrittura e direzione delle scene Le scene sono quindi state scritte seguendo la logica già discussa nella sezio- ne precedente. Innanzitutto si è deciso di fare delle ricognizioni dei luoghi concordati per le riprese in seguito alla ricezione del benestare dei proprie- tari dei luoghi interessati. I luoghi utilizzati per le riprese sono stati nello specico: • Biblioteca di Giurisprudenza 2 • Bar H2-H3 3 2 cortesia dell'Università degli Studi di Trieste 3 cortesia del Circolo Ricreativo Universitario di Trieste 17
  • 24. CAPITOLO 2. CREAZIONE DEL DATASET • Bar Ingegneria e relativa mensa 4 • Fermata dell'autobus • Atrio e corridoi dell'edicio A 5 In seguito si è deciso dove mettere le nostre comparse, il percorso da far com- piere al non vedente in modo da incontrarle e che atteggiamenti le comparse dovessero avere nei suoi confronti. In particolare si è deciso di lmare per ogni percorso sia una scena in cui la comparsa si accorge ed inizia un'inte- razione con il non vedente sia una scena in cui non lo riconosce o lo ignora intenzionalmente. Nel secondo caso inoltre si è fatta un'ulteriore distinzio- ne, ovvero si è simulato anche il caso in cui il non vedente si accorge del conoscente al ne di simulare la situazione nella quale il non vedente è già dotato del dispositivo, oltre al semplice caso in cui nessuna interazione ha inizio. Questa scelta è stata fatta nell'ottica in cui si renda il dispositivo capace di continuare l'apprendimento anche in fase di utilizzo per migliorare ulteriormente i risultati. La presenza di nostre comparse in mezzo a sconosciuti nelle riprese ha una duplice funzione: la prima è aggiungere un livello di controllo sulle riprese ed assicurarsi che certe situazioni sociali avvengano; la seconda, in vista di sviluppi futuri nell'ambito della face recognition, è di avere dei volti conosciuti e ripetuti nelle varie scene in modo che sia possibile etichettarli es usarli per questo ulteriore tipo di prove. È stato quindi redatto un canovaccio con scritte le scene da girare e le variazioni da fare per coprire i vari tipi di situazioni signicative, lo si è inviato al gruppo di lavoro ed eventualmente aggiornato con i consigli e le critiche ricevute dal gruppo. Il giorno delle riprese si è dovuto appendere nei luoghi concordati un avviso sul fatto che sarebbero state eettuate delle riprese, coerentemente con quanto imposto dalla legge sulla privacy 6, riportato in Appendice A, e si è atteso l'arrivo delle comparse e del non vedente. Si è quindi proceduto ad eettuare tutte le riprese concordate una dopo l'altra, per non approttare eccessivamente della disponibilità dei collaboratori. Va aggiunta una piccola nota riguardo alcune riprese: nel dataset da noi creato sono anche presenti scene più improvvisate e decise sul momento 7, lmate in una sessione precedente alla decisione di assumere un approccio più sistematico, ma comunque sucientemente valide e signicative da essere incluse nel risultato nale. 4 cortesia del Circolo Ricreativo Universitario di Trieste 5 cortesia dell'Università degli Studi di Trieste 6 Decreto Legislativo del 30 giugno 2003, n. 196. 7 I lmati eettuati in data 24 settembre 2015 18
  • 25. CAPITOLO 2. CREAZIONE DEL DATASET Figura 2.1: La videocamera Gx-9 e la videocamera Polaroid CUBE[15, 16] 2.2.2 Considerazioni sulle videocamere I due dispositivi, o meglio, le due videocamere usate per l'acquisizione dei lmati, sono: • Polaroid CUBE[15], una action cam cubica, come dice il nome, pen- sata per essere montata su strutture come caschi o moto da sportivi estremi, che ore una risoluzione Full HD (1920*1080 pixel) ed un angolo visivo di 124 ◦ • SportXtreme OverLook Gx-9[16], degli occhiali da sole con video- camera integrata, videocamera con risoluzione HD (1280*720 pixel) ed un angolo visivo di 135 ◦ La CUBE, dotata di una placca magnetica, è stata così attaccata ad un supporto metallico ed appesa al collo in modo che stesse circa 15 centimetri sotto al collo del non vedente. Si è fatto uso di un ulteriore supporto plasti- co per impedire alla videocamera di muoversi e girarsi, data la sua natura cubica. Purtroppo questo tipo di supporto ha fatto sì che risultasse appesa sottosopra. I Gx-9, essendo un paio di occhiali, sono semplicemente stati indossati normalmente. Innanzitutto va evidenziata la dierenza di qualità dei due sensori, come si può vedere da Figura 2.2: è di qualità nettamente superiore il sensore della videocamera CUBE, non solo per la maggior risoluzione e per il maggiore range dinamico 8 ma soprattutto per la nitidezza dell'immagine, che invece risulta pastosa e dai contorni mal deniti nelle riprese eettuate con la Gx- 9. Tuttavia questo confronto sottolinea solamente la necessità di utilizzare un buon sensore in fase nale. È invece notevole la maggiore quantità di motion blur introdotta dal mo- vimento della testa, molto più rapido di quello del busto in ogni situazione, 8 La capacità di mantenere dettaglio contemporaneamente in zone luminose e buie. Appurata empiricamente essendo entrambe le videocamere sprovviste di datasheet che ne specicasse i valori. 19
  • 26. CAPITOLO 2. CREAZIONE DEL DATASET Figura 2.2: Stesso istante catturato dalle due videocamere: sopra l'immagine ripresa dalla videocamera Gx-9, sotto l'immagine ripresa dalla videocamera CUBE. 20
  • 27. CAPITOLO 2. CREAZIONE DEL DATASET nei lmati eettuati con la Gx-9. Questa sfocatura è talmente forte che non solo nessun algoritmo è in grado di rilevare correttamente alcun volto nella fase del movimento, ma anche per l'operatore umano incaricato all'e- tichettatura è impossibile riconoscere il volto in quella macchia sfocata, se mi è concesso il termine poco tecnico. Inoltre, soprattutto nelle riprese ef- fettuate da Isa, le riprese eettuate con la videocamera Gx-9 sono risultate parzialmente ostruite dai capelli che ripetutamente nivano col posizionarsi davanti all'obiettivo della videocamera. Inoltre entrambe le collaboratrici non vedenti spesso tendevano ad abbassare lo sguardo, facendo sì che i volti delle persone molto vicine nissero con l'essere parzialmente o interamente esterni all'area inquadrata. Con la videocamera CUBE invece raramente un individuo impegnato in una conversazione col non vedente è risultato esterno all'inquadratura, ma è dovuto far notare che questo è strettamente correlato all'inclinazione della videocamera, e non solo alla sua posizione. Va evidenziata quindi la necessità di replicare e garantire l'orientamento corretto del dispositivo di acquisizione indipendentemente da vestiario e struttura sica del soggetto che lo indossa, in quanto importante per il miglioramento delle riprese. Tra gli aspetti negativi della CUBE vanno annoverati i rari casi in cui capi di vestiario ne hanno parzialmente ostruito il campo visivo, e i meno rari casi in cui la videocamera si è ruotata, come in Figura 2.2. Infatti, essendo la videocamera appesa al collo e priva di un supporto stabile, è risultata prona a ruotare sull'asse laterale portando ad inquadrature storte, ovvero nelle quali l'orizzonte, e tutto il resto di conseguenza, non sono perfettamente orizzontali. Per concludere in questa sede il discorso sulle videocamere, anticipando parzialmente i risultati dei test, si consiglia l'uso della videocamera CUBE che ha dato in media risultati migliori. In generale si consiglia l'uso di una videocamera attaccata al busto perché si ritiene di più facile soluzione il pro- blema di orientare correttamente la videocamera ed assicurarla in maniera salda tramite appositi sostegni che compensare i rapidi movimenti della te- sta. Oltretutto considerando che si tratta di pensare ad un dispositivo che inuenza relazioni sociali si ritiene che un dispositivo indossato sul busto, essendo meno vistoso, risulti più adatto allo scopo. 2.3 Elaborazione dei lmati Il passo successivo nella creazione del dataset è stato quello di importare i l- mati, riesaminarli, convertirli in un formato compatibile con i software usati in seguito 9, tagliarli, all'occorrenza unirli e sottoporli ad altre elaborazioni, ed inne rinominarli con un criterio coerente. 9 ViPER-GT[17] ed il toolbox VideoReader[18] per Matlab 21
  • 28. CAPITOLO 2. CREAZIONE DEL DATASET Innanzitutto si sono importati i lmati e li si è salvati senza apportare modiche alla nomenclatura in una cartella [yyyy_mm_dd]Originals Si può notare che si è deciso di usare una nomenclatura in inglese, sempre nell'ottica di rendere in futuro il nostro dataset disponibile come benchmark per altri progetti per i non vedenti. Si è poi passati ad una revisione del materiale acquisito alla ricerca degli spezzoni da estrarre dalla ben più lunga quantità di lmati. Per il primo insieme di lmati, ripresi senza una vera direzione delle scene, l'estrazione di singole sequenze più brevi si è basata sulla scelta di momenti che fossero più signicativi in base alla presenza di almeno alcune delle criticità descritte all'inizio di questo capitolo. Per gli altri lmati invece si è deciso di tagliare le sequenze in base a come erano state dirette, ovvero dal ciak iniziale al ciak nale di ogni scena scritta. La fase di revisione del materiale è stata fatta in maniera molto semplice, guardando i video disponibili e segnando i tempi iniziali e nali d'interesse in un semplice le di testo. Inoltre in questa fase si è già stati attenti a selezionare i tempi in modo che si possano confrontare facilmente spezzoni girati nello stesso istante con entrambe le videocamere, come si può vedere da Figura 2.3. Figura 2.3: Esempio di ricerca del sincronismo per la stessa sequenza girata con due videocamere Per lavorare sui lmati si è usato il programma Shotcut[19] 10. Lo si è scelto per numerose caratteristiche: è gratuito, è open source[20], è disponi- bile per i principali sistemi operativi 11 e non ultimo per la facilità d'uso. Di 10 Edizione 15.09.10 11 Windows, Mac OS, Linux 22
  • 29. CAPITOLO 2. CREAZIONE DEL DATASET seguito esponiamo le principali operazioni svolte: • Silenziare: si è deciso di rimuovere l'audio al lmato, considerata l'assenza di informazioni utili presenti in esso, sia per motivi di privacy che per ridurre le dimensioni dei le. • Convertire: si è dovuto convertire i lmati nel formato .mpeg, o più precisamente nel formato costituito da container .mpeg e codec mpeg1video anché i lmati fossero compatibili in seguito sia con il programma usato per l'etichettatura[17], sia con la libreria Matlab usata per l'elaborazione video in fase di test[18] • Ruotare: [solo CUBE] i lmati registrati con la videocamera Polaroid Cube, in seguito all'espediente usato per appendere quest'ultima al collo del non vedente, che ne ha provocato l'essere sottosopra, hanno richiesto il venire ruotati di 180◦ per tornare al corretto orientamento • Tagliare: la parte principale del lavoro è stata quella di individuare nel lmato più lungo i punti iniziali e nali di ogni sequenza e di esportare • Unire: [solo CUBE] i lmati registrati con la videocamera Polaroid CUBE, per motivi intrinsechi alla videocamera, risultano spezzati in segmenti di 5 minuti l'uno. Per questo motivo è stato necessario riunire alcuni spezzoni a cavallo dei cinque minuti, per ottenere uno spezzone unico equivalente a quello ripreso con la videocamera GX-9 La procedura utilizzata per svolgere queste operazioni si può trovare in dettaglio in Appendice B. È importante inoltre soermarsi sulla nomenclatura usata per rendere più facile riconoscere sequenze uguali lmate con i due dispositivi, oltre all'uso di cartelle con nomi deniti in modo da essere ben chiari. Gli spezzoni sono stati salvati in una sottocartella CUBE_Cuts o Gx9_Cuts a seconda dei casi, con un nome che rispetta la seguente formattazione: [Data riprese]_[Videocamera]_[Sigla del non vedente]_ [Numero identificativo del filmato d'origine]_ [lettera assegnata allo spezzone].mpeg Per esempio avremo i le: ..2015_11_12Gx9_Cuts2015_11_12_GX9_MLA_3_i.mpeg ..2015_11_12CUBE_Cuts2015_11_12_CUBE_MLA_5_i.mpeg È evidente che in questo modo viene aggiunta ridondanza all'informazione sullo spezzone. Infatti i dati su le di origine e data di ripresa si possono ottenere sia dal percorso che dal nome del le. Si è deciso intenzionalmente di introdurre questa ridondanza per rendere più facile l'identicazione di tutte le informazioni anche quando il le viene estratto dalla sua cartella per svolgere delle prove ed allo stesso tempo per trovare rapidamente il le quando cercato. 23
  • 30. CAPITOLO 2. CREAZIONE DEL DATASET 2.4 Etichettatura degli spezzoni Nel capitolo precedente abbiamo denito il dataset, l'esperienza che viene fornita alla macchina per apprendere, come un insieme composto da due sottoinsiemi: il sottoinsieme I degli input ed il sottoinsieme O degli output. Il set di lmati preparati come descritto sopra risponde alla creazione del- l'insieme degli input. L'etichettatura, cioè la creazione di una verità di base o ground truthing, corrisponde alla denizione dell'insieme O degli output. Questa fase è composta concettualmente di due fasi: la fase decisionale, sul come arontare tutti i vari problemi dell'etichettatura, e la fase pratica di creazione del ground truth. Nella fase decisionale si è dovuto decidere come etichettare i lmati e nel dettaglio come segnalare la posizione dei volti, e, data la mole di lmati acquisiti e la quantità di tempo richiesta per ogni etichettatura, quali di questi lmati etichettare. Nella fase pratica si è utilizzato un programma di ground truthing chia- mato ViPER-GT[17] per denire tramite interfaccia graca le informazioni relative alle posizioni dei volti, trascritte dal programma come testo in un le xml. Questo le xml a sua volta verrà letto da un parser che permet- te a Matlab, il software utilizzato per eseguire i confronti tra algoritmi, di interpretare le informazioni e confrontarle con quelle date in output dagli algoritmi testati. Inoltre è necessario segnalare che all'interno di questa tesi il dataset è stato utilizzato solo al ne di testare algoritmi già addestrati su dei set diversi 12 e non per addestrare i vari algoritmi per queste condizioni speciche. Si lascia questa possibilità a progetti futuri non essendo questo lo scopo principale della tesi. 2.4.1 Scelta degli spezzoni Si è deciso, data la quantità di lmati e data la quantità di situazioni signi- cative presenti in ogni lmato, di selezionarne una porzione ridotta ma co- munque suciente da essere statisticamente signicativa. Dopo aver notato la tendenza a scegliere solamente scene molto complesse, che non rispecchia- vano le situazioni medie riscontrate in tutte le riprese, si è scelto di optare per un'estrazione casuale anché i risultati non venissero inuenzati dalla scelta umana di particolari scene. Il risultato è stato l'estrazione casuale di 6 spezzoni tra i circa 120 pre- senti alla ne del lavoro di taglio. Potrebbe sembrare un numero ridotto di input, ma tenendo conto della lunghezza dei lmati variabile tra i 300 ed i 1400 frame, ciascuno con in media almeno un volto, ci ha portati comples- sivamente ad avere più di 5000 immagini con più di 9000 volti etichettati, una quantità ritenuta più che suciente anché i test abbiano dei risultati 12 Si vedano le sezioni relative all'addestramento di Viola-Jones, NPD e PICO nei rispettivi articoli[4, 9, 11] 24
  • 31. CAPITOLO 2. CREAZIONE DEL DATASET adabili. La quantità di situazioni coperta da ogni spezzone è tale che anche con solo sei lmati tutte le situazioni descritte nella sezione Criticità cercate nelle riprese e conseguente direzione sono risultate incluse nel test, insieme con altre situazioni prive di criticità, in modo da rappresentare in modo più fedele possibile le scene che il dispositivo nale del progetto, una volta in uso, si troverebbe ad arontare. Tuttavia, per necessità del progetto, si è deciso di aancare a queste scene estratte casualmente alcuni spezzoni più specici. Si tratta di sottospezzoni di una decina di secondi estratti da scene a loro volta selezionate casualmente da dei sottoinsiemi specici delle riprese, per ovviare all'assenza di alcune situazioni, o meglio di alcuni luoghi di ripresa, dalla prima selezione casuale. Si può quindi denire la selezione come semi-casuale e garantirne la validità nel coprire oggettivamente un intervallo di situazioni realisticamente ampio. Alla ne del processo di etichettatura ci si è quindi trovati con 9 lmati, dalle varie caratteristiche. • 2015_09_24_CUBE_MLA_13_6 • 2015_09_24_CUBE_MLA_14_4 • 2015_10_15_CUBE_ISA_1_a • 2015_10_15_CUBE_ISA_7_p • 2015_10_15_GX9_ISA_2_k • 2015_11_12_CUBE_MLA_6_extra5 • 2015_11_12_GX9_MLA_1_b • 2015_11_12_GX9_MLA_3_extra3 • 2015_11_12_GX9_MLA_5_extra8 Tra questi lmati ve ne sono infatti: • Videocamera: 4 Gx-9, 5 CUBE • Collaboratrice: 5 ISA, 4 MLA • Luoghi: 4 all'aperto, 5 al chiuso Vedremo nel prossimo capitolo se e quali eetti hanno queste dierenze sul rilevamento facciale. 25
  • 32. CAPITOLO 2. CREAZIONE DEL DATASET 2.4.2 Criteri di etichettatura La decisione sui criteri di etichettatura è stata altamente inuenzata dallo scopo del dataset come piattaforma di test specica per face detection al ne di interazioni sociali per non vedenti, e non come piattaforma di test generica per metodi di face detection. Si è deciso quindi di etichettare tutte le facce reputate pronte ad un interazione sociale. Questa denizione molto ambigua è stata quindi ridotta a dei parametri molto più precisi: • Orientamento orizzontale: da laterale a quasi 90 ◦ a frontale • Orientamento verticale: indierente • Distanza massima: circa 3 metri 13, e comunque riquadri mai inferiori ai 24 pixel sul lato più corto • Occlusione: anche volti parzialmente occlusi, nché almeno il 50% del volto è visibile Inoltre è altrettanto importante, oltre al criterio su quali volti etichattare, quello relativo alla denizione del volto. Si è optato per denire così i contorni del rettangolo contenente il volto: • Estremità superiore: corrisponde con l'estremità superiore della fronte • Estremità inferiore: corrisponde con l'estermità inferiore del mento • Estremità laterali (caso frontale): i contorni del volto • Estremità laterali (caso laterale): il contorno del volto da un lato 14 e l'attaccatura dell'orecchio dall'altro lato In seguito si è svolta una riunione apposita del gruppo di lavoro per denire criteri di etichettatura più stringenti, anche nell'ottica di sviluppi futuri e che permettano di eettuare confronti più precisi. In realtà il criterio di denizione di cosa sia un volto è rimasto pressoché invariato, però vi si sono aggiunte alcune informazioni che permettano, qualora lo si volesse, di discriminare solo alcune etichettature. Per motivi di tempo non si è fatto però uso di questa informazione aggiuntiva nell'ambito della tesi, in quanto questi ulteriori criteri sono stati deniti quando la tesi era già quasi alla sua conclusione. Tali criteri aggiuntivi sono: • Aggiunta di un ag per discriminare la lateralità del volto: se non si vedono interamente due occhi il volto viene considerato laterale • Distanza massima: circa 5 metri, e comunque riquadri mai inferiori ai 20 pixel sul lato più lungo 13 calcolati ad occhio 14 quindi la parte più sporgente tra naso e guancia 26
  • 33. CAPITOLO 2. CREAZIONE DEL DATASET • Aggiunta di tre punti: occhio destro, occhio sinistro, bocca. Punto messo nella parte centrale dell'elemento. • Aggiunta di un ag per discriminare l'occlusione di un volto 2.4.3 Processo di etichettatura Il processo pratico di etichettatura a sua volta si è diviso in più parti: la creazione dello schema base, ovvero la struttura delle etichette, ed il pro- cedimento ripetitivo di etichettare ogni singolo volto che risponde ai criteri deniti nella sezione precedente in ogni singolo frame delle scene scelte. En- trambi i processi sono stati svolti quasi interamente tramite interfaccia gra- ca in ViPER-GT[17] ed entrambi i processi sono corrisposti alla creazione di specici le .xml contraddistinti dall'estensione .xgtf (xml ground truth le). Per praticità alcune parti minori dell'etichettatura sono state fatte modicando in un editor di testo i le così creati invece che intervenendo via interfaccia graca, ma tutto il lavoro svolto avrebbe potuto essere svolto interamente in ViPER-GT. Tutti i dettagli sulla procedura utilizzata per svolgere questo lavoro si possono trovare in Appendice C. linea invisibile linea invisibile Figura 2.4: Interfaccia principale di ViperGT. Si può notare che in questo screenshot viene usato il vecchio criterio di etichettatura 27
  • 34. CAPITOLO 2. CREAZIONE DEL DATASET Figura 2.5: Schema Editor di ViPER-GT e risultato equivalente in forma di le xml. Si può notare la denizione dei criteri avanzati di etichettatura linea invisibile linea invisibile linea invisibile linea invisibile 28
  • 35. Capitolo 3 Test del dataset La procedura di test del dataset, o meglio, l'uso del dataset per testare i tre algoritmi discussi nel Capitolo 1 1 è stata svolta tramite Matlab 2[21]. Più nel- lo specico si è usato un tool[18] per estrarre i frame dal lmato e considerarli ciascuno come una singola immagine, in seguito si sono usati i vari metodi di face detection su ciascun frame per ottenere una matrice contenente le posizioni dei volti in ogni frame. Si è poi usato un parser per estrarre dai le .xgtf, che chiameremo metadata per semplicità, le informazioni riguar- do alle posizioni dei volti annotati manualmente e si è confrontata l'area di sovrapposizione per determinare i true positive, ovvero le detection corrette. Per ogni test si è avuto sia un riscontro graco in tempo reale dei risultati (Figura 3.1), sia si è modicato il codice usato per ottenere dei risultati nu- merici signicativi (Tabella 3.1). In seguito si sono analizzati i risultati per valutare contemporaneamente quale algoritmo fosse più ecace e per fare ul- teriori considerazioni di tipo qualitativo. In questo capitolo si approfondirà questo lavoro. 3.1 Implementazione in Matlab Si è deciso di usare Matlab in quanto standard accademico. L'idea è stata quella di implementare un metodo che permettesse di confrontare allo stesso modo tutti gli algoritmi da testare. Si è usato del codice scritto in prece- denza da un altro membro del progetto 3, al quale sono state apportate delle modiche più e meno importanti per adattarlo agli scopi di questa tesi ed all'evoluzione del progetto stesso. 1 Viola-Jones, Normalized Pixel Dierence, Pixel Intensity Comparisions Organized in Decisions Trees[4, 9, 11] 2 Versione R2015a 3 dott. Jacopo Fragasso 29
  • 36. CAPITOLO 3. TEST DEL DATASET Figura 3.1: Esempio di confronto graco. Si può vedere: -Sopra il risultato su un singolo frame -Sotto il graco relativo all'intero lmato (si noti che l'immagine si riferisce al test di un singolo algoritmo) True Positive False Positive False Negative Somma NPD 421 3558 1344 VJ 285 1385 1480 PICO 568 4048 1197 PICO alt 897 12348 868 Media NPD 0.30507 2.5783 0.97391 VJ 0.20652 1.0036 1.0725 PICO 0.41159 2.9333 0.86739 PICO alt 0.650 8.948 0.629 linea invisibile NPD Viola-Jones PICO PICO alt Recall (%) 23.8527 16.1473 32.1813 50.8215 Precision (%) 10.5805 17.0659 12.305 6.7724 Tabella 3.1: Risultati sul video 2015_11_12_GX9_MLA_1_b, lungo 1380 frames, contentente 1765 volti in totale. 30
  • 37. CAPITOLO 3. TEST DEL DATASET Tale metodo si può dividere in tre blocchi principali in base allo scopo da essi svolto: una prima parte relativa all'uniformazione dei risultati degli algoritmi, una parte relativa al parsing dei dati contenuti nei le .xgtf, in modo che anch'essi siano consistenti con la formattazione dei risultati dati dagli algoritmi ed inne la parte relativa al confronto vero e proprio di questi dati. Per uniformare il formato in cui vengono forniti i risultati delle detection dagli algoritmi, inizialmente solo NPD e Viola-Jones, è stata semplicemente creata una funzione nella quale passare i giusti parametri all'algoritmo. Parte importante del lavoro svolto in precedenza da Fragasso è stata però quella di implementare in Matlab la versione OpenCV di Viola-Jones invece di utilizzare la versione già esistente per Matlab. Con parsing in informatica si intende l'atto di estrarre da una sequenza di dati, in questo caso da una serie di stringhe, informazioni sulla struttura del testo analizzato grazie al riconoscimento della grammatica formale in cui tale testo è stato scritto. In questo caso quindi dopo aver studiato la struttura del le .xgtf, ovvero un semplice le .xml la cui struttura è ripetitiva e determinata dalla creazione dello schema-base come visto nel Capitolo 2, si sono determinati dei token da riconoscere e quindi usare per determinare quali informazioni estrarre dal ben più complesso blocco di codice. In seguito le informazioni estratte sono state usate per costruire una struttura analoga a quella passata dai classicatori per comunicare numero e posizione dei volti rilevati. Tale struttura è una matrice bidimensionale, larga uno ed alta quanto il numero di frames componenti il relativo spezzone analizzato. Ogni elemento della matrice contiene tanti array quanti i volti rilevati nel relativo frame. Ogni array si compone di quattro numeri che indicano rispettivamente: • Posizione orizzontale dell'angolo superiore sinistro. Distanza dal bordo sinistro espressa in pixel. • Posizione verticale dell'angolo superiore sinistro. Distanza dal bordo superiore espressa in pixel. • Larghezza del rettangolo, espressa in pixel. • Altezza del rettangolo, espressa in pixel. 31
  • 38. CAPITOLO 3. TEST DEL DATASET Frame Esempio di matrice ... 13 [93 189 36 49] [1240 350 40 58] [1260 410 20 51 ] 14 [105 187 36 49 ] [1245 352 35 58] 15 [115 187 36 49] [ 1250 356 30 58] 16 [123 192 36 49] 17 [127 195 36 49] 18 [] ... Tabella 3.2: Esempio di parte di una matrice rappresentante le detection o il risultato del parsing di un le .xgtf Inne un blocco di codice raggruppa tutto insieme per eettuare il con- fronto vero e proprio. La prima parte del codice usa il tool VideoReader[18] per convertire il lmato in una serie di frames, o meglio in un array quadridimensionale le cui dimensioni sono: • Posizione verticale (in pixel) • Posizione orizzontale (in pixel) • Valore del pixel (colore espresso come canale [R,G,B]) • Posizione temporale (in frames) È evidente che estraendo le prime tre dimensioni, relativamente ad una posi- zione temporale, si ottiene un'immagine che ragura il frame che compone il video in quell'istante. Viene poi invocato il parser per ottenere le informazioni relative al ground truth e salvarle in una matrice strutturata anch'essa come descritto sopra. Inne, iterativamente, frame per frame, si esegue la face detection sul- la relativa immagine e se ne confrontano i risultati con i valori salvati nel relativo elemento della matrice del ground truth. Come accennato in precedenza e visto in Figura 3.1 il confronto dei risul- tati è stato espresso gracamente sia disegnando su ogni frame i rettangoli deniti dalla detection sia quelli estratti dal ground truth, sia realizzando un istogramma che frame per frame mostrasse il numero di true positive, false positive e false negative 4. Con questi termini si indicano rispettivamente le detection corrette, le detection incorrette e i volti deniti nel ground truth ma non rilevati dal classicatore. La seconda parte rende evidente quindi la necessità di stabilire un criterio per denire quando una detection sia corretta. Gracamente è facile dire che 4 Sarà data in seguito una denizione formale di questi termini 32
  • 39. CAPITOLO 3. TEST DEL DATASET una detection è corretta in caso di sovrapposizione dei rettangoli, in special modo se sono centrati attorno al volto allo stesso modo, al netto di una certa tolleranza. Le basi di tale regola sono di facile denizione numerica, posto che non si facciano considerazioni sulla centratura dei rettangoli. Infatti per individuare una sovrapposizione è stato suciente basarsi sul rapporto tra l'intersezione e l'unione delle aree di rettangoli parzialmente sovrapposti, più facilmente denibile, computazionalmente più leggera e che permette la denizione di soglie di tolleranza. Formalmente: sia RGT il rettangolo denito nel ground truth e sia RD il rettangolo denito dal classicatore come detection di un volto, consideriamo la detection un true positive se RGT ∩ RD RGT ∪ RD ≥ T dove T è il valore di soglia. Si noti come intervenendo su questo valore sia possibile modicare la tolleranza del confronto: valori minori rendono il metodo più tollerante, considerando come true positive anche casi in cui i rettangoli sono sovrapposti solo in piccola misura, mentre valori di soglia più alti rendono il metodo molto più intollerante, portandolo a scartare tutti i valori tali che i rettangoli non siano altamente sovrapposti, no al caso estremo T = 1 che accetta come validi solo i casi in cui i due rettangoli siano perfettamente sovrapposti. 3.1.1 Modiche al metodo di confronto Tuttavia il metodo descritto sopra presentava svariate mancanze sia per la discutibilità di alcune scelte fatte in fase di implementazione sia per la neces- sità di aggiornarlo, per tenere conto di considerazioni e nuovi metodi emersi in fasi del progetto successive alla ne della collaborazione con l'autore del codice originale. È stato quindi necessario intervenire per porre rimedio a queste carenze e per rendere il metodo più ane alle necessità di questa tesi. Le modiche principali al metodo di confronto sono state l'aggiunta del metodo PICO e di una sua versione alternativa agli algoritmi da confrontare e l'implementazione di metodi che lavorassero numericamente sui risultati delle detection e che salvassero i risultati in un formato adatto a successive analisi numeriche. Grandi modiche Per aggiungere il metodo PICO agli altri in fase di confronto è stato innan- zitutto necessario assicurarsi che il formato di salvataggio dei risultati della detection fosse analogo ai risultati degli altri classicatori e del ground truth. Appurato che questo avvenisse, lo si è inserito tra le opzioni di rilevamento disponibili, apportando le modiche necessarie ad assicurarsi che l'informa- zione passata al comparatore fosse analoga anche strutturalmente a quella 33
  • 40. CAPITOLO 3. TEST DEL DATASET passata dagli altri metodi. linea invisibile Si è deciso di intervenire sul metodo anché fornisse risultati numeri- ci, sui quali quindi fosse possibile intervenire in modo matematico, invece che basarsi unicamente sull'esposizione graca dei risultati. Per fare ciò si è innanzitutto studiato il codice per estrarre i risultati numerici relativi al- la quantità di true positive, false positive e false negative trovati ad ogni comparazione. Si sono poi deniti degli indici che riassumessero i risultati del confronto in una maniera standardizzata e signicativa, e si è scritto un metodo che visualizzasse in forma di tabella dalla facile interpretazione tali risultati, come si può vedere in Figura 3.2. La teoria sugli indici numerici usati verrà approfondita nella sezione suc- cessiva relativa alla discussione sui risultati dei test. linea invisibile Figura 3.2: Esempio di tabella riassuntiva con i risultati numerici di un confronto esposta nella console di Matlab Piccole modiche Oltre alle modiche sopra descritte, dall'impatto critico sul lavoro svolto, sono state eettuate svariate modiche minori per rendere più agevole e talvolta veloce l'utilizzo del codice. Nonostante la decisione di implementare ed usare indici numerici, si è deciso di continuare ad usare anche i risultati graci, per avere informazioni di tipo qualitativo sui risultati delle detection, scelta che vedremo si è rivelata fondamentale. Tuttavia la decisione di usare spezzoni lunghi oltre 300 frames invece che solamente qualche decina ha reso necessario modicare la graca per eliminare contorni che rendevano illeggibili i risultati esposti in forma di istogramma. Il risultato nale è quello che già si può vedere in Figura 3.1. 34
  • 41. CAPITOLO 3. TEST DEL DATASET Inoltre si è intervenuti sul tempo di attesa tra la visualizzazione di un frame e del successivo, per velocizzare la procedura di test. Si è poi modicato il metodo di confronto in modo che in seguito al- la scelta di un lmato questo svolgesse consecutivamente la prova di tutti gli algoritmi invece che dover intervenire manualmente di volta in volta per specicare il detector che si intendeva usare, mediante modica manuale del codice. Questa scelta ha portato molteplici vantaggi. Innanzitutto ha ridot- to il lavoro manuale per testare i lmati, rendendolo quindi più veloce grazie alla possibilità di lasciare il calcolatore ad elaborare i lmati in background mentre si arontavano altri aspetti della tesi. In secondo luogo il codice così modicato richiedeva che il lavoro di parsing dei metadata e di trasformazio- ne del lmato nella matrice quadridimensionale sopra descritta venisse svolto solo una volta per ogni spezzone invece che ogni volta che veniva cambiato detector, riducendo ulteriormente i tempi di test. Inoltre si è posto rimedio ad una pecca riguardante la volatilità dei risul- tati del confronto. Infatti il codice originale non salvava le soluzioni in alcun luogo, limitandosi a visualizzarle unicamente in forma graca e rendendo di fatto l'unico modo per rivedere i risultati di un confronto, svolgerlo nuova- mente. Si è quindi implementato un metodo che al termine di ogni confronto ne salvasse i valori più importanti in un relativo le dal nome signicativo, in quanto contenente indicazioni chiare sul lmato analizzato e sul detector impiegato. 3.1.2 Modiche al Parser dei metadata Come già scritto alla ne del secondo capitolo a lavoro di tesi inoltrato so- no stati deniti dei nuovi criteri di etichettatura più avanzati. Tra questi l'aggiunta di ag per l'occlusione e per la lateralità che hanno quindi reso necessarie delle modiche sostanziali al parser in modo da poter sfruttare l'informazione aggiuntiva. Queste modiche che in principio si erano ritenute di facile esecuzione hanno invece richiesto una sostanziale riscrittura del codice. Il codice origi- nale nell'eettuare il parsing non teneva conto dell'indicazione sulla persona a cui appartenesse un volto. Questo ha comportato l'impossibilità di appli- care quindi una maschera che ltrasse i risultati in base ad un ag, in quanto questo non sarebbe potuto venir applicato ad una singola detection ma ad un intero frame, e quindi a tutte le detection in esso contenute. Era di fatto impossibile quindi discriminare uno specico volto in base alla sua lateralità o occlusione. Si è quindi scritto un metodo che creasse una matrice Nframes ∗ Npersone contenente in ciascuna colonna le informazioni sulla presenza e posizione del volto di una sola persona, divise ovviamente in modo che ad ogni riga 35
  • 42. CAPITOLO 3. TEST DEL DATASET corrisponda un frame, invece che una matrice Nframes ∗ 1 in cui ciascun elemento contiene mescolate le informazioni su tutti i volti presenti in un frame come visto in precedenza. Per non riscrivere tutto il codice è risultata valida la scelta di costruire ciascuna colonna della matrice del nuovo metodo invocando il vecchio me- todo su di una sottostringa contenente le informazioni su una sola persona alle quali veniva aggiunto un header uguale per tutte le sottostringhe, per rispettare il formato originale del le .xgtf. In maniera simile si sono create delle matrici, sempre bidimensionali, di dimensione Nframes ∗ Npersone in cui ciascun elemento contiene un valore booleano sulla lateralità di un volto o sulla sua occlusione. In seguito è bastato sfruttare queste matrici per creare una matrice denitiva in cui a scelta venissero eliminati, o meglio non venissero copiati, i valori in posizioni corrispondenti ad un valore true nella matrice ltro creata a partire dai ag. Inne, per garantire la coerenza del risultato del parsing, si è appiattita la matrice denitiva in una matrice di dimensioni Nframes ∗ 1 in cui ciascun elemento contiene le informazioni su tutti i volti presenti in un frame che hanno superato il ltraggio. 3.2 Risultati sperimentali In seguito alle modiche apportate al codice Matlab si sono potuti svolgere i test sui lmati. Si è deciso di usare i parametri già usati in precedenza da altri membri del progetto in quanto lo scopo di questa tesi non è la ricerca dei migliori parametri ma la valutazione dell'adabilità del dataset da noi creato come riferimento per poi valutare l'ecacia di successivi lavori, siano essi interven- ti sul codice dei classicatori o sui parametri scelti, siano essi diversi tipi di preprocessing applicati all'immagine prima di eettuare la detection. In Ap- pendice D si possono trovare tali parametri passati ai classicatori durante i nostri test. 3.2.1 Accenni su precision and recall Si è deciso di usare precision e recall come metro di giudizio, in quanto standard per la valutazione di classicatori. 36
  • 43. CAPITOLO 3. TEST DEL DATASET È necessario denire i tre possibili casi che si ottengono in seguito ad un confronto tra una detection ed il relativo ground truth, ovvero i già cita- ti true positive, false positive e false negative, nora menzionati senza una denizione formale: • Deniamo come true positive (TP) un'identicazione corretta, ovvero il caso in cui vi sia un riscontro tra un volto individuato dal classica- tore ed un volto denito nel ground truth come descritto nella sezione precedente • Deniamo come false positive (FP) un'identicazione non corretta, ovvero il caso in cui il classicatore individui un volto che secondo il ground truth non esiste • Deniamo come false negative (FN) un'identicazione non avvenuta, ovvero il caso in cui il classicatore non individui un volto denito nel ground truth e quindi esistente Una volta formalizzate queste denizioni è possibile dare una denizione di precision e recall. Con precision si denisce la quantità di identicazioni corrette rispetto alla quantità totale di identicazioni. Quest'informazione è importante per capire quanto sia possibile darsi di una detection o quanto invece supporre che essa non sia realmente, nel nostro caso, un volto. Avendo usato il suo valore percentuale, esso è quindi dato da: TP TP + FP · 100 Un valore basso indica che la maggior parte delle detection non sono volti, un valore del 100% indica che ogni detection è corretta e corrisponde ad un volto. Con recall si denisce la quantità di identicazioni corrette rispetto alla quantità totale di elementi, nel nostro caso volti, da identicare. Quest'in- formazione è importante per capire qual'è la probabilità che un volto sia identicato o quanto invece ci si possa aspettare che non venga riconosciuto. Avendo usato il suo valore percentuale, esso è quindi dato da: TP TP + FN · 100 Un valore basso indica che la maggior parte dei volti non sono stati ri- levati mentre un valore del 100% indica che ogni volto presente è stato correttamente rilevato. 37
  • 44. CAPITOLO 3. TEST DEL DATASET True Positive False Positive False Negative Somma NPD 2168 1756 1178 VJ 1749 2602 1597 PICO 2393 2286 953 PICO alt 2587 6871 759 Media NPD 1.905 1.543 1.035 VJ 1.537 2.286 1.403 PICO 2.103 2.009 0.837 PICO alt 2.273 6.038 0.667 linea invisibile NPD Viola-Jones PICO PICO alt Recall (%) 64.7938 52.2714 71.5182 77.3162 Precision (%) 55.2497 40.1977 51.1434 7.3525 Tabella 3.3: Risultati sul video 2015_10_15_CUBE_ISA_7_p, lungo 1138 frames, contenente 3346 volti in totale. 3.2.2 Discussione dei risultati In Appendice E si possono trovare i risultati estesi ottenuti per ciascun l- mato analizzato, come visti in Tabella 3.1 e come si può rivedere in Tabella 3.3. linea invisibile Per ogni lmato viene indicato: • Il numero di frame totali • Il numero di volti annotati • Per ciascun classicatore, il numero totale di: True Positive False Positive False Negative • Per ciascun classicatore, la media sui frame di: True Positive False Positive False Negative • Il valore di Recall, espresso in percentuale • Il valore di Precision, espresso in percentuale 38
  • 45. CAPITOLO 3. TEST DEL DATASET Filmato Lunghezza (in frames) A 2015_09_24_CUBE_MLA_13_6 379 B 2015_10_15_CUBE_ISA_7_p 1138 C 2015_11_12_GX9_MLA_1_b 1380 D 2015_09_24_CUBE_MLA_14_4 697 E 2015_10_15_CUBE_ISA_1_a 1200 F 2015_11_12_CUBE_MLA_6_extra5 838 G 2015_10_15_GX9_ISA_2_k 360 H 2015_11_12_GX9_MLA_3_extra3 300 I 2015_11_12_GX9_MLA_5_extra8 360 Tabella 3.4: Elenco degli spezzoni analizzati ed associazione ad una relativa lettera per sintesi. Videocamera Luogo Caratteristiche A CUBE Esterno bar di farmacia Forte contrasto e controluce. Volti occlusi e laterali. Videocamera storta. B CUBE Fermata dell'autobus Molti volti. Buona illuminazione, ma luce sousa. C Gx-9 Biblioteca di giurisprudenza Motion blur dovuto alla GX9. Illuminazione abbastanza buona. D CUBE Esterno edicio centrale Occlusioni parziali. Videocamera storta. E CUBE Interno del bar H3 Ambiente scuro. Movimenti bruschi. Molti volti occlusi o laterali F CUBE Interno della mensa C4 Contrasto e controluce. Illuminazione abbastanza buona. Movimenti lenti. G Gx-9 Interno del bar C4 Contrasto e controluce. Illuminazione abbastanza buona. H Gx-9 Interno del bar H3 Ambiente scuro. Movimenti bruschi. Abbondanza di volti laterali. I Gx-9 Fermata dell'autobus Buona illuminazione, ma luce dura. Tabella 3.5: Elenco degli spezzoni analizzati e delle relative caratteristiche 39
  • 46. CAPITOLO 3. TEST DEL DATASET Innanzitutto però è necessario associare ai lmati esaminati una lettera identicativa per sintesi, ed ai ni dell'analisi dei risultati è utile evidenziare le caratteristiche salienti di ciascuno spezzone. In seguito verranno riportati invece i risultati di recall e precision per tutti gli spezzoni. Questo perché in quanto indipendenti dal numero di frame e dal numero di volti presenti in media in ciascun frame, sono gli unici risultati confrontabili tra lmati. Esporremo anche i risultati di precision e recall calcolati usando la somma di true positive, false positive e false negative su tutti i lmati, anché spezzoni più brevi avessero un'incidenza sul risultato proporzionale alla propria lunghezza, o meglio al numero di volti presenti in tale spezzone, e non pari all'incidenza di lmati con più del triplo di volti. Analisi visiva dei risultati Prima di discutere i risultati numerici del confronto è necessario fare una considerazione su una particolarità resa evidente dall'analisi visiva dei risul- tati, ovvero dal guardare frame per frame non solo la presenza o assenza, ed in quale quantità, di true positive, false positive e false negative, ma anche della posizione delle detection incorrette. Si è notato infatti che le detection corrette, per forza di cose, restano nella stessa zona tra un frame ed il suo successivo, a fronte di una certa tolleranza necessaria per tener conto dei movimenti di chi lma e di chi si muove nella scena. Le detection incorrette invece hanno dimostrato la tendenza a non essere continuative nella stessa area ma apparire invece in maniera casuale in zone completamente diverse tra un frame ed il successivo. Questa considerazione è importante perché ci fornisce uno spunto su co- me sfruttare la componente temporale, peculiarità data dal lavorare su dei lmati invece che su immagini statiche, per migliorare la detection nale. Si può decidere infatti di ignorare la precision come elemento di valutazione e di scegliere il classicatore solo in base ad i suoi valori di recall, usando poi la componente temporale per ltrare i risultati indesiderati, riconoscibili in quanto di frame in frame essi non si ripresentano nelle stesse aree. Un metodo per il ltraggio basato sulla presenza in frame adiacenti di rettangoli nella stessa area potrebbe essere il seguente: sia Dt il rettangolo che rappresenta una detection all'istante t. Sia DVtx = 1, se Dt∩Dtx Dt∪Dtx ≥ T 0, altrimenti (3.2.1) il valore che determina la presenza di una detection simile nell'immagine distante x frames dall'istante t, con x ∈ Z e dove T è una soglia scelta in modo da garantire una corretta tolleranza al metodo. Consideriamo allora 40
  • 47. CAPITOLO 3. TEST DEL DATASET Dt una detection corretta, un true positive, se n x=−n DVtx ≥ S (3.2.2) dove n è il numero di frames circostanti da prendere in considerazione ed S ∈ R+ è il numero minimo di avvenute conferme nei frame circostanti desiderato. Questo metodo per quanto semplice è molto essibile. Si può infatti intervenire su T, S ed n per determinare la migliore tolleranza, sia rispetto al fattore temporale che posizionale. Si suggeriscono i seguenti valori per un primo test: • T = 0.1 • n = 2 • S = 3 Qusti valori sono stati scelti in base ad osservazioni fatte sugli spostamenti di volti tra un frame ed il successivo in fase di etichettatura ed analisi dei lmati, secondo la seguente logica: il basso valore di T serve a tener conto di eventuali grandi spostamenti in caso di movimenti bruschi del non vedente o del soggetto lmato, mentre i valori di n ed S signicano che cerchiamo una detection nell'area adiacente in almeno 3 dei 4 frame circostanti, con- siderando 2 detection su 2 frame circostanti una misura troppo severa, 1 detection su 2 frame un valore troppo permissivo e tenendo conto che au- mentare il numero di frame da prendere in considerazione aumenta il costo computazionale. Si lascia la possibilità di vericare questo metodo e dierenti valori a sviluppi futuri. Algoritmo dal miglior recall Considerata la poca, se non nulla, importanza della precision risulta allora evidente dalla Tabella 3.6 la netta superiorità dell'algoritmo PICO. Infat- ti, se gli algoritmi Viola-Jones e NPD hanno dato risultati altalenanti sugli spezzoni analizzati con risultati migliori talvolta dell'uno talvolta dell'altro, PICO ha superato entrambi in ogni test. Considerato questo suo mi- glior comportamento, si è deciso di provarlo modicandone un parametro, lo stridefactor, in maniera che aumentasse signicativamente il numero di true positive a fronte di un aumento altrettanto signicativo di false po- sitive. Guardando le Tabelle 3.6 e 3.7 si può infatti vedere come questo secondo test chiamato PICO alt abbia sempre superato i valori di recall di PICO standard a fronte di un notevole abbassamento della precision, come da aspettative. Queste considerazioni sono ulteriormente confermate guar- dando la Tabella 3.8 dalla quale risulta evidente l'aumento medio del recall del 10% a fronte del dimezzamento della precision. 41
  • 48. CAPITOLO 3. TEST DEL DATASET NPD VJ PICO PICO alt A 11.8881 14.6853 24.4755 31.8182 B 64.7938 52.2714 71.5182 77.3162 C 23.8527 16.1473 32.1813 50.8215 D 6.3624 11.4799 21.0235 35.1314 E 10.4646 17.3627 25.5748 36.6025 F 44.8276 40.9037 61.7122 67.1819 G 30.7787 28.9246 41.78 50.6799 H 5.96 8.99333 9.5302 19.0604 I 31.2572 18.6851 43.2526 53.5179 Tabella 3.6: Percentuale di recall per i diversi metodi sui lmati testati. In grigio evidenziato il risultato migliore per ciascun lmato. NPD VJ PICO PICO alt A 4.6512 2.0076 4.9088 2.2671 B 55.2497 40.1977 51.1434 27.3525 C 10.5805 17.0659 12.305 6.7724 D 8.4715 3.5838 14.4762 7.8226 E 12.3136 8.4302 13.0352 7.7604 F 35.3991 13.3852 29.1082 18.4279 G 22.6983 27.9236 22.4287 11.4685 H 13.213 8.7811 23.355 17.1913 I 47.2125 46.2857 54.8246 29.8777 Tabella 3.7: Percentuale di precision per i diversi metodi sui lmati testati. In grigio evidenziato il risultato migliore per ciascun lmato. Recall medio(%) Precision media (%) NPD 33.2928 27.2676 VJ 28.9759 17.2501 PICO 43.6984 24.869 PICO alt 53.7653 12.6236 Tabella 3.8: Valori medi di precision e recall per gli algoritmi testati 42
  • 49. CAPITOLO 3. TEST DEL DATASET Tuttavia queste considerazioni sono state fatte ignorando il fattore tem- porale, di cui già abbiamo accennato l'importanza, non misurato in questa serie di veriche. Analisi dei risultati in base alle caratteristiche dei lmati Più interessante è l'analisi dei risultati tenendo conto delle caratteristiche del lmato stesso. Si è deciso di escludere dalla maggior parte di queste analisi i test eettuati con il metodo PICO alternativo, in quanto essi hanno seguito una logica diversa, orientata alla massimizzazione del valore di recall a scapito della precision. Media NPD VJ PICO PICO alt A 20.71678322 -0.42616 -0.2911 0.181433 0.535866 B 66.4748954 -0.02529 -0.2137 0.075868 0.163089 C 30.75070822 -0.22432 -0.4749 0.046522 0.652694 D 18.49930844 -0.65607 -0.3794 0.136448 0.899066 E 22.50117316 -0.53493 -0.2284 0.136599 0.626693 F 53.65636147 -0.16454 -0.2377 0.150138 0.252077 G 38.0407911 -0.1909 -0.2396 0.098295 0.332251 H 10.87248322 -0.45183 -0.1728 -0.12346 0.753086 I 36.67820069 -0.1478 -0.4906 0.179245 0.45912 Tabella 3.9: Recall medio per ciascun lmato e deviazione normalizzata dal valore medio dei vari lmati. In grigio chiaro sono evidenziati per ciascun detector il risultato che ha deviato di meno in negativo dalla media, o di più in positivo, quindi migliori. In grigio scuro sono evidenziati per ciascun detector il risultato che ha deviato di più in negativo dalla media, o di meno in positivo, quindi peggiori. Le riessioni più interessanti derivano dall'osservazione di quali lmati abbiano dato i risultati peggiori in quanto ci aiutano a comprendere quali tipi di criticità abbiano maggiormente inuenzato quali detector. I quattro risultati in media peggiori, come si può anche vedere dalla Tabella 3.9, sono stati avuti sugli spezzoni A, D, E ed H. Questi lmati, come si può vedere in Figura 3.3, sono accomunati dal presentare forte contrasto dovuto a casi di controluce (A, E, H) oppure ad essere riprese particolarmente storte (A, D), problema già descritto nel capitolo precedente. È interessante notare che questi quattro casi coincidono con le volte in cui l'algoritmo Viola-Jones ha ottenuto valori di recall maggiori di quelli ottenuti dall'algoritmo NPD, naturalmente entrambi minori di quelli di PICO. Osservando la Tabella 3.7 si nota che sempre in questi quattro casi, che possiamo denire come più dicili, PICO si è invece dimostrato l'algoritmo con i migliori valori di precision. I valori di precision di NPD sono stati migliori nelle situazioni più facili, ovvero quelle molto luminose, con poco 43
  • 50. CAPITOLO 3. TEST DEL DATASET Figura 3.3: Immagini tratte dai quattro spezzoni in cui i classicatori in media si sono comportati peggio 44
  • 51. CAPITOLO 3. TEST DEL DATASET contrasto e girate con la videocamera CUBE. Questo è valso soprattutto nel lmato B che costituisce quasi un quarto del dataset, relativamente al numero di volti. Questi migliori risultati in situazioni facili sono stati tanto incisivi da far risultare mediamente l'algoritmo NPD come quello con i migliori valori di precision, come si può vedere dalla tabella 3.8. Concludiamo le considerazioni sulla precision notando che Viola-Jones in questo ambito ha dato risultati migliori dei concorrenti sui lmati che presentavano buone condizioni di luce, ma ripresi con la videocamera Gx- 9, della quale abbiamo già evidenziato le carenze, soprattutto in termini di nitidezza. Questo fatto è coerente con quanto previsto, considerando che il metodo NPD essendo basato su singoli pixel e su contrasti sore di più la mancanza di nitidezza. Le considerazioni più interessanti sono tuttavia quelle che si ottengono dalla Tabella 3.9 nella quale sono esposti i valori medi di recall per ciascun lmato e quanto i vari algoritmi siano distanti dalla media, normalizzato rispetto al valore medio. Si è poi osservato in quali spezzoni ciascun algoritmo deviasse di più o di meno dalla media, in meglio o in peggio. Da questa analisi sono risultate evidenti le seguenti considerazioni. NPD ha il risultato migliore, ovvero che devia in negativo, ma di poco, dalla media, nel lmato B. Come già visto, è il lmato più facile di tutti. Il risultato che si è discostato di più dalla media, in negativo, per NPD è stato quello relativo allo spezzone D, la cui criticità principale è la forte inclinazione. Questo ci fornisce un'ulteriore conferma della validità di NPD nché non vi sono criticità nell'immagine. Viola-Jones ha avuto il risultato migliore sul lmato H, il lmato con mediamente i risultati peggiori. Invece ha avuto valori di recall mediamente peggiori nel lmato I, caratterizzato da luce dura causata dalla giornata soleggiata, che a sua volta ha fatto sì che vi fossero ombre nette sui vol- ti. Nuovamente questo risultato è conforme alle nostre aspettative, tenendo conto che Viola-Jones si basa su Haar-Features dipendenti dalla variazione di luminosità fra speciche aree del volto, ed è quindi fortemente inuenzato da volti parzialmente in ombra. I risultati di PICO, variazione migliore sul lmato A, in controluce e stor- to, ma variazione peggiore sul lmato H, altro lmato che presenta dicoltà dovute al controluce, sono di dicile interpretazione. Sono invece di facile interpretazione i risultati di PICO alternativo. Il risultato migliore si ha sul lmato H, quello mediamente peggiore di tutti, mentre il risultato meno positivo si ha sul lmato B, quello mediamente mi- gliore di tutti, a dimostrazione che la variazione del parametro stridefactor è particolarmente incisiva tanto peggiori siano le condizioni dell'immagine da analizzare. Si è voluto inne calcolare precision e recall medi per ciascuna videoca- mera, facendo la media su tutti i true positive, false positive e false negative rilevati nei rispettivi lmati. I risultati, coerentemente con le aspettative e 45