Ajgenvizaĝo

El Vikipedio, la libera enciklopedio
Saltu al: navigado, serĉo
Iuj ajgenvizaĝoj el la AT&T Laboratorio Kembriĝo.

Ajgenvizaĝo estas nomo por ajgenvektoroj, en la kunteksto de komputila vizaĝrekonado.[1] La metodon rekoni vizaĝon per ajgenvizaĝo inventis Sirovich kaj Kirby (1987) kaj plenumis Matthew Turk kaj Alex Pentland por vizaĝklasado.[2] La ajgenvizaĝoj devenas de la kunvarianca matrico de la probablodistribuo super alt-dimensia vektora spaco de bildoj de vizaĝo. La ajgenvizaĝo mem formas bazo-aron por ĉiuj bildoj uzitaj por komputi la kunvariancan matricon. Ĉi tio malmultigas dimension, ĉar oni uzas la malgrandan aron por reprezenti la originajn trejnajn bildojn. Oni povas ankaŭ klasi bildojn per ilia reprezento en la bazo-aro.

Historio[redakti | redakti fonton]

La inventado de la metodo komencis kiel studo por malalt-dimensia reprezentado de vizaĝo.

Sirovich kaj Kirby (1987) aplikis analizon al principaj konsisteroj je kolekto da bildoj de vizaĝo por formi aron da bazoj. La bazaj bildoj, nomiĝante la ajgenbildoj, povas afine kombiniĝi por rekonstrui bildojn en la origina datumaro. Pli da ajgenbildoj eldonas malpli da eraroj, tamen la nombro estu ĉiam malpli ol la origina nombro.

En 1991 M. Turk kaj A. Pentland etendis la rezulton kaj proponis ajgenvizaĝojn kiel metodo por rekoni vizaĝon.[3] Ili planis sistemon por aŭtomate rekoni vizaĝon per ajgenvizaĝoj. Ili ankaŭ montris metodon, kiu ebligas al tiutempaj komputiloj komputi la ajgenvektorojn de la kunvarianca matrico kun multe da bildoj.

Oni plu etendis la metodon por inkluzivi antaŭtraktadon por pliprecizigo.[4] Aliaj sternaĝaj metodoj estis proponitaj por konstrui aron da ajgenvizaĝoj por diversaj celoj[5][6] kaj kun malsamaj trajtoj, ekzemple, okuloj.[7]

Komputado[redakti | redakti fonton]

Oni povas komputi aron da ajgenvizaĝoj per analizo al precipaj konsisteroj (PCA) je aro da bildoj de malsamaj vizaĝoj. Neforme, ajgenvizaĝoj formas aron da "normaj komponantoj de vizaĝoj", ke ĉiu vizaĝo povas konsideriĝi kiel kombinado de ĉi tiuj normaj komponantoj.

Komputitaj ajgenvizaĝoj aperas kiel helaj kaj malhelaj areoj kiuj formas iun strukturon. Por iuj strukturoj, ekzemple vizaĝhararo kaj okulvitroj, oni povas evalui la simetrion. Aliajn bildojn eble estas malfacile rekoni, eĉ ne ŝajnas kiel vizaĝo.

Praktika plenumo[redakti | redakti fonton]

  1. Prepari aron da trejnaj bildoj. La bildoj fotiĝu en simila lumado kaj laŭliniiĝus, la okuloj kaj buŝo estu en la samaj lokoj. Ĉiu bildo estu specimenata laŭ la sama rastrumo (r × c) kaj vektoriĝu kiel vertikala vektoro kun dimensio r × c. Kombinu la vektorojn en matricon T.
  2. Subtrahi la mezan bildon. Oni kalkulu la mezan bildon a kaj subtrahi ĉiujn vertikalojn de T per a.
  3. Komputi la ajgenojn kaj ajgenvektorojn de la kunvarianca matrico S. La ajgenvektoroj de S nomiĝas ajgenvizaĝoj, ĉar ili mem havas la saman dimension kiel la bildoj. La ajgenvizaĝoj reprezentas la direktojn, en kiuj la bildoj devenas el la meza bildo.
  4. Elekti la k pli gravajn principajn konsisterojn. La tuta varianco de la trejna ekzemplo estas la k bazoj do reprezentas da origina varianco.

Ekzempla programo per Matlab[redakti | redakti fonton]

Jen estas ekzempla programo por komputi ajgenvizaĝojn en Extended Yale Face Database B. Por eviti komputan kaj memoran limojn, la bildoj estas subspecimenitaj je faktoro 4x4=16.

clear all;
close all;
load yalefaces
[h,w,n] = size(yalefaces);
d = h*w;
% vectorigi bildojn
x = reshape(yalefaces,[d n]);
x = double(x);
% subtrahi mezan bildon
x=bsxfun(@minus, x, mean(x,2));
% komputi kunvariancon
s = cov(x);
% komputi ajgenon kaj ajgenvektoron
[V,D] = eig(s);
eigval = diag(D);
% ordigi ajgenon malpliiĝe
eigval = eigval(end:-1:1);
V = fliplr(V);
% bildigi precipajn ajgenvektorojn 0 ĝis 15
eig0 = reshape(mean(x,2), [h,w]);
figure,subplot(4,4,1)
imagesc(eig0)
colormap gray
for i = 1:15
subplot(4,4,i+1)
imagesc(reshape(V(:,i),h,w))
end

Notu, ke kvankam la kunvarianca matrico S eldonas multe da ajgenvizaĝojn, oni bezonas nur etan parton de ili por bone reprezenti la plejmulton da bildoj. Ekzemple, por reprezenti 95% de la tuta varianco en ĉiuj vizaĝaj bildoj, necesas la 43 ajgenvektoroj kun nur la grandaj. La rezulton oni komputu jene:

