6 - Face detection e Recognition Flashcards

1
Q

Cos’è la face detection? e la face recognition?

A

La face detection e la face recognition sono due processi distinti utilizzati nell’analisi delle immagini per identificare e riconoscere i volti umani. Ecco una spiegazione di entrambi i concetti:

Face Detection (Rilevamento dei volti):
La face detection è il processo di individuazione e localizzazione dei volti umani all’interno di un’immagine o di un video. L’obiettivo è individuare la presenza di volti nella scena e determinarne la posizione approssimativa. Questo processo è spesso la prima fase nell’elaborazione di immagini per applicazioni come il riconoscimento facciale, l’analisi delle emozioni, la sorveglianza e altri sistemi che richiedono l’identificazione dei volti.

L’algoritmo di face detection utilizza varie tecniche, come l’apprendimento automatico (machine learning), l’analisi dei contorni, la rilevazione di punti di interesse e altre tecniche di elaborazione delle immagini. Questi algoritmi cercano caratteristiche tipiche dei volti umani, come occhi, naso, bocca e contorni facciali, per individuare le regioni che potrebbero contenere un volto. Una volta individuata una regione che potrebbe essere un volto, l’algoritmo può applicare ulteriori tecniche per confermare o rifiutare la presenza di un volto.

Face Recognition (Riconoscimento facciale):
La face recognition, o face identification, è il processo di identificazione unica di un individuo basato sulle caratteristiche del suo volto. Una volta che i volti sono stati individuati e localizzati attraverso il processo di face detection, il riconoscimento facciale viene utilizzato per confrontare e associare l’immagine di un volto con un’identità nota presente in un database.

L’algoritmo di face recognition estrae e analizza le caratteristiche distintive dei volti, come la forma del viso, le proporzioni tra gli occhi, la disposizione delle caratteristiche facciali e altre caratteristiche uniche. Queste caratteristiche vengono convertite in un formato numerico chiamato “template facciale” o “firma facciale”. Il template facciale viene quindi confrontato con i template memorizzati nel database per trovare una corrispondenza.

Il riconoscimento facciale può essere effettuato utilizzando diversi approcci, tra cui algoritmi basati su feature (es. analisi dei punti di interesse), algoritmi basati su modelli (es. algoritmi statistici), algoritmi di deep learning basati su reti neurali convoluzionali (CNN) e altro ancora. Questi algoritmi cercano di misurare la somiglianza o la distanza tra i template facciali per determinare se l’identità del volto corrisponde a quella presente nel database.

In sintesi, la face detection si concentra sulla localizzazione dei volti in un’immagine o in un video, mentre la face recognition mira all’identificazione unica dei volti confrontando le caratteristiche facciali con un database di identità note

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Come funziona un riconoscitore facciale?

A

Un riconoscitore facciale, o sistema di riconoscimento facciale, è un sistema automatizzato che identifica e autentica l’identità di una persona basandosi sulle caratteristiche del suo volto. Esistono diverse modalità operative per un riconoscitore facciale, ma di seguito ti fornirò una panoramica generale di come funziona tipicamente un sistema di riconoscimento facciale basato su algoritmi di deep learning:

Acquisizione dell'immagine: Il processo di riconoscimento facciale inizia con l'acquisizione dell'immagine del volto dell'individuo. Questa immagine può essere ottenuta da una fotocamera, una telecamera di sorveglianza o qualsiasi altro dispositivo che possa catturare immagini del volto.

Preprocessing: L'immagine del volto viene quindi sottoposta a una serie di operazioni di preprocessing per migliorare la qualità dell'immagine. Queste operazioni possono includere la riduzione del rumore, la normalizzazione dell'illuminazione e la correzione della distorsione.

Rilevamento dei volti: Utilizzando algoritmi di face detection, il sistema individua e localizza i volti presenti nell'immagine. Questo passaggio identifica le regioni dell'immagine che contengono volti umani.

