Eigenface - Eigenface

Jotkut ominaispinnat AT & T Laboratories Cambridgesta

Eigenface ( / ɡ ə n ˌ f s / ) on annettu nimi joukko ominaisvektoreista kun käytetään konenäkö ongelma ihmisen kasvojen tunnistaminen . Sirovich ja Kirby (1987) ovat kehittäneet lähestymistavan ominaispintojen tunnistamiseen ja Matthew Turk ja Alex Pentland käyttivät sitä kasvojen luokittelussa. Ominaisvektorit peräisin kovarianssimatriisi on todennäköisyysjakauman yli korkean ulotteinen vektori tilaa kasvokuvien. Ominaispinnat itse muodostavat perustan kaikista kovarianssimatriisin rakentamiseen käytetyistä kuvista. Tämä vähentää ulottuvuutta antamalla pienempien peruskuvien joukon edustaa alkuperäisiä harjoituskuvia. Luokittelu voidaan saavuttaa vertaamalla sitä, kuinka kasvoja edustaa joukko.

Historia

Eigenface-lähestymistapa alkoi etsimällä kasvokuvien matalaulotteista esitystä. Sirovich ja Kirby (1987) osoittivat, että pääkomponenttianalyysiä voitiin käyttää kasvokuvakokoelmalla muodostamaan joukko perusominaisuuksia . Nämä peruskuvat, jotka tunnetaan ominaiskuvina, voitaisiin yhdistää lineaarisesti kuvien rekonstruoimiseksi alkuperäisessä harjoitussarjassa. Jos harjoitusjoukko koostuu M- kuvista, pääkomponenttianalyysi voisi muodostaa N- kuvien perustan , jossa N <M . Jälleenrakennusvirhe pienenee lisäämällä omien kuvien määrää; kuitenkin, määrä tarvitaan valitaan aina vähemmän kuin M . Esimerkiksi, jos sinun on luotava useita N ominaispintoja M- kasvokuvien harjoitusjoukolle , voit sanoa, että kukin kasvokuva voi koostua kaikkien K- ominaisuuksien tai ominaispintojen "osuuksista": Kasvokuva 1 = (23% E 1: stä ) + (2% E 2: sta ) + (51% E 3: sta ) + ... + (1% E n ).

Vuonna 1991 M. Turk ja A. Pentland laajensivat näitä tuloksia ja esittivät kasvojentunnistuksen omaperäisen menetelmän. Lisäksi järjestelmän suunnitteluun automatisoituun kasvojen tunnistuksen Ominaiskasvot, ne osoittivat tapa laskea ominaisvektorit on kovarianssimatriisin siten, että tietokoneet ajasta voisi suorittaa eigen-hajoamisen suuri määrä kasvokuvia. Kasvokuvat vievät yleensä suuren ulottuvuuden tilan, ja tavanomainen pääkomponenttianalyysi oli vaikeata tällaisissa aineistoissa. Turkin ja Pentlandin paperi osoitti tapoja poimia ominaisvektorit matriisien perusteella, jotka on mitoitettu kuvien lukumäärän eikä pikselien määrän mukaan.

Kun ominaisuuspinta-menetelmä on perustettu, sitä laajennettiin käsittelemään esikäsittelymenetelmiä tarkkuuden parantamiseksi. Useita moninaisia ​​lähestymistapoja käytettiin myös luomaan joukko ominaispintoja eri aiheille ja erilaisille ominaisuuksille, kuten silmille.

Sukupolvi