% taksi la nombron de precipaj konsisteroj necesaj por reprezenti 95% de tuta varianco
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;

Komputi la ajgenvektorojn[redakti | redakti fonton]

Rekte apliki PCA-on je la kunvarianca matrico de bildoj estas kompute neeble. Ekzemple, se oni uzus 100 × 100 senkolorajn bildojn, ĉiu bildo estus punkto en 10,000-dimensia spaco. Do la kunvarianca matrico S havus 10,000 × 10,000 = 108 elementojn. Tamen, la rango de la matrico estas finia kaj funkcio de la nombro de trejnaj ekzemploj: por N trejnaj bildoj, estus apenaŭ N − 1 ajgenvektoroj kun nenula ajgeno. Do se la nombro de trajnaj ekzemploj estas malpli multa ol la bildo-dimensio, oni povus komputi la precipajn konsisterojn pli facile jene.

T estu la matrico de antaŭtraktitaj trejnaj ekzemploj, kies ĉiu vertikalo estas vektorigita bildo minus la meza bildo. La kunvarianca matrico estas S = TTT kaj la ajgen-malkomponado de S komputiĝas kiel

Ĉar TTT estas granda oni povas anstataŭe malkomponi

Sekve oni povas ĝin maldekstre mulltipliki per T, kio donas

Kio signifas, ke se ui estas ajgenvektoro de  TTT, vi = Tui estas ajgenvektoro de S. Se oni trejnas per 300 bildoj kun 100 × 100 bilderoj, la matrico TTT havus dimension 300 × 300, ege pli facila ol la kunvarianca matrico kun dimensio 10,000 × 10,000. Notu tamen ke la rezulto vi ne estas unuigitaj.

Rilato kun SVD[redakti | redakti fonton]

X estu datum-matrico kun dimensio , kies vertikalo estas bildo vektoro minus la meza bildo. Do

La singulara-valora malkomponado (SVD, SVM) de X estu:

Do la ajgenmalkomponado de estas

, kie Λ=diag (ajgeno de )

Do estas evidente, ke:

Ajgenvizaĝo = , la maldekstra singulara vektoraro de X
La i-a ajgeno de i-a singulara valoro de

Se oni uzus SVD por X, ne necesus komputi la kunvariancan matricon por ajgenvizaĝoj.

Rekoni vizaĝon[redakti | redakti fonton]

Intuicie, por rekoni bildon oni unue projekcias la mendan bildon en la vizaĝo-spacon de la ajgenvizaĝoj kaj kalkulas la plej proksimuman bildon en la datumbazo.

Kvazaŭprogramo[8]
  • Por bildo kaj la meza bildo de la datumbazo, komputi la pezon de la k-a ajgenvizaĝo jene:
    Kaj formi pezo-vektoron:
  • Kompari W kun pezo-vektoro de bildoj en la datumbazo per eŭklida distanco
  • Se , elektu la nunan bildon kiel rezulto de rekonado
  • Se , U eble estas nekonata vizaĝo. Endatumbazigu U por estonta rekonado.
  • Se , U ne estas vizaĝo.

La pezoj de bildoj nur priskribas la bildoj mem, ne la fotitoj. Fotoj de la sama vizaĝo, sub malsamaj lumado, eldonas tre malsamajn pezojn. Ĉi tio limigas la precizon de la sistemo. Eksperimentoj kun la origina metodo montris ke 96% da pezo estas rilataj al variado de lumo, 85% al direkto, kaj 64% al grandeco.

Plibonigo[redakti | redakti fonton]

Multe da plibonigon proponiĝis por ajgenvizaĝo.

Metodo "Eigenfeatures" kombinas vizaĝajn trajtojn (mezuro de distancoj inter vizaĝpartoj) kaj la ajgenvizaĝoj.

Fisher-vizaĝo bazas sur lineara diskriminanta analizo.[9] Ĉi tiu metodo estas malpli influita de variado de lumado kaj direkto de vizaĝo, kaj utiliĝas speciale por vizaĝo-klasado.

Plua alternativo al ambaŭ ajgenvizaĝo kaj fischer-vizaĝo estas la modelo de aktiva apero. Ĉi tiu metodo uzas modelon de aktiva formo, kiu priskirbas la konturon de la vizaĝo. PCA sur la konturoj eldonas bazo-aron, kiu enkaptas la variancon de malsamaj vizaĝoj.

Notoj[redakti | redakti fonton]

  1. (November 2002) “Analysis and Comparison of Eigenspace-Based Face Recognition Approaches”, International Journal of Pattern Recognition and Artificial Intelligence 16 (7), p. 817–830. doi:10.1142/S0218001402002003. 
  2. Turk, Matthew A and Pentland, Alex P. Face recognition using eigenfaces.
  3. Turk, Matthew A and Pentland, Alex P. Face recognition using eigenfaces.
  4. Draper, Bruce A. and Yambor, Wendy S and Beveridge, J Ross.
  5. Belhumeur, {P,N} and Kriegman, D. What is the set of images of an object under all possible lighting conditions?
  6. Burnstone J and Yin H. Eigenlights: Recovering Illumination From Face Images.
  7. Moghaddam, B and Wahid, W and Pentland, A. Beyond eigenfaces: probabilistic matching for face recognition.
  8. Eigenfaces for Recognition”. doi:10.1162/jocn.1991.3.1.71.  
  9. Belhumeur,P N, and Hespanha, {J,P}, and Kriegman, D.Eigenfaces vs.

Eksteraj ligiloj[redakti | redakti fonton]