Allineamento dei volti: Dopo il rilevamento dei volti, viene eseguito l'allineamento dei volti per garantire che le caratteristiche facciali siano nella stessa posizione e orientamento. Questo è importante per ridurre la variazione delle caratteristiche facciali dovute a diverse pose e angolazioni.

Estrazione delle caratteristiche: L'immagine del volto allineato viene quindi elaborata utilizzando reti neurali convoluzionali (CNN) per estrarre le caratteristiche distintive del volto. Le CNN possono apprendere automaticamente le caratteristiche rilevanti del volto, come la forma del viso, gli occhi, il naso, la bocca e altre caratteristiche discriminanti.

Creazione del template facciale: Le caratteristiche estratte vengono convertite in un formato numerico chiamato "template facciale" o "firma facciale". Questo template rappresenta univocamente le caratteristiche del volto dell'individuo.

Memorizzazione e confronto: Il template facciale viene quindi memorizzato in un database insieme all'identità corrispondente. Durante la fase di riconoscimento, l'immagine del volto acquisita viene confrontata con i template facciali memorizzati nel database. Viene calcolata una misura di similarità o distanza tra l'immagine del volto e i template facciali per trovare la corrispondenza più probabile.

Decisione di corrispondenza: In base alla misura di similarità o distanza calcolata, viene presa una decisione sulla corrispondenza o meno tra l'immagine del volto e i template facciali nel database. Se la misura supera una soglia di decisione prestabilita, viene considerata una corrispondenza e l'identità dell'individuo viene riconosciuta.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Algoritmo Viola-Jones

A

L’algoritmo di Viola-Jones è un popolare algoritmo utilizzato per il rilevamento di oggetti, in particolare per il rilevamento dei volti.

L’algoritmo di Viola-Jones utilizza una tecnica chiamata “AdaBoost” per selezionare in modo efficiente e accurato le caratteristiche rilevanti nelle immagini.

Preparazione del training set: Per addestrare l'algoritmo, è necessario un set di immagini etichettate che contengono gli oggetti che si desidera rilevare, ad esempio volti. Questo set di immagini viene utilizzato per addestrare il classificatore.

Creazione delle feature integrali: Le immagini vengono convertite in una rappresentazione più compatta chiamata "feature integrali". Le feature integrali semplificano il calcolo delle caratteristiche nelle immagini e riducono il tempo computazionale complessivo.

Selezione delle caratteristiche: Viene applicata una serie di caratteristiche ad ogni finestra dell'immagine per determinare se la caratteristica è rilevante o meno per il riconoscimento dell'oggetto desiderato. Le caratteristiche possono essere rettangolari e comprendono ad esempio differenze di intensità tra le regioni di un'immagine.

Addestramento del classificatore: Utilizzando l'algoritmo di AdaBoost, il classificatore viene addestrato iterativamente. Durante ogni iterazione, vengono selezionate le caratteristiche più informative per il rilevamento dell'oggetto. Successivamente, il classificatore viene allenato per assegnare un peso maggiore agli esempi di addestramento classificati erroneamente e un peso minore agli esempi classificati correttamente.

Creazione del classificatore forte: Dopo un numero specificato di iterazioni, viene creato un "classificatore forte" combinando un insieme di "classificatori deboli". Ogni classificatore debole ha una precisione leggermente superiore al caso casuale, ma insieme formano un classificatore molto più potente.

Rilevamento dell'oggetto: Una volta creato il classificatore forte, viene utilizzato per scansionare l'immagine di input alla ricerca dell'oggetto desiderato, ad esempio un volto. L'immagine viene analizzata utilizzando finestre di diverse dimensioni per coprire diverse scale e posizioni dell'oggetto all'interno dell'immagine. Le caratteristiche rilevanti vengono calcolate utilizzando le feature integrali e passate al classificatore per determinare se la finestra contiene l'oggetto o meno.

