Face recognition using eigenface
Show older comments
hello, i'm been working face regonition using eigenface, how do i know the input doesn't same with database, actually it will show others database image. Is there any others solution that it doesn't found your input in database..
Accepted Answer
More Answers (2)
Julie
on 8 May 2012
Hello, I'm trying to get started on eigenfaces in Matlab.
I read in images 100 x 100 grey level with imread. Turned each one into single column of data 10,000 data points long. Created a matrix A with four columns (four images) of data 10,000 rows long. I then tried to use
[COEFF, SCORE, latent] = princomp(A);
but it gives me :
_Error using svd
Out of memory. Type HELP MEMORY for your
options.
Error in princomp (line 86)
[U,sigma,coeff] = svd(x0,econFlag); % put in
1/sqrt(n-1) later
Error in face1 (line 37)
[COEFF, SCORE, latent] = princomp(A);_
----------------
size(A) = 4 x 10000
I just wanted to try four pictures before moving on to get fussy about the face images but it's already telling me it's out of memory.
Please help. I know people use Matlab to do Eigenfaces. What am I doing wrong ?
Help please.
3 Comments
Walter Roberson
on 9 May 2012
Analyzing a 4 x 10000 matrix for principle components requires creating a 10000 by 10000 correlation matrix and analyzing that. Each entry requires 8 bytes (double precision) so that requires about 800 megabytes of memory. You will not be able to handle an array that large on a 32 bit version of MATLAB under MS Windows, especially if it turns out to be necessary to make a copy of the array -- 800 megabytes happens to be about the limit of the _consecutive_ memory with the way storage is arranged in MATLAB. A 64 bit version of MATLAB should be able to handle the situation.
Consider trying something like imresize() to a smaller matrix.
Nattawat Siri
on 12 Jun 2012
I'm study in this methodology for Age prediction.I think I can help you with the problem
eigenvector can product covariance matrix follow expression,
[Eig D]=A*A'
so, A =covariance matrix from
A= all of Face images in a column vector minus by mean of class
if you are more detail ,I advise you see this page . http://www.mathworks.com/help/techdoc/ref/eig.html
michael scheinfeild
on 17 Mar 2014
IF YOU HAVE 50 IMAGES n*n SO each image you do operation img(:) you have matrix (n=100) 10000*50=A if you try C (A*A') IT IMPOSSIBLE 10000*10000 , INSTEAD do the transopse C=A'*A is size of 50*50 you have 50 eigen vectors and 50 eigen valuse to reach the hhigher diomension eigen lamda = smalleig*A (the eigen face !!!)
michael scheinfeild
on 11 Mar 2014
0 votes
you can transpose N*M*M*N = COV M*N*N*M
Categories
Find more on Semantic Segmentation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!