Hjælp mig om Face Recognition

E

EarlyBird

Guest
Hej venner,
Mit speciale emne er ansigtsgenkendelse.Jeg har brugt Eigenface metode.
For bedre resultat, hvad kan jeg gøre?please help me.Sagar
(KUET = Khulna University of Engineering og Technology.Bangladesh)

 
Jeg er ikke ekspert på dette område ...... men jeg hører om kant metode fra en af min ven .... du kan google det

Venlig hilsen,

Salam

 
Der er en tese avaialble af Turk og Pentland
Vær venlig at gå igennem det ........
Jeg sender dig en prøve kode fra Drexel Universitys hjemmeside

Hilsen

Robin% Drexel UNIVERSITET
% Eigenface Matlab kode

% Ansigtsgenkendelse af Santiago Serrano

klare alle
luk alle
CLC
% Antal billeder på din træning sæt.
M = 50;

% Valgt std og betyder.
% Det kan være mange, at det er tæt på std og gennemsnit af de fleste af billederne.
um = 100;
ustd = 80;

% Læse og vise billedet
S = [];% img matrix
tal (1);
for i = 1: M
str = strcat (int2str (i), '. bmp');% concatenates to strenge, der danner navnet på billedet
eval ('**** imread (str );');
udgaaende (ceil (sqrt (M)), ceil (sqrt (M)), i)
imshow (IMG)
hvis jeg == 3
title ( 'Uddannelse, som er', 'fontsize', 1

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Kølig" border="0" />ende
drawnow;
[irow icol] = size (img);% få antallet af rækker (N1) og kolonner (N2)
temp = omforme (img ', irow * icol, 1);% skaber en (N1 * N2) x1 vektor
S = [S temp];% S er en N1 * N2xM matrix efter endt sekvens
ende% Her kan vi ændre det gennemsnitlige og std af alle billeder.Vi normalize alle billeder.
% Dette er gjort for at reducere fejl på grund af lysforholdene og baggrund.
for i = 1: size (S, 2)
temp = double (S :), i));
m = mean (temp);
st = std (temp);
S :), i) = (temp-m) * ustd / st um;
ende

% Vis normaliseret billeder
tal (2);
for i = 1: M
str = strcat (int2str (i), '. jpg');
**** omforme (S :), i), icol, irow);
**** img ';
eval ( 'imwrite (img, str.)');
udgaaende (ceil (sqrt (M)), ceil (sqrt (M)), i)
imshow (IMG)
drawnow;
hvis jeg == 3
title ( 'Normalized Training Set', 'fontsize', 1

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Kølig" border="0" />ende
ende% Gennemsnitlig billede
m = mean (S, 2);% opnår gennemsnittet af hver række i stedet for hver kolonne
tmimg = uint8 (m);% konverterer til unsigned 8-bit heltal.Værdier varierer fra 0 til 255
**** omforme (tmimg, icol, irow);% mener N1 * N2x1 vektor og skaber en N1xN2 matrix
**** img ';
tallet (3);
imshow (img);
titel ( "Mean Billede ',' fontsize ', 1

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Kølig" border="0" />% Skift billede for manipulation
dbx = [];% En matrix
for i = 1: M
temp = double (S :), i));
dbx = [dbx temp];
ende

% Kovarians matrix C = A'A, L = AA '
A = dbx ';
L = A * A ';
% VV er eigenvector for L
% Dd er egenværdien for både L = dbx '* dbx-og C = dbx * dbx';
[vv dd] = eig (L);
% Sortering og fjerne dem, hvis egenværdi er nul
v = [];
d = [];
for i = 1: size (vv, 2)
if (dd (i, i)> 1e-4)
v = [v vv :), i)];
d = [d dd (i, i)];
ende
ende