Selezione dei risultati: Dopo il rilevamento degli oggetti, vengono applicate tecniche di post-elaborazione per selezionare i risultati rilevanti e ridurre i falsi positivi.

L’algoritmo di Viola-Jones è stato ampiamente utilizzato per il rilevamento dei volti, ma può essere adattato anche per il rilevamento di altri oggetti come occhi, mani, veicoli, ecc. La sua efficacia deriva dalla combinazione di caratteristiche efficienti, algoritmi di apprendimento automatico e ottimizzazioni che consentono un rilevamento rapido e accurato degli oggetti in tempo reale.

O(MNT) dove M sono i filtri, N esempi e T threshold

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Cos’è una immagine integrale?

A

Un’immagine integrale è una rappresentazione compatta di un’immagine utilizzata per calcolare rapidamente la somma dei valori dei pixel all’interno di una determinata regione rettangolare. Questa rappresentazione è ampiamente utilizzata in diversi algoritmi di elaborazione delle immagini, come il riconoscimento facciale utilizzando l’algoritmo di Viola-Jones.

L’idea alla base dell’immagine integrale è quella di calcolare la somma cumulativa dei valori dei pixel partendo dall’angolo in alto a sinistra dell’immagine e procedendo verso il basso e verso destra. Ogni elemento dell’immagine integrale corrisponde alla somma di tutti i valori dei pixel sopra di esso e a sinistra di esso, inclusi.

La creazione di un’immagine integrale comporta una singola scansione dell’immagine originale, e una volta calcolata, l’immagine integrale può essere utilizzata per calcolare la somma dei valori dei pixel all’interno di una regione rettangolare specifica in modo molto efficiente.

Ad esempio, supponiamo di avere un’immagine integrale I(x, y) in cui (x, y) è la coordinata di un pixel nell’immagine originale e I(x, y) rappresenta la somma cumulativa dei valori dei pixel dall’origine all’angolo in basso a destra del rettangolo rettangolare definito da (0, 0) a (x, y). Per calcolare la somma dei valori dei pixel all’interno di una regione rettangolare definita da quattro punti (x1, y1), (x2, y1), (x1, y2), (x2, y2), è possibile utilizzare l’immagine integrale secondo la seguente formula:

Somma = I(x2, y2) - I(x1-1, y2) - I(x2, y1-1) + I(x1-1, y1-1)

L’utilizzo dell’immagine integrale consente di ridurre il tempo di calcolo necessario per eseguire operazioni come la convoluzione, la correzione del contrasto e la ricerca di caratteristiche all’interno di una regione specifica, migliorando l’efficienza degli algoritmi di elaborazione delle immagini.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Cos’è e come funziona il PCA?

A

Il PCA (Principal Component Analysis) è una tecnica ampiamente utilizzata per il riconoscimento facciale. Nel contesto del face recognition, l’obiettivo del PCA è quello di ridurre la dimensionalità dei dati facciali mantenendo le informazioni discriminanti necessarie per distinguere tra diverse persone.

Ecco come funziona il PCA per il face recognition:

Raccolta dei dati facciali: Per addestrare il PCA, è necessario un set di immagini facciali rappresentative delle diverse persone da riconoscere. Questo set di immagini viene utilizzato per creare il modello PCA.

Preprocessing delle immagini facciali: Le immagini facciali vengono sottoposte a un preprocessing per rimuovere il rumore e standardizzare le condizioni di illuminazione, posizione e dimensione. Ad esempio, le immagini possono essere allineate in base ai punti di riferimento come gli occhi o la bocca, e poi ridimensionate a dimensioni uniformi.

Creazione del modello PCA: Utilizzando il set di immagini facciali preelaborate, viene calcolata la media delle immagini facciali, che rappresenta il volto medio del dataset. Successivamente, viene calcolata la matrice di covarianza delle immagini facciali rispetto alla media. Poi, si esegue la decomposizione della matrice di covarianza per ottenere gli autovettori e gli autovalori associati.

