rilevamento di facce in flussi video per l'ausilio ai non vedenti - tesi

78

Upload: temp-temp

Post on 16-Feb-2017

185 views

Category:

Engineering


6 download

TRANSCRIPT

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

UNIVERSITÀ DEGLI STUDI DITRIESTE

Dipartimento di Ingegneria e Architettura

Laurea Triennale in Ingegneria dell'Informazione

Rilevamento di facce in �ussi video perl'ausilio ai non vedenti

4 marzo 2016

Laureando Relatore

Michele Vittori Prof. Felice Andrea Pellegrino

Correlatore

Prof. Giovanni Ramponi

Anno Accademico 2014/2015

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

Sommario

Questa tesi rientra in un progetto più ampio sul modo in cui la tecnologiaattuale possa aiutare persone non vedenti e ipovedenti grazie alla realizzazio-ne di un dispositivo portatile che aiuti questi soggetti nelle loro interazionisociali, usando l'elaborazione digitale dell'immagine per sopperire alle lorocarenze visive.

In particolare si intende usare il machine learning, più speci�camentenelle forme di rilevamento e riconoscimento facciale, e riconoscimento delleespressioni per aiutare il soggetto ad iniziare conversazioni che altrimentinon avverrebbero.

Per questo lavoro è risultata necessaria la creazione di un dataset speci�coper testare gli algoritmi, intanto di face detection, in condizioni particolaristrettamente legate alle situazioni che il dispositivo �nale si troverebbe ada�rontare: �ussi video ottenuti da una videocamera con ottica grandangolareindossata 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 classi�catoriavrebbero a�rontato diversamente dall'essere applicati ad immagini trattedai dataset classici. Si sono quindi scritte, riprese ed estratte dai �lmatidelle scene che rispecchiassero tali criticità. In seguito queste sequenze sonostate annotate in maniera da renderle pronte al confronto con i risultati dellaface detection ottenuti dagli algoritmi presi in considerazione, ed allo stessotempo seguendo criteri che ne evidenziassero il �ne sociale.

Sono quindi stati testati gli algoritmi di rilevamento facciale sul datasetcosì creato. Dai risultati si evince che il dataset o�re di�erenze tali da ren-dere utile usarlo al posto di altri dataset già esistenti ma più generici. Lafase di test ha fatto inoltre emergere altre considerazioni utili sulle necessitàrelative al dispositivo di acquisizione da impiegare e su quale degli algoritmiconfrontati sia attualmente il migliore per i nostri scopi.

Sviluppi successivi includono lo svolgimento di ulteriori test usando lacomponente temporale per �ltrare le detection indesiderate ottenute dal me-todo con migliore recall a scapito di una minore precision e di provare adaddestrare gli algoritmi scelti con immagini estratte dal nostro dataset.

i

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

Indice

Sommario i

Introduzione iv

1 Machine Learning e Rilevamento Facciale 1

1.1 Accenni sul machine learning . . . . . . . . . . . . . . . . . . 11.1.1 Ground truth . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Algoritmi di rilevamento facciale . . . . . . . . . . . . . . . . 21.2.1 Viola-Jones . . . . . . . . . . . . . . . . . . . . . . . . 21.2.2 Zhu-Ramanan . . . . . . . . . . . . . . . . . . . . . . . 61.2.3 Normalized Pixel Di�erence (NPD) . . . . . . . . . . . 91.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 . . . . . 152.2 Acquisizione dei �lmati . . . . . . . . . . . . . . . . . . . . . . 17

2.2.1 Scrittura e direzione delle scene . . . . . . . . . . . . . 172.2.2 Considerazioni sulle videocamere . . . . . . . . . . . . 19

2.3 Elaborazione dei �lmati . . . . . . . . . . . . . . . . . . . . . 212.4 Etichettatura degli spezzoni . . . . . . . . . . . . . . . . . . . 24

2.4.1 Scelta degli spezzoni . . . . . . . . . . . . . . . . . . . 242.4.2 Criteri di etichettatura . . . . . . . . . . . . . . . . . . 262.4.3 Processo di etichettatura . . . . . . . . . . . . . . . . . 27

3 Test del dataset 29

3.1 Implementazione in Matlab . . . . . . . . . . . . . . . . . . . 293.1.1 Modi�che al metodo di confronto . . . . . . . . . . . . 333.1.2 Modi�che al Parser dei metadata . . . . . . . . . . . . 35

3.2 Risultati sperimentali . . . . . . . . . . . . . . . . . . . . . . . 363.2.1 Accenni su precision and recall . . . . . . . . . . . . . 363.2.2 Discussione dei risultati . . . . . . . . . . . . . . . . . 38

ii

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

INDICE

Conclusioni 47

3.3 Conclusioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483.4 Sviluppi futuri . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.4.1 Miglioramenti dell'algoritmo di face detection . . . . . 503.4.2 Funzioni aggiuntive . . . . . . . . . . . . . . . . . . . . 503.4.3 Implementazione del dispositivo . . . . . . . . . . . . . 51

A Informativa appesa nei luoghi delle riprese 52

B Procedura seguita in Shotcut 53

B.1 Procedura principale . . . . . . . . . . . . . . . . . . . . . . . 53B.2 Altre procedure . . . . . . . . . . . . . . . . . . . . . . . . . . 54

B.2.1 Creazione dei presets . . . . . . . . . . . . . . . . . . . 54B.2.2 Unire spezzoni . . . . . . . . . . . . . . . . . . . . . . 56

C Procedura seguita in ViPER-GT 58

C.1 Creazione dello �Schema base� . . . . . . . . . . . . . . . . . . 58C.2 Etichettatura dei volti . . . . . . . . . . . . . . . . . . . . . . 59

D Parametri passati ai detector nei test 64

D.1 Normalized Pixel Di�erence . . . . . . . . . . . . . . . . . . . 64D.2 Viola-Jones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64D.3 Pixel Intensity Comparisions Organized in Decisions Trees . . 65D.4 Pixel Intensity Comparisions Organized in Decisions Trees,

alternative value . . . . . . . . . . . . . . . . . . . . . . . . . 65

E Risultati sperimentali 66

iii

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

Introduzione

Questa tesi è un tassello all'interno di un progetto più ampio che coinvol-ge vari professori e studenti del Dipartimento di Ingegneria e Architetturadell'Università degli Studi di Trieste, atto ad aiutare persone non vedentied ipovedenti. Il progetto di aiutare questi soggetti nelle loro interazioni so-ciali, fornendo loro un dispositivo che �veda� al posto loro e fornisca quindiinformazioni utili ai rapporti umani è quantomeno ambizioso. Innanzituttoè fondamentale domandarsi come questa �vista� possa e�ettivamente essered'aiuto, come il dispositivo possa comunicare con il soggetto e soprattuttoche informazioni cercare in una ripresa in tempo reale per poi trasmetterleal non vedente. In questa logica si è ritenuto di maggiore impatto psicolo-gico dare al non vedente la possibilità di iniziare un'interazione, rendendolaquindi più �simmetrica� e trasformando il non vedente da soggetto passivo asoggetto attivo nel rapporto.

Né l'uso della computer vision per fornire supporto e nuove possibilità ainon vedenti né l'argomento face detection sono temi particolarmente nuovi.Negli anni infatti sono stati sviluppati numerosi progetti atti ad aiutare inon vedenti nelle più disparate attività di tipo non sociale, e l'argomentoface detection è stato già ampiamente studiato in passato e continua adessere studiato attualmente per �ni dei più svariati tipi, dalla sicurezza almiglioramento della messa a fuoco in macchine fotogra�che. Risulta menoscontato invece il suo utilizzo nell'ambito dell'ausilio ai rapporti umani pernon vedenti.

Ci si è quindi concentrati sull'implementazione di metodi che permet-tessero al non vedente di iniziare una conversazione considerando il grandeimpatto 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 possaessere interessato all'interazione col non vedente, in quanto suo conoscenteo semplicemente perché caratterizzato da un'espressione amichevole.

Fortunatamente lo strumento face detection, in quanto strumento, è lostesso indipendentemente dallo scopo per il quale lo si usi e si sono potutisfruttare ampiamente gli studi fatti �nora in questo ambito come punto dipartenza per adattare gli algoritmi esistenti alle nostre esigenze.

Questo lavoro ha però richiesto una nuova piattaforma di test in quanto

iv

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

INTRODUZIONE

non si era più interessati ad un confronto equo ed imparziale tra i metodidi 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 intendonole di�coltà derivanti dalle situazioni che gli stessi algoritmi dovranno a�ron-tare quando implementati nel dispositivo �nito: immagini estratte da �lmatigirati con videocamere grandangolari indossate da non vedenti.

Il test degli algoritmi su questo dataset da noi appositamente creato haavuto più di uno scopo. Oltre allo scopo principale di decretare quale tragli algoritmi presi in considerazione fosse quello con le performance migliorisecondo i nostri criteri di giudizio, ci si è dovuti innanzitutto assicurare cheil dataset stesso fosse una piattaforma di test a�dabile, anche nell'ottica direnderlo 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 sibasano gli algoritmi confrontati nell'ambito di questo progetto.

Nel secondo capitolo verrà descritto il lavoro svolto per la creazione deldataset in tutte le sue fasi sia concettuali che pratiche.

Nel terzo capitolo verrà descritto il lavoro di test svolto e saranno espostii risultati ottenuti.

v

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

Capitolo 1

Machine Learning e

Rilevamento Facciale

Non è nello scopo di questa tesi approfondire l'aspetto dimachine learning edil ruolo da esso svolto nell'implementazione di un sistema di face detection,nello speci�co per non vedenti. Risulta però necessario dare al lettore unaccenno generale sull'argomento in modo da meglio comprendere il lavorosvolto 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 sistemiinformatici la cui e�cienza o e�cacia, o altri parametri a seconda dei casi,migliorino automaticamente �no a giungere alla risoluzione di un problemaassegnato sfruttando l'esperienza. L'esperienza è più precisamente de�nitaaddestramento, controllato o meno, a seconda di che esempi ed indicazionivengano forniti riguardo ai risultati che si vogliono ottenere.

Le applicazioni sono innumerevoli, limitate solo dalla fantasia e dalleesigenze dei ricercatori, ed hanno le complessità più svariate: si spazia da un�semplice� programma addestrato per non perdere mai a tria, o similmenteper vincere a scacchi1[1] ad un sistema di guida automatica che permettaad un'automobile di muoversi autonomamente su strade pubbliche senzaintervento umano come la Google Self-Driving Car[2] ed il progetto italianoVisLab[3].

Uno degli scopi più a�rontati nell'ambito machine learning è senza dub-bio la classi�cazione, ovvero la capacità di distinguere e separare dati incategorie diverse partendo da un insieme contenente informazione non clas-si�cata. Questa spiegazione quasi tautologica è più chiara se si fornisce unade�nizione più rigorosa:

1Complessità maggiore, ma stesso approccio di base

1

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

CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE

Dato un insieme di dati contenente n tipi di oggetti, si de�nisce

classi�cazione 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 restopresente 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 ilmaggior intervento umano prende il nome di apprendimento supervisionato,o supervised learning, ed indica i casi in cui la macchina impara da un setdi 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 uninsieme di output O in cui ogni elemento è il risultato atteso per l'elementodi input corrispondente. L'apprendimento da parte della macchina consistenell'usare questi dati per trovare una funzione in grado di associare l'insiemeO all'insieme I come indicato.

Nell'ambito della computer vision questo set d'addestramento prende ilnome di �ground truth�, verità di base, ad indicare un insieme di dati che sisa essere veri, o il più veri possibile, poiché ottenuti per osservazione direttae 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 sonoassociate 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 unabreve 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 dirilevamento facciale[4] che è quello al momento più di�uso in ambito acca-demico, nella sua forma originale o nelle molteplici varianti che ha generatonegli anni. I due motivi principali della sua ampia adozione sono il buonfunzionamento dimostrato e la facilità di implementazione grazie alla suainclusione nelle librerie OpenCV[5]. Con buon funzionamento ci si riferisce

2

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

CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE

al fatto che è robusto e lavora in tempo reale, capacità molto importantee di di�cile implementazione all'epoca, considerando la minore potenza dicalcolo dei processori.

Il metodo, che prende il nome dai suoi padri, si basa fondamentalmentesull'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 basatesui singoli pixel

• La selezione di un numero limitato di features importanti dal ben piùampio insieme di tutte quelle disponibili tramite un meta-algoritmodi apprendimento, per la creazione di un classi�catore semplice ede�ciente

• L'implementazione di un metodo per combinare più classi�catori viavia più complessi in cascata, che incrementa drasticamente la velocitàdi rilevamento

Il risultato �nale è una cascata di 38 classi�catori che valutano oltre 6.000features e che nonostante ciò è molto veloce.

Approfondiremo questi tre argomenti nei successivi capitoli: Immagineintegrale e Haar-features, dedicato al set di features usato, AdaptiveBoosting e cascata di classi�catori, dedicato all'algoritmo usato perl'estrazione delle features che compongono un classi�catore e la scelta deiclassi�catori e del loro ordine di utilizzo.

Immagine integrale e Haar-features

La scelta di usare l'immagine integrale e delle features invece di pixel havari motivi, primo di questi la maggior versatilità delle features e la loropossibilità di racchiudere conoscenza speci�ca che è di�cile da imparareusando una quantità �nita di dati d'addestramento. Secondo motivo, manon meno importante, è la già menzionata maggiore velocità ottenuta graziea questo accorgimento al posto di lavorare su singoli pixel.

Nello speci�co si usano delle features che traggono ispirazione dalle fun-zioni base di Haar, già usate in precedenza da [6], dal quale la de�nizioneHaar-features. Si fa uso di tre tipi di features, come si può anche vedere inFigura 1.1[4]:

• Two-rectangle feature: il valore dato dalla di�erenza fra la sommadei pixel che compongono due regioni rettangolari adiacenti, orizzon-talmente o verticalmente.

• Three-rectangle feature: il valore dato dalla somma dei pixel checompongono due regioni rettangolari esterne sottratto al valore della

3

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

CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE

somma dei pixel che compongono la regione centrale, orizzontalmenteo verticalmente.

• Four-rectangle feature: il valore dato dalla somma dei pixel checompongono i rettangoli superiore destro ed inferiore sinistro sottratti aquelli 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 inrealtà 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 nellaquale a ciascun pixel invece che il dato sulla sua singola luminosità vieneassociato la somma dei valori di tutti i pixel contenuti nel rettangolo che ède�nito dal pixel stesso e dal primo pixel in alto a sinistra. Ovvero il valoredel pixel (x, y) nell'immagine integrale ii(x,y) è:

ii(x,y) =∑