Joukko ominaispintoja voidaan luoda suorittamalla matemaattinen prosessi, jota kutsutaan pääkomponenttianalyysiksi (PCA), suurelle joukolle kuvia, jotka kuvaavat ihmisen eri kasvoja. Epävirallisesti ominaispintoja voidaan pitää sarjana "standardoituja kasvojen ainesosia", jotka on johdettu tilastollisesta analyysistä monista kasvokuvista. Kaikkia ihmisen kasvoja voidaan pitää näiden tavallisten kasvojen yhdistelmänä. Esimerkiksi ihmisen kasvot saattavat koostua keskimääräisistä kasvoista plus 10% ominaispinnasta 1, 55% ominaispinnasta 2 ja jopa −3% ominaispinnasta 3. Huomionarvoista on, että se ei vaadi monia ominaispintoja yhdistettynä, jotta saavutetaan useimmat kasvot. Lisäksi koska digitaalinen valokuva ei tallenna henkilön kasvoja , vaan vain arvoluettelona (yksi arvo kullekin käytetylle tietokannan ominaispinnalle), jokaisen henkilön kasvoille otetaan paljon vähemmän tilaa.

Luodut ominaispinnat näkyvät vaaleina ja tummina alueina, jotka on järjestetty tiettyyn kuvioon. Tämä malli on se, kuinka kasvojen eri piirteet erotetaan arvioitaviksi ja pisteytettäviksi. Symmetrian arvioimiseksi on olemassa malli , onko olemassa kasvojen hiustyyliä, missä hiusraja on, tai arvio nenän tai suun koosta. Muissa ominaispinnoissa on malleja, joita on vähemmän helppo tunnistaa, ja ominaispinnan kuva voi näyttää hyvin vähän kuin kasvot.

Ominaispintojen luomiseen ja niiden tunnistamiseen käyttämää tekniikkaa käytetään myös kasvojentunnistuksen ulkopuolella: käsinkirjoituksen tunnistus , huulten lukeminen , äänentunnistus , viittomakielen / käeeleiden tulkinta ja lääketieteellinen kuvantaminen . Siksi jotkut eivät käytä termiä ominaispinta, mutta mieluummin käyttävät 'ominaiskuvaa'.

Käytännön toteutus

Ominaiskasvojen sarjan luominen edellyttää, että:

  1. Valmista kasvojen kuvaharjoittelu. Harjoitussarjan muodostavien kuvien olisi pitänyt ottaa samoissa valaistusolosuhteissa, ja ne on normalisoitava, jotta silmät ja suu ovat linjassa kaikkien kuvien kanssa. Ne on myös kaikki näytteistettävä uudelleen yhteiselle pikseliresoluutiolle ( r × c ). Kutakin kuvaa käsitellään yhtenä vektorina yksinkertaisesti liittämällä alkuperäisen kuvan pikselirivit, jolloin saadaan yksi sarake r × c -elementeillä. Tätä toteutusta varten oletetaan, että kaikki koulutusjoukon kuvat tallennetaan yhteen matriisiin T , jossa matriisin kukin sarake on kuva.
  2. Vähennä keskiarvo . Keskimääräinen kuva a on laskettava ja vähennettävä sitten jokaisesta alkuperäisestä kuvasta T: ssä .
  3. Laskea ominaisvektorit ja ominaisarvot on kovarianssimatriisin S . Jokaisella ominaisvektorilla on sama ulottuvuus (komponenttien lukumäärä) kuin alkuperäisillä kuvilla, ja siten ne voidaan itse nähdä kuvana. Tämän kovarianssimatriisin ominaisvektoreita kutsutaan siksi ominaispinnoiksi. Ne ovat suunnat, joissa kuvat eroavat keskimääräisestä kuvasta. Yleensä tämä on laskennallisesti kallis vaihe (jos se on mahdollista), mutta ominaispintojen käytännön sovellettavuus johtuu mahdollisuudesta laskea S: n ominaisvektorit tehokkaasti ilman, että S lasketaan koskaan nimenomaisesti, kuten alla on yksityiskohtaisesti kuvattu.
  4. Valitse pääkomponentit. Lajittele ominaisarvot laskevassa järjestyksessä ja järjestä ominaisvektorit vastaavasti. Pääkomponenttien k määrä määritetään mielivaltaisesti asettamalla kynnys e kokonaisvarianssille. Kokonaisvarianssi , n = komponenttien lukumäärä.
  5. k on pienin tyydyttävä luku