% sort, vil returnere en stigende sekvens
[B index] = sort (d);
IND = zeros (size (index));
dtemp = zeros (size (index));
vtemp = zeros (size (v));
len = length (index);
for i = 1: len
dtemp (i) = B (len 1- i);
ind (i) = len 1- indeks (i);
vtemp :), IND (i)) = v :), i);
ende
d = dtemp;
v = vtemp;% Normalisering af eigenvectors
for i = 1: size (v, 2)% adgang til hver kolonne
kk = v :), i);
temp = sqrt (sum (kk. ^ 2));
v :), i) = v :), i). / temp;
ende

% Eigenvectors af C matrix
u = [];
for i = 1: size (v, 2)
temp = sqrt (d (i));
u = [u (dbx * v :), i)). / temp];
ende

% Normalisering af eigenvectors
for i = 1: size (u, 2)
kk = u :), i);
temp = sqrt (sum (kk. ^ 2));
u :), i) = u :), i). / temp;
ende% Vis eigenfaces
figur (4);
for i = 1: size (u, 2)
**** omforme (u :), i), icol, irow);
**** img ';
**** histeq (img, 255);
udgaaende (ceil (sqrt (M)), ceil (sqrt (M)), i)
imshow (IMG)
drawnow;
hvis jeg == 3
title ( 'Eigenfaces', 'fontsize', 1

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Kølig" border="0" />ende
ende% Find vægten af hvert ansigt i den uddannelse, der
omega = [];
for h = 1: size (dbx, 2)
WW = [];
for i = 1: size (u, 2)
t = u :), i) ';
WeightOfImage = dot (t, dbx :), h) ');
WW = [WW; WeightOfImage];
ende
omega = [omega WW];
ende% Erhverve nye billede
% NB: input billedet skal have en bmp eller jpg.
% Det bør have samme størrelse som dem i din uddannelse sæt.
% Det skal placeres på dit skrivebord
InputImage = input ( 'Indtast navnet på billedet og dets udvidelse \ n', 's');
InputImage = imread (strcat ( 'D: \ Documents and Settings \ sis26 \ Desktop \', InputImage));
Figur (5)
udgaaende (1,2,1)
imshow (InputImage); colormap ( 'grå'); titel ( 'Input image', 'fontsize', 1

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Kølig" border="0" />InImage = omforme (double (InputImage) ', irow * icol, 1);
temp = InImage;
mig = mean (temp);
st = std (temp);
temp = (temp-me) * ustd / st um;
NormImage = temp;
Forskel = temp-m;

p = [];
aa = size (u, 2);
for i = 1: aa
pare = dot (NormImage, u :), i));
p = [p; pare];
ende
ReshapedImage = m u :), 1: aa) * p;% m er den gennemsnitlige billede, u er den eigenvector
ReshapedImage = omforme (ReshapedImage, icol, irow);
ReshapedImage = ReshapedImage ';
% viser rekonstruerede billede.
udgaaende (1,2,2)
imagesc (ReshapedImage); colormap ( 'grå');
title ( 'Rekonstrueret billede', 'fontsize', 1

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Kølig" border="0" />InImWeight = [];
for i = 1: size (u, 2)
t = u :), i) ';
WeightOfInputImage = dot (t, Forskel ');
InImWeight = [InImWeight; WeightOfInputImage];
ende

ll = 1: M;
tal (6

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Kølig" border="0" />udgaaende (1,2,1)
stem (ll, InImWeight)
titel ( 'Weight of Input Face', 'fontsize', 14)

% Find euklidiske afstand
e = [];
for i = 1: size (omega, 2)
q = Omega :), i);
DiffWeight = InImWeight-q;
mag = norm (DiffWeight);
e = [e mag];
ende

kk = 1: size (e, 2);
udgaaende (1,2,2)
stem (kk, e)
title ( 'Eucledian afstand af input billede', 'fontsize', 14)

MaximumValue = max (e)% maksimum eucledian afstand
MinimumValue = min (e)% minimum eucledian afstand

 
Ven,
Thanks a lot.
Jeg har brugt denne type algoritme.Jeg vil have en anden algoritme.
Hjælp mig ved at give en anden algoritme.Jeg vil være taknemmelig for u.hilsen
Sagar.

sea002bd (at) yahoo.com

 

Welcome to EDABoard.com

Sponsor

Back
Top