x′≤x,y′≤yi(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 rettangolarenon è nient'altro che il valore del pixel che lo delimita in basso a sinistra, eche il valore di una feature, sia essa composta da due, tre o quattro rettangolinon è nient'altro che la somma algebrica del valore di al massimo quattroelementi nel più complesso dei casi.Quindi in seguito alla semplice operazione di trasformazione dell'immaginein un'immagine integrale, fatta una volta per ciascun frame, il lavoro dicreazione di tutte le features in un'immagine è estremamente velocizzato.

La semplicità di questo metodo impone però dei limiti rispetto ad altrimetodi più complessi, soprattutto riguardo la capacità di rilevare caratteri-stiche più complesse come barre, spigoli ed altre strutture geometriche anche

4

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

CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE

semplici. Inoltre vi sono limitazioni anche sull'orientamento che si può farassumere a queste features, nel nostro caso solamente orizzontale, verticaleo diagonale.

Adaptive Boosting e cascata di classi�catori

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, siotterrebbe 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 rispettoa metodi basati sui singoli pixel. L'ipotesi di Viola e Jones, rivelatasi poicorretta, è che basta combinare un set molto ridotto di features per creareun classi�catore e�cace.

Sono ricorsi quindi al metodo di meta-machine learning AdaBoost [7],contrazione di Adaptive Boosting, per estrarre poche features più signi�cativee combinarle in un classi�catore molto grezzo. Senza scendere troppo neldettaglio per fare ciò si addestra l'algoritmo tramite iterazioni successiveassegnando alla �ne di ogni ciclo diversi pesi, ovvero una diversa importanza,alle varie features in base al risultato che avevano fornito, �no a trovare lemigliori. Poi queste features vengono divise in vari classi�catori, 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 classi�catoridal più semplice al più complesso per �ltrare di iterazione in iterazione tuttii falsi positivi, ovvero le classi�cazioni ritenute corrette dal classi�catore mache non corrispondono all'oggetto cercato. In pratica l'algoritmo sottoponeinizialmente l'immagine a classi�catori più semplici e quindi più e�cienti,che eliminano un buon numero di sotto-�nestre dell'immagine, riducendoquindi il numero di sotto-�nestre, e di conseguenza l'area, alla quale appli-care classi�catori più complessi e meno e�cienti, ma che ottengono via viapercentuali più basse di falsi positivi. Anche la cascata di classi�catori, chealtro 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 lavorodi Viola-Jones porta ad un rilevatore completo composto da 38 classi�catoriper un totale di 6.060 features utilizzate.

È importante osservare che il classi�catore più semplice, basato su soledue features, è in grado di rilevare il 100% dei volti con una percentuale difalsi positivi del 50%, ovvero esclude solo il 50% dei riquadri privi di volti.Esso è basato sulla di�erenza di luminosità che vi è orizzontalmente tra i due

2impostazioni standard per la creazione delle features

5

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

CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE

occhi ed il setto nasale e sulla di�erenza che vi è verticalmente tra la zonadegli occhi e quella di naso e guance come si può vedere dalla Figura 1.2[4].

Il secondo classi�catore usa 10 features e rileva correttamente quasi il100% dei volti, ma esclude già l'80% delle �nestre prive di volti. Questo fasì che la maggioranza delle sotto-�nestre venga scartata già nei primi duepassaggi, facendo sì che alla �ne dell'operazione di rilevamento facciale inmedia vengano usate solo 8 features per sotto-�nestra.

Figura 1.2: Rappresentazione gra�ca delle features che compongono il primoclassi�catore della cascata

È inoltre necessario parlare del dataset utilizzato da Viola e Jones peraddestrare il loro algoritmo di rilevamento facciale, soprattutto tenendo con-to che nel corso di questa tesi non si è addestrato nuovamente l'algoritmoma lo si è usato così come sviluppato originariamente. L'algoritmo è statoaddestrato su un dataset di 4916 facce, etichettate a mano e scalate per averetutte la stessa risoluzione di 24*24 pixel. La cosa più importante da notareè però che i volti sono tutti frontali, perfettamente visibili e ben illuminatisalvo qualche raro caso di illuminazione non uniforme, situazione ben diversada 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 dimodelli basati su strutture ad alberi ed un gruppo di parti condivise. Vieneridotto a modello ogni particolare del volto e salvato come singola parte dariconoscere e si tiene conto dei rami che uniscono le varie parti. Viene poidata ai rami la possibilità di cambiare dimensione, pur entro certi limitideterminati in base alla struttura �sica del volto, tali da garantire su�ciente�essibilità all'algoritmo per essere tollerante alle variazioni dovute a cambidi espressione facciale e dell'orientamento del volto ma allo stesso tempolimitare il numero di falsi positivi.

Stando a quanto dichiarato nell'articolo questo metodo è risultato moltoe�cace, 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

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

CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE

Figura 1.3: Sopra: Rappresentazione gra�ca degli alberi topologici, con inrosso i rami che collegano le parti. Sotto: esempio di uno dei dataset usatiper 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 insituazioni naturali nelle quali il volto non è necessariamente frontale rispettoallo strumento di acquisizione, ben visibile e ben illuminato.

Purtroppo però questo metodo, quando provato su singoli frame estrattidai �lmati acquisiti nel corso del nostro progetto, per veri�carne il funziona-mento prima di implementare un sistema automatizzato di analisi di interi�lmati, ha presentato due grossi problemi. Il primo sono stati risultati nonall'altezza di quanto presentato dall'articolo, con volti frontali e ben illu-minati non riconosciuti, indipendentemente dal sotto-metodo usato come sipuò vedere dalla Figura 1.4. Il secondo, più rilevante soprattutto dato loscopo �nale all'interno del nostro progetto, è stato l'incredibile lentezza3,inaccettabile per un detector che deve funzionare in tempo reale. Infatti,come si può vedere dalla Tabella 1.1, sono stati impiegati almeno 30 secondinel migliore dei casi.

Metodo �Veloce� (s) Metodo �Lento� (s)1 99.3 597.62 96.6 588.13 98.8 601.74 43.9 312.75 107.3 626.96 94.8 570.57 90.2 559.68 93.1 587.29 34.9 271.010 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 altrimetodi non sarebbe stato facile né equo, essendo i risultati degli altri metodi

3Test 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

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

CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE

linea invisibile

Figura 1.4: Confronto dei risultati del rilevamento facciale: sopra i risultatiottenuti da Zhu e Ramanan e presentati nel loro articolo, sotto alcuni esempidi quelli ottenuti su frame estratti da nostri �lmati.

8

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

CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE

e la nostra etichettatura basati su bounding box, rettangoli tracciati attornoal volto. Sarebbe stata richiesta quindi l'implementazione di codice al �nedi trasformare i risultati sotto forma di punti lungo i contorni del volto ecaratteristiche quali occhi, naso e bocca in bounding box. Per tutti questimotivi, principale dei quali la lentezza, si è deciso quindi di non includerequesto metodo nel lavoro di confronto più completo.

1.2.3 Normalized Pixel Di�erence (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, presentaanche delle di�erenze signi�cative. Infatti lo scopo principale dei ricercatoriè stato quello di cercare un nuovo set di features e classi�catori tali da ren-dere il metodo più e�cace per il rilevamento facciale senza restrizioni, nellospeci�co anche nel caso più complesso di copertura parziale di volti lateraliirrisolto prima del loro articolo.

La feature proposta è la di�erenza normalizzata dei pixel (Normalized

Pixel Di�erence) ovvero la di�erenza del valore di intensità di due pixelqualsiasi divisa per la somma dei loro valori. Per due generici pixel x e y:

f(Ix, Iy) =Ix − IyIx + Iy

con Ix, Iy > 0 e f(0, 0) = 0 quando Ix = Iy = 0. Si noti che con x e y siindicano due pixel presi in considerazione, non le coordinate di un singolopixel, e che si è deciso, al contrario della notazione ambigua dell'articolooriginale, di de�nire Ix e Iy le relative intensità. Questa feature ha quindicaratteristiche quali l'invarianza di scala, la possibilità di ricostruire l'imma-gine originale e la ridotta complessità di calcolo, essendo calcolata solo condue somme e una divisione per feature. È molto importante notare che lafunzione f gode della seguente proprietà

f(aIx, aIy) = f(Ix, Iy), ∀Ix, Iy, ∀a 6= 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 sogliein degli alberi decisionali, in particolare dei boosted regression trees. Il classi-�catore debole nasce dall'imparare, tramite addestramento su immagini confacce ed immagini senza facce, le soglie ideali da introdurre in ciascun nodo,mediante l'applicazione dell'algoritmo CART [10] alle NPD features. Vienepoi usato l'algoritmo GentleBoost[7], una variante del più noto AdaBoost,per ridurre il numero di informazioni ridondanti ancora presenti in seguitoall'uso di soli alberi decisionali e costruire un classi�catore più robusto.

9

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

CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE

Il metodo NPD a�ronta quindi vari problemi del rilevamento facciale incondizioni non ristrette nei seguenti modi:

• Posa: l'algoritmo è robusto a di�erenti pose grazie al fatto di me-morizzare in diverse foglie diversi punti di vista, senza la necessità diaddestramenti speci�ci per pose diverse.

• Copertura parziale: essendo le NPD features basate su coppie dipixel e non intere aree come le Haar features, molte meno features

sono a�ette dalla copertura parziale, e quindi il metodo è più robustoalla copertura parziale dei volti.

• Illuminazione: come già visto la caratteristica di invarianza di scalarende le NPD features robuste a varizioni di luminosità.

• Sfocatura e basse risoluzioni: basandosi sulla di�erenza dei valoridi due pixel, le NPD features non richiedono immagini molto detta-gliate, rendendo il metodo e�cace anche in casi di immagini sfocate oa bassa risoluzione.

Tuttavia si può anticipare che i risultati sul nostro set di valutazione nonsono stati all'altezza delle caratteristiche vantate, specialmente per quel cheriguarda immagini molto rumorose, problema e�ettivamente non consideratodagli autori.

1.2.4 Pixel Intensity Comparisons Organized in DecisionsTrees (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 delloro lavoro da NPD.

Gli autori de�niscono il loro metodo come una semplice modi�ca delmetodo standard Viola-Jones ma vi sono alcune di�erenze signi�cative sianella logica alla base del metodo che nei conseguenti risultati. Come diceil nome l'algoritmo si basa su confronti di intensità (luminosa) di coppie dipixel al posto delle Haar-Features, poi organizzati in alberi decisionali. Restaquindi in uso l'idea di usare una cascata di classi�catori via via più complessiman mano che si escludono regioni dell'immagine che vengono determinateessere prive di volti dai classi�catori 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 ilconfronto 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

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

CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE

apprendimento supervisionato e quindi sia viene associato manualmente adogni immagine di addestramento Is il valore di ground truth vs (-1 per i cam-pioni negativi, +1 per i campioni positivi), sia si de�nisce per ogni campioneanche l'esistenza di un peso ws, in seguito calcolato automaticamente in fased'addestramento, per indicare l'importanza del relativo campione all'internodel set di addestramento. L'addestramento consiste nel minimizzare l'errorequadratico medio pesato

WMSE =∑

(I,w,v)∈C0

w · (v − v̄0)2 +

∑(I,w,v)∈C1

w · (v − v̄1)2

dove C0 e C1 sono campioni d'addestramento per i quali il risultato del testbinario succitato, per l'immagine associata, erano rispettivamente 0 o 1 edove v̄0 e v̄1 sono le medie pesate del ground truth in C0 e C1. Questo fasi che l'algoritmo cerchi i test binari che minimizzano questa funzione, checorrisponde a creare alberi decisionali composti dai migliori test, e questesono 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 insiemedi alberi decisionali. In questa fase si assegna una soglia alla somma de-gli output degli alberi decisionali modi�cando la quale è possibile variare ilrapporto tra falsi positivi e veri positivi ottenuti.

In seguito si usa la stessa logica di Viola-Jones di partire da classi�catoripiù deboli e meno e�caci per escludere successivamente sempre più aree pri-ve di volti in modo da applicare classi�catori più e�caci ma meno e�cientisolo ad aree ridotte dell'immagine. Ogni passaggio consiste nel passare l'im-magine ad un classi�catore composto da un insieme di alberi decisionali, ilcui valore di soglia assegnato ne determina la complessità. Va notato che tut-tavia anche in questo passo dell'algoritmo è stato scelto di usare un risultatomeno assoluto. Ogni passaggio infatti dà in uscita un valore di con�denzainvece di un valore assoluto sull'assenza di volti, e questo valore viene usatocome dato nei passaggi successivi.

Alla �ne di questi passaggi si ottiene un insieme di rilevamenti, anchemultipli per ciascun volto, che vengono �ltrati in base alla percentuale disovrapposizione 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 e�cace del metodo NPD e del metodo commerciale IlluxObject Detection[12] in termini di accuratezza. Tuttavia è stato stimato chesia circa quattro volte più veloce del metodo NPD.

Inoltre è segnalato dagli autori che si può supporre che il metodo PICO sicomporti signi�cativamente peggio in caso di immagini molto rumorose pervia della sua dipendenza da test binari su zone di pochi pixel e suggeriscono

11

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

CAPITOLO 1. MACHINE LEARNING E RILEVAMENTO FACCIALE

l'uso di Viola-Jones in questi casi considerando che di fatto fa una mediadell'intera area esaminata, rendendolo più robusto a variazioni locali come ilrumore. Gli autori segnalano inoltre che è possibile che altri sistemi basatisu features simili, come per esempio NPD, possano incorrere in problemianaloghi.

Il metodo quindi si dimostra valido quasi quanto lo stato dell'arte maallo stesso tempo molto più e�ciente, quindi più adatto a dispositivi con mi-nore capacità di calcolo quali sistemi portatili o embedded. Inoltre presentavantaggi quali il non richiedere la costruzione di un'immagine integrale con-trariamente a metodi basati sulle Haar-features, l'usare un solo tipo di featureed il non richiedere che l'immagine venga prima processata per facilitare illavoro dell'algoritmo.

12

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

Capitolo 2

Creazione del dataset

Come già accennato nell'introduzione è di fondamentale importanza primadi iniziare i lavori domandarsi in che modo face detection e face recognition

possano aiutare i non vedenti. All'interno di questo progetto si è deciso diconcentrarsi principalmente sugli aspetti sociali della vita del non vedente, equindi è necessario pensare a che scopi possano avere le tecnologie succitatein questo ambito.

All'inizio si è ragionato domandandosi che tipo di nuove possibilità de-siderasse un non vedente, approccio rivelatosi purtroppo infruttuoso sia perl'incapacità di immedesimarsi nel non vedente da parte dei membri del pro-getto, sia per la giusti�cabile impossibilità da parte dei non vedenti a cui èstato chiesto di immaginare le possibilità che la vista potesse o�rirgli, spe-cialmente nel caso di cecità dalla nascita. Si è rivelata vincente l'idea dia�rontare il ragionamento dalla prospettiva di una persona normo-vedentechiedendosi in che modo questa tragga vantaggio in ambito sociale dal pos-sesso della vista e solo in seguito domandandosi come sia possibile trasferiretali vantaggi ad un non vedente.

Similmente si è rivelata una buona idea trascurare temporaneamente ilmezzo (face detection, face recognition) per concentrarsi solo su che risultatisi vogliano ottenere. Fortunatamente molti studi sono già stati fatti sull'u-tilità che la vista ha nelle interazioni sociali ed oggi sappiamo che in unaconversazione più del 90% dell'informazione trasmessa è non verbale, ovveronon è estratta solamente dalle parole pronunciate ma anche dai toni, e in unaquantità superiore al 60% dai gesti, dalle espressioni che le accompagnano eda altri elementi visivi[13, 14].

Purtroppo insegnare ad un algoritmo a riconoscere tutte le sottigliezzedella comunicazione non verbale è un compito improbo, soprattutto tenendoconto della di�coltà di classi�cazione di questa informazione non verbale aldi là dell'informatica e della computer vision, ma già semplicemente nellade�nizione esplicita di queste informazioni che vengono processate dal no-stro cervello in maniera implicita. Si è stati costretti quindi a concentrarsi

13

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

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 unospazio

• Riconoscere la presenza e posizione di ulteriori persone nello spaziocircostante

• Riconoscere le espressioni facciali, per lo meno le più semplici, perestrapolare una eventuale disponibilità all'interazione sia di un cono-scente che di uno sconosciuto

• Riconoscere espressioni facciali durante una discussione per megliointerpretare le parole in una conversazione

• Riconoscere la distanza dell'individuo con cui si conversa

• Individuare elementi di interesse in una persona, che ci invoglino adiniziare una conversazione (e.g. una maglietta sul nostro �lm preferito)

linea invisibileSi può inoltre notare come gli esempi appena visti di ausilio possano veniredivisi 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 nonsarebbe avvenuta (fornendo indicazioni sulla presenza di soggetti coni quali interagire)

linea invisibileUna volta steso questo breve elenco si è potuto decidere su quali di questiaspetti concentrarsi, compatibilmente con le tecnologie a nostra disposizionee con l'intenzione di apportare un contributo incisivo alla vita del soggettocon de�cit visivi. Nel nostro caso si è deciso di concentrarsi sull'ausilio adiniziare nuove interazioni, basandosi principalmente sulla tecnologia di facedetection ed in una seconda fase, ra�nando il progetto, di face tracking, facerecognition 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, eleggero, richiedere poca potenza di calcolo, in modo che sia possibile l'imple-mentazione in maniera e�ciente su dispositivi portatili, e deve essere robusto

14

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

CAPITOLO 2. CREAZIONE DEL DATASET

per garantire un'alta a�dabilità, con errori di rilevamento prossimi allo ze-ro. È inoltre emersa la necessità di avere delle immagini più signi�cativerelativamente ai nostri scopi, sia per la fase di addestramento che di testdegli algoritmi esistenti e delle eventuali modi�che da noi apportate, al �nedi trovare l'algoritmo che meglio soddisfa le caratteristiche succitate. Glialgoritmi già esistenti infatti sono stati testati ed addestrati su immaginisigni�cativamente più facili da riconoscere, anche nei peggiori casi, essendotratte da foto e non da �lmati, cosa che comporta una serie di di�erenze chevedremo 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 cheanche altri gruppi di ricerca incentrati sull'aiuto a persone a�ette da disa-bilità visive possano giovarne, sia come piattaforma di test sia, lo volessero,per addestrare loro algoritmi speci�camente per queste situazioni. Inoltre èrisultata evidente la necessità di usare tale dataset per testare gli algoritmidescritti nel capitolo precedente al �ne di determinare il migliore algoritmodi rilevamento facciale ed allo stesso tempo per fare ulteriori considerazioniutili all'implementazione del dispositivo �nito.

La creazione del dataset è stata piani�cata, diretta e svolta in collabora-zione con dei soggetti non vedenti. Li si è dotati di dispositivi di acquisizionevideo portatili e li si è fatti essere protagonisti in prima persona di norma-li scene quotidiane riprese in varie zone dell'università. In seguito si sonoestratti gli spezzoni più signi�cativi dalla grande quantità di riprese, sonostate apportate delle piccole modi�che necessarie e sono stati �etichettati�con un software apposito per usarli successivamente come ground truth perveri�care l'e�cacia 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 signi�cative sia tenendoconto dello scopo �nale, ovvero un dispositivo indossabile per ciechi, sia permeglio 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 quantogià scritto all'inizio di questo capitolo. Si è pensato quindi a:

• Scene che mettano alla prova la capacità di riconoscere un soggettogià familiare al non vedente (e quindi etichettato come tale nel groundtruth) in mezzo ad un gruppo di persone sconosciute

15

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

CAPITOLO 2. CREAZIONE DEL DATASET

• Scene che mettano alla prova la capacità di riconoscere soggetti inten-zionati all'inizio di un'interazione (frontali, espressione amichevole1) inmezzo 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 parlaredi face detection e face recognition, il lavoro attuale si concentra solo sullaface detection e principalmente sul secondo punto elencato sopra, ovverola capacità di riconoscere e contare il numero di facce rivolte verso il nonvedente.

Inoltre, seppur si sia pensato a sviluppi futuri nell'ambito del riconosci-mento delle espressioni, si è deciso di non tenerne conto nella direzione dellescene, soprattutto in considerazione dell'assenza di attori capaci di ripro-durre in maniera naturale diverse espressioni facciali all'interno del nostrogruppo di lavoro.

Dal punto di vista del dispositivo wearable per ciechi le criticità che ci siaspetta di avere sono legate sia al fatto che si faccia face detection su frameestratti da un video e non su immagini statiche, cosa che rende critico il tipodi videocamera impiegato, sia al non vedente stesso ed al fatto che egli stessoe�ettui le riprese.

Nello speci�co le caratteristiche volute e previste, legate al dispositivoindossato 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 o�rire una maggior varietà in questo ambito, e tenendo conto che inquesta fase del progetto non è ancora decisa nessuna speci�ca hardware deldispositivo, abbiamo utilizzato diversi tipi di videocamere. Si può anticipareche hanno avuto tutte principalmente gli stessi tipi di criticità dovute alfatto che tutte hanno caratteristiche simili e necessarie ai nostri scopi e chesono tra quelle previste, ma ci sono state anche problematiche diverse di cuidiscuteremo più approfonditamente in una sezione successiva.

In�ne parliamo delle caratteristiche ricercate nei �lmati per meglio met-tere alla prova gli algoritmi di rilevamento facciale. Pur tenendo conto cheabbiamo usato metodi diversi e non solo basati sul metodo Viola-Jones e suHaar-features, si riscontra che le problematiche maggiori sono sempre legatealle stesse cause:

1Eventuale sviluppo futuro

16

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

CAPITOLO 2. CREAZIONE DEL DATASET

• Condizioni di luce di�cile, dovute a carenza di luce, o forti controluceche rendono scuro il soggetto

• Copertura parziale dei volti, sia a causa di altri oggetti, sia di pelifacciali/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 conla nomenclatura usata per rinominare i �le acquisiti. Si è scelto di avvalersidel 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à a�rontare ed essere in grado di riconoscere. Quindisi è deciso di applicare la stessa logica alle scene da riprendere, immaginandosituazioni in cui un non vedente potrebbe realisticamente trovarsi.

Nello speci�co 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 divalutare qual è il miglior algoritmo da usare anche quello di riconoscere le mi-gliori condizioni a priori da usare, ovvero il miglior dispositivo, pro e controdi 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 di�erenze tra gli algoritmi usati che altrimenti non sarebberostate 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 luoghiconcordati per le riprese in seguito alla ricezione del benestare dei proprie-tari dei luoghi interessati. I luoghi utilizzati per le riprese sono stati nellospeci�co:

• Biblioteca di Giurisprudenza2

• Bar H2-H33

2cortesia dell'Università degli Studi di Trieste3cortesia del Circolo Ricreativo Universitario di Trieste

17

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

CAPITOLO 2. CREAZIONE DEL DATASET

• Bar Ingegneria e relativa mensa4

• Fermata dell'autobus

• Atrio e corridoi dell'edi�cio A5

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 comparsedovessero avere nei suoi confronti. In particolare si è deciso di �lmare perogni 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 ignoraintenzionalmente. Nel secondo caso inoltre si è fatta un'ulteriore distinzio-ne, ovvero si è simulato anche il caso in cui il non vedente si accorge delconoscente al �ne di simulare la situazione nella quale il non vedente è giàdotato del dispositivo, oltre al semplice caso in cui nessuna interazione hainizio. Questa scelta è stata fatta nell'ottica in cui si renda il dispositivocapace di continuare l'apprendimento anche in fase di utilizzo per migliorareulteriormente i risultati.

La presenza di nostre comparse in mezzo a sconosciuti nelle riprese hauna duplice funzione: la prima è aggiungere un livello di controllo sulleriprese ed assicurarsi che certe situazioni sociali avvengano; la seconda, invista di sviluppi futuri nell'ambito della face recognition, è di avere dei volticonosciuti e ripetuti nelle varie scene in modo che sia possibile etichettarlies usarli per questo ulteriore tipo di prove.

È stato quindi redatto un canovaccio con scritte le scene da girare e levariazioni da fare per coprire i vari tipi di situazioni signi�cative, lo si èinviato al gruppo di lavoro ed eventualmente aggiornato con i consigli e lecritiche ricevute dal gruppo.

Il giorno delle riprese si è dovuto appendere nei luoghi concordati unavviso sul fatto che sarebbero state e�ettuate delle riprese, coerentementecon 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 ade�ettuare tutte le riprese concordate una dopo l'altra, per non appro�ttareeccessivamente della disponibilità dei collaboratori.

Va aggiunta una piccola nota riguardo alcune riprese: nel dataset da noicreato sono anche presenti scene più improvvisate e decise sul momento7,�lmate in una sessione precedente alla decisione di assumere un approcciopiù sistematico, ma comunque su�cientemente valide e signi�cative da essereincluse nel risultato �nale.

4cortesia del Circolo Ricreativo Universitario di Trieste5cortesia dell'Università degli Studi di Trieste6Decreto Legislativo del 30 giugno 2003, n. 196.7I �lmati e�ettuati in data 24 settembre 2015

18

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

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 sportiviestremi, che o�re una risoluzione Full HD (1920*1080 pixel) ed unangolo visivo di 124◦

• SportXtreme OverLook Gx-9[16], degli occhiali da sole con video-camera integrata, videocamera con risoluzione HD (1280*720 pixel) edun angolo visivo di 135◦

La CUBE, dotata di una placca magnetica, è stata così attaccata ad unsupporto metallico ed appesa al collo in modo che stesse circa 15 centimetrisotto 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 naturacubica. Purtroppo questo tipo di supporto ha fatto sì che risultasse appesasottosopra. I Gx-9, essendo un paio di occhiali, sono semplicemente statiindossati normalmente.

Innanzitutto va evidenziata la di�erenza di qualità dei due sensori, comesi può vedere da Figura 2.2: è di qualità nettamente superiore il sensore dellavideocamera CUBE, non solo per la maggior risoluzione e per il maggiorerange dinamico8 ma soprattutto per la nitidezza dell'immagine, che invecerisulta �pastosa� e dai contorni mal de�niti nelle riprese e�ettuate con la Gx-9. Tuttavia questo confronto sottolinea solamente la necessità di utilizzareun 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,

8La capacità di mantenere dettaglio contemporaneamente in zone luminose e buie.Appurata empiricamente essendo entrambe le videocamere sprovviste di datasheet che nespeci�casse i valori.

19

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

CAPITOLO 2. CREAZIONE DEL DATASET

Figura 2.2: Stesso istante catturato dalle due videocamere: sopra l'immagineripresa dalla videocamera Gx-9, sotto l'immagine ripresa dalla videocameraCUBE.

20

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

CAPITOLO 2. CREAZIONE DEL DATASET

nei �lmati e�ettuati con la Gx-9. Questa sfocatura è talmente forte chenon solo nessun algoritmo è in grado di rilevare correttamente alcun voltonella fase del movimento, ma anche per l'operatore umano incaricato all'e-tichettatura è impossibile riconoscere il volto in quella macchia sfocata, semi è concesso il termine poco tecnico. Inoltre, soprattutto nelle riprese ef-fettuate da �Isa�, le riprese e�ettuate con la videocamera Gx-9 sono risultateparzialmente ostruite dai capelli che ripetutamente �nivano col posizionarsidavanti all'obiettivo della videocamera. Inoltre entrambe le collaboratricinon vedenti spesso tendevano ad abbassare lo sguardo, facendo sì che i voltidelle persone molto vicine �nissero con l'essere parzialmente o interamenteesterni all'area inquadrata.

Con la videocamera CUBE invece raramente un individuo impegnato inuna conversazione col non vedente è risultato esterno all'inquadratura, maè dovuto far notare che questo è strettamente correlato all'inclinazione dellavideocamera, e non solo alla sua posizione. Va evidenziata quindi la necessitàdi replicare e garantire l'orientamento corretto del dispositivo di acquisizioneindipendentemente 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 cuicapi di vestiario ne hanno parzialmente ostruito il campo visivo, e i meno raricasi in cui la videocamera si è ruotata, come in Figura 2.2. Infatti, essendo lavideocamera appesa al collo e priva di un supporto stabile, è risultata pronaa ruotare sull'asse laterale portando ad inquadrature �storte�, ovvero nellequali l'orizzonte, e tutto il resto di conseguenza, non sono perfettamenteorizzontali.

Per concludere in questa sede il discorso sulle videocamere, anticipandoparzialmente i risultati dei test, si consiglia l'uso della videocamera CUBEche ha dato in media risultati migliori. In generale si consiglia l'uso di unavideocamera attaccata al busto perché si ritiene di più facile soluzione il pro-blema di orientare correttamente la videocamera ed assicurarla in manierasalda tramite appositi sostegni che compensare i rapidi movimenti della te-sta. Oltretutto considerando che si tratta di pensare ad un dispositivo chein�uenza 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 usatiin seguito9, tagliarli, all'occorrenza unirli e sottoporli ad altre elaborazioni,ed in�ne rinominarli con un criterio coerente.

9ViPER-GT[17] ed il toolbox VideoReader[18] per Matlab

21

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

CAPITOLO 2. CREAZIONE DEL DATASET

Innanzitutto si sono importati i �lmati e li si è salvati senza apportaremodi�che alla nomenclatura in una cartella

\[yyyy_mm_dd]\Originals

Si può notare che si è deciso di usare una nomenclatura in inglese, semprenell'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 primoinsieme di �lmati, ripresi senza una vera direzione delle scene, l'estrazione disingole sequenze più brevi si è basata sulla scelta di momenti che fossero piùsigni�cativi in base alla presenza di almeno alcune delle criticità descritteall'inizio di questo capitolo. Per gli altri �lmati invece si è deciso di tagliarele 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 fattain maniera molto semplice, guardando i video disponibili e segnando i tempiiniziali e �nali d'interesse in un semplice �le di testo. Inoltre in questa fasesi è già stati attenti a selezionare i tempi in modo che si possano confrontarefacilmente 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 giratacon 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 operativi11 e non ultimo per la facilità d'uso. Di

10Edizione 15.09.1011Windows, Mac OS, Linux

22

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

CAPITOLO 2. CREAZIONE DEL DATASET

seguito esponiamo le principali operazioni svolte:

• Silenziare: si è deciso di rimuovere l'audio al �lmato, consideratal'assenza di informazioni utili presenti in esso, sia per motivi di privacyche per ridurre le dimensioni dei �le.

• Convertire: si è dovuto convertire i �lmati nel formato .mpeg, opiù precisamente nel formato costituito da container .mpeg e codec

mpeg1video a�nché i �lmati fossero compatibili in seguito sia conil programma usato per l'etichettatura[17], sia con la libreria Matlabusata per l'elaborazione video in fase di test[18]

• Ruotare: [solo CUBE] i �lmati registrati con la videocamera PolaroidCube, in seguito all'espediente usato per appendere quest'ultima alcollo del non vedente, che ne ha provocato l'essere sottosopra, hannorichiesto 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 PolaroidCUBE, per motivi intrinsechi alla videocamera, risultano spezzati insegmenti di 5 minuti l'uno. Per questo motivo è stato necessario riunirealcuni spezzoni a cavallo dei cinque minuti, per ottenere uno spezzoneunico equivalente a quello ripreso con la videocamera GX-9

La procedura utilizzata per svolgere queste operazioni si può trovare indettaglio in Appendice B.

È importante inoltre so�ermarsi sulla nomenclatura usata per rendere piùfacile riconoscere sequenze uguali �lmate con i due dispositivi, oltre all'usodi cartelle con nomi de�niti in modo da essere ben chiari. Gli spezzoni sonostati 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_12\Gx9_Cuts\2015_11_12_GX9_MLA_3_i.mpeg"

"..\2015_11_12\CUBE_Cuts\2015_11_12_CUBE_MLA_5_i.mpeg"

È evidente che in questo modo viene aggiunta ridondanza all'informazionesullo spezzone. Infatti i dati su �le di origine e data di ripresa si possonoottenere sia dal percorso che dal nome del �le. Si è deciso intenzionalmentedi introdurre questa ridondanza per rendere più facile l'identi�cazione ditutte le informazioni anche quando il �le viene estratto dalla sua cartellaper svolgere delle prove ed allo stesso tempo per trovare rapidamente il �lequando cercato.

23

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

CAPITOLO 2. CREAZIONE DEL DATASET

2.4 Etichettatura degli spezzoni

Nel capitolo precedente abbiamo de�nito il dataset, l'esperienza che vienefornita alla macchina per apprendere, come un insieme composto da duesottoinsiemi: 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 baseo �ground truthing�, corrisponde alla de�nizione dell'insieme O degli output.

Questa fase è composta concettualmente di due fasi: la fase decisionale,sul come a�rontare tutti i vari problemi dell'etichettatura, e la fase pratica dicreazione del ground truth. Nella fase decisionale si è dovuto decidere comeetichettare 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 ognietichettatura, quali di questi �lmati etichettare.

Nella fase pratica si è utilizzato un programma di ground truthing chia-mato ViPER-GT[17] per de�nire tramite interfaccia gra�ca le informazionirelative 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, diinterpretare le informazioni e confrontarle con quelle date in output daglialgoritmi testati.

Inoltre è necessario segnalare che all'interno di questa tesi il dataset èstato utilizzato solo al �ne di testare algoritmi già addestrati su dei setdiversi12 e non per addestrare i vari algoritmi per queste condizioni speci�che.Si lascia questa possibilità a progetti futuri non essendo questo lo scopoprincipale 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 su�ciente da essere statisticamente signi�cativa. Dopo aver notatola tendenza a scegliere solamente scene molto complesse, che non rispecchia-vano le situazioni medie riscontrate in tutte le riprese, si è scelto di optareper un'estrazione casuale a�nché i risultati non venissero in�uenzati dallascelta 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 diinput, ma tenendo conto della lunghezza dei �lmati variabile tra i 300 ed i1400 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 su�ciente a�nché i test abbiano dei risultati

12Si vedano le sezioni relative all'addestramento di Viola-Jones, NPD e PICO neirispettivi articoli[4, 9, 11]

24

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

CAPITOLO 2. CREAZIONE DEL DATASET

a�dabili. La quantità di situazioni coperta da ogni spezzone è tale che anchecon solo sei �lmati tutte le situazioni descritte nella sezione �Criticità cercatenelle riprese e conseguente direzione� sono risultate incluse nel test, insiemecon altre situazioni prive di criticità, in modo da rappresentare in modo piùfedele possibile le scene che il dispositivo �nale del progetto, una volta inuso, si troverebbe ad a�rontare.

Tuttavia, per necessità del progetto, si è deciso di a�ancare a queste sceneestratte casualmente alcuni spezzoni più speci�ci. Si tratta di sottospezzonidi una decina di secondi estratti da scene a loro volta selezionate casualmenteda dei sottoinsiemi speci�ci delle riprese, per ovviare all'assenza di alcunesituazioni, o meglio di alcuni luoghi di ripresa, dalla prima selezione casuale.Si può quindi de�nire 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 e�etti hanno queste di�erenzesul rilevamento facciale.

25

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

CAPITOLO 2. CREAZIONE DEL DATASET

2.4.2 Criteri di etichettatura

La decisione sui criteri di etichettatura è stata altamente in�uenzata dalloscopo del dataset come piattaforma di test speci�ca per face detection al

�ne di interazioni sociali per non vedenti, e non come piattaforma di testgenerica per metodi di face detection. Si è deciso quindi di etichettare tuttele facce reputate pronte ad un interazione sociale. Questa de�nizione moltoambigua è stata quindi ridotta a dei parametri molto più precisi:

• Orientamento orizzontale: da laterale a quasi 90◦ a frontale

• Orientamento verticale: indi�erente

• Distanza massima: circa 3 metri13, e comunque riquadri mai inferioriai 24 pixel sul lato più corto

• Occlusione: anche volti parzialmente occlusi, �nché almeno il 50% delvolto è visibile

Inoltre è altrettanto importante, oltre al criterio su quali volti etichattare,quello relativo alla de�nizione del volto. Si è optato per de�nire così i contornidel 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 lato14 el'attaccatura dell'orecchio dall'altro lato

In seguito si è svolta una riunione apposita del gruppo di lavoro perde�nire criteri di etichettatura più stringenti, anche nell'ottica di sviluppifuturi e che permettano di e�ettuare confronti più precisi. In realtà il criteriodi de�nizione di cosa sia un volto è rimasto pressoché invariato, però vi sisono aggiunte alcune informazioni che permettano, qualora lo si volesse, didiscriminare solo alcune etichettature. Per motivi di tempo non si è fattoperò uso di questa informazione aggiuntiva nell'ambito della tesi, in quantoquesti ulteriori criteri sono stati de�niti quando la tesi era già quasi alla suaconclusione. Tali criteri aggiuntivi sono:

• Aggiunta di un �ag per discriminare la lateralità del volto: se non sivedono interamente due occhi il volto viene considerato laterale

• Distanza massima: circa 5 metri, e comunque riquadri mai inferiori ai20 pixel sul lato più lungo

13calcolati ad occhio14quindi la parte più sporgente tra naso e guancia

26

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

CAPITOLO 2. CREAZIONE DEL DATASET

• Aggiunta di tre punti: occhio destro, occhio sinistro, bocca. Puntomesso 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: lacreazione dello �schema base�, ovvero la struttura delle etichette, ed il pro-cedimento ripetitivo di etichettare ogni singolo volto che risponde ai criteride�niti 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 creazionedi speci�ci �le .xml contraddistinti dall'estensione .xgtf (xml ground truth

�le). Per praticità alcune parti minori dell'etichettatura sono state fattemodi�cando in un editor di testo i �le così creati invece che intervenendovia interfaccia gra�ca, ma tutto il lavoro svolto avrebbe potuto essere svoltointeramente in ViPER-GT.

Tutti i dettagli sulla procedura utilizzata per svolgere questo lavoro sipossono trovare in Appendice C. linea invisibilelinea invisibile

Figura 2.4: Interfaccia principale di ViperGT. Si può notare che in questoscreenshot viene usato il vecchio criterio di etichettatura

27

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

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 de�nizione dei criteri avanzati di etichettatura

linea invisibilelinea invisibilelinea invisibilelinea invisibile

28

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

Capitolo 3

Test del dataset

La procedura di test del dataset, o meglio, l'uso del dataset per testare i trealgoritmi discussi nel Capitolo 11 è stata svolta tramite Matlab2[21]. Più nel-lo speci�co si è usato un tool [18] per estrarre i frame dal �lmato e considerarliciascuno come una singola immagine, in seguito si sono usati i vari metodidi face detection su ciascun frame per ottenere una matrice contenente leposizioni 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 disovrapposizione per determinare i true positive, ovvero le detection corrette.Per ogni test si è avuto sia un riscontro gra�co in tempo reale dei risultati(Figura 3.1), sia si è modi�cato il codice usato per ottenere dei risultati nu-merici signi�cativi (Tabella 3.1). In seguito si sono analizzati i risultati pervalutare contemporaneamente quale algoritmo fosse più e�cace 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 è stataquella di implementare un metodo che permettesse di confrontare allo stessomodo tutti gli algoritmi da testare. Si è usato del codice scritto in prece-denza da un altro membro del progetto3, al quale sono state apportate dellemodi�che più e meno importanti per adattarlo agli scopi di questa tesi edall'evoluzione del progetto stesso.

1Viola-Jones, Normalized Pixel Di�erence, Pixel Intensity Comparisions Organized inDecisions Trees[4, 9, 11]

2Versione R2015a3dott. Jacopo Fragasso

29

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

CAPITOLO 3. TEST DEL DATASET

Figura 3.1: Esempio di confronto gra�co. Si può vedere:-Sopra il risultato su un singolo frame-Sotto il gra�co relativo all'intero �lmato (si noti che l'immagine si riferisceal test di un singolo algoritmo)

True Positive False Positive False Negative

Somma NPD 421 3558 1344VJ 285 1385 1480

PICO 568 4048 1197PICO alt 897 12348 868

Media NPD 0.30507 2.5783 0.97391VJ 0.20652 1.0036 1.0725

PICO 0.41159 2.9333 0.86739PICO alt 0.650 8.948 0.629

linea invisibileNPD Viola-Jones PICO PICO alt

Recall (%) 23.8527 16.1473 32.1813 50.8215Precision (%) 10.5805 17.0659 12.305 6.7724

Tabella 3.1: Risultati sul video 2015_11_12_GX9_MLA_1_b, lungo 1380frames, contentente 1765 volti in totale.

30

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

CAPITOLO 3. TEST DEL DATASET

Tale metodo si può dividere in tre blocchi principali in base allo scopoda essi svolto: una prima parte relativa all'uniformazione dei risultati deglialgoritmi, una parte relativa al parsing dei dati contenuti nei �le .xgtf, inmodo che anch'essi siano consistenti con la formattazione dei risultati datidagli algoritmi ed in�ne la parte relativa al confronto vero e proprio di questidati.

Per uniformare il formato in cui vengono forniti i risultati delle detectiondagli algoritmi, inizialmente solo NPD e Viola-Jones, è stata semplicementecreata una funzione nella quale passare i giusti parametri all'algoritmo. Parteimportante del lavoro svolto in precedenza da Fragasso è stata però quelladi implementare in Matlab la versione OpenCV di Viola-Jones invece diutilizzare la versione già esistente per Matlab.

Con parsing in informatica si intende l'atto di estrarre da una sequenza didati, in questo caso da una serie di stringhe, informazioni sulla struttura deltesto analizzato grazie al riconoscimento della grammatica formale in cui taletesto è stato scritto. In questo caso quindi dopo aver studiato la strutturadel �le .xgtf, ovvero un semplice �le .xml la cui struttura è ripetitiva edeterminata dalla creazione dello schema-base come visto nel Capitolo 2, sisono determinati dei token da riconoscere e quindi usare per determinarequali informazioni estrarre dal ben più complesso blocco di codice.

In seguito le informazioni estratte sono state usate per costruire unastruttura analoga a quella passata dai classi�catori per comunicare numeroe posizione dei volti rilevati. Tale struttura è una matrice bidimensionale,larga uno ed alta quanto il numero di frames componenti il relativo spezzoneanalizzato. Ogni elemento della matrice contiene tanti array quanti i voltirilevati nel relativo frame. Ogni array si compone di quattro numeri cheindicano rispettivamente:

• Posizione orizzontale dell'angolo superiore sinistro. Distanza dal bordosinistro espressa in pixel.

• Posizione verticale dell'angolo superiore sinistro. Distanza dal bordosuperiore espressa in pixel.

• Larghezza del rettangolo, espressa in pixel.

• Altezza del rettangolo, espressa in pixel.

31

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

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 oil risultato del parsing di un �le .xgtf

In�ne un blocco di codice raggruppa tutto insieme per e�ettuare 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 lecui 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 ra�gura il frame che componeil video in quell'istante.

Viene poi invocato il parser per ottenere le informazioni relative al groundtruth e salvarle in una matrice strutturata anch'essa come descritto sopra.

In�ne, iterativamente, frame per frame, si esegue la face detection sul-la relativa immagine e se ne confrontano i risultati con i valori salvati nelrelativo elemento della matrice del ground truth.

Come accennato in precedenza e visto in Figura 3.1 il confronto dei risul-tati è stato espresso gra�camente sia disegnando su ogni frame i rettangolide�niti dalla detection sia quelli estratti dal ground truth, sia realizzando unistogramma che frame per frame mostrasse il numero di true positive, falsepositive e false negative4. Con questi termini si indicano rispettivamente ledetection corrette, le detection incorrette e i volti de�niti nel ground truth

ma non rilevati dal classi�catore.La seconda parte rende evidente quindi la necessità di stabilire un criterio

per de�nire quando una detection sia corretta. Gra�camente è facile dire che

4Sarà data in seguito una de�nizione formale di questi termini

32

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

CAPITOLO 3. TEST DEL DATASET

una detection è corretta in caso di sovrapposizione dei rettangoli, in specialmodo se sono centrati attorno al volto allo stesso modo, al netto di una certatolleranza. Le basi di tale regola sono di facile de�nizione numerica, postoche non si facciano considerazioni sulla centratura dei rettangoli. Infattiper individuare una sovrapposizione è stato su�ciente basarsi sul rapportotra l'intersezione e l'unione delle aree di rettangoli parzialmente sovrapposti,più facilmente de�nibile, computazionalmente più leggera e che permette lade�nizione di soglie di tolleranza.

Formalmente: sia RGT il rettangolo de�nito nel ground truth e sia RD ilrettangolo de�nito dal classi�catore come detection di un volto, consideriamola detection un true positive se

RGT ∩RD

RGT ∪RD≥ T

dove T è il valore di soglia. Si noti come intervenendo su questo valoresia possibile modi�care la tolleranza del confronto: valori minori rendonoil metodo più tollerante, considerando come true positive anche casi in cuii rettangoli sono sovrapposti solo in piccola misura, mentre valori di sogliapiù alti rendono il metodo molto più intollerante, portandolo a scartare tuttii valori tali che i rettangoli non siano altamente sovrapposti, �no al casoestremo T = 1 che accetta come validi solo i casi in cui i due rettangoli sianoperfettamente sovrapposti.

3.1.1 Modi�che al metodo di confronto

Tuttavia il metodo descritto sopra presentava svariate mancanze sia per ladiscutibilità di alcune scelte fatte in fase di implementazione sia per la neces-sità di aggiornarlo, per tenere conto di considerazioni e nuovi metodi emersiin fasi del progetto successive alla �ne della collaborazione con l'autore delcodice originale. È stato quindi necessario intervenire per porre rimedio aqueste carenze e per rendere il metodo più a�ne alle necessità di questa tesi.

Le modi�che principali al metodo di confronto sono state l'aggiunta delmetodo PICO e di una sua versione alternativa agli algoritmi da confrontaree l'implementazione di metodi che lavorassero numericamente sui risultatidelle detection e che salvassero i risultati in un formato adatto a successiveanalisi numeriche.

Grandi modi�che

Per aggiungere il metodo PICO agli altri in fase di confronto è stato innan-zitutto necessario assicurarsi che il formato di salvataggio dei risultati delladetection fosse analogo ai risultati degli altri classi�catori e del ground truth.Appurato che questo avvenisse, lo si è inserito tra le opzioni di rilevamentodisponibili, apportando le modi�che necessarie ad assicurarsi che l'informa-zione passata al comparatore fosse analoga anche strutturalmente a quella

33

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

CAPITOLO 3. TEST DEL DATASET

passata dagli altri metodi. linea invisibile

Si è deciso di intervenire sul metodo a�nché fornisse risultati numeri-ci, sui quali quindi fosse possibile intervenire in modo matematico, inveceche basarsi unicamente sull'esposizione gra�ca 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 ognicomparazione. Si sono poi de�niti degli indici che riassumessero i risultatidel confronto in una maniera standardizzata e signi�cativa, e si è scritto unmetodo che visualizzasse in forma di tabella dalla facile interpretazione talirisultati, 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 unconfronto esposta nella console di Matlab

Piccole modi�che

Oltre alle modi�che sopra descritte, dall'impatto critico sul lavoro svolto,sono state e�ettuate svariate modi�che minori per rendere più agevole etalvolta veloce l'utilizzo del codice.

Nonostante la decisione di implementare ed usare indici numerici, si èdeciso di continuare ad usare anche i risultati gra�ci, per avere informazionidi tipo qualitativo sui risultati delle detection, scelta che vedremo si è rivelatafondamentale. Tuttavia la decisione di usare spezzoni lunghi oltre 300 framesinvece che solamente qualche decina ha reso necessario modi�care la gra�caper eliminare contorni che rendevano illeggibili i risultati esposti in forma diistogramma. Il risultato �nale è quello che già si può vedere in Figura 3.1.

34

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

CAPITOLO 3. TEST DEL DATASET

Inoltre si è intervenuti sul tempo di attesa tra la visualizzazione di unframe e del successivo, per velocizzare la procedura di test.

Si è poi modi�cato il metodo di confronto in modo che in seguito al-la scelta di un �lmato questo svolgesse consecutivamente la prova di tuttigli algoritmi invece che dover intervenire manualmente di volta in volta perspeci�care il detector che si intendeva usare, mediante modi�ca manuale delcodice. Questa scelta ha portato molteplici vantaggi. Innanzitutto ha ridot-to il lavoro manuale per testare i �lmati, rendendolo quindi più veloce graziealla possibilità di lasciare il calcolatore ad elaborare i �lmati in background

mentre si a�rontavano altri aspetti della tesi. In secondo luogo il codice cosìmodi�cato richiedeva che il lavoro di parsing dei metadata e di trasformazio-ne del �lmato nella matrice quadridimensionale sopra descritta venisse svoltosolo una volta per ogni spezzone invece che ogni volta che veniva cambiatodetector, 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 alcunluogo, limitandosi a visualizzarle unicamente in forma gra�ca e rendendo difatto l'unico modo per rivedere i risultati di un confronto, svolgerlo nuova-mente. Si è quindi implementato un metodo che al termine di ogni confrontone salvasse i valori più importanti in un relativo �le dal nome signi�cativo,in quanto contenente indicazioni chiare sul �lmato analizzato e sul detectorimpiegato.

3.1.2 Modi�che al Parser dei metadata

Come già scritto alla �ne del secondo capitolo a lavoro di tesi inoltrato so-no stati de�niti dei nuovi criteri di etichettatura più avanzati. Tra questil'aggiunta di �ag per l'occlusione e per la lateralità che hanno quindi resonecessarie delle modi�che sostanziali al parser in modo da poter sfruttarel'informazione aggiuntiva.

Queste modi�che che in principio si erano ritenute di facile esecuzionehanno invece richiesto una sostanziale riscrittura del codice. Il codice origi-nale nell'e�ettuare il parsing non teneva conto dell'indicazione sulla personaa 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 quantoquesto non sarebbe potuto venir applicato ad una singola detection ma adun intero frame, e quindi a tutte le detection in esso contenute. Era di fattoimpossibile quindi discriminare uno speci�co 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 posizionedel volto di una sola persona, divise ovviamente in modo che ad ogni riga

35

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

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 voltipresenti in un frame come visto in precedenza.

Per non riscrivere tutto il codice è risultata valida la scelta di costruireciascuna colonna della matrice del nuovo metodo invocando il vecchio me-todo su di una sottostringa contenente le informazioni su una sola personaalle quali veniva aggiunto un header uguale per tutte le sottostringhe, perrispettare il formato originale del �le .xgtf. In maniera simile si sono createdelle matrici, sempre bidimensionali, di dimensione

Nframes ∗Npersone

in cui ciascun elemento contiene un valore booleano sulla lateralità di unvolto o sulla sua occlusione. In seguito è bastato sfruttare queste matrici percreare una matrice de�nitiva in cui a scelta venissero eliminati, o meglio nonvenissero copiati, i valori in posizioni corrispondenti ad un valore true nellamatrice ��ltro� creata a partire dai �ag.

In�ne, per garantire la coerenza del risultato del parsing, si è �appiattita�la matrice de�nitiva in una matrice di dimensioni

Nframes ∗ 1

in cui ciascun elemento contiene le informazioni su tutti i volti presenti inun frame che hanno superato il �ltraggio.

3.2 Risultati sperimentali

In seguito alle modi�che apportate al codice Matlab si sono potuti svolgerei test sui �lmati.

Si è deciso di usare i parametri già usati in precedenza da altri membridel progetto in quanto lo scopo di questa tesi non è la ricerca dei miglioriparametri ma la valutazione dell'a�dabilità del dataset da noi creato comeriferimento per poi valutare l'e�cacia di successivi lavori, siano essi interven-ti sul codice dei classi�catori o sui parametri scelti, siano essi diversi tipi dipreprocessing applicati all'immagine prima di e�ettuare la detection. In Ap-pendice D si possono trovare tali parametri passati ai classi�catori durantei nostri test.

3.2.1 Accenni su precision and recall

Si è deciso di usare precision e recall come metro di giudizio, in quantostandard per la valutazione di classi�catori.

36

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

CAPITOLO 3. TEST DEL DATASET

È necessario de�nire i tre possibili casi che si ottengono in seguito adun confronto tra una detection ed il relativo ground truth, ovvero i già cita-ti true positive, false positive e false negative, �nora menzionati senza unade�nizione formale:

• De�niamo come true positive (TP ) un'identi�cazione corretta, ovveroil caso in cui vi sia un riscontro tra un volto individuato dal classi�ca-tore ed un volto de�nito nel ground truth come descritto nella sezioneprecedente

• De�niamo come false positive (FP ) un'identi�cazione non corretta,ovvero il caso in cui il classi�catore individui un volto che secondo ilground truth non esiste

• De�niamo come false negative (FN) un'identi�cazione non avvenuta,ovvero il caso in cui il classi�catore non individui un volto de�nito nelground truth e quindi esistente

Una volta formalizzate queste de�nizioni è possibile dare una de�nizione diprecision e recall.

Con precision si de�nisce la quantità di identi�cazioni corrette rispettoalla quantità totale di identi�cazioni. Quest'informazione è importante percapire quanto sia possibile �darsi di una detection o quanto invece supporreche essa non sia realmente, nel nostro caso, un volto. Avendo usato il suovalore 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 unvolto.

Con recall si de�nisce la quantità di identi�cazioni corrette rispetto allaquantità totale di elementi, nel nostro caso volti, da identi�care. Quest'in-formazione è importante per capire qual'è la probabilità che un volto siaidenti�cato 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 è statocorrettamente rilevato.

37

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

CAPITOLO 3. TEST DEL DATASET

True Positive False Positive False Negative

Somma NPD 2168 1756 1178VJ 1749 2602 1597

PICO 2393 2286 953PICO alt 2587 6871 759

Media NPD 1.905 1.543 1.035VJ 1.537 2.286 1.403

PICO 2.103 2.009 0.837PICO alt 2.273 6.038 0.667

linea invisibileNPD Viola-Jones PICO PICO alt

Recall (%) 64.7938 52.2714 71.5182 77.3162Precision (%) 55.2497 40.1977 51.1434 7.3525

Tabella 3.3: Risultati sul video 2015_10_15_CUBE_ISA_7_p, lungo 1138frames, 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 Tabella3.3. linea invisibile

Per ogni �lmato viene indicato:

• Il numero di frame totali

• Il numero di volti annotati

• Per ciascun classi�catore, il numero totale di:

� True Positive

� False Positive

� False Negative

• Per ciascun classi�catore, 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

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

CAPITOLO 3. TEST DEL DATASET

Filmato Lunghezza (in frames)A 2015_09_24_CUBE_MLA_13_6 379B 2015_10_15_CUBE_ISA_7_p 1138C 2015_11_12_GX9_MLA_1_b 1380D 2015_09_24_CUBE_MLA_14_4 697E 2015_10_15_CUBE_ISA_1_a 1200F 2015_11_12_CUBE_MLA_6_extra5 838G 2015_10_15_GX9_ISA_2_k 360H 2015_11_12_GX9_MLA_3_extra3 300I 2015_11_12_GX9_MLA_5_extra8 360

Tabella 3.4: Elenco degli spezzoni analizzati ed associazione ad una relativalettera per sintesi.

Videocamera Luogo Caratteristiche

A CUBE Esterno bar di farmaciaForte contrasto e controluce.Volti occlusi e laterali.Videocamera storta.

B CUBE Fermata dell'autobusMolti volti.Buona illuminazione, ma luce so�usa.

C Gx-9 Biblioteca di giurisprudenzaMotion blur dovuto alla GX9.Illuminazione abbastanza buona.

D CUBE Esterno edi�cio centraleOcclusioni parziali.Videocamera storta.

E CUBE Interno del bar H3Ambiente scuro.Movimenti bruschi.Molti volti occlusi o laterali

F CUBE Interno della mensa C4Contrasto e controluce.Illuminazione abbastanza buona.Movimenti lenti.

G Gx-9 Interno del bar C4Contrasto e controluce.Illuminazione abbastanza buona.

H Gx-9 Interno del bar H3Ambiente 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

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

CAPITOLO 3. TEST DEL DATASET

Innanzitutto però è necessario associare ai �lmati esaminati una letteraidenti�cativa per sintesi, ed ai �ni dell'analisi dei risultati è utile evidenziarele caratteristiche salienti di ciascuno spezzone.

In seguito verranno riportati invece i risultati di recall e precision pertutti gli spezzoni. Questo perché in quanto indipendenti dal numero di framee dal numero di volti presenti in media in ciascun frame, sono gli unicirisultati confrontabili tra �lmati. Esporremo anche i risultati di precisione recall calcolati usando la somma di true positive, false positive e false

negative su tutti i �lmati, a�nché spezzoni più brevi avessero un'incidenzasul risultato proporzionale alla propria lunghezza, o meglio al numero di voltipresenti in tale spezzone, e non pari all'incidenza di �lmati con più del triplodi volti.

Analisi visiva dei risultati

Prima di discutere i risultati numerici del confronto è necessario fare unaconsiderazione su una particolarità resa evidente dall'analisi visiva dei risul-tati, ovvero dal guardare frame per frame non solo la presenza o assenza, edin quale quantità, di true positive, false positive e false negative, ma anchedella posizione delle detection incorrette.

Si è notato infatti che le detection corrette, per forza di cose, restano nellastessa zona tra un frame ed il suo successivo, a fronte di una certa tolleranzanecessaria per tener conto dei movimenti di chi �lma e di chi si muove nellascena. Le detection incorrette invece hanno dimostrato la tendenza a nonessere continuative nella stessa area ma apparire invece in maniera casualein 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. Sipuò decidere infatti di ignorare la precision come elemento di valutazione edi scegliere il classi�catore solo in base ad i suoi valori di recall, usando poila componente temporale per �ltrare i risultati indesiderati, riconoscibili inquanto di frame in frame essi non si ripresentano nelle stesse aree.

Un metodo per il �ltraggio basato sulla presenza in frame adiacenti direttangoli nella stessa area potrebbe essere il seguente: sia Dt il rettangoloche 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'immaginedistante x frames dall'istante t, con x ∈ Z e dove T è una soglia scelta inmodo da garantire una corretta tolleranza al metodo. Consideriamo allora

40

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

CAPITOLO 3. TEST DEL DATASET

Dt una detection corretta, un true positive, sen∑

x=−nDVtx ≥ S (3.2.2)

dove n è il numero di frames circostanti da prendere in considerazione edS ∈ R+ è il numero minimo di avvenute conferme nei frame circostantidesiderato. Questo metodo per quanto semplice è molto �essibile. Si puòinfatti intervenire su T , S ed n per determinare la migliore tolleranza, siarispetto al fattore temporale che posizionale. Si suggeriscono i seguenti valoriper un primo test:

• T = 0.1

• n = 2

• S = 3

Qusti valori sono stati scelti in base ad osservazioni fatte sugli spostamentidi 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 dieventuali grandi spostamenti in caso di movimenti bruschi del non vedenteo del soggetto �lmato, mentre i valori di n ed S signi�cano che cerchiamouna detection nell'area adiacente in almeno 3 dei 4 frame circostanti, con-siderando 2 detection su 2 frame circostanti una misura troppo severa, 1detection su 2 frame un valore troppo permissivo e tenendo conto che au-mentare il numero di frame da prendere in considerazione aumenta il costocomputazionale.

Si lascia la possibilità di veri�care questo metodo e di�erenti valori asviluppi futuri.

Algoritmo dal miglior recall

Considerata la poca, se non nulla, importanza della precision risulta alloraevidente dalla Tabella 3.6 la netta superiorità dell'algoritmo PICO. Infat-ti, se gli algoritmi Viola-Jones e NPD hanno dato risultati altalenanti suglispezzoni 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 modi�candone un parametro,lo stridefactor, in maniera che aumentasse signi�cativamente il numerodi true positive a fronte di un aumento altrettanto signi�cativo di false po-

sitive. Guardando le Tabelle 3.6 e 3.7 si può infatti vedere come questosecondo test chiamato �PICO alt� abbia sempre superato i valori di recall diPICO standard a fronte di un notevole abbassamento della precision, comeda aspettative. Queste considerazioni sono ulteriormente confermate guar-dando la Tabella 3.8 dalla quale risulta evidente l'aumento medio del recalldel 10% a fronte del dimezzamento della precision.

41

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

CAPITOLO 3. TEST DEL DATASET

NPD VJ PICO PICO alt

A 11.8881 14.6853 24.4755 31.8182B 64.7938 52.2714 71.5182 77.3162C 23.8527 16.1473 32.1813 50.8215D 6.3624 11.4799 21.0235 35.1314E 10.4646 17.3627 25.5748 36.6025F 44.8276 40.9037 61.7122 67.1819G 30.7787 28.9246 41.78 50.6799H 5.96 8.99333 9.5302 19.0604I 31.2572 18.6851 43.2526 53.5179

Tabella 3.6: Percentuale di recall per i diversi metodi sui �lmati testati. Ingrigio evidenziato il risultato migliore per ciascun �lmato.

NPD VJ PICO PICO alt

A 4.6512 2.0076 4.9088 2.2671B 55.2497 40.1977 51.1434 27.3525C 10.5805 17.0659 12.305 6.7724D 8.4715 3.5838 14.4762 7.8226E 12.3136 8.4302 13.0352 7.7604F 35.3991 13.3852 29.1082 18.4279G 22.6983 27.9236 22.4287 11.4685H 13.213 8.7811 23.355 17.1913I 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.2676VJ 28.9759 17.2501

PICO 43.6984 24.869PICO alt 53.7653 12.6236

Tabella 3.8: Valori medi di precision e recall per gli algoritmi testati

42

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

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 questaserie di veri�che.

Analisi dei risultati in base alle caratteristiche dei �lmati

Più interessante è l'analisi dei risultati tenendo conto delle caratteristichedel �lmato stesso. Si è deciso di escludere dalla maggior parte di questeanalisi i test e�ettuati con il metodo PICO alternativo, in quanto essi hannoseguito una logica diversa, orientata alla massimizzazione del valore di recalla scapito della precision.

Media NPD VJ PICO PICO alt

A 20.71678322 -0.42616 -0.2911 0.181433 0.535866B 66.4748954 -0.02529 -0.2137 0.075868 0.163089C 30.75070822 -0.22432 -0.4749 0.046522 0.652694D 18.49930844 -0.65607 -0.3794 0.136448 0.899066E 22.50117316 -0.53493 -0.2284 0.136599 0.626693F 53.65636147 -0.16454 -0.2377 0.150138 0.252077G 38.0407911 -0.1909 -0.2396 0.098295 0.332251H 10.87248322 -0.45183 -0.1728 -0.12346 0.753086I 36.67820069 -0.1478 -0.4906 0.179245 0.45912

Tabella 3.9: Recall medio per ciascun �lmato e deviazione normalizzata dalvalore medio dei vari �lmati. In grigio chiaro sono evidenziati per ciascundetector il risultato che ha deviato di meno in negativo dalla media, o dipiù in positivo, quindi migliori. In grigio scuro sono evidenziati per ciascundetector il risultato che ha deviato di più in negativo dalla media, o di menoin positivo, quindi peggiori.

Le ri�essioni più interessanti derivano dall'osservazione di quali �lmatiabbiano dato i risultati peggiori in quanto ci aiutano a comprendere qualitipi di criticità abbiano maggiormente in�uenzato quali detector. I quattrorisultati in media peggiori, come si può anche vedere dalla Tabella 3.9, sonostati avuti sugli spezzoni A, D, E ed H. Questi �lmati, come si può vederein Figura 3.3, sono accomunati dal presentare forte contrasto dovuto a casidi controluce (A, E, H) oppure ad essere riprese particolarmente storte (A,D), problema già descritto nel capitolo precedente. È interessante notareche questi quattro casi coincidono con le volte in cui l'algoritmo Viola-Jonesha 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, chepossiamo de�nire come più �di�cili�, PICO si è invece dimostrato l'algoritmocon i migliori valori di precision. I valori di precision di NPD sono statimigliori nelle situazioni più �facili�, ovvero quelle molto luminose, con poco

43

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

CAPITOLO 3. TEST DEL DATASET

Figura 3.3: Immagini tratte dai quattro spezzoni in cui i classi�catori inmedia si sono comportati peggio

44

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

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 numerodi volti. Questi migliori risultati in situazioni facili sono stati tanto incisivida far risultare mediamente l'algoritmo NPD come quello con i migliori valoridi precision, come si può vedere dalla tabella 3.8.

Concludiamo le considerazioni sulla precision notando che Viola-Jonesin questo ambito ha dato risultati migliori dei concorrenti sui �lmati chepresentavano buone condizioni di luce, ma ripresi con la videocamera Gx-9, della quale abbiamo già evidenziato le carenze, soprattutto in termini dinitidezza. Questo fatto è coerente con quanto previsto, considerando che ilmetodo NPD essendo basato su singoli pixel e su contrasti so�re di più lamancanza di nitidezza.

Le considerazioni più interessanti sono tuttavia quelle che si ottengonodalla Tabella 3.9 nella quale sono esposti i valori medi di recall per ciascun�lmato e quanto i vari algoritmi siano distanti dalla media, normalizzatorispetto al valore medio. Si è poi osservato in quali spezzoni ciascun algoritmodeviasse di più o di meno dalla media, in meglio o in peggio. Da questa analisisono 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 forteinclinazione. 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 conmediamente i risultati peggiori. Invece ha avuto valori di recall mediamentepeggiori nel �lmato I, caratterizzato da luce �dura� causata dalla giornatasoleggiata, che a sua volta ha fatto sì che vi fossero ombre nette sui vol-ti. Nuovamente questo risultato è conforme alle nostre aspettative, tenendoconto che Viola-Jones si basa su Haar-Features dipendenti dalla variazionedi luminosità fra speci�che aree del volto, ed è quindi fortemente in�uenzatoda 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 di�coltàdovute al controluce, sono di di�cile interpretazione.

Sono invece di facile interpretazione i risultati di PICO alternativo. Ilrisultato 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 daanalizzare.

Si è voluto in�ne 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

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

CAPITOLO 3. TEST DEL DATASET

con quanto già osservato, hanno ulteriormente dimostrato la maggiore vali-dità della videocamera CUBE rispetto alla videocamera Gx-9 su entrambigli indici, come si può osservare in tabella 3.10.

Recall medio (%) Precision media (%)

CUBE 45.69401 20.0638Gx-9 29.8495 13.9166

Tabella 3.10: Precision e recall medi per ciascuna videocamera. Risultanoevidenti i migliori risultati medi ottenuti con la videocamera CUBE.

Vale la pena far notare che non vi è alcuna di�erenza signi�cativa, néin termini di precision né di recall fra i �lmati registrati dalla collaboratricenon vedente MLA e quelli registrati da ISA.

46

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

Conclusioni e sviluppi futuri

Questa tesi è stata parte di un progetto più ampio, il cui scopo �nale èla realizzazione di un dispositivo portatile che aiuti soggetti non vedenti oipovedenti ad a�rontare situazioni sociali in maniera simile ad un normovedente. Per fare ciò si vuole sviluppare un dispositivo capace di svolgeregrazie alla computer vision i compiti normalmente svolti dagli occhi e cervel-lo di una persona normo vedente: riconoscere ed elaborare stimoli visivi utilialle interazioni. Si è deciso di ricorrere nello speci�co alle tecnologie di facerecognition e di riconoscimento delle espressioni, entrambe a loro volta im-prescindibili da un corretto rilevamento facciale. È quindi risultata evidentela necessità di individuare l'algoritmo di face detection più adatto ai nostriscopi e perfezionarlo. Questa necessità a sua volta ha evidenziato l'esigenzadi una piattaforma di test degli algoritmi che sia dedicata e non generica.

È risultato evidente �n da subito che non fosse possibile confrontaregli algoritmi presi in considerazione su piattaforme di test già a�ermate,in quanto nessuna di esse presenta caratteristiche particolari come quelleche derivano dal nostro scopo �nale di creazione di un dispositivo portatile.Nessuno dei dataset classici infatti è soggetto a peculiarità quali:

• Usare frame estratti da �lmati

• Usare immagini con deformazione grandangolare

• Usare immagini tratte da un dispositivo indossato e non impugnato5

• Usare immagini �riprese� da un non vedente

linea invisibileSi è quindi deciso di creare una piattaforma di test speci�ca per le nostreesigenze, ovvero di creare un dataset composto da �lmati che rispecchiasserole peculiarità presentate da un �usso video acquisito da un sensore indossatoda un non vedente.

Questa lavoro di creazione ha richiesto innanzitutto che fosse ben chiarosia il tipo di ausilio che si intendesse dare al non vedente, sia tutte le carat-teristiche da includere nei �lmati acquisiti. Per quel che riguarda l'ausilio si

5Questo comporta una ripresa passiva invece che un'inquadratura attiva della scena

47

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

CONCLUSIONI

è optato per fornire al non vedente la possibilità di iniziare interazioni invecedi essere sempre la parte passiva, che deve aspettare l'intervento dell'altrosoggetto per l'inizio di una conversazione. Per quel che riguarda le criticità sisono individuate sia quelle dovute al dispositivo utilizzato sia quelle derivantidallo scopo sopra descritto.

L'individuazione di tali caratteristiche si è poi ri�essa nel lavoro succes-sivo. Infatti se ne è tenuto conto nella scrittura e direzione delle riprese, enella collaborazione con soggetti non vedenti che si sono prestati come �ope-ratori� per �lmare le suddette scene. Inoltre tali considerazioni hanno anchedeterminato le scelte e�ettuate in fase di elaborazione dei �lmati per estrarresolamente sequenze più signi�cative e nell'etichettatura di queste sequenze,per la creazione di un ground truth speci�co per questo scopo sociale e nonper un generico rilevamento di volti.

In�ne queste sequenze annotate sono state usate come ground truth per ilconfronto degli algoritmi NPD, Viola-Jones e PICO all'interno del softwareMatlab.

3.3 Conclusioni

I risultati dei test sono stati coerenti e tutte le possibili discrepanze hannotrovato valide spiegazioni nelle caratteristiche stesse dei �lmati analizzati,siano esse condizioni di luce, il mancato orientamento orizzontale dell'inqua-dratura o la videocamera utilizzata. Questo ci permette di a�ermare che ildataset non presenta irregolarità ed errori e quindi i valori ottenuti testandoalgoritmi di rilevamento facciale su di esso sono a�dabili. Possiamo a�erma-re quanto scritto sopra in base alla considerazione che ogni risultato è statocoerente con la logica alla base degli algoritmi confrontati, e nello speci�coche:

• Vi è stata una correlazione tra le caratteristiche dello spezzone ed irisultati di recall e precision peggiori o migliori, coerentemente con leaspettative

• È stato possibile giusti�care il fatto che in alcuni casi Viola-Jonesha dato risutlati migliori di NPD e viceversa, coerentemente con leaspettative descritte nel primo capitolo6

• Si è visto che tutti i metodi davano risultati peggiori su certi spezzonie migliori su altri, allo stesso modo

Inoltre valori di recall medi a malapena superiori al 50% nel migliore dei casihanno evidenziato la maggiore �di�coltà� per gli algoritmi di face detection

delle immagini estratte da frame dei nostri �lmati rispetto alle immagini

6Per esempio la minore tolleranza di NPD al rumore o la minore tolleranza di Viola-Jones a immagini con ombre �dure�.

48

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

CONCLUSIONI

statiche dei dataset usati per una valutazione più generica delle performancedi tali classi�catori.

Si può quindi sostenere che il dataset da noi realizzato è un valido stru-mento per la misura dell'e�cacia di algoritmi di face detection �nalizzatiall'uso in progetti per non vedenti. Esso infatti ha sia dimostrato di darerisultati a�dabili sia di far ottenere risultati su�cientemente di�erenti ri-spetto ai normali dataset da giusti�carne l'implementazione e l'adozione inprogetti legati a soggetti non vedenti.

I nostri test inoltre hanno reso evidente la netta superiorità per i nostriscopi dell'algoritmo �Pixel Intensity Comparisions Organized in Decisions

Trees� sviluppato da Nenad Markus. Inoltre, la scelta di ignorare la pre-

cision a favore della massimizzazione dei valori di recall veri�cata con ilmetodo chiamato �PICO alt� si è rivelata di successo nel dare risultati direcall ancora migliori rispetto agli altri metodi. Tuttavia questa scelta haintrodotto una variazione nei tempi di elaborazione che non si può ignora-re. Pur consigliando PICO, si lascia quindi la decisione �nale di quale sial'algoritmo più adatto allo scopo, e con quali parametri, a lavori futuri chetengano conto anche di tale aspetto.

È inoltre emerso dai test l'importanza della scelta della videocamerae quanto questa in�uenzi i risultati, fattore reso particolarmente evidentedal confronto esposto in Tabella 3.10 alla �ne del precedente capitolo. Siconsiglia quindi l'uso di un dispositivo di acquisizione video che rispondaalle seguenti caratteristiche:

• Sia dotato di un sensore che:

� dia immagini nitide, dai contorni ben de�niti

� abbia un buon range dinamico7

� sia poco soggetto a rumore in condizione di luce scarsa

• Possa venire attaccato saldamente al busto

• Possa essere regolato in modo da inquadrare correttamente l'area cir-costante, indipendentemente dal soggetto che lo indossi

3.4 Sviluppi futuri

Essendo questa tesi solo parte di un progetto più grande ancora in corsod'opera vi sono molteplici sviluppi futuri. Si possono raggruppare princi-palmente in sviluppi relativi all'algoritmo di face detection per migliorarneulteriormente le performance che sono ancora ben lontane dalla perfezioneed in sviluppi di ulteriori funzionalità quali face recognition ed expression

recognition, oltre all'ovvia implementazione �nale del dispositivo.7La capacità di mantenere dettaglio contemporaneamente in zone luminose e buie

dell'immagine.

49

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

CONCLUSIONI

3.4.1 Miglioramenti dell'algoritmo di face detection

Anche questa categoria di sviluppi presenta a sua volta più approcci possibili.

Filtraggio delle detection incorrette

Innanzitutto risulta necessario implementare un metodo per �ltrare le detec-tion incorrette, i false positive notevolmente aumentati in seguito alla sceltadi modi�care i parametri di PICO per aumentarne la tolleranza e ridurrele detection scartate. Infatti usando il metodo così com'è ora si otterrebbeuna quantità di detection errate quasi di un'ordine di grandezza superiore aquelle corrette.

Si consiglia intanto l'implementazione della metodologia descritta in ca-pitolo 3.2.2 - �Analisi visiva dei risultati�, ed alternativamente, qualora essanon dia i risultati desiderati, modi�care il metodo per tener maggior con-to della posizione dei rettangoli presenti in frame successivi a scapito di unaumento del costo computazionale.

Addestramento degli algoritmi con il nostro dataset

Un altro sviluppo che potrebbe presentare un notevole impatto è l'utilizzodel nostro dataset non solo per testare gli algoritmi già esistenti, presi �asis�, ovvero già addestrati su dataset più generici. Si può usare infatti partedel dataset da noi realizzato per addestrare uno o più algoritmi e poi ripeterei test. In tal caso si consiglia di iniziare da PICO e valutare se in fase di testla versione così modi�cata presenti miglioramenti signi�cativi.

In questo caso bisogna però prestare attenzione a non incorrere nei ri-schi dell'overtraining che porterebbe l'algoritmo da noi addestrato ad avereperformance notevolmente migliori quando testato su un'altra porzione del-lo stesso dataset in quanto alcuni volti8 appaiono ripetutamente in tuttigli spezzoni. Si correrebbe infatti il rischio di addestrare l'algoritmo nonad individuare dei generici volti, bensì a riconoscere i volti che appaionoripetutamente nelle nostre riprese.

3.4.2 Funzioni aggiuntive

Come già scritto in precedenza l'implementazione di una face detection ro-busta è solo il primo passo, fondamentale, per portare all'implementazione dicapacità di face recognition ed expression recognition nel dispositivo �nale.Infatti l'informazione data dal solo rilevamento facciale è limitata ed impre-cisa. Risulterebbe più utile invece uno strumento capace di comunicare lapresenza di conoscenti nell'area, grazie al riconoscimento facciale, e di sog-getti disponibili ad intraprendere un'interazione, distinguibili dall'essere non

8Il mio e quello dei professori e del personale universitario che gentilmente hannocollaborato ripetutamente come comparse nel corso delle riprese.

50

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

CONCLUSIONI

troppo lontani dal soggetto non vedente e dal guardarlo con un'espressioneamichevole.

Inoltre il riconoscimento delle espressioni porterebbe anche ulteriore in-formazione nel caso di interazioni già in corso trasmettendo al non veden-te almeno parte di quel 60% di informazione che viene trasmessa tramitecomunicazione non verbale nel corso di una discussione.

3.4.3 Implementazione del dispositivo

In�ne, lo sviluppo futuro più importante è l'e�ettiva implementazione deimetodi così testati e sviluppati in un dispositivo portatile dalle dimensioniridotte e dalla su�ciente potenza di calcolo per assicurare al non vedentela simmetria nell'iniziare un'interazione sociale, ovvero per fornirgli la pos-sibilità di passare da soggetto passivo a soggetto attivo nella scelta di faravvenire un incontro. Vi è ancora molto lavoro da fare in questa direzione,e vi sono ancora importanti scelte da fare a tale riguardo. È necessario in-fatti decidere che piattaforma utilizzare per implementare il codice, sia essaun dispositivo FPGA, lo sviluppo di un'applicazione per smartphone o peruna qualsiasi altra piattaforma embedded. È inoltre importante studiare inche modo trasmettere questa informazione al soggetto non vedente in ma-niera non intrusiva e si consiglia a questo �ne di collaborare con esperti dicomunicazione per trovare la soluzione più valida.

51

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

Appendice A

Informativa appesa nei luoghi

delle riprese

Progetto di ricerca “Riconoscimento di volti come strumento di ausilio all’interazione sociale per non

vedenti”

Informativa ai sensi dell’art. 13 del "Codice in materia di protezione dei dati personali"

(Decreto Legislativo 30 giugno 2003, n. 196)

L’UNIVERSITÀ DEGLI STUDI DI TRIESTE, in particolare il Dipartimento di Ingegneria e Architettura, è

impegnata nel progetto di ricerca “Riconoscimento di volti come strumento di ausilio all’interazione sociale

per non vedenti”. Lo studio affrontato in questo progetto riguarda metodi di rilevamento, nella zona

circostante l’utente non vedente, della presenza di persone e quando possibile di riconoscimento dell’identità

della persona rilevata.

Nell’ambito del progetto stiamo svolgendo alcune videoriprese in ambiente “aperto”. Ai sensi dell’art. 13 del

D.lgs. 196/2003, e con riferimento ai dati personali eventualmente acquisiti nell’ambito di questa attività, si

comunica quanto segue:

1. Finalità del trattamento

I dati personali saranno trattati alle sole finalità del progetto di ricerca. I dati verranno trattati nel

rispetto di quanto stabilito dal Codice in materia di protezione dei dati personali e dal Codice di

deontologia e buona condotta per i trattamenti di dati personali per scopi statistici e scientifici.

2. Modalità del trattamento

Il Titolare del trattamento è l’Università degli Studi di Trieste con sede legale in Piazzale Europa 1,

Trieste.

Il trattamento sarà effettuato da soggetti specificamente nominati quali incaricati del trattamento. I

dati relativi ad eventuali soggetti ripresi saranno memorizzati solo per il tempo necessario alla loro

analisi e saranno successivamente distrutti.

Idonee misure di sicurezza saranno adottate per garantire la riservatezza e la sicurezza dei dati e

ridurre al minimo perdita dei dati, usi illeciti o non corretti, accessi non autorizzati.

3. Ambito di comunicazione dei dati

I dati riguardanti eventuali individui riconosciuti saranno forniti unicamente al soggetto non vedente.

Non sarà effettuata alcuna altra comunicazione né pubblicazione di alcun dato.

4. Responsabili del trattamento

Il Responsabile del trattamento è il Direttore del Dipartimento di Ingegneria e Architettura.

5. Diritti degli interessati

Ai sensi dell’art. 7 del Codice i soggetti cui si riferiscono i dati personali - così detti "interessati"-

hanno il diritto in qualunque momento di ottenere la conferma dell’esistenza o meno dei medesimi

dati e di conoscerne il contenuto e l’origine, verificarne l’esattezza o chiederne l’integrazione o

l’aggiornamento, oppure la rettificazione. Ai sensi del medesimo articolo, si ha il diritto di chiedere

la cancellazione, la trasformazione in forma anonima o il blocco dei dati trattati in violazione di

legge, nonché di opporsi in ogni caso, per motivi legittimi, al loro trattamento.

52

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

Appendice B

Procedura seguita in Shotcut

Di seguito verrà esposta in modo molto schematico ma dettagliato la pro-cedura seguita per svolgere le varie operazioni necessarie per il passaggiodai �lmati acquisiti agli spezzoni pronti ad essere etichettati e testati, usan-do il programma Shotcut[19]. Riporterò quanto è stato scritto nella do-cumentazione da allegare ai �lmati, documentazione pensata per eventualicollaboratori stranieri e quindi scritta in inglese.

B.1 Procedura principale

La procedura è descritta per essere seguita sul computer presente nel labo-ratorio Image Processing Lab(IPL) del Dipartimento di Ingegneria e Archi-tettura dell'Università degli studi di Trieste e in alcuni punti fa riferimentoa dei presets salvati nelle impostazioni del programma. Tali punti verrannosegnalati con un asterisco nella procedura.

1. Open the �rst �le in Shotcut (drag and drop also works)

• For CUBE �les press the [+] in the Filters sidebar, select Rotateand under the Preset drop down menu pick 180* to rotate thevideo by 180◦.Focus on (click in) the video area of the workspace before movingon to point 3

2. Set the output codec to:

• VbyB GX9* for Gx9 �les

• VbyB CUBE* for CUBE �les

These are custom pro�les I made for the project, starting from therequired mpeg-1 codecs required by ViperGT, with additional qualitysettings and settings for stripping the audio

53

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

APPENDICE B. PROCEDURA SEGUITA IN SHOTCUT

3. Go to the starting point of the sequence by typing it in the lower lefttime �eld following the hh:mm:ss.frame format

4. Press [i]

5. Go to the sequence end point

6. Press [o]

7. Click Encode File

8. Set the name accordingly to the naming convention

9. Save

10. Repeat steps 4 to 9 for each sequence in the �le

11. Repeat steps 1 to 10 for each �le

Si noti che non è necessario aspettare che un lavoro di codi�ca �nisca periniziare quello successivo, dato che ogni volta che si salva un nuovo spezzoneda codi�care il programma lo aggiunge in coda al lavoro attualmente inesecuzione, o agli altri lavori in coda.

La procedura per unire due spezzoni richiede un passaggio completamen-te diverso e rende impossibile sfruttare la possibilità di mettere i lavori incoda, quindi verrà spiegata a parte.

B.2 Altre procedure

B.2.1 Creazione dei presets

Di seguito verrà descritta la procedura per creare i preset contrassegnati da* nella procedura descritta sopra. Per continuità con la parte precedente,e nel caso questa tesi possa venire usata come documentazione in futuro,proseguirò a spiegare la procedura in inglese.

Creazione del preset �180�

Questo preset serve per la rotazione di 180◦ dei �lmati ripresi con la video-camera CUBE. Si può di volta in volta speci�care di applicare una rotazionedi 180◦, ma si è ritenuto più veloce creare un preset da applicare.

1. Click on the Filters button on the top bar to bring out the Filtersside-panel

2. Click on the [+] on the far left.

3. Click on Rotate

54

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

APPENDICE B. PROCEDURA SEGUITA IN SHOTCUT

4. Fill the Rotation �eld with the value 180

5. Click the small [+] button on the right of the Preset drop down menu

6. Set 180 as name and press OK

Creazione del preset �VbyB GX9�

Questo preset è relativo alla de�nizione della codi�ca del �le di uscita deglispezzoni estratti da �lmati realizzati con la videocamera Gx-9. Non solo siritiene utile la creazione del preset per impostare più rapidamente la codi�cad'uscita dei �le di volta in volta, ma questo porta il bene�cio principale diminimizzare la possibilità di impostare valori incorretti per distrazione o perdimenticanza.

1. Click on the Encode button on the top bar to bring out the Encodeside-panel

2. In the Format drop down menu select mpeg

3. Fill all the other �elds as in Figure B.1

4. Click on the [+] button below the list of encoding pro�les

5. Set VbyB GX9 as name and press OK

Figura B.1: Values for the Gx9 preset

55

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

APPENDICE B. PROCEDURA SEGUITA IN SHOTCUT

Creazione del preset �VbyB CUBE�

Questo preset è relativo alla de�nizione della codi�ca del �le di uscita deglispezzoni estratti da �lmati realizzati con la videocamera CUBE. Non solo siritiene utile la creazione del preset per impostare più rapidamente la codi�cad'uscita dei �le di volta in volta, ma questo porta il bene�cio principale diminimizzare la possibilità di impostare valori incorretti per distrazione o perdimenticanza.

1. Click on the Encode button on the top bar to bring out the Encodeside-panel

2. In the Format drop down menu select mpeg

3. Fill all the other �elds as in Figure B.2

4. Click on the [+] button below the list of encoding pro�les

5. Set VbyB CUBE as name and press OK

Figura B.2: Values for the CUBE preset

B.2.2 Unire spezzoni

Chiamiamo per semplicità A e B i �lmati contenenti gli spezzoni da unire,rispettivamente in coda ad A ed in testa a B.

56

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

APPENDICE B. PROCEDURA SEGUITA IN SHOTCUT

1. Open �A� in Shotcut

2. Rotate it 180◦ as explained before

3. Focus on (click in) the video area of the workspace

4. Set the output codec to VbyB CUBE

5. Go to the starting point of the sequence by typing it in the lower lefttime �eld following the hh:mm:ss.frame format

6. Press [i]

7. Click on the Playlist button on the top bar to bring out the Playlistside-panel

8. Click on the [+] button on the bottom left

9. Open �B� in Shotcut

10. Rotate it 180◦ as explained before

11. Focus on (click in) the video area of the workspace

12. Go to the ending point of the sequence by typing it in the lower lefttime �eld following the hh:mm:ss:frame format

13. Press [o]

14. Click on the [+] button on the bottom left

15. Click Encode File

16. Set the name accordingly to the naming convention

17. Save

18. Restart the program to merge the next sequence

57

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

Appendice C

Procedura seguita in

ViPER-GT

Di seguito verrà esposta in modo molto schematico ma dettagliato la pro-cedura seguita per svolgere le varie operazioni necessarie per la creazionedel ground truth con ViPER-GT. Riporterò quanto è stato scritto nella do-cumentazione da allegare ai �lmati, documentazione pensata per eventualicollaboratori stranieri e quindi scritta in inglese.

C.1 Creazione dello �Schema base�

Innanzitutto verrà esposta la procedura adottata per trasformare i criteri dietichettatura scelti in delle voci di uno schema da associare ad ogni volto diogni �lmato.

Figura C.1: Schema Editor di ViPER-GT e risultato equivalente in formadi �le xml. Si può notare la de�nizione dei criteri avanzati di etichettatura

1. Run ViPER-GT

2. Click Window, then Schema Editor

58

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

APPENDICE C. PROCEDURA SEGUITA IN VIPER-GT

3. Click Add Descriptor

4. Set the Data Type to OBJECT and Name to Person

5. Click Add Attribute

6. Set Name, Data Type, dynamic and Default to the desired values

7. Repeat points 5 and 6 for every attribute needed

8. Close the Schema Editor

9. Click File, then Save as...

10. Name the �le accordingly, for example schema-de�nitive

I valori usati per riempire i campi nel punto 6 sono qui elencati in TabellaC.1, dove svalue rappresenta una stringa, bvalue un valore booleano, bboxuna bounding box, ovvero un rettangolo, de�nita dalla posizione del verticesuperiore sinistro e dalle sue dimensioni e point un punto.

Name Name Face DX Eye SX Eye Mouth Lateral OcclusionData Type svalue bbox point point point bvalue bvaluedynamic false true true true true true trueDefault NULL NULL NULL NULL NULL NULL NULL

Tabella C.1: Valori degli attributi nello schema. La prima parte della tabellacontiene i valori presenti in schema-base e segue i criteri più laschi tra quellidescritti. La seconda parte è l'aggiunta fatta per soddisfare gli ulteriorirequisiti aggiunti in seguito. La tabella intera rappresenta quindi i valoripresenti in schema-base-de�nitivo.

C.2 Etichettatura dei volti

Ivi verrà descritta la procedura di base per la semplice etichettatura dei voltisolo con bounding box.

1. Run ViPER-GT

2. Click File, then Import Schema

3. Browse for schema-base.xgtf

4. click Media, then Add Media File

5. Pick the video to label. It has to be an mpg, with MPEG-1 or MPEG-2codec

59

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

APPENDICE C. PROCEDURA SEGUITA IN VIPER-GT

Figura C.2: Interfaccia principale di ViPER-GT:(a) Area di visualizzazione. Si notino i tre volti annotati con bounding boxes

e punti per occhi e bocca. In rosso il bounding box selezionato in (b), ovveroil campo Face della persona p1.(b) Area con i valori assegnati in base al lavoro fatto nell'area di visualizza-zione. Si può notare che p3 ha valore NULL assegnato nella colonna Mouth etrue nella colonna Occlusion.(c) La zona timeline con i comandi per muoversi nel video, una rappresen-tazione gra�ca degli oggetti etichettati e in fondo a destra (d) il pulsanteMark.

6. Click on the label saying Person in the timeline

7. Click Create

8. Change the name

9. Click the Face �eld

10. Draw a box around the person's face following the labeling criteria

11. Before starting to label frame by frame, check for that person move-ments in the following frames: if the video/person is pretty static ordoing a a linear movement:

(a) Set a mark at the beginning of the sequence by clicking Mark inthe lower right area

60

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

APPENDICE C. PROCEDURA SEGUITA IN VIPER-GT

(b) Watch the clip to see if the face is still or moving and set a markat the end of a still sequence or of a linear movement

(c) Draw a box around the person's face

(d) Right click on the Face �eld, then Interpolate to Mark andinterpolate to the mark set in point 11(a)

(e) Go back to that mark in the timeline

(f) Apply frame by frame minimal adjustments to the boxes (usingthe keyboard is faster: space to go to the next frame, arrows tomove the box by one pixel, shift+arrows to move the box 5 pixelsat a time) until you reach the mark set at point 11(b)

12. Otherwise just draw the bounding boxes frame by frame

13. Repeat steps 11 or 12 till the end of the video

14. Repeat steps 7 to 13 for every person that has to be labeled

15. Click File, then Save as... and save with the same name as thevideoclip (recommended)

Si può, ed è incoraggiato, salvare più spesso che solo alla �ne del lavoro.La procedura per aggiungere gli ulteriori criteri di annotazione è simile

a quella descritta qui sopra per l'annotazione di base. È consigliato fare untipo di annotazione alla volta invece che tutte contemporaneamente frameper frame, specialmente l'aggiunta dei �ag di lateralità e occlusione. In-nanzitutto vediamo la procedura di aggiunta del punto relativo all'occhiodestro. La procedura per l'altro occhio e per la bocca saranno analoghe,salvo ovviamente la parte relativa al lancio del programma, l'apertura del�le e l'importazione dello schema aggiornato (punti 1-5).

1. Run ViPER-GT

2. Click File, then Open Existing ViPER File...

3. Pick the previously saved �le you want to upgrade with the betterlabeling

4. Click File, then Import Schema

5. Browse for schema-base-de�nitivo.xgtf

6. Select one of the already labeled person by clicking their Face �eld inthe upper right area. The rectangle around their face should becomered.

7. Click on the DX Eye �eld.

61

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

APPENDICE C. PROCEDURA SEGUITA IN VIPER-GT

8. Click on the person's right eye.

9. Go to the next frame ([Spacebar])

10. Repeat steps 8 and 9 till the end of the video

11. Repeat steps 6 to 10 for every person that has to be labeled

12. Click File, then Save

La procedura per l'aggiunta dei due �ag di lateralità e occlusione è leg-germente di�erente ed è necessario l'uso di un editor di testo e la modi�camanuale di alcune righe del �le .xgtf per snellire di molto i tempi. Siconsiglia inoltre di fare queste due procedure contemporaneamente.

1. Run ViPER-GT

2. If you haven't alredy, follow steps 2 to 5 of the previous list

3. Watch the video frame by frame

4. Set the Occlusion �eld to true for a person whenever his face startsbeing occluded, set it to false whenever it stops being occluded bystopping being visible at all, or by becoming unobstructed again

5. Set the Lateral �eld to true for a person whenever his face starts beinglateral as per labeling criteria, set it to false whenever it stops beinglateral by stopping being visible at all, or by becoming frontal again

6. Click File, then Save

7. Close ViPER-GT

8. Open the saved �le in a text editor

9. Search for lines with similar text:

<attribute name="Lateral">

<data:bvalue framespan="16:16" value="true"/>

<data:bvalue framespan="41:41" value="false"/>

10. Edit the text copying the frame number from the false line as secondnumber in the previous true line, then removing the false line entirely,as you can see in the following example:

<attribute name="Lateral">

<data:bvalue framespan="16:41" value="true"/>

11. Repeat steps 9 and 10 for lines preceded by

62

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

APPENDICE C. PROCEDURA SEGUITA IN VIPER-GT

<attribute name="Occlusion">

12. Repeat steps 9 to 11 all the times needed

13. Save

63

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

Appendice D

Parametri passati ai detector

nei test

D.1 Normalized Pixel Di�erence

Parametri passati al metodo �NPD�.

minface=30; % minimal size of the face that you are

% searching for. Default: 20

maxface=4000; % maximal size of the face that you are

% searching for. Default: 4000

overlappingThreshold=0.2; % overlapping threshold for

% grouping nearby detections.

% Default: 0.5

detectortype='C:\Program Files\MATLAB\MATLAB Production Server\

R2015a\\toolbox\NPDFaceDetector\model_frontal.mat';

D.2 Viola-Jones

Parametri passati al metodo �VJ�.

scalefactor=1.2;

mergethreshold=3;

detectortype='C:\\users\\michele\\Desktop\\IP_cartelladefinitiva\

\haarcascade_frontalface_default.xml';

64

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

APPENDICE D. PARAMETRI PASSATI AI DETECTOR NEI TEST

D.3 Pixel Intensity Comparisions Organized in De-

cisions Trees

Parametri passati al metodo �PICO�. Sono i valori di default dell'algoritmo.

minsize = 24;

maxsize = 1024;

angle = 0;

scalefactor = 1.1;

stridefactor = 0.1;

noclustering = 0;

D.4 Pixel Intensity Comparisions Organized in De-

cisions Trees, alternative value

Parametri passati al metodo �PICO alt�. Si è variata una soglia che riduce ilnumero di risultati scartati su suggerimento dell'autore del metodo, NenadMarkus.

minsize = 24;

maxsize = 1024;

angle = 0;

scalefactor = 1.1;

stridefactor = 0.05; % Rejection value: lowering it slows the

% detector but gives more positives

noclustering = 0;

65

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

Appendice E

Risultati sperimentali

Ivi riportiamo schematicamente i risultati ottenuti provando i tre metodi dirilevamento facciale Normalized Pixel Di�erence, Viola-Jones, PICO e PICOalt su alcuni �lmati signi�cativi, che coprono un numero su�cientementeampio di situazioni come da Capitolo 2.1.1, appartenenti al nostro più vastodataset. linea invisibilelinea invisibilelinea invisibilelinea invisibile

Tabella E.1: Risultati sul video 2015_09_24_CUBE_MLA_13_6, lungo 379frames, contenente 286 volti in totale.

True Positive False Positive False Negative

Somma NPD 34 697 252VJ 42 2050 244

PICO 70 1356 216PICO alt 91 3923 195

Media NPD 0.08971 1.8391 0.66491VJ 0.11082 5.409 0.6438

PICO 0.1847 3.5778 0.56992PICO alt 0.240 10.351 0.515

linea invisibileNPD Viola-Jones PICO PICO alt

Recall (%) 11.8881 14.6853 24.4755 31.8182Precision (%) 4.6512 2.0076 4.9088 2.2671

66

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

APPENDICE E. RISULTATI SPERIMENTALI

Tabella E.2: Risultati sul video 2015_10_15_CUBE_ISA_7_p, lungo 1138frames, contenente 3346 volti in totale.

True Positive False Positive False Negative

Somma NPD 2168 1756 1178VJ 1749 2602 1597

PICO 2393 2286 953PICO alt 2587 6871 759

Media NPD 1.905 1.543 1.035VJ 1.537 2.286 1.403

PICO 2.103 2.009 0.837PICO alt 2.273 6.038 0.667

linea invisibileNPD Viola-Jones PICO PICO alt

Recall (%) 64.7938 52.2714 71.5182 77.3162Precision (%) 55.2497 40.1977 51.1434 7.3525

Tabella E.3: Risultati sul video 2015_11_12_GX9_MLA_1_b, lungo 1380frames, contentente 1765 volti in totale.

True Positive False Positive False Negative

Somma NPD 421 3558 1344VJ 285 1385 1480

PICO 568 4048 1197PICO alt 897 12348 868

Media NPD 0.30507 2.5783 0.97391VJ 0.20652 1.0036 1.0725

PICO 0.41159 2.9333 0.86739PICO alt 0.650 8.948 0.629

linea invisibileNPD Viola-Jones PICO PICO alt

Recall (%) 23.8527 16.1473 32.1813 50.8215Precision (%) 10.5805 17.0659 12.305 6.7724

67

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

APPENDICE E. RISULTATI SPERIMENTALI

Tabella E.4: Risultati sul video 2015_09_24_CUBE_MLA_14_4, lungo 697frames, contenente 723 volti in totale.

True Positive False Positive False Negative

Somma NPD 46 497 677VJ 83 2233 640

PICO 152 898 571PICO alt 254 2993 469

Media NPD 0.066 0.713 0.971VJ 0.119 3.204 0.918

PICO 0.218 1.288 0.819PICO alt 0.364 4.294 0.673

linea invisibileNPD Viola-Jones PICO PICO alt

Recall (%) 6.3624 11.4799 21.0235 35.1314Precision (%) 8.4715 3.5838 14.4762 7.8226

Tabella E.5: Risultati sul video 2015_10_15_CUBE_ISA_1_a, lungo 1200frames, contenente 2131 volti in totale.

True Positive False Positive False Negative

NPD 223 1588 1908Somma VJ 370 4019 1761

PICO 545 3636 1586PICO alt 780 9271 1351

Media NPD 0.186 1.323 1.590VJ 0.308 3.349 1.468

PICO 0.454 3.030 1.322PICO alt 0.650 7.726 1.126

linea invisibileNPD Viola-Jones PICO PICO alt

Recall (%) 10.4646 17.3627 25.5748 36.6025Precision (%) 12.3136 8.4302 13.0352 7.7604

68

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

APPENDICE E. RISULTATI SPERIMENTALI

Tabella E.6: Risultati sul video 2015_11_12_CUBE_MLA_6_extra5, lungo 838frames, contenente 841 volti in totale.

True Positive False Positive False Negative

Somma NPD 377 688 464VJ 344 2226 497

PICO 519 1264 322PICO alt 565 2501 276

Media NPD 0.450 0.821 0.554VJ 0.411 2.656 0.593

PICO 0.619 1.508 0.384PICO alt 0.674 2.984 0.329

linea invisibileNPD Viola-Jones PICO PICO alt

Recall (%) 44.8276 40.9037 61.7122 67.1819Precision (%) 35.3991 13.3852 29.1082 18.4279

Tabella E.7: Risultati sul video 2015_10_15_GX9_ISA_2_k, lungo 360 frames,contenente 809 volti in totale.

True Positive False Positive False Negative

Somma NPD 249 848 560VJ 234 604 575

PICO 338 1169 471PICO alt 410 3165 399

Media NPD 0.692 2.356 1.556VJ 0.650 1.678 1.597

PICO 0.939 3.247 1.30PICO alt 1.139 8.792 1.108

linea invisibileNPD Viola-Jones PICO PICO alt

Recall (%) 30.7787 28.9246 41.78 50.6799Precision(%) 22.6983 27.9236 22.4287 11.4685

69

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

APPENDICE E. RISULTATI SPERIMENTALI

Tabella E.8: Risultati sul video 2015_11_12_GX9_MLA_3_extra3, lungo 300frames, contenente 745 volti in totale.

True Positive False Positive False Negative

Somma NPD 44 289 701VJ 67 696 678

PICO 71 233 674PICO alt 142 684 603

Media NPD 0.14667 0.96333 2.3367VJ 0.22333 2.32 2.26

PICO 0.23667 0.77667 2.2467PICO alt 0.4733 2.28 2.01

linea invisibileNPD Viola-Jones PICO PICO alt

Recall (%) 5.96 8.99333 9.5302 19.0604Precision (%) 13.213 8.7811 23.355 17.1913

Tabella E.9: Risultati sul video 2015_11_12_GX9_MLA_5_extra8, lungo 360frames, contenente 867 volti in totale.

True Positive False Positive False Negative

Somma NPD 271 303 596VJ 162 188 705

PICO 375 309 492PICO alt 464 1089 403

Media NPD 0.753 0.842 1.656VJ 0.450 0.522 1.958

PICO 1.042 0.858 1.367PICO alt 1.289 3.025 1.119

linea invisibileNPD Viola-Jones PICO PICO alt

Recall (%) 31.2572 18.6851 43.2526 53.5179Precision (%) 47.2125 46.2857 54.8246 29.8777

70

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

Bibliogra�a

[1] Matthew Lai. Gira�e: Using deep reinforcement learning to play chess.CoRR, abs/1509.01549, 2015.

[2] Google self-driving car project. www.google.com/selfdrivingcar/.Visualizzato l'ultima volta in data 11/01/2016.

[3] Vislab's deeva. http://vislab.it/automotive/. Visualizzato l'ultimavolta in data 11/01/2016.

[4] Paul A. Viola and Michael J. Jones. Robust real-time face detection.International Journal of Computer Vision, 57(2):137�154, 2004.

[5] Open source computer vision. http://opencv.org. Visualizzatol'ultima volta in data 21/01/2016.

[6] Constantine Papageorgiou, Michael Oren, and Tomaso A. Poggio. Ageneral framework for object detection. In ICCV, pages 555�562, 1998.

[7] R. Tibshirani J. Friedman, T. Hastie. Additive logistic regression: astatistical view of boosting. The Annals of Statistics, 28:337�374, 2000.

[8] Xiangxin Zhu and Deva Ramanan. Face detection, pose estimation,and landmark localization in the wild. In 2012 IEEE Conference on

Computer Vision and Pattern Recognition, Providence, RI, USA, June

16-21, 2012, pages 2879�2886, 2012.

[9] Shengcai Liao, Anil K. Jain, and Stan Z. Li. A fast and accurateunconstrained face detector. CoRR, abs/1408.1656, 2014.

[10] Leo Breiman, J. H. Friedman, R. A. Olshen, and C. J. Stone.Classi�cation and Regression Trees. Wadsworth, 1984.

[11] Nenad Markus, Miroslav Frljak, Igor S. Pandzic, Jörgen Ahlberg, andRobert Forchheimer. A method for object detection based on pixelintensity comparisons. CoRR, abs/1305.4537, 2013.

[12] Illuxtech.inc. http://illuxtech.com. Visualizzato l'ultima volta indata 14/01/2016.

71

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

BIBLIOGRAFIA

[13] A. Mehrabian. Nonverbal Communication. Aldine Publishing Company,1972.

[14] Michael Argyle. Bodily Communication. University paperbacks.Methuen, 1988.

[15] Polaroid cube. http://www.polaroid.com/cube. Visualizzato l'ultimavolta in data 03/02/2016.

[16] Sportxtreme overlook gx-9. http://www.amazon.it/

SportXtreme-OverLook-videocamera-incorporata-grandangolo/

dp/B006I8SN0W. Unico link presente relativo a questa videocamera. Ilprodotto è sprovvisto di un sito u�ciale. Visualizzato l'ultima volta indata 03/02/2016.

[17] Language and Media Processing Laboratory del Institute for Advanced

Computer Studies dell'Università del Maryland. Viper ground truthauthoring tool. http://viper-toolkit.sourceforge.net/products/gt/. Visualizzato l'ultima volta in data 21/01/2016.

[18] Videoreader tool for matlab. https://it.mathworks.com/help/

matlab/ref/videoreader.html. Visualizzato l'ultima volta in data21/01/2016.

[19] Shotcut. http://www.shotcut.org. Visualizzato l'ultima volta in data21/01/2016.

[20] Shotcut credits. http://www.shotcut.org/bin/view/Shotcut/

Credits. Visualizzato l'ultima volta in data 21/01/2016.

[21] Matlab. https://www.mathworks.com/products/matlab/index.html.Visualizzato l'ultima volta in data 05/02/2016.

72