Näitä ominaispintoja voidaan nyt käyttää edustamaan sekä nykyisiä että uusia kasvoja: voimme heijastaa uuden (keskiarvosta vähennetyn) kuvan ominaispintoihin ja tallentaa siten, kuinka kyseiset uudet kasvot eroavat keskimääräisistä kasvoista. Kuhunkin ominaispintaan liittyvät ominaisarvot edustavat kuinka paljon harjoitussarjan kuvat vaihtelevat keskimääräisestä kuvasta siinä suunnassa. Tiedot menetetään heijastamalla kuva ominaisvektorien osajoukkoon, mutta häviöt minimoidaan pitämällä ne ominaispinnat, joilla on suurimmat ominaisarvot. Esimerkiksi 100 × 100-kuvan kanssa työskentely tuottaa 10000 ominaisvektoria. Käytännön sovelluksissa useimmat kasvot voidaan tyypillisesti tunnistaa käyttämällä projisointia 100 - 150 ominaispinnan välillä, jotta suurin osa 10000 ominaisvektorista voidaan hylätä.

Matlab-esimerkkikoodi

Tässä on esimerkki ominaispintojen laskemisesta Extended Yale Face Database B: llä. Laskennallisen ja varastoinnin pullonkaulan välttämiseksi kasvokuvista otetaan näyte kertoimella 4 × 4 = 16.

