Eigenface: Esplorare le profondità del riconoscimento visivo con Eigenface
Di Fouad Sabry
()
Info su questo ebook
Cos'è Eigenface
Un eigenface è il nome dato a un insieme di autovettori quando utilizzato nel problema della visione artificiale del riconoscimento del volto umano. L'approccio dell'utilizzo degli eigenface per il riconoscimento è stato sviluppato da Sirovich e Kirby e utilizzato da Matthew Turk e Alex Pentland nella classificazione dei volti. Gli autovettori derivano dalla matrice di covarianza della distribuzione di probabilità sullo spazio vettoriale ad alta dimensione delle immagini dei volti. Le stesse facce stesse formano un insieme di base di tutte le immagini utilizzate per costruire la matrice di covarianza. Ciò produce una riduzione delle dimensioni consentendo al set più piccolo di immagini di base di rappresentare le immagini di training originali. La classificazione può essere ottenuta confrontando il modo in cui i volti sono rappresentati dal set di base.
Come trarrai beneficio
(I) Approfondimenti e convalide sui seguenti argomenti:
Capitolo 1: Eigenface
Capitolo 2: Analisi delle componenti principali
Capitolo 3: Scomposizione ai valori singolari
Capitolo 4: Autovalori e autovettori
Capitolo 5: Autocomposizione di una matrice
Capitolo 6: Analisi delle componenti principali del kernel
Capitolo 7: Analisi della matrice
Capitolo 8: Sistema dinamico lineare
Capitolo 9: Distribuzione normale multivariata
Capitolo 10: Modi di variazione
(II) Rispondere alle principali domande del pubblico su eigenface.
(III) Esempi reali per l'utilizzo di eigenface in molti campi.
A chi è rivolto questo libro
Professionisti, studenti universitari e laureati, appassionati, hobbisti e coloro che vogliono andare oltre le conoscenze o le informazioni di base per qualsiasi tipo di Eigenface.
Leggi altro di Fouad Sabry
Tecnologie Emergenti Nella Scienza Dei Materiali [Italian]
Correlato a Eigenface
Titoli di questa serie (100)
Gruppo congiunto di esperti fotografici: Sfruttare la potenza dei dati visivi con lo standard JPEG Valutazione: 0 su 5 stelle0 valutazioniVisione artificiale subacquea: Esplorando le profondità della visione artificiale sotto le onde Valutazione: 0 su 5 stelle0 valutazioniModello di aspetto del colore: Comprendere la percezione e la rappresentazione nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniVisione computerizzata: Esplorare le profondità della visione artificiale Valutazione: 0 su 5 stelle0 valutazioniTrasformazione di Hough: Svelare la magia della trasformazione di Hough nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniTrasformata di Hadamard: Svelare il potere della trasformazione Hadamard nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniIstogramma dell'immagine: Svelare intuizioni visive, esplorare le profondità degli istogrammi delle immagini nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniCompressione delle immagini: Tecniche efficienti per l'ottimizzazione dei dati visivi Valutazione: 0 su 5 stelle0 valutazioniMappatura dei toni: Mappatura dei toni: prospettive illuminanti nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniDiffusione anisotropa: Miglioramento dell'analisi delle immagini attraverso la diffusione anisotropa Valutazione: 0 su 5 stelle0 valutazioniRiduzione del rumore: Miglioramento della chiarezza, tecniche avanzate per la riduzione del rumore nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniFiltro adattivo: Migliorare la visione artificiale attraverso il filtraggio adattivo Valutazione: 0 su 5 stelle0 valutazioniTrasformata del radon: Svelare modelli nascosti nei dati visivi Valutazione: 0 su 5 stelle0 valutazioniIstogramma dei gradienti orientati: Svelare il regno visivo: esplorare l'istogramma dei gradienti orientati nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniOmografia: Omografia: trasformazioni nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniVisione stereoscopica del computer: Esplorare la percezione della profondità nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniRilevamento dei bordi: Esplorare i confini nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniFunzione di corrispondenza dei colori: Comprendere la sensibilità spettrale nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniEqualizzazione dell'istogramma: Miglioramento del contrasto dell'immagine per una migliore percezione visiva Valutazione: 0 su 5 stelle0 valutazioniContorno attivo: Avanzamento della visione artificiale con tecniche di contorno attivo Valutazione: 0 su 5 stelle0 valutazioniRetinex: Svelare i segreti della visione computazionale con Retinex Valutazione: 0 su 5 stelle0 valutazioniSistema di gestione del colore: Ottimizzazione della percezione visiva negli ambienti digitali Valutazione: 0 su 5 stelle0 valutazioniRidipintura: Colmare le lacune nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniTrasformazione affine: Sbloccare le prospettive visive: esplorare la trasformazione affine nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniCorrezione gamma: Migliorare la chiarezza visiva nella visione artificiale: la tecnica di correzione gamma Valutazione: 0 su 5 stelle0 valutazioniModello del sistema visivo umano: Comprendere la percezione e l'elaborazione Valutazione: 0 su 5 stelle0 valutazioniModello a colori: Comprendere lo spettro della visione artificiale: esplorare i modelli di colore Valutazione: 0 su 5 stelle0 valutazioniMetodo di impostazione del livello: Avanzamento della visione artificiale, esplorazione del metodo dell'impostazione dei livelli Valutazione: 0 su 5 stelle0 valutazioniBanca filtri: Approfondimenti sulle tecniche del banco di filtri di Computer Vision Valutazione: 0 su 5 stelle0 valutazioniProfilo colore: Esplorare la percezione visiva e l'analisi nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioni
Ebook correlati
Segmentazione delle immagini: Sbloccare insight grazie alla precisione dei pixel Valutazione: 0 su 5 stelle0 valutazioniStima della posa del corpo articolato: Sbloccare il movimento umano nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniSistema di riconoscimento facciale: Sbloccare il potere dell'intelligenza visiva Valutazione: 0 su 5 stelle0 valutazioniModellazione e rendering basati su immagini: Esplorare il realismo visivo: tecniche di visione artificiale Valutazione: 0 su 5 stelle0 valutazioniMosaicazione di documenti: Sbloccare intuizioni visive attraverso il mosaico di documenti Valutazione: 0 su 5 stelle0 valutazioniGeometria Epipolare: Sbloccare la percezione della profondità nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniModello di fotocamera stenopeica: Comprendere la prospettiva attraverso l'ottica computazionale Valutazione: 0 su 5 stelle0 valutazioniVisione stereoscopica del computer: Esplorare la percezione della profondità nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniElaborazione delle immagini piramidali: Esplorare le profondità dell'analisi visiva Valutazione: 0 su 5 stelle0 valutazioniModello Borsa delle Parole: Sbloccare l'intelligenza visiva con il sacchetto di parole Valutazione: 0 su 5 stelle0 valutazioniApprendimento delle caratteristiche geometriche: Sbloccare le intuizioni visive attraverso l'apprendimento delle caratteristiche geometriche Valutazione: 0 su 5 stelle0 valutazioniTrasformazione di feature invarianti di scala: Svelare il potere della trasformazione delle caratteristiche invarianti su scala nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniClassificazione delle immagini contestuali: Comprendere i dati visivi per una classificazione efficace Valutazione: 0 su 5 stelle0 valutazioniModello di aspetto attivo: Sbloccare la potenza dei modelli di aspetto attivo nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniAlgoritmo di disegno di linee: Padroneggiare le tecniche per il rendering di immagini di precisione Valutazione: 0 su 5 stelle0 valutazioniTagli del grafico di visione artificiale: Esplorazione dei tagli grafici nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniRecupero di immagini basato sul contenuto: Sbloccare i database visivi Valutazione: 0 su 5 stelle0 valutazioniVoxel: Esplorare le profondità della visione artificiale con la tecnologia Voxel Valutazione: 0 su 5 stelle0 valutazioniVisualizza la sintesi: Esplorare le prospettive nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniComputer grafica tridimensionale: Esplorare l'intersezione tra visione e mondi virtuali Valutazione: 0 su 5 stelle0 valutazioniConsenso del campione casuale: Stima robusta nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniAnti aliasing: Migliorare la chiarezza visiva nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniFlusso ottico: Esplorazione di modelli visivi dinamici nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniEqualizzazione dell'istogramma: Miglioramento del contrasto dell'immagine per una migliore percezione visiva Valutazione: 0 su 5 stelle0 valutazioniGenerazione di maglie: Progressi e applicazioni nella generazione di mesh per la visione artificiale Valutazione: 0 su 5 stelle0 valutazioniRilevamento oggetti: Progressi, applicazioni e algoritmi Valutazione: 0 su 5 stelle0 valutazioniRegolazione del pacchetto: Ottimizzazione dei dati visivi per una ricostruzione precisa Valutazione: 0 su 5 stelle0 valutazioniComputer grafica poligonale: Esplorando l'intersezione tra la computer grafica poligonale e la visione artificiale Valutazione: 0 su 5 stelle0 valutazioni
Intelligenza artificiale e semantica per voi
ANonniMus: Vecchi rivoluzionari contro giovani robot Valutazione: 0 su 5 stelle0 valutazioniSelf-Publishing del Futuro per Scrittori 2.0: Self-Publishing Facile Valutazione: 0 su 5 stelle0 valutazioniGuida Intelligenza Artificiale Valutazione: 0 su 5 stelle0 valutazioniIl Terzo Like Valutazione: 0 su 5 stelle0 valutazioni
Recensioni su Eigenface
0 valutazioni0 recensioni
Anteprima del libro
Eigenface - Fouad Sabry
Capitolo 1: Eigenface
Un autofacente (/ˈaɪɡənˌfeɪs/) è il nome dato a un insieme di autovettori quando viene utilizzato nel problema della visione artificiale del riconoscimento facciale umano.
Lo spazio vettoriale dell'immagine facciale ad alta dimensione ha una distribuzione di probabilità la cui matrice di covarianza fornisce gli autovettori.
Le autofacce stesse sono l'insieme di base da cui è costruita la matrice di covarianza.
Ciò comporta una riduzione delle dimensioni poiché le immagini di training originali possono essere rappresentate da un set più compatto di immagini di base.
Le facce possono essere ordinate confrontando le loro rappresentazioni nell'insieme di base.
Trovare un modo compatto per esprimere i tratti del viso è stato il punto di partenza per il metodo eigenface.
Utilizzando l'analisi delle componenti principali, Sirovich e Kirby hanno dimostrato come creare un set di base di caratteristiche da un gruppo di foto facciali.
Le immagini fondamentali, le autoimmagini, nel set di addestramento originale possono essere unite linearmente per generare immagini.
Dato un set di addestramento dell'immagine M, N foto potrebbero essere utilizzate come punto di partenza per l'analisi delle componenti principali, se N > M.
Quando si usano più autoimmagini, l'errore di ricostruzione diminuisce; tuttavia, qualsiasi numero richiesto è inferiore a M.
Ad esempio, per un dato insieme di immagini facciali di addestramento M, è necessario produrre N autofacce, si può dire che ogni immagine facciale può essere costituita da proporzioni
di tutte le caratteristiche
K o autofacce: Immagine facciale1 = (23% di E1) + (2% di E2) + (51% di E3) + ..
+ (1% En).
Nel 1991, M. Turk e A. Pentland presentarono il metodo di riconoscimento facciale eigenface, che si basava sui loro precedenti risultati. Hanno dimostrato un metodo per calcolare gli autovettori di una matrice di covarianza, che ha permesso di eseguire la decomposizione degli autogeni su un gran numero di foto di volti su computer dell'epoca. L'analisi tradizionale delle componenti principali si è rivelata difficile da applicare a set di dati di immagini facciali ad alta dimensionalità. Usando matrici proporzionali al numero di immagini piuttosto che al numero di pixel, Turk e Pentland hanno mostrato come estrarre gli autovettori.
Dopo il suo successo iniziale, il metodo eigenface è stato ulteriormente sviluppato per incorporare tecniche di pre-elaborazione per una maggiore precisione.
L'analisi delle componenti principali (PCA) è una procedura matematica che può essere applicata a una vasta raccolta di foto di volti per produrre un insieme di autofacce. Le autofacce sono create attraverso l'analisi statistica di molte immagini diverse di volti e possono essere pensate in modo informale come un insieme di costituenti standardizzati del viso
. Tutti i volti umani possono essere scomposti in questi elementi costitutivi di base. La faccia di una persona può consistere della faccia media più, diciamo, il 10% dell'autofaccia 1, il 55% dell'autofaccia 2 e il 3% dell'autofaccia 3. Sorprendentemente, una buona approssimazione della maggior parte delle facce può essere ottenuta con solo un piccolo numero di autofacce unite insieme. Inoltre, viene occupato molto meno spazio per il volto di ogni persona perché non viene salvato da una fotografia digitale, ma piuttosto come un elenco di valori (un valore per ogni autovolto nel database utilizzato).
Le facce che ne risultano avranno uno schema di parti chiare e scure contrastanti. In questo modo, possiamo isolare le singole caratteristiche facciali per un'analisi dettagliata e un punteggio. Verrà valutata la simmetria, così come la presenza di peli sul viso, la posizione dell'attaccatura dei capelli e le proporzioni del naso e delle labbra. Alcune autofacce hanno modelli più difficili da rilevare e le loro immagini risultanti potrebbero difficilmente assomigliare a volti umani.
Oltre al riconoscimento facciale, altre applicazioni del metodo utilizzato per creare autofacce e utilizzarle per il riconoscimento includono il riconoscimento della scrittura, la lettura labiale, il riconoscimento vocale, l'interpretazione del linguaggio dei segni e dei gesti delle mani e l'analisi delle immagini mediche. Per questo motivo, ci sono altri che preferiscono usare il termine eigenimage
invece di eigenface
.
La generazione di una raccolta di facce autologiche comporta:
Raccogli un campione di volti da usare per l'addestramento.
Tutte le foto utilizzate nel set di allenamento devono essere state scattate con la stessa identica illuminazione e devono essere normalizzate in modo che tutte le foto abbiano occhi e bocche correttamente allineati.
Devono anche essere tutti ricampionati a una risoluzione di pixel comune (r × c).
Un vettore è considerato un'immagine, solo unendo le colonne dei pixel dell'immagine di origine, risultando in una singola colonna con elementi r × c .
In questa specifica implementazione, si presuppone che le immagini del set di training siano tutte contenute all'interno di una singola matrice T e che ogni colonna della matrice rappresenti un'immagine diversa.
Rimuovere la media. Ogni immagine in T deve avere l'immagine media a sottratta da essa.
Determinare gli autovettori e gli autovalori della matrice di covarianza S. Ogni autovettore ha lo stesso numero di componenti (dimensione) delle foto originali, rendendo possibile trattarlo come un'altra immagine. Gli autovettori di questa matrice di covarianza sono indicati come autofacce. Puntano nelle direzioni in cui le foto si discostano maggiormente dalla media. Dal momento che è possibile calcolare in modo efficiente gli autovettori di S senza mai calcolare S in modo esplicito, gli autovettori hanno applicazioni pratiche nonostante questo passaggio computazionale potenzialmente proibitivo.
Seleziona i fattori principali.
Ordina gli autovalori e gli autovettori in base alla magnitudine decrescente.
Il numero di componenti principali k è determinato arbitrariamente impostando una soglia ε sulla varianza totale.
Varianza totale {\displaystyle v=(\lambda _{1}+\lambda _{2}+...+\lambda _{n})} , n = numero di componenti.
k è il numero più piccolo che soddisfa {\displaystyle {\frac {(\lambda _{1}+\lambda _{2}+...+\lambda _{k})}{v}}>\epsilon }
Queste autofacce possono ora essere utilizzate per rappresentare sia facce viste in precedenza che facce non viste, registrando come un'immagine appena proiettata (media-sottratta) altera la forma delle autofacce.
La quantità di immagini nel set di training che si discostano dalla media è rappresentata dagli autovalori delle autofacce corrispondenti.
Quando solo alcuni degli autovettori vengono utilizzati per proiettare l'immagine, alcuni dei dettagli vengono persi, tuttavia, le perdite vengono ridotte mantenendo le autofacce con gli autovalori più alti.
Ad esempio, lavorando con un'immagine 100 × 100 si otterranno 10.000 autovettori.
Nei contesti in cui è importante, una proiezione su un numero compreso tra 100 e 150 autofacce è di solito sufficiente per riconoscere la maggior parte delle facce, in modo che diecimila autovettori possano essere eliminati con relativa facilità.
Utilizzando l'Extended Yale Face Database B, possiamo vedere un esempio di calcolo dell'autofaccia.
Per evitare una carenza di potenza di elaborazione o di archiviazione dei dati, le immagini dei volti vengono campionate di un fattore 4×4=16.
cancella tutto; chiudi tutto; Carica YaleFaces
h, w, n = size(yalefaces); d = h * w; % vettorializza le immagini
x = rimodellare(yalefaces, d n]); x = doppio(x); % sottrae media
mean_matrix = media(x, 2); x = bsxfun(@minus, x, mean_matrix); % Calcola Covarianza
s = cov(x'); % ottiene autovalore e autovettore
V, D = eig(s); eigval = diag(D); % ordina gli autovalori in ordine decrescente
eigval = eigval(fine: - 1:1); V = fliplr(V); % mostra la media e gli autovettori principali dal 1° al 15°
Figura, Sottotrama(4, 4, 1)
imagesc(rimodella(mean_matrix, h, w]))
Grigio mappa dei colori
per i = 1:15
sottotrama(4, 4, i + 1)
imagesc(rimodella(V(:, i), h, w))
fine
Sebbene molte autofacce siano prodotte dalla matrice di covarianza S, solo un sottoinsieme di queste è effettivamente necessario per rappresentare la stragrande maggioranza delle facce. Le prime 43 facce auto, ad esempio, possono rappresentare il 95% della diversità che si trova in tutte le foto dei volti. Applica la seguente formula ai tuoi calcoli:
% valuta il numero di componenti principali necessarie per rappresentare il 95% della varianza totale.
eigsum = somma(eigval); csum = 0; per i = 1:d
csum = csum + eigval(i); TV = CSUM / EIGSUM; se la TV > 0,95
K95 = I; rompere
fine; fine; È spesso proibitivo dal punto di vista computazionale eseguire la PCA direttamente sulla matrice di covarianza delle immagini.
Se vengono utilizzate miniature, ad esempio 100 × 100 pixel, ogni immagine è un punto in uno spazio di 10.000 dimensioni e la matrice di covarianza S è una matrice di 10.000 × 10.000 = 108 elementi.
Tuttavia, se ci sono N esempi di addestramento, allora il rango della matrice di covarianza è destinato ad essere al massimo N-1, Non ci saranno più di N 1 autovettori i cui autovalori non sono zero.
Se sono presenti meno istanze di training rispetto alle dimensioni dell'immagine, il modello avrà difficoltà, Ecco un modo più semplice per calcolare i componenti primari:.
La matrice degli esempi di addestramento, T, è stata pre-elaborata, in cui ogni colonna rappresenta una singola immagine dopo essere stata sottratta dalla media.
La matrice di covarianza può quindi essere calcolata come S = TTT e la decomposizione autovettore di S è data da
\mathbf {Sv} _{i}=\mathbf {T} \mathbf {T} ^{T}\mathbf {v} _{i}=\lambda _{i}\mathbf {v} _{i}Tuttavia TTT è una matrice grande, al contrario, se guardiamo alla decomposizione agli autovalori di
\mathbf {T} ^{T}\mathbf {T} \mathbf {u} _{i}=\lambda _{i}\mathbf {u} _{i}Se poi pre-moltiplichiamo entrambi i membri dell'equazione per T, troviamo che
\mathbf {T} \mathbf {T} ^{T}\mathbf {T} \mathbf {u} _{i}=\lambda _{i}\mathbf {T} \mathbf {u} _{i}Ciò significa che, se ui è un autovettore di TTT, allora vi = Tui è un autovettore di S.
Se abbiamo un set di addestramento di 300 immagini di 100 × 100 pixel, la matrice TTT è una matrice 300 × 300, che è molto più gestibile della matrice di covarianza 10.000 × 10.000.
Si noti tuttavia che i vettori risultanti vi non sono normalizzati; Come processo aggiuntivo, se necessario, è possibile utilizzare la normalizzazione.
Sia X la d\times n matrice di dati con colonna x_{i} come vettore dell'immagine con media sottratta.
Allora {\displaystyle \mathrm {covariance} (X)={\frac {XX^{T}}{n}}}
Supponendo che X abbia un SVD, possiamo scriverlo come:
X=U{\Sigma }V^{T}Quindi la decomposizione degli autovalori per XX^{T} è:
XX^{T}=U{\Sigma }{{\Sigma }^{T}}U^{T}=U{\Lambda }U^{T}, dove Λ=diag (autovalori di XX^{T} )
Di conseguenza, è chiaro come il giorno che:
Le facce automatiche = le prime k ( k\leq n ) colonne di U associate ai valori singolari diversi da zero.
L'i-esimo autovalore di XX^{T}={\frac {1}{n}}( i-esimo valore singolare di X)^{2}
Quando si esegue SVD su una matrice di dati X, la matrice di covarianza effettiva non è necessaria per ottenere le autofacce.
Lo sviluppo delle autofacce è stato stimolato dalla necessità di migliorare l'identificazione facciale. Rispetto ai metodi alternativi, le autofacce funzionano meglio grazie alla velocità e all'efficienza del sistema. A causa dell'attenzione di eigenface sulla riduzione delle dimensioni, un gran numero di soggetti può essere rappresentato utilizzando una piccola quantità di informazioni. È anche abbastanza robusto come sistema di riconoscimento facciale quando le foto sono drasticamente ridotte; Tuttavia, inizia a fallire drammaticamente quando c'è una grande differenza tra le immagini osservate e l'immagine della sonda.
Riconoscimento facciale, Le immagini nella galleria del sistema sono rappresentate da insiemi di pesi che caratterizzano l'importanza relativa di ciascuna faccia automatica nella costruzione di quell'immagine.
Quando una nuova faccia viene aggiunta al database per l'analisi, il sistema, l'immagine viene proiettata sull'insieme di autofacce per determinare i propri autovalori.
Questo ci dà un insieme di valori che caratterizzano il fronte della sonda.
I pesi dei set della galleria vengono confrontati con questi per determinare la corrispondenza più vicina.
Trovare la distanza euclidea tra due vettori