Selezione delle componenti principali: Gli autovettori ottenuti dalla decomposizione rappresentano le direzioni di massima varianza nei dati facciali. Le componenti principali vengono selezionate in base agli autovalori corrispondenti. Di solito, le prime N componenti principali che catturano la maggior parte della varianza vengono scelte per ridurre la dimensionalità dei dati.

Rappresentazione facciale ridotta: Ogni immagine facciale viene proiettata sullo spazio delle componenti principali, ottenendo una rappresentazione ridotta della faccia in termini dei valori delle componenti principali. Questa rappresentazione ridotta può essere considerata come un vettore di caratteristiche che descrive la faccia in modo compatto.

Riconoscimento facciale: Per riconoscere una faccia sconosciuta, viene applicata la stessa procedura di proiezione sullo spazio delle componenti principali. Quindi, si confronta la rappresentazione ridotta della faccia sconosciuta con le rappresentazioni ridotte delle facce nel database. La corrispondenza può essere determinata utilizzando misure di distanza o algoritmi di classificazione.

Il PCA per il face recognition è un metodo efficiente per ridurre la dimensionalità dei dati facciali e catturare le informazioni più discriminanti. Tuttavia, potrebbe non essere in grado di affrontare alcune variazioni come l’illuminazione, l’espressione facciale e l’orientamento della testa. Pertanto, spesso viene utilizzato come passo preliminare seguito da altre tecniche più avanzate per migliorare le prestazioni del riconoscimento facciale.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Cosa sono le eigenfaces?

A

Le Eigenfaces (in italiano, “volti propri”) sono un insieme di immagini facciali che rappresentano le componenti principali ottenute tramite l’applicazione dell’analisi delle componenti principali (PCA) su un set di immagini facciali. Le Eigenfaces costituiscono un concetto chiave nel riconoscimento facciale basato su PCA.

L’idea alla base delle Eigenfaces è che le componenti principali ottenute tramite PCA catturino le variazioni più significative all’interno del set di immagini facciali. In altre parole, le Eigenfaces rappresentano le direzioni di massima varianza nei dati facciali.

Per creare le Eigenfaces, si eseguono i seguenti passaggi:

Raccolta del set di immagini facciali: Si raccoglie un insieme rappresentativo di immagini facciali che verranno utilizzate per l'addestramento dell'algoritmo.

Preprocessing delle immagini facciali: Le immagini facciali vengono sottoposte a un preprocessing per rimuovere il rumore, allineare le caratteristiche facciali e standardizzare le condizioni di illuminazione, posizione e dimensione.

Creazione del modello PCA: Utilizzando il set di immagini facciali preelaborate, si calcola la media delle immagini facciali e si calcola la matrice di covarianza delle immagini rispetto alla media. Successivamente, si esegue la decomposizione della matrice di covarianza per ottenere gli autovettori e gli autovalori associati.

Selezione delle componenti principali: Gli autovettori ottenuti dalla decomposizione rappresentano le Eigenfaces. Le Eigenfaces sono ordinate in base agli autovalori corrispondenti, in modo che le prime N Eigenfaces rappresentino le componenti principali più significative.

Le Eigenfaces possono essere interpretate come “faccia media” più o meno distorta, ottenute combinando la media delle immagini facciali con le componenti principali estratte. Le Eigenfaces possono essere visualizzate come immagini, anche se possono apparire astratte o non riconoscibili come volti reali, poiché rappresentano le direzioni di massima varianza dei dati.

Le Eigenfaces vengono quindi utilizzate per rappresentare le immagini facciali in uno spazio a dimensionalità ridotta. Questa rappresentazione ridotta consente di ridurre il numero di informazioni necessarie per descrivere una faccia e semplifica le operazioni di confronto e riconoscimento facciale

How well did you know this?
1
Not at all
2
3
4
5
Perfectly