clear all;
close all;
load yalefaces
[h, w, n] = size(yalefaces);
d = h * w;
% vectorize images
x = reshape(yalefaces, [d n]);
x = double(x);
% subtract mean
mean_matrix = mean(x, 2);
x = bsxfun(@minus, x, mean_matrix);
% calculate covariance
s = cov(x');
% obtain eigenvalue & eigenvector
[V, D] = eig(s);
eigval = diag(D);
% sort eigenvalues in descending order
eigval = eigval(end: - 1:1);
V = fliplr(V);
% show mean and 1st through 15th principal eigenvectors
figure, subplot(4, 4, 1)
imagesc(reshape(mean_matrix, [h, w]))
colormap gray
for i = 1:15
    subplot(4, 4, i + 1)
    imagesc(reshape(V(:, i), h, w))
end

Huomaa, että vaikka kovarianssimatriisi S tuottaa monia ominaispintoja, vain murto-osa niistä tarvitaan edustamaan suurinta osaa kasvoista. Esimerkiksi edustamaan 95% kaikkien kasvokuvien kokonaismuutoksista tarvitaan vain ensimmäiset 43 ominaispintaa. Tuloksen laskemiseksi toteuta seuraava koodi:

% evaluate the number of principal components needed to represent 95% Total variance.
eigsum = sum(eigval);
csum = 0;
for i = 1:d
    csum = csum + eigval(i);
    tv = csum / eigsum;
    if tv > 0.95
        k95 = i;
        break
    end;
end;

Ominaisvektorien laskeminen

PCA: n suorittaminen suoraan kuvien kovarianssimatriisiin on usein laskennallisesti mahdotonta. Jos käytetään pieniä kuvia, esimerkiksi 100 × 100 pikseliä, kukin kuva on piste 10000-ulotteisessa tilassa ja kovarianssimatriisi S on 10000 × 10 000 = 108 elementin matriisi . Kuitenkin sijoitus kovarianssimatriisin on rajoitettu useissa koulutus esimerkkejä: jos on olemassa N koulutus esimerkkejä, siellä on enintään N  - 1 ominaisvektorit nollasta ominaisarvot. Jos harjoitusesimerkkien määrä on pienempi kuin kuvien ulottuvuus, pääkomponentit voidaan laskea helpommin seuraavasti.

Olkoon T esikäsiteltyjen harjoitusesimerkkien matriisi, jossa kukin sarake sisältää yhden keskiarvosta vähennetyn kuvan. Kovarianssimatriisi voidaan sitten laskea muodossa S = TT T ja S: n ominaisvektorihajoaminen saadaan

Kuitenkin TT T on suuri matriisi, ja jos sen sijaan otamme ominaisarvo hajoaminen

sitten huomaamme, että kertomalla yhtälön molemmat puolet T: n kanssa saadaan

Tarkoittaen, että jos u i on T T T: n ominaisvektori , niin v i  =  Tu i on S: n ominaisvektori . Jos meillä on koulutus joukko 300 kuvia 100 x 100 kuvapistettä, matriisin T T T on 300 x 300 matriisi, joka on paljon helpommin hallittavissa kuin 10000 × 10000 kovarianssimatriisi. Huomaa kuitenkin, että tuloksena olevia vektoreita v i ei ole normalisoitu; jos normalisointia tarvitaan, sitä tulisi käyttää ylimääräisenä vaiheena.

Yhteys SVD: hen

Olkoon X merkitse datamatriisi sarakkeella kuvavektorina, josta keskiarvo vähennetään. Sitten,

Olkoon X : n singulaariarvon hajoaminen (SVD) seuraava :

Silloin ominaisarvon hajoaminen on:

, missä Λ = diag (ominaisarvot )

Näin voimme helposti nähdä, että:

Ominaispinnat = ensimmäiset ( ) sarakkeet, jotka liittyvät nollattomiin yksikköarvoihin.
Yksittäisen arvon i: n ominaisarvo

Käyttämällä SVD: tä datamatriisissa X ei tarvitse laskea todellista kovarianssimatriisia ominaispintojen saamiseksi.

Käytä kasvojentunnistuksessa

Kasvojentunnistus oli motivaatio omaperäisten kasvojen luomiselle. Tätä käyttöä varten ominaispinnoilla on etuja muihin käytettävissä oleviin tekniikoihin, kuten järjestelmän nopeuteen ja tehokkuuteen. Koska ominaispinta on ensisijaisesti ulottuvuuden pienennysmenetelmä, järjestelmä voi edustaa monia aiheita suhteellisen pienellä tietojoukolla. Kasvojentunnistusjärjestelmänä se on myös melko muuttumaton kuvakoon suuriin pienennyksiin; se alkaa kuitenkin epäonnistua huomattavasti, kun vaihtelu nähtyjen kuvien ja koettimen kuvan välillä on suuri.

Kasvojen tunnistamiseksi gallerian kuvat - järjestelmän näkemät - tallennetaan painokokoelmina, jotka kuvaavat kunkin ominaispinnan vaikutusta kuvaan. Kun uusi kasvot esitetään järjestelmälle luokitusta varten, sen omat painot löydetään heijastamalla kuva ominaispintojen kokoelmaan. Tämä antaa joukon painoja, jotka kuvaavat koettimen kasvot. Nämä painot luokitellaan sitten gallerian kaikkien painojen mukaan lähimmän vastaavuuden löytämiseksi. Lähin naapurin menetelmä on yksinkertainen lähestymistapa kahden vektorin välisen euklidisen etäisyyden löytämiseen, jossa minimi voidaan luokitella lähimmäksi kohteeksi. ( Turk & Pentland 1991 , s.590)

Intuitiivisesti tunnistusprosessi ominaispinta-menetelmällä on projisoida kyselykuvia laskettujen ominaispintojen kattamaan kasvotilaan ja löytää lähin vastine kasvoluokkaan kyseisessä kasvotilassa.

Pseudokoodi
  • Annettu syöttökuvavektori , keskimääräinen kuvavektori tietokannasta , laskee k: nnen ominaispinnan painon seuraavasti:
    Muodosta sitten painovektori
  • Vertaa W : tä tietokannassa olevien kuvien painovektoreihin. Etsi euklidinen etäisyys.
  • Jos , niin tietokannan m. Tieto on ehdokas tunnustamista varten.
  • Jos , niin U voi olla tuntematon kasvot ja se voidaan lisätä tietokantaan.
  • Jos se ei ole kasvokuvaa.

Kunkin gallerian kuvan painot välittävät vain tietoa, joka kuvaa kyseistä kuvaa, ei kohdetta. Yhden kohteen etuvalaistuksessa olevan kuvan paino voi olla hyvin erilainen kuin saman kohteen kuvan ollessa voimakkaassa vasemmassa valaistuksessa. Tämä rajoittaa tällaisen järjestelmän käyttöä. Alkuperäisen Eigenface-paperin kokeet esittivät seuraavat tulokset: keskimäärin 96% valon vaihtelulla, 85% orientaation vaihtelulla ja 64% koon vaihtelulla. ( Turk & Pentland 1991 , s.590)

Eigenface-menetelmälle on tehty erilaisia ​​laajennuksia, kuten ominaisuusominaisuudet . Tämä menetelmä yhdistää kasvojen metrics (mittausetäisyys välillä kasvonpiirteet) kanssa eigenface edustus. Toinen ominaispinnan tekniikkaa muistuttava menetelmä on ' fisherfaces ', joka käyttää lineaarista erotteluanalyysiä . Tämä menetelmä kasvojen tunnistamiseksi on vähemmän herkkä kasvojen valaistuksen ja asennon vaihteluille kuin ominaispintojen käyttö. Fisherface käyttää merkittyjä tietoja pitääkseen enemmän luokkakohtaista tietoa ulottuvuuden pienennysvaiheessa.

Toinen vaihtoehto ominais- ja kalastajapinnoille on aktiivisen ulkonäön malli . Tässä lähestymistavassa käytetään aktiivista muotomallia kasvojen ääriviivojen kuvaamiseen. Keräämällä monia kasvojen ääriviivoja pääkomponenttianalyysiä voidaan käyttää muodostamaan mallien joukko, joka kapseloi eri kasvojen vaihtelut.

Monissa nykyaikaisissa lähestymistavoissa käytetään edelleen pääkomponenttianalyysiä keinona mitan pienentämiseen tai peruskuvien muodostamiseen eri muuntelutavoille.

Arvostelu

Eigenface tarjoaa helpon ja halvan tavan toteuttaa kasvojentunnistus siinä, että:

  • Sen koulutusprosessi on täysin automaattinen ja helppo koodata.
  • Eigenface vähentää riittävästi tilastollista monimutkaisuutta kasvokuvien esityksessä.
  • Kun tietokannan ominaispinnat on laskettu, kasvojentunnistus voidaan saavuttaa reaaliajassa.
  • Eigenface pystyy käsittelemään suuria tietokantoja.

Eigenface-menetelmän puutteet ovat kuitenkin myös ilmeisiä:

  • Se on erittäin herkkä valaistukselle, mittakaavalle ja käännöksille, ja se vaatii erittäin kontrolloidun ympäristön.
  • Eigenfacella on vaikeuksia kaapata ilmentymämuutoksia.
  • Merkittävimmät ominaispinnat koskevat pääasiassa valaistuksen koodausta, eivätkä ne tarjoa hyödyllisiä tietoja todellisista kasvoista.

Selviytyäkseen valaistuksen häiriötekijöistä käytännössä, ominaispinta-menetelmä hylkää yleensä kolme ensimmäistä ominaispintaa tietojoukosta. Koska valaistus on yleensä syynä suurimpiin kasvokuvien vaihteluihin, ensimmäiset kolme ominaispintaa sieppaavat pääasiassa kolmiulotteisten valaistusmuutosten tietoja, mikä ei juurikaan edistä kasvojen tunnistusta. Hylkäämällä nämä kolme ominaispintaa kasvojen tunnistamisen tarkkuus lisääntyy kunnolla, mutta muilla menetelmillä, kuten kalapinta ja lineaarinen tila, on silti etu.

Katso myös

Huomautuksia

Viitteet

Ulkoiset linkit