Ajgenvizaĝo

Ajgenvizaĝo estas nomo por ajgenvektoroj, en la kunteksto de komputila vizaĝrekonado.  La metodon rekoni vizaĝon per ajgenvizaĝo inventis Sirovich kaj Kirby (1987) kaj plenumis Matthew Turk kaj Alex Pentland por vizaĝklasado.Turk, Matthew A and Pentland, Alex P.  Face recognition using eigenfaces.  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 
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.Turk, Matthew A and Pentland, Alex P. Face recognition using eigenfaces.  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.Draper, Bruce A. and Yambor, Wendy S and Beveridge, J Ross.  Aliaj sternaĝaj metodoj estis proponitaj por konstrui aron da ajgenvizaĝoj por diversaj celojBelhumeur, {P,N} and Kriegman, D. What is the set of images of an object under all possible lighting conditions?Burnstone J and Yin H. Eigenlights: Recovering Illumination From Face Images.  kaj kun malsamaj trajtoj, ekzemple, okuloj.Moghaddam, B and Wahid, W and Pentland, A. Beyond eigenfaces: probabilistic matching for face recognition. 

 Komputado 
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 
 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.
 Subtrahi la mezan bildon. Oni kalkulu la mezan bildon a kaj subtrahi ĉiujn vertikalojn de T per a.
 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.
 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 
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))
endNotu, 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 
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 multipliki 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 
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 
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 
 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 
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.Belhumeur,P N, and Hespanha, {J,P}, and Kriegman, D.Eigenfaces vs.  Ĉ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 priskribas la konturon de la vizaĝo. PCA sur la konturoj eldonas bazo-aron, kiu enkaptas la variancon de malsamaj vizaĝoj.

 Notoj 

 Eksteraj ligiloj 
 Face Recognition Homepage
 PCA on the FERET Dataset
 Developing Intelligence Eigenfaces and the Fusiform Face Area
 A Tutorial on Face Recognition Using Eigenfaces and Distance Classifiers
 Matlab example code for eigenfaces
 OpenCV + C++Builder6 implementation of PCA
 Java applet demonstration of eigenfaces 
 Introduction to eigenfaces
 Face Recognition Function in OpenCV 
 Eigenface-based Facial Expression Recognition in Matlab 

Kategorio:Komputila rekonado
Kategorio:Artefarita intelekto
Kategorio:Biometrio
Kategorio:Vizaĝo